.hover-show,
.hover-child-show {
  opacity: 0;
  transform: translateZ(0); // required to make Safari behave
}

.hover-show {
  @include hover-focus-active() {
    opacity: 1;
  }
}

.hover-hide,
.hover-child-hide {
  opacity: 1;
  transform: translateZ(0); // required to make Safari behave
}

.hover-hide {
  @include hover-focus-active() {
    opacity: 0;
  }
}

.hover-scale-up,
.hover-child-scale-up {
  transition: $transition-scale;
}

.hover-scale-up {
  @include hover-focus-active() {
    transform: scale(#{$zoom});
  }
}

.hover-scale-down,
.hover-child-scale-down {
  transform: scale(#{$zoom});
  transition: $transition-scale;
}

.hover-scale-down {
  @include hover-focus-active() {
    transform: scale(1);
  }
}

.hover-filter-none {
  @include hover-focus-active() {
    // sass-lint:disable no-important
    filter: none !important;
    // sass-lint:enable no-important
  }
}

@include link-selector('.hover-text-white') {
  @include hover-focus-active() {
    // sass-lint:disable no-important
    color: $white !important;
    // sass-lint:enable no-important
  }
}

@include link-selector('.hover-text-inverse') {
  @include hover-focus-active() {
    // sass-lint:disable no-important
    color: $brand-inverse !important;
    // sass-lint:enable no-important
  }
}

@include link-selector('.hover-text-black') {
  @include hover-focus-active() {
    // sass-lint:disable no-important
    color: $black !important;
    // sass-lint:enable no-important
  }
}

@include link-selector('.hover-text-secondary') {
  @include hover-focus-active() {
    // sass-lint:disable no-important
    color: $brand-secondary-color !important;
    // sass-lint:enable no-important
  }
}

@include link-selector('.hover-text-underline') {
  @include hover-focus-active() {
    // sass-lint:disable no-important
    text-decoration: underline !important;
    // sass-lint:enable no-important
  }
}


.hover-parent {
  @include hover-focus-active() {
    .hover-child-show {
      opacity: 1;
    }

    .hover-child-hide {
      opacity: 0;
    }

    .hover-child-scale-up {
      transform: scale(#{$zoom});
    }

    .hover-child-scale-down {
      transform: scale(1);
    }

    .hover-child-filter-none {
      // sass-lint:disable no-important
      filter: none !important;
      // sass-lint:enable no-important
    }

    @include link-selector('.hover-child-text-white') {
      // sass-lint:disable no-important
      color: $white !important;
      // sass-lint:enable no-important
    }

    @include link-selector('.hover-child-text-inverse') {
      // sass-lint:disable no-important
      color: $brand-inverse !important;
      // sass-lint:enable no-important
    }

    @include link-selector('.hover-child-text-black') {
      // sass-lint:disable no-important
      color: $black !important;
      // sass-lint:enable no-important
    }

    @include link-selector('.hover-child-text-secondary') {
      // sass-lint:disable no-important
      color: $brand-secondary-color !important;
      // sass-lint:enable no-important
    }

    @include link-selector('.hover-child-text-underline') {
      // sass-lint:disable no-important
      text-decoration: underline !important;
      // sass-lint:enable no-important
    }
  }
}
