/* main styles */
.switch {
    width: 14rem;
    height: 2rem;
    position: relative;
    margin: 0 auto;
}
.switch input {
    position: absolute;
    top: 0;
    z-index: 2;
    opacity: 0;
    cursor: pointer;
}
.switch input:checked {
    z-index: 1;
}
.switch input:checked + label {
    opacity: 1;
    cursor: default;
}
.switch input:not(:checked) + label:hover {
    opacity: 0.5;
}
.switch label {
    color: Black;
    opacity: 0.33;
    transition: opacity 0.25s ease;
    cursor: pointer;
}
.switch .toggle-outside {
    height: 90%;
    border-radius: 2rem;
    margin-top: 0.15rem;
    padding: 0.25rem;
    overflow: hidden;
    transition: 0.25s ease all;
}
.switch .toggle-inside {
    border-radius: 5rem;
    background: #4a4a4a;
    position: absolute;
    transition: 0.25s ease all;
}
.switch--horizontal input {
    height: 2rem;
    width: 3.5rem;
    left: 3.5rem;
    margin: 0;
}
.switch--horizontal label {
    font-size: 1.25rem;
    display: inline-block;
    width: 3.5rem;
    height: 100%;
    margin: 0;
    text-align: center;
}
.switch--horizontal label:last-of-type {
    margin-left: 3.75rem;
    width: 6rem;
}
.switch--horizontal .toggle-outside {
    background: #5755d9;
    position: absolute;
    width: 3.5rem;
    left: 3.5rem;
}
.switch--horizontal .toggle-inside {
    height: 1.25rem;
    width: 1.25rem;
}
.switch--horizontal input:checked ~ .toggle-outside .toggle-inside {
    left: 0.25rem;
    background: #f1f1fc;
    border: 1px solid rgba(0,0,0,0.2);
}
.switch--horizontal input ~ input:checked ~ .toggle-outside .toggle-inside {
    left: 2rem;
    background: #2ecc71;
}
.switch--expanding-inner input:checked + label:hover ~ .toggle-outside .toggle-inside {
    height: 1.25rem;
    width: 1.25rem;
}
.switch--expanding-inner.switch--horizontal input:hover ~ .toggle-outside .toggle-inside {
    width: 1.75rem;
}
.switch--expanding-inner.switch--horizontal input:hover ~ input:checked ~ .toggle-outside .toggle-inside {
    left: 1.5rem;
}