/* Alma Labs – accessibility layer (shared by every template)
   Skip link, stronger focus, screen-reader helpers, the accessibility toolbar and its modes.
   Modes are set on the html element by /alma-labs/js/a11y.js: .a11y-contrast, .a11y-links, .a11y-still, .a11y-font-1/-2, .a11y-cursor */

.skip-link { position: absolute; left: 16px; top: -200px; z-index: 1000; background: #0E1A36; color: #fff; font: 600 14px/1 "Geist", -apple-system, BlinkMacSystemFont, sans-serif; padding: 12px 16px; border-radius: 8px; text-decoration: none; transition: top 120ms ease; }
.skip-link:focus { top: 16px; outline: 3px solid #5B9BD5; outline-offset: 2px; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Focus: visible everywhere, with contrast on both light and dark surfaces */
:focus-visible { outline: 3px solid #2F6FB3 !important; outline-offset: 3px; border-radius: 4px; }
.dark :focus-visible, .be :focus-visible, .foot :focus-visible { outline-color: #B9D6F5 !important; }

/* Toolbar */
.a11y-btn { position: fixed; right: 16px; bottom: 16px; z-index: 900; width: 48px; height: 48px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .6); background: #0E1A36; color: #fff; box-shadow: 0 4px 16px rgba(14, 26, 54, .28); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.a11y-btn svg { width: 26px; height: 26px; }
.a11y-btn:hover { background: #1A2A4F; }
.a11y-panel { position: fixed; right: 16px; bottom: 76px; z-index: 901; width: min(320px, calc(100vw - 32px)); background: #fff; color: #121417; border: 1px solid #DADAD3; border-radius: 14px; box-shadow: 0 12px 40px rgba(14, 26, 54, .22); padding: 16px; font: 400 15px/1.45 "Geist", -apple-system, BlinkMacSystemFont, sans-serif; }
.a11y-panel[hidden] { display: none; }
.a11y-panel h2 { font: 600 16px/1.3 inherit; margin: 0 0 12px; display: flex; justify-content: space-between; align-items: center; }
.a11y-panel h2 button { border: 0; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: #6E6C64; padding: 2px 6px; }
.a11y-panel .a11y-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid #ECEAE4; }
.a11y-panel .a11y-row:first-of-type { border-top: 0; }
.a11y-panel .a11y-row > span { font-weight: 500; }
.a11y-panel .a11y-ctl { display: inline-flex; gap: 6px; }
.a11y-panel .a11y-ctl button, .a11y-panel .a11y-toggle { border: 1px solid #DADAD3; background: #F2F0EC; color: #121417; border-radius: 999px; padding: 6px 12px; font: 500 14px/1 inherit; cursor: pointer; min-width: 40px; }
.a11y-panel .a11y-toggle[aria-pressed="true"] { background: #0E1A36; color: #fff; border-color: #0E1A36; }
.a11y-panel .a11y-foot { margin: 12px 0 0; display: flex; justify-content: space-between; gap: 8px; font-size: 13px; }
.a11y-panel .a11y-foot a { color: #2F6FB3; }
.a11y-panel .a11y-foot button { border: 0; background: transparent; color: #6E6C64; cursor: pointer; font: 500 13px inherit; text-decoration: underline; }
@media (max-width: 600px) { .a11y-btn { width: 44px; height: 44px; right: 12px; bottom: 12px; } .a11y-panel { right: 12px; bottom: 64px; } }

/* Modes */
html.a11y-font-1 { font-size: 112.5%; }
html.a11y-font-2 { font-size: 125%; }
html.a11y-font-1 body, html.a11y-font-2 body { font-size: 1rem; }
html.a11y-links a { text-decoration: underline !important; text-underline-offset: 2px; }
html.a11y-contrast, html.a11y-contrast body { background: #fff !important; color: #000 !important; }
html.a11y-contrast .card, html.a11y-contrast .glass, html.a11y-contrast .pp-panel, html.a11y-contrast .legal-body { background: #fff !important; color: #000 !important; backdrop-filter: none !important; }
html.a11y-contrast .q, html.a11y-contrast .lead, html.a11y-contrast .sub, html.a11y-contrast h1, html.a11y-contrast h2, html.a11y-contrast h3, html.a11y-contrast p, html.a11y-contrast dt, html.a11y-contrast dd, html.a11y-contrast li { color: #000 !important; text-shadow: none !important; }
html.a11y-contrast .stage .media, html.a11y-contrast .be-bg { opacity: .12 !important; }
html.a11y-contrast a { color: #0000EE !important; }
html.a11y-contrast .foot, html.a11y-contrast .dark, html.a11y-contrast .be { background: #000 !important; }
html.a11y-contrast .foot *, html.a11y-contrast .dark .q, html.a11y-contrast .dark .lead, html.a11y-contrast .dark .sub, html.a11y-contrast .be * { color: #fff !important; }
html.a11y-contrast .foot a, html.a11y-contrast .be a { color: #9FD0FF !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-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M5 3l14 8.2-6.3 1.4 3.6 6.6-2.6 1.4-3.6-6.6L5 18.6z' fill='%2523000' stroke='%2523fff' stroke-width='1.6'/%3E%3C/svg%3E") 8 4, auto !important; }

@media (prefers-reduced-motion: reduce) { .skip-link { transition: none; } }