/* Optional preferences. With no data-up-a11y attributes the site layout stays unchanged. */
.a11y-tools-launcher { position: fixed; z-index: 1000; left: max(16px, env(safe-area-inset-left)); bottom: max(16px, env(safe-area-inset-bottom)); display: grid; place-items: center; width: 56px; height: 56px; min-height: 56px; padding: 0; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #123e34; box-shadow: 0 2px 12px #0004; cursor: pointer; }
.a11y-tools-launcher:hover { background: #8e1728; }
.a11y-tools-launcher[data-obscured]:not(:focus) { opacity: 0; pointer-events: none; }
.a11y-tools-launcher[data-adjusted]::after { content: ''; position: absolute; top: 0; right: 0; width: 12px; height: 12px; border: 2px solid #082d27; border-radius: 50%; background: #ead9a7; }
.a11y-tools-panel { --tools-ink: #17231f; --tools-green: #123e34; --tools-red: #8e1728; position: fixed; inset: 12px auto auto 12px; width: min(480px, calc(100% - 24px)); height: min(860px, calc(100dvh - 24px)); max-width: none; max-height: calc(100dvh - 24px); margin: 0; padding: 0; border: 1px solid #65746a; border-radius: 16px; color: var(--tools-ink); background: #fcfbf7; box-shadow: 0 12px 48px #0005; font: 400 16px/1.5 Inter, system-ui, sans-serif; letter-spacing: normal; word-spacing: normal; overflow: hidden; }
.a11y-tools-panel:not([open]) { display: none; }
.a11y-tools-panel[open] { display: flex; flex-direction: column; }
.a11y-tools-panel::backdrop { background: #082d2759; }
.a11y-tools-panel *, .a11y-tools-panel *::before, .a11y-tools-panel *::after { box-sizing: border-box; }
.a11y-tools-panel :is(p, h2, legend, summary, label, button, input, output, a) { font-family: inherit; font-size: 16px; line-height: 1.5; letter-spacing: normal; word-spacing: normal; }
.a11y-tools-panel p { margin: 0 0 12px; }
.a11y-tools-header { flex-shrink: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px; color: #fff; background: #123e34; }
.a11y-tools-header p { margin: 0 0 2px; color: #ead9a7; font-weight: 600; }
.a11y-tools-header h2 { margin: 0; color: #fff; font-size: 26px; font-weight: 700; line-height: 1.2; }
.a11y-tools-panel button { min-width: 44px; min-height: 44px; padding: 10px 12px; border: 1px solid #65746a; border-radius: 8px; color: #123e34; background: #fff; font-weight: 600; cursor: pointer; white-space: normal; overflow-wrap: anywhere; text-align: center; }
.a11y-tools-panel button:hover { background: #f0e9d9; }
.a11y-tools-panel button[aria-pressed='true'] { border: 2px solid #8e1728; padding: 9px 11px; color: #8e1728; background: #f9edf0; box-shadow: inset 0 -3px #8e1728; }
.a11y-tools-panel button:disabled { color: #626b66; background: #efefea; border-color: #a2aaa5; cursor: default; }
.a11y-tools-panel .a11y-tools-close { flex-shrink: 0; display: grid; justify-items: center; gap: 0; min-width: 76px; padding: 0 6px 4px; color: #fff; border-color: #93afa5; background: transparent; }
.a11y-tools-close > span:first-child { font: 400 28px/1 sans-serif; }
.a11y-tools-panel .a11y-tools-close:hover { background: #1d584a; }
.a11y-tools-body { min-height: 0; padding: 20px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scroll-padding-block: 16px; }
.a11y-tools-panel :is(button, input, a, summary) { scroll-margin-block: 16px; }
.a11y-tools-panel fieldset { min-width: 0; margin: 0; padding: 18px 0; border: 0; border-top: 1px solid #d0d6cd; }
.a11y-tools-panel legend { float: left; width: 100%; margin: 0 0 12px; padding: 0; color: #123e34; font-weight: 700; }
.a11y-tools-panel legend + * { clear: both; }
.a11y-tools-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.a11y-tools-choices button { display: grid; justify-items: center; gap: 6px; }
.a11y-tools-swatch { display: grid; place-items: center; width: 44px; height: 36px; border: 1px solid #65746a; border-radius: 5px; font-size: 20px; }
.a11y-tools-swatch-original { color: #fff; background: #123e34; }
.a11y-tools-swatch-light { color: #17231f; background: #fff; }
.a11y-tools-swatch-dark { color: #fff; background: #111; }
.a11y-tools-size { display: grid; grid-template-columns: 64px minmax(0,1fr) 64px; align-items: center; gap: 12px; }
.a11y-tools-size button { font-size: 22px; }
.a11y-tools-size output { text-align: center; font-weight: 700; font-size: 20px; }
.a11y-tools-profiles { padding: 16px 0; border-top: 1px solid #d0d6cd; }
.a11y-tools-profiles summary { color: #123e34; font-weight: 700; }
.a11y-tools-profiles p { margin-top: 12px; }
.a11y-tools-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.a11y-tools-profile-grid button { text-align: left; }
.a11y-tools-profile-grid span { display: block; margin-top: 6px; font-weight: 400; }
.a11y-tools-toggles { display: grid; gap: 8px; }
.a11y-tools-toggles label { display: flex; gap: 12px; align-items: center; min-height: 48px; margin: 0; padding: 10px 12px; border: 1px solid #c4cdc6; border-radius: 8px; color: #17231f; background: #fff; cursor: pointer; }
.a11y-tools-toggles label:has(:checked) { border-color: #8e1728; background: #f9edf0; }
.a11y-tools-toggles input[type='checkbox'] { flex: 0 0 24px; width: 24px; height: 24px; min-width: 24px; min-height: 24px; margin: 0; accent-color: #8e1728; }
.a11y-tools-toggles + p { margin-top: 12px; }
.a11y-tools-speech { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.a11y-tools-note { padding: 12px; background: #eeeade; border-radius: 8px; }
.a11y-tools-panel a { color: #8e1728; text-decoration: underline; }
.a11y-tools-footer { flex-shrink: 0; padding: 12px 20px 16px; border-top: 1px solid #c4cdc6; background: #fcfbf7; }
.a11y-tools-panel .a11y-tools-status { margin: 0 0 8px; min-height: 24px; }
.a11y-tools-panel .a11y-tools-reset { width: 100%; color: #fff; background: #8e1728; border-color: #8e1728; }
.a11y-tools-panel .a11y-tools-reset:hover { background: #6b1020; }
.a11y-tools-panel :focus-visible { outline: 3px solid #8e1728; outline-offset: 2px; box-shadow: 0 0 0 5px #fff; }
.a11y-tools-header :focus-visible { outline-color: #ead9a7; box-shadow: none; }
html:has(.a11y-tools-panel[open]) { overflow: hidden; }

/* User preferences deliberately exclude the console so it remains easy to reset. */
html[data-up-a11y-size='110'] { font-size: 110%; }
html[data-up-a11y-size='125'] { font-size: 125%; }
html[data-up-a11y-size='150'] { font-size: 150%; }
html[data-up-a11y-size='175'] { font-size: 175%; }
html[data-up-a11y-size='200'] { font-size: 200%; }
html[data-up-a11y-spacing] body :not(.a11y-tools-panel, .a11y-tools-panel *, svg, svg *, .a11y-tools-launcher) { line-height: 1.6 !important; letter-spacing: .12em !important; word-spacing: .16em !important; }
html[data-up-a11y-spacing] main :is(p, li) { margin-bottom: 1.5em !important; }
html[data-up-a11y-font] body :not(.a11y-tools-panel, .a11y-tools-panel *, svg, svg *) { font-family: Arial, Verdana, sans-serif !important; }
html[data-up-a11y-links] body a:not(.a11y-tools-panel *) { text-decoration: underline !important; text-decoration-thickness: .12em !important; text-underline-offset: .18em !important; }
html[data-up-a11y-controls] body :is(a, button, input:not([type='hidden']), select, summary):not(.a11y-tools-panel *, .a11y-tools-launcher) { min-height: 48px !important; min-width: 48px !important; }
html[data-up-a11y-controls] body :is(a, button):not(.a11y-tools-panel *, .a11y-tools-launcher, .brand, .gallery a, .masonry a, .masonry-gallery a, .news-card-link, .site-footer .social-links a) { padding: .5em !important; }
html[data-up-a11y-focus] body :focus-visible { outline: 5px solid #8e1728 !important; outline-offset: 3px !important; box-shadow: 0 0 0 9px #fff !important; }
html[data-up-a11y-cursor], html[data-up-a11y-cursor] body * { cursor: url('/assets/icons/a11y-cursor.svg') 3 2, auto !important; }
html[data-up-a11y-cursor] :is(a, button, summary, label, input[type='checkbox']) { cursor: url('/assets/icons/a11y-pointer.svg') 12 2, pointer !important; }
html[data-up-a11y-desaturate] body > :not(.a11y-tools-panel, .a11y-tools-launcher, .a11y-tools-reading, dialog, script), html[data-up-a11y-desaturate] .image-lightbox { filter: grayscale(1); }
html[data-up-a11y-saturate] body > :not(.a11y-tools-panel, .a11y-tools-launcher, .a11y-tools-reading, dialog, script), html[data-up-a11y-saturate] .image-lightbox { filter: saturate(1.8); }
html[data-up-a11y-motion] *, html[data-up-a11y-motion] *::before, html[data-up-a11y-motion] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html[data-up-a11y-motion] { scroll-behavior: auto !important; }
html[data-up-a11y-motion] .reveal { opacity: 1 !important; transform: none !important; }
html[data-up-a11y-contrast] body { --a11y-bg: #fff; --a11y-text: #111; --a11y-link: #721124; --a11y-border: #555; color: var(--a11y-text) !important; background: var(--a11y-bg) !important; }
html[data-up-a11y-contrast='dark'] body { --a11y-bg: #111; --a11y-text: #fff; --a11y-link: #ffe18c; --a11y-border: #ccc; }
html[data-up-a11y-contrast] body :not(.a11y-tools-panel, .a11y-tools-panel *, .a11y-tools-launcher, .a11y-tools-launcher *, .a11y-tools-reading, .a11y-tools-reading *, img, picture, video, canvas, svg, svg *) { color: var(--a11y-text) !important; background-color: var(--a11y-bg) !important; border-color: var(--a11y-border) !important; text-shadow: none !important; background-image: none !important; }
html[data-up-a11y-contrast] body a:not(.a11y-tools-panel *) { color: var(--a11y-link) !important; text-decoration: underline !important; }
html[data-up-a11y-contrast] body :is(button, input, select, textarea, summary):not(.a11y-tools-panel *, .a11y-tools-launcher) { border: 2px solid var(--a11y-border) !important; }
html[data-up-a11y-contrast] body :is(section, article, header, footer):not(.a11y-tools-panel *)::before, html[data-up-a11y-contrast] body :is(section, article, header, footer):not(.a11y-tools-panel *)::after { background: none !important; }
html[data-up-a11y-contrast] :is(input, textarea)::placeholder { color: var(--a11y-text) !important; opacity: 1; }
.a11y-tools-reading { position: fixed; z-index: 900; inset: 0; pointer-events: none; }
.a11y-tools-mask-top, .a11y-tools-mask-bottom { position: absolute; left: 0; right: 0; background: #0008; display: none; }
.a11y-tools-mask-top { top: 0; height: max(0px, calc(var(--a11y-reading-y, 50vh) - var(--a11y-reading-half, 64px))); }
.a11y-tools-mask-bottom { top: calc(var(--a11y-reading-y, 50vh) + var(--a11y-reading-half, 64px)); bottom: 0; }
.a11y-tools-guide { position: absolute; left: 0; right: 0; top: calc(var(--a11y-reading-y, 50vh) + 24px); height: 4px; border-bottom: 2px solid #fff; background: #8e1728; display: none; }
html[data-up-a11y-mask] .a11y-tools-mask-top, html[data-up-a11y-mask] .a11y-tools-mask-bottom, html[data-up-a11y-guide] .a11y-tools-guide { display: block; }
body:has(dialog[open]) .a11y-tools-reading, body:has(.image-lightbox:not([hidden])) .a11y-tools-reading { visibility: hidden; }
@media (max-width: 380px) { .a11y-tools-panel { inset: 8px; width: calc(100% - 16px); height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); border-radius: 12px; } .a11y-tools-header, .a11y-tools-body { padding: 16px; } .a11y-tools-footer { padding: 10px 16px 12px; } .a11y-tools-header h2 { font-size: 22px; } .a11y-tools-profile-grid { grid-template-columns: minmax(0,1fr); } }
@media (max-height: 480px) { .a11y-tools-header { padding-block: 8px; } .a11y-tools-footer { padding-block: 8px; } .a11y-tools-status { display: none; } }
@media (forced-colors: active) { .a11y-tools-panel, .a11y-tools-panel button, .a11y-tools-launcher, .a11y-tools-toggles label { border: 2px solid ButtonText; } .a11y-tools-panel button[aria-pressed='true'] { outline: 3px solid Highlight; } .a11y-tools-guide { background: Highlight; } }
@media print { .a11y-tools-launcher, .a11y-tools-panel, .a11y-tools-reading { display: none !important; } }
