/* ════════════════════════════════════════════════════════════════════════════════════════════════
   ACCESSIBILITY FOUNDATION FOR THE STATIC SITE (Lane 2, 2026-09-28). The static pages in
   public/marketing never enter the React tree, so they cannot inherit app/globals.css. This file is
   their copy of the same three rules — keep the two in step; the app's lives at the foot of
   app/globals.css.
   ════════════════════════════════════════════════════════════════════════════════════════════════ */

/* WCAG 2.4.7 Focus Visible. `:where()` keeps specificity at zero so a page's own deliberate focus
   style still wins; what no page can do any more is leave a control with none. */
:where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [role="button"]):focus-visible {
  outline: 3px solid #533F8E;
  outline-offset: 2px;
}
/* On the site's dark bands (indigo grounds) the purple ring disappears; gold reads on both. */
:where(.a11y-dark, footer, .site-footer, .dark, .cta-band, .final-cta) :where(a[href], button, input, select, textarea, summary):focus-visible {
  outline-color: #E8B54B;
}

/* WCAG 2.4.1 Bypass Blocks. Off-screen until focused; never display:none. */
.a11y-skip-link {
  position: fixed; left: 12px; top: 12px; z-index: 10000;
  padding: 10px 16px; border-radius: 6px;
  background: #2E2A5F; color: #FFFFFF;
  font: 600 15px/1.2 var(--brand-font-ui, system-ui, sans-serif);
  text-decoration: none;
  transform: translateY(-200%);
}
.a11y-skip-link:focus, .a11y-skip-link:focus-visible { transform: none; outline: 3px solid #E8B54B; outline-offset: 2px; }

/* Visually hidden, still announced — for labels a design keeps off-screen. */
.a11y-sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Reduced motion (WCAG 2.3.3, and the preference generally). */
@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;
  }
}
