/* ---- Accessibility panel ---- */
.fire-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fire-a11y { position: fixed; left: 16px; bottom: 16px; z-index: 99990; font-family: Inter, system-ui, sans-serif; }
.fire-a11y-toggle { width: 52px; height: 52px; border-radius: 50%; border: 3px solid #fff; background: #1F1E76; color: #fff; font: 700 1.15rem Inter, sans-serif; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.fire-a11y-toggle:focus-visible, .fire-a11y-panel button:focus-visible, .fire-a11y-panel input:focus-visible { outline: 3px solid #F59E0B; outline-offset: 2px; }
.fire-a11y-panel { position: absolute; left: 0; bottom: 64px; width: min(320px, calc(100vw - 32px)); background: #fff; color: #1E293B; border-radius: 16px; box-shadow: 0 10px 40px rgba(0,0,0,.25); padding: 14px 16px; }
.fire-a11y-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 1.05rem; color: #1F1E76; }
.fire-a11y-close { border: 0; background: #EEF3FF; color: #1F1E76; width: 32px; height: 32px; border-radius: 50%; font-size: 1.3rem; cursor: pointer; }
.fire-a11y-panel fieldset { border: 0; padding: 0; margin: 0 0 10px; }
.fire-a11y-panel legend { font-weight: 700; font-size: .85rem; color: #475569; margin-bottom: 6px; }
.fire-a11y-row { display: flex; gap: 6px; flex-wrap: wrap; }
.fire-a11y-row button { flex: 1; min-width: 44px; min-height: 44px; border: 2px solid #E2E8F0; background: #fff; color: #1F1E76; border-radius: 10px; cursor: pointer; font-weight: 700; }
.fire-a11y-row button[aria-pressed="true"] { border-color: #2563EB; background: #EEF3FF; }
.fire-a11y-switches { display: grid; gap: 4px; margin: 4px 0 10px; }
.fire-a11y-switches label { display: flex; gap: 10px; align-items: center; min-height: 36px; cursor: pointer; font-size: .95rem; }
.fire-a11y-switches input { width: 20px; height: 20px; accent-color: #2563EB; }
.fire-a11y-reset { width: 100%; min-height: 40px; border: 0; border-radius: 10px; background: #EEF3FF; color: #1F1E76; font-weight: 600; cursor: pointer; }

/* text size (rem-based themes scale from the root) */
html.fire-a11y-size-115 { font-size: 115% !important; }
html.fire-a11y-size-130 { font-size: 130% !important; }
html.fire-a11y-size-150 { font-size: 150% !important; }
html.fire-a11y-size-115 body { font-size: 1.15em; } html.fire-a11y-size-130 body { font-size: 1.3em; } html.fire-a11y-size-150 body { font-size: 1.5em; }
/* fonts */
html.fire-a11y-font-easy body, html.fire-a11y-font-easy body *:not(.fire-a11y-toggle) { font-family: "Atkinson Hyperlegible", Verdana, sans-serif !important; }
html.fire-a11y-font-dys body, html.fire-a11y-font-dys body *:not(.fire-a11y-toggle) { font-family: OpenDyslexic, "Comic Sans MS", sans-serif !important; }
/* spacing */
html.fire-a11y-spacing body p, html.fire-a11y-spacing body li, html.fire-a11y-spacing body td { line-height: 1.9 !important; letter-spacing: .03em; word-spacing: .12em; }
/* underline links */
html.fire-a11y-links a { text-decoration: underline !important; text-underline-offset: 3px; }
/* reduce motion */
html.fire-a11y-motion *, html.fire-a11y-motion *::before, html.fire-a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
/* dark mode */
html.fire-a11y-dark, html.fire-a11y-dark body { background: #0E0F24 !important; color: #E7E9F7 !important; }
html.fire-a11y-dark body :where(header, footer, main, section, article, div, nav, aside, .wp-site-blocks) { background-color: transparent; color: inherit; }
html.fire-a11y-dark :where(h1, h2, h3, h4, h5, h6, .fire h2, .fire h3) { color: #FFFFFF !important; }
html.fire-a11y-dark a { color: #9CC0FF !important; }
html.fire-a11y-dark .fire { --text: #E7E9F7; --muted: #B8BEDA; --card: #181A3A; --line: #2E3263; --tint: #23265A; --bg: #121433; --ink: #C9D4FF; }
html.fire-a11y-dark .fire .fire-card, html.fire-a11y-dark .fire .fire-tcard, html.fire-a11y-dark .fire .fire-vcard, html.fire-a11y-dark .fire .fire-ll,
html.fire-a11y-dark .fire .fire-res-box, html.fire-a11y-dark .fire .fire-goals, html.fire-a11y-dark .fire .fire-step, html.fire-a11y-dark .fire .fire-details { background: #181A3A !important; color: #E7E9F7; }
html.fire-a11y-dark .fire .fire-hero, html.fire-a11y-dark .fire .fire-callout { background: #23265A !important; }
html.fire-a11y-dark .fire-chip, html.fire-a11y-dark .fire-opt, html.fire-a11y-dark .fire-chipf, html.fire-a11y-dark .fire-field textarea { background: #181A3A !important; color: #E7E9F7 !important; }
html.fire-a11y-dark .llms-question-wrapper .llms-choice label { background: #181A3A; color: #E7E9F7; }
/* high contrast */
html.fire-a11y-contrast body { background: #fff !important; color: #000 !important; }
html.fire-a11y-contrast .fire { --text: #000; --muted: #1a1a1a; --line: #000; --ink: #000; --blue: #0033CC; --acc: #0033CC; }
html.fire-a11y-contrast .fire :where(.fire-card, .fire-tcard, .fire-vcard, .fire-goals, .fire-ll, .fire-res-box, .fire-step, .fire-activity) { border: 2px solid #000 !important; box-shadow: none !important; }
html.fire-a11y-contrast a { color: #0033CC !important; text-decoration: underline !important; }
html.fire-a11y-contrast :focus-visible { outline: 4px solid #000 !important; outline-offset: 2px; }
html.fire-a11y-contrast.fire-a11y-dark, html.fire-a11y-contrast.fire-a11y-dark body { background: #000 !important; color: #FFF !important; }
html.fire-a11y-contrast.fire-a11y-dark a { color: #FFFF00 !important; }
html.fire-a11y-contrast.fire-a11y-dark .fire { --text: #fff; --muted: #fff; --line: #fff; --ink: #fff; --card: #000; --tint: #000; }
/* visible keyboard focus everywhere in FIRE components */
.fire :focus-visible { outline: 3px solid #F59E0B; outline-offset: 2px; }
@media print { .fire-a11y { display: none; } }
/* the panel keeps its own solid colours in every mode */
html.fire-a11y-dark .fire-a11y-panel { background: #181A3A !important; color: #E7E9F7 !important; border: 1px solid #3A3F7A; }
html.fire-a11y-dark .fire-a11y-head, html.fire-a11y-dark .fire-a11y-panel legend { color: #E7E9F7 !important; }
html.fire-a11y-dark .fire-a11y-row button { background: #23265A !important; color: #fff !important; border-color: #3A3F7A !important; }
html.fire-a11y-dark .fire-a11y-row button[aria-pressed="true"] { border-color: #9CC0FF !important; background: #2E3A8C !important; }
html.fire-a11y-dark .fire-a11y-reset, html.fire-a11y-dark .fire-a11y-close { background: #23265A !important; color: #fff !important; }
html.fire-a11y-contrast .fire-a11y-panel { border: 3px solid #000; }
.fire-a11y-panel { max-height: calc(100vh - 100px); overflow-y: auto; font-size: 16px; }
