/* ============================================================================
   subpage-a11y.css  —  shared accessibility + print layer

   Only index.html, contact/ and certifications/ load css/styles.css; every
   other page carries its own inline <style>. That meant the hardening pass in
   styles.css reached three pages out of thirteen. Rather than paste the same
   rules into ten inline blocks, this one small file is linked from every page
   and holds the things that must be true everywhere.

   Cached for a year by the /css/* rule in /_headers — bump the ?v= when edited.
   ============================================================================ */

/* ---- 1. Visible keyboard focus. Several inline blocks kill the outline. ---- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid #3CE88F;outline-offset:3px;border-radius:4px}

/* ---- 2. Touch targets. Nav rows, footer link rows, proof links and the 404
        suggestions were all 14–23px tall — under half the 44px guideline. ---- */
.bar .nav{display:flex;flex-wrap:wrap;align-items:center}
.bar .nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;margin-left:0}
.bar .logo,nav .logo,.nav-inner .logo{display:inline-flex;align-items:center;min-height:44px}
footer a{display:inline-block;padding:6px 2px;min-height:34px}
a.proof,.hof-body .proof,a.lnk{display:inline-flex;align-items:center;min-height:44px}
.footer-col a,.footer-brand .logo{min-height:38px;display:inline-flex;align-items:center}
.nav-links{align-items:center}
.nav-links a{display:inline-flex;align-items:center;min-height:34px}
.crumbs a{display:inline-flex;align-items:center;min-height:38px;padding:0 4px}
.s a{display:inline-flex;align-items:center;min-height:38px;padding:0 6px}
.contact-email a{display:inline-flex;align-items:center;min-height:38px}
/* Links inside running prose are exempt from the 44px target rule (WCAG 2.5.8
   "inline" exception) — leaving those alone keeps paragraphs readable. */

/* ---- 3. Respect reduced motion on pages that animate. ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ---- 4. Higher contrast when the OS asks for it. ---- */
@media (prefers-contrast:more){
  :root{--muted:#C3CCDA;--faint:#A8B4C6;--dim:#A8B4C6}
}

/* ---- 5. Print. Every sub-page printed light text on white paper. ---- */
@media print{
  html,body{background:#fff !important;color:#111827 !important}
  .bar,nav,#curRing,#curDot,.crt,.bg-grid,.bg-glow,
  #scrollProgress,#scrollRail{display:none !important}
  a{color:#046C42 !important;text-decoration:underline}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#4B5563;word-break:break-all}
  a[href^="#"]::after,a[href^="mailto"]::after{content:""}
  h1,h2,h3{color:#111827 !important;page-break-after:avoid}
  img{max-width:100% !important;page-break-inside:avoid}
  *{animation:none !important;transition:none !important;box-shadow:none !important}
  @page{size:A4;margin:16mm}
}
