/* =======================================================================
   _a11y.css — WCAG 2.1 AA accessibility layer
   Shared accessibility layer (2026-11-09). Set --a11y-focus per site if needed.
   Covers requirements common to federal ADA / Section 508 and the
   California Unruh Act: keyboard focus, reduced motion, respectful zoom,
   screen-reader helpers, forced-colors support.
   Per-page contrast fixes stay in the page that needs them.
   ======================================================================= */

/* -----------------------------------------------------------------------
   SC 2.4.7 Focus Visible (AA)
   :focus-visible keeps rings off for mouse users, on for keyboard users.
   !important guarantees this beats any per-page `outline:none`.
   ----------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible,
[role="link"]:focus-visible,
[contenteditable]:focus-visible {
  outline: 3px solid var(--a11y-focus, #157198) !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}

/* Engines without :focus-visible still get a visible ring on :focus */
@supports not selector(:focus-visible) {
  a:focus, button:focus, input:focus, select:focus,
  textarea:focus, summary:focus, [tabindex]:focus {
    outline: 3px solid var(--a11y-focus, #157198) !important;
    outline-offset: 2px !important;
  }
}

/* On navy chrome the dark cyan disappears — use the brand cyan (6.92:1 on navy) */
nav a:focus-visible,
footer a:focus-visible,
.on-navy a:focus-visible,
.on-navy button:focus-visible {
  outline-color: var(--a11y-focus-dark, #29ABE2) !important;
}

/* -----------------------------------------------------------------------
   SC 2.3.3 — respect the OS "Reduce Motion" setting
   ----------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* -----------------------------------------------------------------------
   Skip link — visible only when focused
   ----------------------------------------------------------------------- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
}
.skip-link:focus {
  left: 0;
  padding: 10px 16px;
  background: #0A1628;
  color: #fff;
  text-decoration: none;
  border: 2px solid #29ABE2;
}

/* -----------------------------------------------------------------------
   Screen-reader-only utility
   ----------------------------------------------------------------------- */
.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;
}

/* -----------------------------------------------------------------------
   SC 1.4.4 Resize Text / 1.4.10 Reflow
   ----------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }

/* -----------------------------------------------------------------------
   Windows High Contrast / forced-colors
   ----------------------------------------------------------------------- */
@media (forced-colors: active) {
  a:focus-visible, button:focus-visible,
  input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid CanvasText !important;
  }
}

/* ---- Sixth Man site settings (2026-11-09) ---- */
:root { --a11y-focus: #F5D76A; --a11y-focus-dark: #F5D76A; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible { box-shadow: 0 0 0 6px #111111 !important; }
.skip-link:focus { background: #111111; color: #F5D76A; border-color: #F5D76A; font-family: 'Barlow', system-ui, sans-serif; font-weight: 600; }
.sm-linkbtn { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; letter-spacing: inherit; text-transform: inherit; min-height: 24px; }
.sm-linkbtn:hover { color: #F5D76A; }
/* Links inside body text must not rely on color alone (WCAG 1.4.1) */
.direct a, main p a:not([class]), main li a:not([class]) { text-decoration: underline; text-underline-offset: 2px; }
/* Footer/contact links: at least 24px tall targets (WCAG 2.5.8) */
footer a, .direct a { padding-top: 3px; padding-bottom: 3px; }
