/* Shared accessibility options, adapted from Gargle's client-site widget pattern. */
html body :focus-visible,
html body #page :focus-visible {
  outline: 3px solid #005fcc !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 6px #fff !important;
}
html { scroll-padding-top: 140px; }
:focus-visible { scroll-margin: 140px 12px 24px; }
.site-skip-link { position: fixed; top: 12px; left: 12px; z-index: 2147483647; transform: translateY(-180%); padding: 12px 18px; background: #fff; color: #173c45; font-weight: bold; }
.site-skip-link:focus { transform: translateY(0); }
#a11y-launcher { position: fixed; left: 20px; bottom: 20px; z-index: 100000; display: grid; place-items: center; width: 56px; height: 56px; padding: 12px; border: 2px solid #fff; border-radius: 50%; background: #244c52; color: #fff; box-shadow: 0 2px 12px #0005; cursor: pointer; }
#a11y-launcher svg { width: 28px; height: 28px; }
#a11y-panel { position: fixed; inset: auto auto 90px 20px; box-sizing: border-box; width: min(350px, calc(100vw - 40px)); max-height: calc(100dvh - 120px); margin: 0; padding: 24px; overflow: auto; border: 1px solid #c4d0d0; border-radius: 12px; background: #fff; color: #172d32; box-shadow: 0 10px 40px #0004; font: 16px/1.5 Arial, sans-serif; }
#a11y-panel::backdrop { background: #0004; }
#a11y-panel h2 { margin: 0 40px 8px 0; color: #172d32; font: bold 22px/1.3 Arial, sans-serif; }
#a11y-panel p { color: #32474c; font: 14px/1.5 Arial, sans-serif; }
#a11y-panel button { box-sizing: border-box; min-height: 44px; padding: 10px 12px; border: 1px solid #6e8588; border-radius: 6px; background: #fff; color: #172d32; font: 16px/1.3 Arial, sans-serif; cursor: pointer; }
#a11y-panel button[aria-pressed="true"] { background: #244c52; color: #fff; }
#a11y-panel .a11y-toggle { display: flex; justify-content: space-between; width: 100%; margin: 10px 0; text-align: left; }
#a11y-panel .a11y-toggle::after { content: 'Off'; font-weight: bold; margin-left: 12px; }
#a11y-panel .a11y-toggle[aria-pressed="true"]::after { content: 'On'; }
#a11y-panel .a11y-close { position: absolute; top: 12px; right: 12px; width: 44px; }
#a11y-panel fieldset { margin: 16px 0; padding: 8px; border: 1px solid #6e8588; }
#a11y-panel legend { color: #172d32; font-size: 16px; }
#a11y-panel .a11y-size-options { display: flex; gap: 8px; }
#a11y-reset { width: 100%; margin-top: 12px; }
.a11y-large-text #page :is(p,li,h1,h2,h3,h4,h5,h6,a,label,input,textarea,select) { font-size: calc(var(--a11y-base-font) * 1.2) !important; line-height: 1.6 !important; }
.a11y-xlarge-text #page :is(p,li,h1,h2,h3,h4,h5,h6,a,label,input,textarea,select) { font-size: calc(var(--a11y-base-font) * 1.4) !important; line-height: 1.6 !important; }
.a11y-readable-font #page :is(p,li,h1,h2,h3,h4,h5,h6,a,label,input,textarea,select) { font-family: Arial, sans-serif !important; letter-spacing: .035em !important; word-spacing: .08em !important; }
.a11y-highlight-links #page a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 4px; }
.a11y-grayscale #page { filter: grayscale(1); }
.a11y-high-contrast #page, .a11y-high-contrast #page :is(div,section,article,header,footer,nav,p,li,h1,h2,h3,h4,h5,h6,span,a,label,input,textarea,select,button) { background-color: #000 !important; background-image: none !important; color: #fff !important; border-color: #fff !important; text-shadow: none !important; }
.a11y-high-contrast #page a { color: #ffef75 !important; text-decoration: underline !important; }
.a11y-no-motion *, .a11y-no-motion *::before, .a11y-no-motion *::after { animation-play-state: paused !important; transition: none !important; scroll-behavior: auto !important; }
.site-sitemap { columns: 2 280px; column-gap: 48px; padding: 24px; }
.site-sitemap li { break-inside: avoid; margin-bottom: 12px; }
@media (max-width: 480px) { #a11y-launcher { left: 12px; bottom: 12px; } #a11y-panel { left: 12px; bottom: 80px; width: calc(100vw - 24px); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
@media print { #a11y-launcher, #a11y-panel, .site-skip-link { display: none !important; } }
