/* ============================================================
   a11y.css — accessibility refinements layered on top of style.css
   ============================================================ */

/* WCAG 2.5.5 — ≥44×44px touch targets. Scoped to COARSE (touch) pointers
   so the mouse/desktop layout is left exactly as designed; this only
   enlarges tap targets on phones/tablets where it matters. */
@media (pointer: coarse) {
  .btn,
  .btn-sm,
  [role="button"],
  .chip,
  a.chip,
  .tab,
  .filter-chip {
    min-height: 44px;
  }
}

/* THE single focus indicator — keyboard-only (WCAG 2.4.7), one consistent
   rose outline ring for every interactive element. Outline (not box-shadow)
   so it's never clipped by overflow:hidden on cards/scrollers. Components
   must not override this; the --ls-focus-* tokens are the only knobs. */
:focus-visible {
  outline: var(--ls-focus-width, 2px) solid var(--ls-focus-color, var(--ls-rose-dark));
  outline-offset: var(--ls-focus-offset, 2px);
}

/* Respect the user's reduced-motion preference (WCAG 2.3.3 / vestibular
   safety). Collapses transitions + animations to near-instant and disables
   smooth scrolling, while keeping final states intact. Part of the motion
   system: motion is opt-out for anyone who has asked the OS for less of it. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
