/* Accessibility tool and site-wide accessibility fixes. Own code, no external request. The tool is built by assets/js/a11y.js; the modes below are
   classes that assets/js/a11y-init.js puts on <html>. Gold (#B8913E) is only ever an icon or a background here, never small text on white. */

/* ---- the tab and panel ---- */
.a11y-tool{position:fixed;right:0;top:45vh;z-index:90;font-family:var(--f-body,system-ui,sans-serif)} /* below the modals (120) and above the page; never in the header band */
.a11y-tab{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:2px solid #B8913E;border-right:0;border-radius:10px 0 0 10px;background:#001830;color:#B8913E;cursor:pointer}
.a11y-tab:hover{background:#0A2542}
.a11y-tab[aria-expanded="true"]{background:#0A2542}
.a11y-panel{position:fixed;right:56px;top:50%;transform:translateY(-50%);width:min(300px,calc(100vw - 72px));max-height:calc(100vh - 24px);overflow:auto;box-sizing:border-box;padding:14px;background:#fff;color:#001830;border:2px solid #001830;border-radius:10px;box-shadow:0 8px 28px rgba(0,12,28,.35)}
.a11y-panel[hidden]{display:none}
.a11y-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.a11y-title{margin:0;font-size:1.05rem;font-weight:700;line-height:1.3;color:#001830}
.a11y-glabel{margin:0 0 6px;font-size:.95rem;font-weight:600;line-height:1.4;color:#001830}
.a11y-tv{font-weight:700}
.a11y-group{margin-bottom:10px}
.a11y-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.a11y-list{display:grid;gap:8px;margin-bottom:10px}
.a11y-btn,.a11y-x{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;min-width:44px;padding:8px 12px;border:2px solid #001830;border-radius:8px;background:#fff;color:#001830;font:inherit;font-size:.95rem;font-weight:600;line-height:1.2;text-align:left;cursor:pointer}
.a11y-x{justify-content:center;padding:0;width:44px}
.a11y-sm{justify-content:center;text-align:center;font-size:1.05rem}
.a11y-btn:hover,.a11y-x:hover{background:#EEF1F6}
.a11y-btn[aria-pressed="true"]{background:#001830;color:#fff}
.a11y-btn[aria-disabled="true"]{opacity:1;color:#455063;border-color:#8895A8;cursor:default;background:#F3F5F8}
.a11y-st{font-weight:700;min-width:2em;text-align:right}
.a11y-reset{width:100%;justify-content:center;text-align:center}
.a11y-note{margin:10px 0 0;font-size:.85rem;line-height:1.4;color:#455063}
.a11y-tool :focus-visible{outline:3px solid #001830;outline-offset:2px;box-shadow:0 0 0 2px #fff}
.a11y-tab:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 2px #001830}
/* Phones (under 640px): the floating tab is hidden (it sat on top of the text). The menu panel and the dashboard sidebar have an "Accessibility" row that opens the
   SAME panel as a bottom sheet with a dimmed backdrop, 44px+ targets and room for the home bar. */
.a11y-backdrop{display:none}
@media(max-width:640px){
  .a11y-tab{display:none}
  .a11y-panel{position:fixed;left:0;right:0;bottom:0;top:auto;transform:none;width:auto;max-height:min(88vh,calc(100vh - 56px));border-width:2px 0 0;border-radius:16px 16px 0 0;z-index:130;
    padding:16px max(16px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));box-shadow:0 -10px 34px rgba(0,12,28,.4)}
  .a11y-tool.is-open .a11y-backdrop{display:block;position:fixed;inset:0;z-index:125;background:rgba(0,12,28,.55)}
  .a11y-btn,.a11y-x{min-height:48px;min-width:48px;font-size:1rem}
  .a11y-x{width:48px}
  .a11y-title{font-size:1.15rem}
  .a11y-glabel{font-size:1rem}
  .a11y-note{font-size:.9375rem}
}
@media print{.a11y-tool{display:none!important}}

/* ---- site-wide: visible focus on light AND dark backgrounds (a gold ring with a navy edge), and a skip link that is easy to see ---- */
:focus-visible{outline:3px solid #D4B064;outline-offset:2px;box-shadow:0 0 0 2px #001830}
.skip:focus{outline:3px solid #001830;box-shadow:none}

/* ---- contrast fixes found by the audit (see the report) ---- */
.panel.navy .link{color:#D4B064}            /* the FAQ e-mail link was navy on a navy panel */
.panel.navy .link:hover{color:#fff}
.path .num{color:#7E5F1C}                   /* the big step numbers were gold on white (2.9:1); this is 6:1 */

/* ---- the modes ---- */
html.a11y-t1{font-size:112.5%} html.a11y-t2{font-size:125%} html.a11y-t3{font-size:150%}
html.a11y-t1 body,html.a11y-t2 body,html.a11y-t3 body{font-size:1rem}
html.a11y-grey{filter:grayscale(1)}
html.a11y-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important;outline:2px solid currentColor;outline-offset:2px}
html.a11y-spacing body :where(p,li,td,th,dd,dt,label,blockquote,summary,figcaption,address,h1,h2,h3,h4,h5,h6,.lead,.small,.muted){line-height:1.9!important}
html.a11y-font body,html.a11y-font body :where(p,li,td,th,dd,dt,label,blockquote,summary,figcaption,address,h1,h2,h3,h4,h5,h6,a,span,div,button,input,select,textarea,small,b,strong,em){font-family:Arial,Helvetica,Verdana,sans-serif!important}
html.a11y-font .lockup,html.a11y-font .lockup *,html.a11y-font .bar-tbac{font-family:var(--f-serif)!important}
html.a11y-contrast,html.a11y-contrast body{background:#000!important;color:#fff!important}
html.a11y-contrast *,html.a11y-contrast *::before,html.a11y-contrast *::after{background-color:#000!important;background-image:none!important;color:#fff!important;border-color:#fff!important;box-shadow:none!important;text-shadow:none!important}
html.a11y-contrast a,html.a11y-contrast a *{color:#FFE600!important}
html.a11y-contrast .btn,html.a11y-contrast button,html.a11y-contrast input,html.a11y-contrast select,html.a11y-contrast textarea{border:2px solid #fff!important}
html.a11y-contrast .lk-1{-webkit-text-fill-color:#FFE600!important;color:#FFE600!important}
html.a11y-contrast :focus-visible{outline:3px solid #FFE600!important;outline-offset:2px}
html.a11y-contrast .a11y-tab{color:#FFE600!important}
html.a11y-contrast .a11y-btn[aria-pressed="true"]{background-color:#fff!important;color:#000!important}
html.a11y-contrast .a11y-btn[aria-pressed="true"] *{color:#000!important;background-color:#fff!important}
html.a11y-still *,html.a11y-still *::before,html.a11y-still *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){html:not(.a11y-motion-ok) *,html:not(.a11y-motion-ok) *::before,html:not(.a11y-motion-ok) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

html.a11y-contrast dialog.vd{border:3px solid #fff!important}
html.a11y-contrast dialog.vd::backdrop{background:#000}

html.a11y-contrast .foot .foot-btn{border:2px solid #fff!important;color:#FFE600!important}
html.a11y-contrast .foot .foot-btn svg{color:#FFE600!important}
