input[type=checkbox]{
    display: none;
    visibility: hidden;
}

label {
    cursor: pointer;
    text-indent: -9999px;
    width: 52px;
    height: 27px;
    background: grey;
    float: right;
    border-radius: 100px;
    position: relative;
}
label::before,
label::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 90px;
    transition: 0.3s;
}
input:checked + label::before {
    content: '';
  position: absolute;
  top: 5px;
  left: 5px;
  width: 16px;
  height: 16px;
  background: var(--color-headings);
  border-radius: 90px;
  z-index: +1;
  transition: 0.3s;
}
input:checked + label {
    background: var(--color-headings);
}
input:checked + label::before {
    left: calc(100% - 11px);
    transform: translateX(-100%);
}
input:checked + label::after {
    left: calc(100% - 5px);
    transform: translateX(-100%);
}
label:active::after {
    left: calc(50% - 10px);
}
input:checked + label:active::after {
    left: calc(50% - 10px);
    transform: translateX(0%);
}
html.transition,
html.transition *,
html.transition *::before,
html.transition *::after {
    transition: all 750ms !important;
    transition-delay: 0 !important;
}
