.psv-zoom-button {
  cursor: default;
  width: #{$psv-zoom-buttons-width * 3 + $psv-zoom-range-width};

  &-minus,
  &-plus {
    float: left;
    position: relative;
    cursor: pointer;
    width: $psv-zoom-buttons-width;
    height: $psv-zoom-buttons-width;

    .psv-button-svg {
      position: relative;
      top: 20%;
    }
  }

  &-range {
    float: left;
    padding: #{($psv-buttons-height - $psv-zoom-range-tickness) / 2} #{$psv-zoom-buttons-width / 2};
  }

  &-line {
    position: relative;
    cursor: pointer;
    width: $psv-zoom-range-width;
    height: $psv-zoom-range-tickness;
    background: $psv-buttons-color;
    transition: all .3s ease;
  }

  &-handle {
    position: absolute;
    border-radius: 50%;
    top: #{($psv-zoom-range-tickness - $psv-zoom-disk-diameter) / 2};
    width: $psv-zoom-disk-diameter;
    height: $psv-zoom-disk-diameter;
    background: $psv-buttons-color;
    transform: scale(1);
    transition: transform .3s ease;
  }

  &:not(.psv-button--disabled):hover {
    .psv-zoom-button-line {
      box-shadow: 0 0 2px $psv-buttons-color;
    }

    .psv-zoom-button-handle {
      transform: scale(1.3);
    }
  }

  @media (max-width: 600px) {
    width: auto;
    padding: 0;

    &-range {
      display: none;
    }

    &-minus,
    &-plus {
      width: $psv-buttons-height;
      height: $psv-buttons-height;
      padding: $psv-buttons-padding;

      .psv-button-svg {
        top: 0;
      }
    }
  }
}

.psv-is-touch .psv-zoom-button {
  @media (max-width: 600px) {
    display: none;
  }
}
