// on-off switch control
.prestashop-switch {
  position: relative;
  display: block;
  width: 100%;
  height: 21px;
  margin-top: 7px;

  &-nolabel {
    label {
      display: none;
    }
  }

  label {
    position: absolute;
    top: 50%;
    left: 0;
    z-index: 1;
    padding-left: 45px;
    font-size: 14px;
    font-weight: 500;
    opacity: 0;
    transform: translateY(-50%);
  }

  .slide-button {
    position: relative;
    position: absolute;
    top: 50%;
    z-index: 0;
    display: block;
    width: 35px;
    height: 21px;
    background: #b3c7cd;
    transform: translateY(-50%);
    @include transition(0.25s ease-out);
    @include border-radius(1000px);

    &::after {
      position: absolute;
      top: 50%;
      left: 0;
      width: 50%;
      height: calc(100% - 2px);
      content: "";
      background: #fff;
      transform: translate(1px, -48%);
      @include border-radius(50%);
      @include transition(0.25s ease-out);
    }
  }

  &-center {
    .slide-button {
      position: inherit;
      margin: auto;
    }
  }

  input {
    position: absolute;
    left: 0;
    z-index: 3;
    width: 100%;
    height: 100%;
    cursor: pointer;
    opacity: 0;

    &:disabled {
      cursor: not-allowed;

      ~ .slide-button {
        opacity: 0.2;
      }
    }

    &:checked {
      z-index: 0;
    }

    &:last-of-type:checked {
      ~ label:last-of-type {
        opacity: 1;
      }

      &:disabled ~ label:last-of-type {
        opacity: 0.2;
      }

      ~ .slide-button {
        background: #b3c7cd;
      }
    }

    &:first-of-type:checked {
      ~ label:first-of-type {
        opacity: 1;
      }

      &:disabled ~ label:first-of-type {
        opacity: 0.2;
      }

      ~ .slide-button {
        background: $brand-success;

        &::after {
          transform: translate(15px, -48%);
        }
      }
    }
  }
}
