/* MOD-81 VectorA11y Core v1.1.0 styles. Inherit your site's colors; every rule here is opt-in via a body class. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; top: -48px; left: 8px; background: #000; color: #fff; padding: 10px 14px; z-index: 100000; border-radius: 0 0 6px 6px; }
.skip-link:focus { top: 0; }
:focus-visible { outline: 3px solid var(--a11y-focus, #10b981); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }
body.a11y-motion-freeze *, body.a11y-motion-freeze *::before, body.a11y-motion-freeze *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; transform: none !important; }
html { font-size: calc(100% * var(--a11y-text-scale, 1)); }
body.a11y-contrast { filter: none; background: #000 !important; color: #fff !important; }
body.a11y-contrast *:not(#a11y-dock):not(#a11y-dock *):not(#a11y-undo):not(#a11y-undo *) { background-color: #000 !important; color: #fff !important; border-color: #fff !important; box-shadow: none !important; text-shadow: none !important; }
body.a11y-contrast a:not(#a11y-dock a) { color: #ffff00 !important; text-decoration: underline !important; }
body.a11y-sensory-dim { filter: sepia(0.2) brightness(0.88) contrast(0.92); }
body.a11y-spacing, body.a11y-spacing p, body.a11y-spacing li { letter-spacing: 0.12em; word-spacing: 0.16em; line-height: 1.8; }
body.a11y-dyslexia-atkinson, body.a11y-dyslexia-atkinson * { font-family: 'Atkinson Hyperlegible', 'Verdana', 'Trebuchet MS', sans-serif !important; }
body.a11y-dyslexia-opendyslexic, body.a11y-dyslexia-opendyslexic * { font-family: 'OpenDyslexic', 'Comic Sans MS', 'Verdana', sans-serif !important; }
body.a11y-calm .a11y-hide-in-calm, body.a11y-calm aside, body.a11y-calm [data-a11y-noise] { display: none !important; }
abbr[title] { text-decoration: underline dotted; cursor: help; }
#a11y-ruler { position: fixed; left: 0; right: 0; height: 36px; background: rgba(255, 235, 59, 0.22); border-top: 1px solid rgba(0,0,0,0.25); border-bottom: 1px solid rgba(0,0,0,0.25); pointer-events: none; z-index: 99990; }
#a11y-dock { position: fixed; z-index: 99999; font-family: system-ui, sans-serif; display: flex; flex-direction: column; align-items: stretch; gap: 8px; max-width: calc(100vw - 24px); }
#a11y-dock[data-pos="bottom-right"] { bottom: 16px; right: 16px; }
#a11y-dock[data-pos="bottom-left"] { bottom: 16px; left: 16px; }
#a11y-dock button { padding: 12px 16px; min-height: 44px; background: #2b2421; color: #fff; border: 2px solid #fff; border-radius: 8px; cursor: pointer; font: inherit; text-align: left; }
#a11y-dock button[aria-pressed="true"] { background: #0b5d3b; }
#a11y-menu { display: flex; flex-direction: column; gap: 6px; background: #1a1614; padding: 8px; border-radius: 10px; max-height: 70vh; overflow-y: auto; }
#a11y-menu[hidden] { display: none; }
#a11y-undo { position: fixed; left: 50%; transform: translateX(-50%); bottom: 16px; z-index: 100001; background: #1a1614; color: #fff; border: 2px solid #fff; border-radius: 8px; padding: 12px 16px; display: flex; gap: 12px; align-items: center; font-family: system-ui, sans-serif; }
#a11y-undo button { background: #fff; color: #000; border: 0; border-radius: 6px; padding: 8px 12px; min-height: 40px; cursor: pointer; font: inherit; font-weight: 600; }
