/* Skip links, launcher, assistive menu and user-selected display modes. */
.skip-links{position:absolute;top:0;left:0;z-index:10000}
.skip-links a{position:absolute;left:-9999px;top:8px;background:var(--btn);color:var(--btn-ink);padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none;white-space:nowrap}
.skip-links a:focus{left:8px}
#main:focus,#site-nav:focus,#site-footer:focus{outline:none}

.a11y-theme-toggle{width:44px;height:44px;border-radius:50%;border:1px solid var(--field);background:var(--card);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-left:10px;padding:0}
.a11y-theme-toggle:hover{border-color:var(--blue)}

.a11y-launcher{position:fixed;z-index:9000;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;border:2px solid #fff;background:#0b4fa3;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35);padding:0}
.a11y-launcher:hover{background:#093f82}
.a11y-launcher:focus-visible{outline:3px solid #ffbf00;outline-offset:3px}
@media (max-width:640px){.a11y-launcher{right:auto;left:50%;transform:translateX(-50%);bottom:14px}}

.a11y-overlay{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:flex-end;padding:16px}
.a11y-overlay[hidden]{display:none}
.a11y-panel{width:100%;max-width:400px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--card);color:var(--ink);border:1px solid var(--field);border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.45);font-size:16px;line-height:1.4}
@media (max-width:640px){.a11y-overlay{justify-content:center;padding:8px}.a11y-panel{max-width:none}}
.a11y-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.a11y-head h2{margin:0;font-size:19px;color:var(--navy)}
.a11y-close{width:44px;height:44px;border-radius:50%;border:1px solid var(--field);background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.a11y-body{overflow:auto;padding:6px 16px 4px}
.a11y-sec{padding:10px 0;border-bottom:1px solid var(--line)}
.a11y-sec h3{margin:0 0 8px;font-size:15px;color:var(--navy)}
.a11y-row{display:flex;flex-wrap:wrap;gap:8px}
.a11y-opt{min-height:44px;min-width:44px;padding:8px 12px;border:2px solid var(--field);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.a11y-opt[aria-pressed=true]{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.a11y-link-btn,.a11y-reset{min-height:44px;margin-top:6px;padding:8px 12px;border:2px solid var(--field);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.a11y-sw{display:flex;align-items:center;gap:10px;min-height:44px}
.a11y-sw input{width:22px;height:22px;flex:none;margin:0}
.a11y-sw label{font-size:15px}
.a11y-foot{padding:12px 16px 16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}
.a11y-foot a{color:var(--blue);font-weight:600}
.a11y-note{flex-basis:100%;margin:0;font-size:13px;color:var(--muted)}
.a11y-menu-open body{overflow:hidden}

.a11y-guide{position:fixed;left:0;right:0;height:40px;z-index:8000;pointer-events:none;background:rgba(255,235,59,.22);border-top:3px solid #ffbf00;border-bottom:3px solid #ffbf00}

/* Text size and line spacing */
html.a11y-text-110{font-size:110%} html.a11y-text-125{font-size:125%} html.a11y-text-150{font-size:150%}
html.a11y-text-175{font-size:175%} html.a11y-text-200{font-size:200%}
html.a11y-line-120 body,html.a11y-line-120 p,html.a11y-line-120 li{line-height:1.9}
html.a11y-line-140 body,html.a11y-line-140 p,html.a11y-line-140 li{line-height:2.2}
html[class*=a11y-text-] .a11y-panel,html[class*=a11y-text-] .a11y-launcher{font-size:16px}

/* Link styles */
.a11y-underline-links a{text-decoration:underline!important;text-underline-offset:3px}
.a11y-highlight-links a:not(.btn):not(.skip-links a){background:#fff3a3!important;color:#000!important;outline:2px solid #000;outline-offset:1px;border-radius:2px}

/* Dyslexia-friendly font (file loaded only when this is on) */
.a11y-dyslexia body,.a11y-dyslexia input,.a11y-dyslexia button,.a11y-dyslexia summary{font-family:"Atkinson Hyperlegible",Verdana,Arial,sans-serif!important;letter-spacing:.02em}

/* Big cursor and strong focus */
.a11y-big-cursor,.a11y-big-cursor body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M3 2l7.5 19 2.7-7.8L21 10.5z' fill='%23000' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 3 2,auto}
.a11y-big-cursor a,.a11y-big-cursor button,.a11y-big-cursor summary,.a11y-big-cursor label,.a11y-big-cursor input{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M3 2l7.5 19 2.7-7.8L21 10.5z' fill='%23ffbf00' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 3 2,pointer}
.a11y-focus-strong :focus-visible{outline:4px solid #ffbf00!important;outline-offset:3px!important;box-shadow:0 0 0 7px #000!important}

/* Motion */
.a11y-reduce-motion *,.a11y-reduce-motion *::before,.a11y-reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.a11y-pause-media *{animation-play-state:paused!important}

/* High contrast theme */
html.a11y-contrast-high{
  --navy:#fff; --blue:#ffff00; --blue-d:#fff; --ink:#fff; --muted:#fff; --line:#fff; --field:#fff; --bg:#000; --card:#000;
  --warn:#000; --warn-line:#fff; --btn:#ffff00; --btn-d:#fff; --btn-ink:#000; --err:#ff9a92; --focus:#ffff00; color-scheme:dark;
}
.a11y-contrast-high a{text-decoration:underline}
.a11y-contrast-high .card,.a11y-contrast-high .notice,.a11y-contrast-high input{border:2px solid #fff}
.a11y-contrast-high .a11y-launcher{background:#000;border-color:#ffff00;color:#ffff00}
.a11y-contrast-high .a11y-opt[aria-pressed=true]{outline:3px solid #fff}

@media (forced-colors:active){.a11y-launcher,.a11y-opt,.a11y-theme-toggle{border:2px solid ButtonText}.a11y-opt[aria-pressed=true]{outline:3px solid Highlight}}
