/* ===================== accessibility (IS 5568 / WCAG AA) - same as the app ===================== */
:focus-visible{outline:3px solid #ff8a1f!important;outline-offset:2px;border-radius:6px}
.skip-link{position:fixed;top:-80px;inset-inline-start:10px;z-index:10000;background:#2a1b5c;color:#fff;padding:10px 16px;border-radius:12px;font-weight:800;text-decoration:none}
.skip-link:focus{top:10px}

/* text size: the site is laid out in px, so the whole page is zoomed */
html.a11y-zoom body{zoom:var(--a11y-zoom,1)}

/* contrast + grayscale (combinable); on <html> so the fixed header and menus stay in place */
html{--f-contrast:1;--f-gray:0}
html.a11y-contrast{--f-contrast:1.35}
html.a11y-gray{--f-gray:1}
html.a11y-contrast,html.a11y-gray{filter:contrast(var(--f-contrast)) grayscale(var(--f-gray))}
html.a11y-contrast .hero h1,html.a11y-contrast .hero p{text-shadow:none}

/* stop motion */
html.a11y-still *,html.a11y-still *::before,html.a11y-still *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
html.a11y-still .tick .mq{animation:none!important;transform:none!important}
html.a11y-still .sparks{display:none}

/* highlight links + buttons */
html.a11y-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;outline:2px dashed #ff8a1f;outline-offset:2px}
html.a11y-links button:not(:disabled),html.a11y-links .snd{outline:2px dashed #ff8a1f!important;outline-offset:2px}

/* plain readable font */
html.a11y-font,html.a11y-font *{font-family:Arial,'Rubik','Segoe UI',sans-serif!important;letter-spacing:normal!important}

/* big cursor */
html.a11y-cursor,html.a11y-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M4 2 L4 36 L13 27 L19 41 L25 38 L19 25 L32 25 Z' fill='%23000' stroke='%23fff' stroke-width='2.5'/%3E%3C/svg%3E") 4 2,auto!important}

/* ---- the accessibility menu ---- */
.a11y-root{position:fixed;inset-inline-end:10px;bottom:96px;z-index:9000;line-height:1.4}
.a11y-fab{width:48px;height:48px;border-radius:50%;border:3px solid #fff;background:#1f5fd6;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.a11y-fab.on{background:#0b8a4a}
.a11y-panel{position:absolute;bottom:58px;inset-inline-end:0;width:min(340px,calc(100vw - 20px));max-height:min(78vh,560px);overflow:auto;background:#fff;color:#1d1640;border-radius:18px;padding:14px;box-shadow:0 16px 40px rgba(0,0,0,.35);border:2px solid #1f5fd6;font-family:Arial,'Rubik',sans-serif;font-size:16px}
.a11y-panel[hidden]{display:none}
.a11y-head{display:flex;align-items:center;justify-content:space-between;font-size:1.15em;margin-bottom:8px}
.a11y-x{border:0;background:#eef2ff;border-radius:10px;width:36px;height:36px;font-size:1.1em;cursor:pointer;color:#1d1640}
.a11y-size{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-weight:700}
.a11y-size span{flex:1}
.a11y-size button{min-width:48px;height:40px;border-radius:10px;border:2px solid #1f5fd6;background:#fff;color:#1f5fd6;font-weight:800;font-size:1em;cursor:pointer}
.a11y-size button:disabled{opacity:.35;cursor:default}
.a11y-size output{min-width:48px;text-align:center;font-weight:800}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.a11y-sw{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:76px;padding:8px 6px;border-radius:12px;border:2px solid #d6defa;background:#f6f8ff;color:#1d1640;font-weight:700;font-size:.86em;line-height:1.25;cursor:pointer;text-align:center;font-family:inherit}
.a11y-sw.on{background:#1f5fd6;color:#fff;border-color:#1f5fd6}
.a11y-ic{font-size:1.4em;line-height:1}
.a11y-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.a11y-reset{border:0;background:#ffe9e9;color:#8a1c1c;border-radius:10px;padding:8px 12px;font-weight:800;cursor:pointer;font-family:inherit}
.a11y-reset:disabled{opacity:.4;cursor:default}
.a11y-foot a{color:#1f5fd6;font-weight:700;text-decoration:underline}

/* ---- cookie notice ---- */
.cookie-bar{position:fixed;inset-inline:10px;bottom:10px;z-index:9500;max-width:760px;margin-inline:auto;background:#fff;color:#1d1640;border-radius:18px;padding:14px 16px;box-shadow:0 14px 40px rgba(0,0,0,.35);border:2px solid #e6ddff;display:flex;flex-direction:column;gap:10px;font-family:'Rubik',Arial,sans-serif;font-size:16px;line-height:1.5}
.cookie-text{display:flex;flex-direction:column;gap:4px;font-size:.92em}
.cookie-text a{color:#4a1fd1;font-weight:700;text-decoration:underline}
.cookie-details{display:flex;flex-direction:column;gap:6px;font-size:.9em}
.cookie-details label{display:flex;gap:8px;align-items:flex-start}
.cookie-details input{width:20px;height:20px;margin-top:2px}
.cookie-btns{display:flex;flex-wrap:wrap;gap:8px}
.cookie-btn{min-height:44px;padding:8px 18px;border-radius:12px;border:2px solid #6a3cff;background:#fff;color:#4a1fd1;font-weight:800;font-size:.95em;cursor:pointer;font-family:inherit}
.cookie-btn.main{background:#6a3cff;color:#fff}
.cookie-btn.link{border-color:transparent;text-decoration:underline}

@media (max-width:520px){
.a11y-root{bottom:92px;inset-inline-end:6px}
.a11y-fab{width:44px;height:44px}
.cookie-btn{flex:1}
}
