/* =========================================================================
   Přístupnost webu (zákon 99/2019 Sb., WCAG 2.1 AA) – načítá se za web.css
   Barvy sladěné se zeleným designem (tokeny v web.css).
   ========================================================================= */
.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; }

/* odkaz „Přeskočit na obsah“ – viditelný jen při ovládání klávesnicí */
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 1000; background: #1f2a24; color: #fff; padding: 10px 16px; font-weight: 700; transition: top .15s; }
.skip-link:focus { top: 12px; color: #fff; }
main:focus { outline: none; }

/* viditelný fokus pro klávesnici (tmavý obrys + bílý lem – čitelný na bílé i zelené) */
:focus-visible { outline: 3px solid #1f2a24; outline-offset: 2px; box-shadow: 0 0 0 5px #fff; }
.ftr :focus-visible, .hero :focus-visible, .band-dark :focus-visible, .toast :focus-visible, .lb :focus-visible { outline-color: #fff; box-shadow: 0 0 0 5px #1f2a24; }
.hero-search :focus-visible { outline-color: #1f2a24; box-shadow: 0 0 0 5px #fff; }

/* kontrast: odkazy v textu tmavě zelenou (8 : 1 na bílé) */
.rt a { color: #005a2a; }
.rt a:hover { color: #003d1c; }

/* uživatel si v systému vypnul animace */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---- tlačítko a panel ---- */
.a11y-btn { position: fixed; left: 14px; bottom: 18px; z-index: 900; width: 52px; height: 52px; border-radius: 50%; border: 3px solid #fff; background: #00843d; color: #fff; font-size: 26px; display: grid; place-items: center; cursor: pointer; box-shadow: 0 3px 12px rgba(0,40,20,.3); padding: 0; }
.a11y-btn:hover { background: #005a2a; }
.a11y-panel { position: fixed; left: 14px; bottom: 80px; z-index: 901; width: min(360px, calc(100vw - 28px)); background: #fff; color: #1f2a24; border: 1px solid #d7ddd9; border-radius: 14px; box-shadow: 0 12px 40px rgba(0,40,20,.25); padding: 16px; font: 15px/1.4 Inter, system-ui, "Segoe UI", sans-serif; }
@media (max-width: 899px) { body:not(.no-cta) .a11y-panel { bottom: calc(80px + env(safe-area-inset-bottom)); } }
.a11y-head { display: flex; justify-content: space-between; align-items: center; }
.a11y-head h2 { font-size: 20px; margin: 0; color: #1f2a24; }
.a11y-x { border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: #1f2a24; padding: 0 4px; border-radius: 8px; }
.a11y-note { font-size: 13px; color: #5e6b64; margin: 6px 0 12px; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 6px; border: 2px solid #e6e6e6; border-radius: 10px; background: #f6f8f7; cursor: pointer; font: inherit; font-size: 13px; color: #1f2a24; text-align: center; }
.a11y-opt:hover { border-color: #00843d; }
.a11y-opt i.bi { font-size: 22px; }
.a11y-opt[aria-pressed="true"] { border-color: #00843d; background: #00843d; color: #fff; }
.a11y-lvl { display: flex; gap: 3px; }
.a11y-lvl i { width: 14px; height: 4px; background: #d7ddd9; display: block; border-radius: 2px; }
.a11y-lvl i.on { background: #86d295; }
.a11y-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 12px; font-size: 13px; }
.a11y-foot a { color: #005a2a; text-decoration: underline; }
.a11y-reset { border: 1.5px solid #00843d; border-radius: 8px; background: #fff; padding: 6px 10px; cursor: pointer; font: inherit; font-size: 13px; color: #00843d; font-weight: 600; }
.a11y-reset:hover { background: #e6f4ec; }

/* ---- volby (třídy na <html>) ---- */
html.a11y-font-1 body { zoom: 1.12; }
html.a11y-font-2 body { zoom: 1.25; }
html.a11y-font-3 body { zoom: 1.4; }
/* zvětšení zmenší místo pro obsah, ale media queries počítají se skutečnou šířkou okna →
   obsah nesmí být širší než stránka a potřebuje okraje i v „širokém“ rozvržení */
html[class*="a11y-font-"] .container { max-width: min(var(--w), 100%); padding-left: var(--gutter) !important; padding-right: var(--gutter) !important; box-sizing: border-box; }
html[class*="a11y-font-"] body { overflow-x: hidden; }
html[class*="a11y-font-"] img, html[class*="a11y-font-"] video, html[class*="a11y-font-"] iframe { max-width: 100%; }
@media (max-width: 599px) {   /* na telefonu méně, jinak se nevejde ani jedno slovo */
  html.a11y-font-1 body { zoom: 1.06; }
  html.a11y-font-2 body { zoom: 1.12; }
  html.a11y-font-3 body { zoom: 1.2; }
}
/* hlavička: menu se při zvětšení nevejde vedle hledání (překryv s „Kontakt“, CH-22) → dřív přepnout na hamburger
   (hranice 1199 px × zvětšení) */
@media (max-width: 1349px) { html.a11y-font-1 .hdr-nav { display: none; } html.a11y-font-1 .hdr-burger { display: inline-flex; } }
@media (max-width: 1499px) { html.a11y-font-2 .hdr-nav { display: none; } html.a11y-font-2 .hdr-burger { display: inline-flex; } }
@media (max-width: 1679px) { html.a11y-font-3 .hdr-nav { display: none; } html.a11y-font-3 .hdr-burger { display: inline-flex; } }
html.a11y-links a:not(.btn):not(.a11y-btn):not(.chip):not(.card):not(.tile) { text-decoration: underline !important; text-underline-offset: 3px; }
html.a11y-readable body, html.a11y-readable body *:not(.bi):not([class^="bi-"]):not([class*=" bi-"]) { font-family: Verdana, "Segoe UI", Arial, sans-serif !important; letter-spacing: .02em; }
html.a11y-spacing body, html.a11y-spacing p, html.a11y-spacing li { line-height: 1.9 !important; }
html.a11y-spacing p, html.a11y-spacing li { word-spacing: .12em; margin-bottom: 1em; }
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.a11y-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='48' viewBox='0 0 20 24'%3E%3Cpath d='M1 1l0 19 5-5 3 7 3-1-3-7h7z' fill='%23000' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") 2 2, auto !important; }

/* vysoký kontrast: černé písmo na bílé, patička a toast černé se žlutými odkazy, odkazy podtržené */
html.a11y-contrast body { background: #fff !important; color: #000 !important; }
/* :where() = nulová specificita výjimek, aby pravidla níže (patička, tlačítka) měla přednost */
html.a11y-contrast body :where(*:not(.a11y-btn, .a11y-btn *, .a11y-opt[aria-pressed="true"], .a11y-opt[aria-pressed="true"] *, .ftr, .ftr *, .toast, .toast *, .logo-svg, .logo-svg *)) { background-image: none !important; color: #000 !important; border-color: #000 !important; text-shadow: none !important; box-shadow: none !important; }
html.a11y-contrast body :where(.page-head, .hdr, .drawer-panel, .hero, .hero-search, .band-dark, .band-points li, .sec-band, .btn, .chip, .badge, .mbar, .card, .tile, .krok, .stat, .alert, .filters, .calc, .panel) { background-color: #fff !important; }
html.a11y-contrast body :where(.hero, .band-dark, .card, .tile, .krok, .stat, .alert, .btn-ghost, .btn-neutral, .chip) { border: 2px solid #000 !important; }
html.a11y-contrast body .hero::before, html.a11y-contrast body .hero::after, html.a11y-contrast body .hero-bg { display: none; }
html.a11y-contrast body a { color: #00309c !important; text-decoration: underline !important; }
html.a11y-contrast body .btn-primary, html.a11y-contrast body .krok-n, html.a11y-contrast body .pager a.on, html.a11y-contrast body .chip-primary, html.a11y-contrast body .tree .aktiv > a, html.a11y-contrast body .acc-side a.on { background-color: #000 !important; color: #fff !important; text-decoration: none !important; }
html.a11y-contrast body .ftr, html.a11y-contrast body .ftr *, html.a11y-contrast body .toast, html.a11y-contrast body .toast * { background-color: #000 !important; color: #fff !important; border-color: #fff !important; }
html.a11y-contrast body .ftr a, html.a11y-contrast body .toast a { color: #ffe066 !important; }
