/* Small, finite feedback for controls; reduced motion remains fully static. */
@media (prefers-reduced-motion: no-preference) {
  :is(.btn, .icon-button, .filter-chip, .service-card, .quick-service, .request-row, .nav-item, .mobile-nav a, .more-menu-item, .text-link, .map-building-link) {
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform var(--press-duration, .17s) ease-out;
  }
  :is(.btn, .icon-button, .filter-chip, .service-card, .quick-service, .nav-item, .mobile-nav a, .more-menu-item):not(:disabled, [aria-disabled="true"]):active {
    --press-duration: .06s;
    transform: translateY(2px) scale(.96);
  }
  .modal { animation: dialog-enter .19s ease-out; }
  .modal-backdrop { animation: backdrop-enter .16s ease-out; }
  .toast { animation: toast-enter .2s ease-out; }
  .favorite-button .icon { transition: fill .18s ease, transform .18s ease; }
  .favorite-button.is-saved .icon { transform: scale(1.07); }
  @keyframes dialog-enter { from { opacity:0;transform:translateY(7px); } to { opacity:1;transform:translateY(0); } }
  @keyframes backdrop-enter { from { background-color:transparent; } }
  @keyframes toast-enter { from { opacity:0;transform:translateY(5px); } to { opacity:1;transform:translateY(0); } }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important; }
}
