/* Shared hover/focus lift utilities. Add .hover-lift at the call site. */

.hover-lift,
.hover-lift-group {
  --hover-lift-distance: -2px;
  --hover-lift-duration: 220ms;
  transition-duration: var(--hover-lift-duration);
  transition-timing-function: ease;
}

.hover-lift--1 {
  --hover-lift-distance: -1px;
}

.hover-lift--1-5 {
  --hover-lift-distance: -1.5px;
}

.hover-lift--2 {
  --hover-lift-distance: -2px;
}

.hover-lift--3 {
  --hover-lift-distance: -3px;
}

.hover-lift--fast {
  --hover-lift-duration: 140ms;
}

.hover-lift:is(:hover, :focus-visible) {
  transform: translateY(var(--hover-lift-distance));
}

.hover-lift-group:not(.is-open):not(.is-closing):has(
  .hover-lift-group__trigger:is(:hover, :focus-visible)
) {
  transform: translateY(var(--hover-lift-distance));
}

@media (prefers-reduced-motion: reduce) {
  .hover-lift,
  .hover-lift-group {
    transition-duration: 1ms;
  }

  .hover-lift:is(:hover, :focus-visible),
  .hover-lift-group:not(.is-open):not(.is-closing):has(
    .hover-lift-group__trigger:is(:hover, :focus-visible)
  ) {
    transform: none;
  }
}
