/* SFIX v3: feedback without changing the approved layout. */
:root { --sfix-motion-ease: cubic-bezier(.16, 1, .3, 1); }
:where(.btn, .nav-toggle, .dock-btn, .chat-chip) {
  transition: transform 180ms var(--sfix-motion-ease), background-color 180ms ease;
}
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #c9232c;
  outline-offset: 4px;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .card--svc .card-icon-img { transition: transform 240ms var(--sfix-motion-ease); }
  .card--svc:hover .card-icon-img, .card--svc:focus-within .card-icon-img { transform: translateY(-12px) rotate(-6deg) scale(1.12); }
  .btn:hover, .dock-btn:hover { transform: translateY(-4px); }
  .main-nav a { text-underline-offset: 6px; }
  .main-nav a:hover { text-decoration: underline; }
}
@media (prefers-reduced-motion: no-preference) {
  .btn:active, .dock-btn:active, .nav-toggle:active { transform: scale(.97); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  :where(.btn, .nav-toggle, .dock-btn, .chat-chip, .card-icon-img) { transition: none; }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .service-level { transition: translate 260ms var(--sfix-motion-ease); }
  .service-level:hover { translate: 0 -10px; }
  .service-level-icon { transition: transform 300ms var(--sfix-motion-ease); }
  .service-level:hover .service-level-icon { transform: rotate(-8deg) scale(1.14); }
  .review-more span { display: inline-block; transition: transform 220ms ease; }
  .review-more:hover span, .review-more:focus-visible span { transform: translate(4px, -4px); }
}

/* Device artwork stays repaired, including before hydration. */
.hero { --screen-damage: 0; }
