/* Accessibility toolbar + the effects it switches on. Themed by each concept
   through --a11y-accent, --a11y-ink, --a11y-bg and --a11y-bottom. */
.a11y{ position:fixed; left:max(16px, env(safe-area-inset-left)); bottom:var(--a11y-bottom, 20px); z-index:9000; font:500 15px/1.4 system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; }
.a11y__sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.a11y__fab{ width:54px; height:54px; border-radius:50%; border:3px solid #fff; background:var(--a11y-accent, #241F49); color:#fff; display:grid; place-items:center; cursor:pointer; box-shadow:0 10px 26px rgba(0,0,0,.28); transition:transform .2s ease; }
.a11y__fab:hover{ transform:scale(1.06); }
.a11y__fab svg{ width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.a11y__fab svg circle{ fill:currentColor; stroke:none; }
.a11y__fab:focus-visible, .a11y button:focus-visible, .a11y summary:focus-visible{ outline:3px solid #FFB000; outline-offset:3px; }
.a11y__panel{ position:absolute; left:0; bottom:66px; width:min(340px, calc(100vw - 32px)); max-height:min(560px, calc(100vh - 110px)); overflow-y:auto;
  background:var(--a11y-bg, #fff); color:var(--a11y-ink, #16131F); border-radius:18px; padding:18px; box-shadow:0 24px 60px rgba(0,0,0,.35); border:1px solid rgba(0,0,0,.08); }
.a11y__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.a11y__title{ margin:0; font-weight:700; font-size:18px; line-height:1.2; font-family:inherit; letter-spacing:0; text-transform:none; color:inherit; }
.a11y__close{ width:40px; height:40px; border-radius:50%; border:1px solid currentColor; background:none; color:inherit; font-size:22px; line-height:1; cursor:pointer; }
.a11y__size{ display:grid; grid-template-columns:1fr 48px 60px 48px; align-items:center; gap:6px; padding:10px 12px; border-radius:12px; background:rgba(127,127,160,.12); margin-bottom:12px; font-weight:600; }
.a11y__size button{ height:44px; border-radius:10px; border:1px solid rgba(127,127,160,.4); background:var(--a11y-bg, #fff); color:inherit; font-weight:700; font-size:16px; cursor:pointer; }
.a11y__size button:disabled{ opacity:.4; cursor:not-allowed; }
.a11y__pct{ text-align:center; font-weight:700; }
.a11y__grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.a11y__opt{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-height:74px; padding:10px 12px; border-radius:12px; border:2px solid rgba(127,127,160,.3); background:none; color:inherit; font-weight:600; font-size:14px; line-height:1.25; font-family:inherit; text-align:left; cursor:pointer; }
.a11y__opt svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.a11y__opt[aria-pressed="true"]{ border-color:var(--a11y-accent, #241F49); background:var(--a11y-accent, #241F49); color:#fff; }
.a11y__keys{ margin-top:12px; border-radius:12px; background:rgba(127,127,160,.12); padding:10px 12px; }
.a11y__keys summary{ cursor:pointer; font-weight:700; min-height:28px; }
.a11y__keys ul{ margin:8px 0 0; padding-left:18px; display:grid; gap:6px; font-size:14px; }
.a11y__keys kbd{ font-weight:600; font-size:12px; line-height:1; font-family:inherit; padding:2px 6px; border-radius:5px; border:1px solid currentColor; }
.a11y__reset{ margin-top:12px; width:100%; min-height:46px; border-radius:12px; border:0; background:var(--a11y-ink, #16131F); color:var(--a11y-bg, #fff); font-weight:700; font-size:15px; line-height:1; font-family:inherit; cursor:pointer; }

/* ---- effects ---- */
html.a11y-gray body > *:not(.a11y){ filter:grayscale(1); }
html.a11y-invert body > *:not(.a11y){ filter:invert(1) hue-rotate(180deg); }
html.a11y-invert body > *:not(.a11y) img, html.a11y-invert body > *:not(.a11y) video{ filter:invert(1) hue-rotate(180deg); }
html.a11y-gray.a11y-invert body > *:not(.a11y){ filter:grayscale(1) invert(1); }
html.a11y-contrast body, html.a11y-contrast body *:not(.a11y):not(.a11y *){ background-image:none !important; text-shadow:none !important; box-shadow:none !important; }
html.a11y-contrast body{ background:#000 !important; color:#fff !important; }
html.a11y-contrast body *:not(.a11y):not(.a11y *){ background-color:#000 !important; color:#fff !important; border-color:#fff !important; }
html.a11y-contrast body a:not(.a11y *), html.a11y-contrast body a *{ color:#FFE44D !important; }
html.a11y-contrast body button:not(.a11y *), html.a11y-contrast body .ht-btn{ border:2px solid #FFE44D !important; color:#FFE44D !important; }
html.a11y-contrast img{ filter:contrast(1.15); }
html.a11y-contrast img[src*="logo.png"]{ content:url("../img/logo-light.png"); }
html.a11y-links a:not(.a11y *){ text-decoration:underline !important; text-decoration-thickness:2px !important; text-underline-offset:3px !important; outline:2px dashed currentColor; outline-offset:2px; }
html.a11y-readable body, html.a11y-readable body *:not(.a11y *){ font-family:Verdana, Tahoma, 'Segoe UI', Arial, sans-serif !important; letter-spacing:.02em !important; word-spacing:.08em !important; }
html.a11y-readable body p, html.a11y-readable body li{ line-height:1.8 !important; }
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
html.a11y-still{ scroll-behavior:auto !important; }
@media (max-width:600px){ .a11y__fab{ width:50px; height:50px; } .a11y__panel{ bottom:60px; } }
@media print{ .a11y{ display:none; } }
