/* Shared button feedback. Hover motion is limited to mouse-like pointers. */
:is(.btn, .header-cta, .mobile-register a, .nav-contact, .service-action, .submit, .menu-toggle, .back-top, .saving-calc-reset) {
  cursor: pointer;
  transition: transform 180ms cubic-bezier(.2,.8,.2,1), box-shadow 180ms ease,
    background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

:is(.text-link, .hero-bottom a) {
  transition: color 180ms ease, border-color 180ms ease;
}

:is(.btn .arrow, .nav-contact [aria-hidden], .service-action [aria-hidden], .submit [aria-hidden], .text-link [aria-hidden], .hero-bottom a [aria-hidden]) {
  display: inline-block;
  transition: transform 180ms cubic-bezier(.2,.8,.2,1);
}

@media (hover: hover) and (pointer: fine) {
  :is(.btn, .header-cta, .mobile-register a, .nav-contact, .service-action, .submit, .menu-toggle, .back-top, .saving-calc-reset):not(:disabled):not([aria-disabled="true"]):hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 0 rgba(34,34,38,.10), 0 12px 24px rgba(34,34,38,.18);
  }

  :is(.btn, .nav-contact, .service-action, .submit):not(:disabled):not([aria-disabled="true"]):hover :is(.arrow, [aria-hidden]) {
    transform: translateX(4px);
  }

  .text-link:hover [aria-hidden] { transform: translate(3px, -3px); }
  .hero-detail .text-link:hover [aria-hidden],
  .hero-bottom a:hover [aria-hidden] { transform: translateY(4px); }
}

/* Override the older LP hover lift on touch devices. */
@media (hover: none), (pointer: coarse) {
  :is(.btn, .header-cta):hover { transform: none; }
  .btn:hover { box-shadow: 0 6px 0 rgba(34,34,38,.12), 0 12px 28px rgba(34,34,38,.12); }
  .btn:hover .arrow { transform: none; }
}

:is(.btn, .header-cta, .mobile-register a, .nav-contact, .service-action, .submit, .menu-toggle, .back-top, .saving-calc-reset):not(:disabled):not([aria-disabled="true"]):active {
  transform: translateY(1px) scale(.98);
  box-shadow: 0 1px 0 rgba(34,34,38,.10), 0 3px 8px rgba(34,34,38,.12);
  transition-duration: 70ms;
}

/* Keep unavailable and submitting controls visibly still. */
:is(.btn, .header-cta, .mobile-register a, .nav-contact, .service-action, .submit, .menu-toggle, .back-top, .saving-calc-reset):is(:disabled, [aria-disabled="true"]) {
  transform: none;
  box-shadow: none;
  cursor: not-allowed;
  opacity: .65;
}

:is(.btn, .submit):is(:disabled, [aria-disabled="true"]) :is(.arrow, [aria-hidden]) {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  :is(.btn, .header-cta, .mobile-register a, .nav-contact, .service-action, .submit, .menu-toggle, .back-top, .saving-calc-reset),
  :is(.btn .arrow, .nav-contact [aria-hidden], .service-action [aria-hidden], .submit [aria-hidden], .text-link [aria-hidden], .hero-bottom a [aria-hidden]) {
    transform: none !important;
    transition: none !important;
  }
}
