/* ===========================================================
   Novak — accessibility layer (WCAG 2.1 AA helpers)
   Self-contained; loaded on every page including platinum.
   Skip link · focus rings · screen-reader utils · a11y toolbar
   · user preference modes (contrast / text size / links / motion)
   =========================================================== */

/* --- skip link --- */
.skip-link{position:fixed;top:-60px;left:12px;z-index:2000;background:#0b2444;color:#fff;
  padding:12px 18px;border-radius:0 0 6px 6px;font:700 14px/1 'Lato',system-ui,sans-serif;
  letter-spacing:.04em;transition:top .18s ease}
.skip-link:focus{top:0;outline:3px solid #c9a86e;outline-offset:2px}

/* --- visible focus for keyboard users (everywhere) --- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,.btn:focus-visible{
  outline:3px solid #c9a86e;outline-offset:2px;border-radius:2px}
main:focus{outline:none}

/* --- screen-reader-only text --- */
.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}

/* --- accessibility toolbar --- */
.a11y-fab{position:fixed;right:18px;bottom:18px;z-index:1900;width:52px;height:52px;
  border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#0b2444;color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 10px 26px -10px rgba(11,36,68,.7);transition:transform .2s,background .2s}
.a11y-fab:hover{background:#12345c;transform:translateY(-2px)}
.a11y-fab svg{width:26px;height:26px}
.a11y-panel{position:fixed;right:18px;bottom:80px;z-index:1900;width:290px;max-width:calc(100vw - 36px);
  background:#fff;color:#16222f;border:1px solid rgba(18,52,92,.16);border-radius:12px;
  box-shadow:0 24px 60px -20px rgba(11,36,68,.55);padding:16px;
  font-family:'Lato',system-ui,sans-serif;display:none}
.a11y-panel[data-open="true"]{display:block}
.a11y-panel h2{font-family:'Lato',system-ui,sans-serif;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:#4d5f70;font-weight:700;margin:0 0 12px}
.a11y-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;text-align:left;background:#f2f6fb;border:1px solid rgba(18,52,92,.12);
  border-radius:8px;padding:11px 13px;margin-bottom:8px;cursor:pointer;
  font-size:14px;color:#16222f;font-weight:400;line-height:1.3}
.a11y-opt:hover{background:#e9f0f9}
.a11y-opt[aria-pressed="true"]{background:#12345c;color:#fff;border-color:#12345c}
.a11y-opt .state{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;opacity:.7}
.a11y-reset{display:block;width:100%;text-align:center;margin-top:4px;background:transparent;
  border:0;color:#4d5f70;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:700;cursor:pointer;padding:8px}
.a11y-reset:hover{color:#12345c;text-decoration:underline}

/* ---- user preference modes (applied to <html>) ---- */
/* larger text */
html.a11y-textlg{font-size:112.5%}
html.a11y-textxl{font-size:125%}

/* readable font — override display serif with a plain sans */
html.a11y-readable h1,html.a11y-readable h2,html.a11y-readable h3,
html.a11y-readable .brand,html.a11y-readable .pc-name,html.a11y-readable blockquote,
html.a11y-readable .carrier,html.a11y-readable .stat .n{
  font-family:'Lato',system-ui,sans-serif!important;letter-spacing:0!important}

/* highlight links */
html.a11y-links a:not(.btn){text-decoration:underline!important;text-underline-offset:3px}
html.a11y-links a:not(.btn):hover{text-decoration-thickness:2px}

/* high contrast */
html.a11y-contrast,html.a11y-contrast body{background:#fff!important;color:#111!important}
html.a11y-contrast .hero::before,html.a11y-contrast .page-hero.img::before,
html.a11y-contrast .platinum-band{background:#0a1a30!important}
html.a11y-contrast .muted,html.a11y-contrast p,html.a11y-contrast .card p,
html.a11y-contrast .stat .l,html.a11y-contrast .fcol a{color:#1a1a1a!important}
html.a11y-contrast a:not(.btn){color:#0b2c66!important;text-decoration:underline!important}
html.a11y-contrast .btn{background:#0b2444!important;color:#fff!important;border-color:#0b2444!important}
html.a11y-contrast header.solid,html.a11y-contrast header{background:#fff!important;border-bottom:1px solid #111}
html.a11y-contrast .menu a,html.a11y-contrast header .brand{color:#111!important}

/* pause animations (user toggle — mirrors prefers-reduced-motion) */
html.a11y-nomotion *,html.a11y-nomotion *::before,html.a11y-nomotion *::after{
  animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-nomotion .reveal{opacity:1!important;transform:none!important}
html.a11y-nomotion .hero-carousel .slide{transition:none!important}

@media(max-width:520px){.a11y-fab{width:46px;height:46px}.a11y-panel{bottom:70px}}
