/* vzdalenepripojeni.cz — vzhled „Topologie" (varianta B, vybral Martin 27. 9. 2026).
   Logo jsou tri obrazovky zapojene do site; ten spoj je jediny vyrazny prvek: cervena
   trasa vede od loga po levem okraji obsahu a sekce jsou na ni napojene jako uzly.
   Barva stavu (ano / ne / overujeme) nese vyznam, ne dekoraci. Poppins lokalne, bez CDN.
   Poradi: pisma, zakladni komponenty, pak vzhled (tokeny, kostra, tmavy rezim) — vzhled
   prebiji zaklad, proto je az za nim. */

/* Poppins (SIL OFL 1.1, assets/fonts/OFL.txt) — lokalne, bez CDN. Jen latin + latin-ext.
   Pozdní swap měnil zalomení nadpisu, navigace i číslovaných seznamů (CLS).
   Optional použije včas dostupný Poppins, jinak ponechá systémové písmo do další
   navigace. Platí i pro jednotlivé unicode podmnožiny; preload 600 zůstává v head. */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: optional;
    src: url('/assets/fonts/poppins-400-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: optional;
    src: url('/assets/fonts/poppins-400-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: optional;
    src: url('/assets/fonts/poppins-500-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: optional;
    src: url('/assets/fonts/poppins-500-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: optional;
    src: url('/assets/fonts/poppins-600-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: optional;
    src: url('/assets/fonts/poppins-600-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: optional;
    src: url('/assets/fonts/poppins-700-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: optional;
    src: url('/assets/fonts/poppins-700-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ================= zakladni komponenty ================= */
*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font: 1.0625rem/1.65 var(--bezpatky);
    color: var(--inkoust);
    background: var(--papir);
    -webkit-text-size-adjust: 100%;
}

/* ---------- kostra ---------- */

.preskocit {
    position: absolute; left: -9999px;
    background: var(--inkoust); color: #fff; padding: .75rem 1rem; z-index: 10;
}
.preskocit:focus { left: 0; top: 0; }

.hlavicka { background: var(--inkoust); color: #fff; }
.hlavicka-vnitrek {
    max-width: var(--sirka); margin: 0 auto; padding: .875rem 1.25rem;
    display: flex; flex-wrap: wrap; gap: .5rem 2rem; align-items: baseline;
}

.znacka {
    font-family: var(--patky);
    font-size: 1.3rem; letter-spacing: -.015em;
    color: #fff; text-decoration: none; white-space: nowrap;
}
.znacka-pripojeni { color: #8fd4c3; }
.znacka:hover .znacka-pripojeni { color: #fff; }

.navigace ul {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; gap: .25rem 1.25rem;
}
.navigace a {
    color: #cfe0dd; text-decoration: none;
    font-size: .9375rem; padding: .25rem 0;
    border-bottom: 2px solid transparent;
}
.navigace a:hover { color: #fff; border-bottom-color: #8fd4c3; }
.navigace a[aria-current="page"] { color: #fff; border-bottom-color: #8fd4c3; }

main {
    max-width: var(--sirka); margin: 0 auto;
    padding: 2.5rem 1.25rem 4rem;
}

/* ---------- typografie ---------- */

h1 {
    font-family: var(--patky); font-weight: 400;
    font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem);
    line-height: 1.15; letter-spacing: -.02em;
    margin: 0 0 1.25rem; max-width: 26ch;
}
h2 {
    font-family: var(--patky); font-weight: 400;
    font-size: 1.5rem; line-height: 1.25; letter-spacing: -.01em;
    margin: 2.5rem 0 .75rem;
}
h3 { font-size: 1.125rem; margin: 1.75rem 0 .5rem; }

main p, main ul, main ol, main dl { max-width: var(--text-sirka); }
main p { margin: 0 0 1rem; }
main li { margin-bottom: .375rem; }

a { color: var(--ano-tmave); text-underline-offset: .15em; }
a:hover { color: var(--inkoust); }
:focus-visible { outline: 3px solid var(--ano); outline-offset: 2px; }
/* V tmave hlavicce a paticce by petrolejova zelena na petroleji nebyla videt. */
.hlavicka :focus-visible, .preskocit:focus-visible { outline-color: #8fd4c3; }

strong { font-weight: 650; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9375em; }
pre {
    background: var(--panel); padding: .875rem 1rem; overflow-x: auto;
    border-left: 3px solid var(--linka); max-width: var(--text-sirka);
}

/* ---------- tri stavy: jadro identity ---------- */

.overujeme, .stav-overujeme {
    color: var(--overujeme); font-size: .9375em; white-space: nowrap;
}
.jen-od { color: var(--overujeme); font-size: .9375em; }
.povyseno { color: var(--inkoust-tlum); font-size: .9375em; }

.bez-udaje-uvod, .nikdo-neumi, .vetev, .prazdno {
    max-width: var(--text-sirka);
    border-left: 3px solid var(--overujeme);
    background: var(--panel);
    padding: .875rem 1rem; margin: 1.25rem 0;
}
.nikdo-neumi { border-left-color: var(--ne); }
.bez-udaje { color: var(--inkoust-tlum); }

/* ---------- vypisy edic a produktu ---------- */

.edice { list-style: none; padding: 0; max-width: var(--text-sirka); }
.edice li {
    padding: .625rem 0 .625rem 1rem;
    border-left: 3px solid var(--linka);
    border-bottom: 1px solid var(--linka);
}
/* Postupne sytejsi linka cte jako schod k vyssi edici — u RealVNC je ten
   schodovity model to hlavni, co ma navstevnik pochopit. */
.edice li:nth-child(1) { border-left-color: #b9cbc6; }
.edice li:nth-child(2) { border-left-color: #7fae9f; }
.edice li:nth-child(3) { border-left-color: #4b9179; }
.edice li:nth-child(n+4) { border-left-color: var(--ano); }
.edice strong { font-family: var(--patky); font-size: 1.0625rem; }

.produkty-znacky, .produkty-osy, .seznam-navodu, .soubory, .doporuceni, .na-poptavku {
    max-width: var(--text-sirka);
}
.na-poptavku { list-style: none; padding: 0; }
.na-poptavku li { padding: .5rem 0; border-bottom: 1px solid var(--linka); }

.produkt-obrazek { margin: 0 0 1.5rem; }
.produkt-obrazek img {
    max-width: 18rem; height: auto; display: block;
    border: 1px solid var(--linka); background: #fff; padding: .5rem;
}

/* ---------- cena a vyzvy ---------- */

.cena {
    max-width: var(--text-sirka);
    border: 1px solid var(--linka); border-top: 3px solid var(--ano);
    padding: 1.25rem; margin: 1.5rem 0; background: var(--papir);
}
.cena-hlavni { font-size: 1.75rem; margin: 0 0 .25rem; font-family: var(--patky); }
.cena-bez, .cena-jednotka { margin: 0 0 .25rem; color: var(--inkoust-tlum); }
.cena-poznamka { color: var(--inkoust-tlum); font-size: .9375rem; margin: .75rem 0 0; }

.cta { display: flex; gap: .75rem; flex-wrap: wrap; margin: 2rem 0; }
.cta a {
    display: inline-block; padding: .75rem 1.375rem;
    border: 2px solid var(--ano); text-decoration: none; font-weight: 600;
}
.cta-koupit { background: var(--ano); color: #fff; }
.cta-koupit:hover { background: var(--ano-tmave); border-color: var(--ano-tmave); color: #fff; }
.cta-partner { color: var(--ano-tmave); }
.cta-partner:hover { background: var(--panel); }

/* ---------- pruvodce: jediny prvek, ktery si bere prostor ---------- */

.pruvodce h2 {
    font-size: clamp(1.35rem, 1rem + 1.4vw, 1.9rem);
    max-width: 26ch; margin-top: 1.5rem;
}
.pruvodce-postup {
    font-family: var(--patky); color: var(--inkoust-tlum);
    font-size: .9375rem; letter-spacing: .02em; margin: 0;
}
.pruvodce-krok { max-width: var(--text-sirka); margin: 1.5rem 0; }
.otazka-napoveda { color: var(--inkoust-tlum); font-size: .9375rem; max-width: var(--text-sirka); margin: .25rem 0 .75rem; }
.volba { position: relative; display: flex; align-items: baseline; gap: .375rem; margin: .75rem 0; }
.pruvodce-otazka { margin: 2rem 0 0; }
.napoveda { display: inline-block; }
.napoveda summary {
    list-style: none; cursor: pointer; display: inline-grid; place-items: center;
    width: 1.25rem; height: 1.25rem; border-radius: 50%; font: 700 .8125rem/1 var(--bezpatky);
    border: 1.5px solid var(--inkoust-tlum); color: var(--inkoust-tlum);
}
.napoveda summary::-webkit-details-marker { display: none; }
.napoveda summary:hover, .napoveda[open] summary { border-color: var(--cervena, var(--ano)); color: var(--cervena, var(--ano)); }
/* Bublina pod radkem volby; prekryje dalsi volby, dokud se neklikne znovu. */
.napoveda-text {
    position: absolute; left: 1.65rem; top: 100%; z-index: 5; width: min(30rem, calc(100% - 1.65rem));
    margin-top: .25rem; padding: .625rem .875rem;
    background: var(--papir); border: 1px solid var(--linka); border-left: 3px solid var(--cervena, var(--ano));
    box-shadow: 0 4px 14px rgba(0, 0, 0, .15);
    font: 400 .9375rem/1.5 var(--bezpatky); color: var(--inkoust);
}
.pruvodce-posuvnik { display: block; width: 100%; max-width: var(--text-sirka); margin: .75rem 0 0; accent-color: var(--cervena, var(--ano)); }
.pruvodce-posuvnik-osa { position: relative; height: 1.25rem; max-width: var(--text-sirka); font-size: .8125rem; color: var(--inkoust-tlum); }
.pruvodce-posuvnik-osa span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.pruvodce-posuvnik-osa span:first-child { transform: none; }
.pruvodce-posuvnik-osa span:last-child { transform: translateX(-100%); }
.pruvodce-krok input[type="number"] {
    font: 400 2rem/1 var(--patky);
    padding: .5rem .75rem; width: 7.5rem;
    border: 2px solid var(--inkoust); background: var(--papir); color: var(--inkoust);
}
.pruvodce-krok label { display: inline-flex; gap: .5rem; align-items: baseline; }
.pruvodce-vse fieldset { border: 0; padding: 0; margin: 2rem 0 1rem; }
.pruvodce-vse legend, .pruvodce-vse .pruvodce-otazka > label {
    display: block; font-weight: 600; font-size: 1.125rem; padding: 0; margin-bottom: .5rem;
}
.pruvodce-vse .pruvodce-otazka { margin: 2rem 0 0; }
.pruvodce-vse input[type="number"] { font-size: 1.5rem; }
.pruvodce-krok input[type="checkbox"] { width: 1.15rem; height: 1.15rem; accent-color: var(--ano); }
.pruvodce-krok button, .poptavka button {
    font: 600 1rem var(--bezpatky);
    background: var(--ano); color: #fff; border: 2px solid var(--ano);
    padding: .75rem 1.5rem; cursor: pointer;
}
.pruvodce-krok button:hover, .poptavka button:hover { background: var(--ano-tmave); border-color: var(--ano-tmave); }
.pruvodce-chybi { border-left: 3px solid var(--overujeme); background: var(--panel); padding: .875rem 1rem; }
.pruvodce-zpet, .metodika-odkaz, .navody-zpet, .pruvodce-odkaz { font-size: .9375rem; }

.doporuceni { padding-left: 1.25rem; }
.doporuceni > li { padding: .5rem 0; }
.doporuceni strong { font-family: var(--patky); font-size: 1.125rem; }
.cena-poznamka { display: inline; }
.konfigurace, .kryti, .presne-overime, .nezname-kryti, .doporuceni .poznamka { display: block; margin-top: .4rem; font-size: .9375rem; }
.rozpis { padding-left: 1.2rem; margin: .5rem 0; }
.rozpis li { padding: .35rem 0; overflow-wrap: anywhere; }
.objednat { display: inline-block; font-weight: 600; margin: .25rem 0; }
ul.overeni { padding-left: 1.2rem; }
ul.overeni > li { padding: .5rem 0; }
.presne-overime, .kryti, .nezname-kryti { color: var(--inkoust-tlum); }

/* ---------- formulare ---------- */

.poptavka { max-width: var(--text-sirka); margin: 1.5rem 0; }
.poptavka label { display: block; font-size: .9375rem; color: var(--inkoust-tlum); }
.poptavka input, .poptavka textarea {
    width: 100%; font: 1rem var(--bezpatky); color: var(--inkoust);
    padding: .625rem .75rem; border: 1px solid var(--linka); background: var(--papir);
}
.poptavka input:focus, .poptavka textarea:focus { border-color: var(--ano); }
.poptavka-ucel { font-family: var(--patky); font-size: 1.125rem; }
.poptavka-volba label { color: var(--inkoust); }
.poptavka-volba input { width: auto; margin-right: .5rem; }

/* ---------- okno pri odchodu ---------- */
.odchod {
    border: 1px solid var(--linka); border-top: 3px solid var(--cervena, var(--ano));
    background: var(--papir); color: var(--inkoust);
    padding: 1.5rem; max-width: min(28rem, calc(100vw - 2rem));
}
.odchod::backdrop { background: rgba(0, 0, 0, .55); }
.odchod-ikona {
    position: fixed; right: 1rem; bottom: 1rem; z-index: 50;
    display: inline-flex; align-items: center; gap: .5rem;
    font: 600 .9375rem var(--bezpatky); color: #fff; cursor: pointer;
    background: var(--cervena, var(--ano)); border: 0; border-radius: 999px;
    padding: .625rem 1rem .625rem .625rem; box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
}
.odchod-ikona > span[aria-hidden] {
    display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem;
    border-radius: 50%; background: #fff; color: var(--cervena, var(--ano)); font-weight: 700;
}
.odchod-ikona:hover { background: var(--cervena-tmave, #a50b0b); }
.odchod-ikona[hidden] { display: none; }
@media (max-width: 480px) { .odchod-ikona-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .odchod-ikona { padding: .625rem; } }
.odchod h2 { margin-top: 0; }
.odchod-volby { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; margin-top: 1.25rem; }
.odchod-volby button {
    font: inherit; background: none; border: 0; padding: .5rem; cursor: pointer;
    color: var(--inkoust-tlum); text-decoration: underline;
}
.chyba { border-left: 3px solid var(--ne); background: var(--panel); padding: .875rem 1rem; max-width: var(--text-sirka); }
.info-ok { border-left: 3px solid var(--ano); background: var(--panel); padding: .875rem 1rem; max-width: var(--text-sirka); }
.info { border-left: 3px solid var(--linka); background: var(--panel); padding: .875rem 1rem; max-width: var(--text-sirka); }
.info-cancel { color: var(--ne); max-width: var(--text-sirka); }
.chyba > p:first-child, .info > p:first-child, .info-ok > p:first-child, .info-cancel > p:first-child { margin-top: 0; }
.chyba > p:last-child, .info > p:last-child, .info-ok > p:last-child, .info-cancel > p:last-child { margin-bottom: 0; }

/* ---------- tabulky ---------- */

.tabulka-obal { overflow-x: auto; margin: 1.5rem 0; }
.srovnani-tabulka { border-collapse: collapse; min-width: 34rem; }
.srovnani-tabulka th, .srovnani-tabulka td {
    text-align: left; padding: .625rem .875rem; border-bottom: 1px solid var(--linka);
}
.srovnani-tabulka thead th { border-bottom: 2px solid var(--inkoust); font-weight: 650; }

/* ---------- paticka ---------- */

.paticka-ai { margin: 1.5rem 0 0; font-size: .8125rem; color: var(--inkoust-tlum); }

.paticka { background: var(--panel); border-top: 3px solid var(--inkoust); margin-top: 3rem; }
.paticka-vnitrek { max-width: var(--sirka); margin: 0 auto; padding: 2.5rem 1.25rem; }
.paticka-sloupce { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.paticka h2 { font-family: var(--bezpatky); font-size: .875rem; font-weight: 650; margin: 0 0 .5rem; }
.paticka ul { list-style: none; margin: 0; padding: 0; }
.paticka li { margin-bottom: .375rem; font-size: .9375rem; }
.paticka-kontakt { font-size: .9375rem; margin: 0 0 .75rem; color: var(--inkoust-tlum); }

/* ---------- stahovani ---------- */

.soubory { list-style: none; padding: 0; }
.soubory li { padding: .625rem 0; border-bottom: 1px solid var(--linka); }
.velikost, .obchod, .u-vyrobce { color: var(--inkoust-tlum); font-size: .875rem; }

/* ---------- ohled na uzivatele ---------- */

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; animation: none !important; }
}



/* Past na roboty ve formulari — mimo obrazovku, ne display:none (to nektere roboty preskoci). */
.poptavka-past { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ================= vzhled Topologie ================= */
:root {
    --inkoust: #1b1e23;
    --inkoust-tlum: #5a6068;
    --papir: #ffffff;
    --panel: #f1f3f5;
    --linka: #d5d9df;
    --cervena: #cc0e0e;
    --ano: #1f7a4d;
    --ano-tmave: #165c39;
    --overujeme: #a06200;
    --ne: #a11b1b;
    --sirka: 72rem;
    --text-sirka: 40rem;
    --trasa: 1.5px;
    --odsazeni-trasy: 2.25rem;
    --patky: 'Poppins', system-ui, sans-serif;
    --bezpatky: 'Poppins', system-ui, sans-serif;
    --lista: #1b1e23;          /* hlavicka: tmava v obou rezimech */
    --jeviste: #f1f3f5;        /* podklad krabic — v obou rezimech svetly, krabice jsou na bilem */
    color-scheme: light;
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --inkoust: #e7e9ed; --inkoust-tlum: #a3a9b2; --papir: #15171b; --panel: #1e2126;
        --linka: #343941; --cervena: #ef5a5a; --ano: #4cbf83; --ano-tmave: #6fd29e;
        --overujeme: #e0a441; --ne: #ef7b7b; --lista: #0d0f12; --jeviste: #dfe3e8;
        color-scheme: dark;
    }
}
:root[data-theme="dark"] {
    --inkoust: #e7e9ed; --inkoust-tlum: #a3a9b2; --papir: #15171b; --panel: #1e2126;
    --linka: #343941; --cervena: #ef5a5a; --ano: #4cbf83; --ano-tmave: #6fd29e;
    --overujeme: #e0a441; --ne: #ef7b7b; --lista: #0d0f12; --jeviste: #dfe3e8;
    color-scheme: dark;
}


body { font: 400 1rem/1.7 var(--bezpatky); background: var(--papir); font-variant-numeric: tabular-nums; }

/* ---------- hlavička ---------- */
.hlavicka { background: var(--lista); }
.hlavicka-vnitrek { max-width: var(--sirka); padding: 1rem 1.25rem; align-items: center; gap: .75rem 2.5rem; }
.znacka { display: inline-flex; align-items: center; gap: .7rem; font-family: var(--bezpatky); }
.znacka-logo { width: 2.4rem; height: auto; flex: none; }
.znacka-logo * { stroke: var(--cervena); }
.znacka-text { font-weight: 600; font-size: 1.05rem; letter-spacing: -.01em; color: #fff; }
.znacka-pripojeni { color: #fff; }
.znacka-cz { color: #ff6b6b; }
.navigace a { color: #c9ced6; font-size: .9rem; font-weight: 500; }
.navigace a:hover, .navigace a[aria-current="page"] { color: #fff; border-bottom-color: var(--cervena); }
.hlavicka :focus-visible { outline-color: #fff; }

/* ---------- trasa: spoj z loga po levém okraji obsahu ---------- */
main { max-width: var(--sirka); padding: 3rem 1.25rem 4rem calc(1.25rem + var(--odsazeni-trasy)); position: relative; }
main::before {
    content: ""; position: absolute; left: calc(1.25rem + .45rem); top: 0; bottom: 3rem;
    border-left: var(--trasa) solid var(--cervena);
}
main > h1::before, main > h2::before, .uvod::before, .produkt-hlava::before, .znacka-hlava::before {
    content: ""; position: absolute; left: calc(-1 * var(--odsazeni-trasy) + .45rem - .3rem);
    width: .6rem; height: .6rem; background: var(--papir); border: var(--trasa) solid var(--cervena);
}
main > h1, main > h2, .homepage-text > h2, .znacky-uvod > h2 { position: relative; }
.homepage-text > h2::before, .znacky-uvod > h2::before {
    content: ""; position: absolute; left: calc(-1 * var(--odsazeni-trasy) + .45rem - .3rem); top: .5em;
    width: .6rem; height: .6rem; background: var(--papir); border: var(--trasa) solid var(--cervena);
}
main > h1::before { top: .55em; }
main > h2::before { top: .5em; }
.uvod, .produkt-hlava, .znacka-hlava { position: relative; }
.uvod::before, .produkt-hlava::before, .znacka-hlava::before { top: .9rem; }
.uvod > .uvod-text > h1::before, .produkt-souhrn h1::before, .znacka-hlava h1::before { content: none; }

h1 { font-family: var(--bezpatky); font-weight: 600; letter-spacing: -.025em; line-height: 1.12; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); max-width: 22ch; }
h2 { font-family: var(--bezpatky); font-weight: 600; font-size: 1.35rem; letter-spacing: -.015em; }
strong { font-weight: 600; }
a { color: var(--inkoust); text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-decoration-thickness: 1px; text-underline-offset: .22em; transition: text-decoration-color .15s, color .15s; }
a:hover { color: var(--inkoust); text-decoration-color: var(--cervena); text-decoration-thickness: 2px; }
.paticka a { text-decoration: none; color: var(--inkoust-tlum); }
.paticka a:hover { color: var(--inkoust); text-decoration: underline; text-decoration-color: var(--cervena); }
a:hover { color: var(--cervena); }
:focus-visible { outline-color: var(--cervena); }

.tlacitko, .cta-koupit, .pruvodce-krok button, .poptavka button {
    background: var(--cervena); color: #fff; border: 2px solid var(--cervena);
    font-weight: 600; text-decoration: none; display: inline-block; padding: .8rem 1.5rem; border-radius: 2px;
}
.tlacitko:hover, .cta-koupit:hover, .pruvodce-krok button:hover, .poptavka button:hover { background: var(--cervena-tmave, #a50b0b); border-color: var(--cervena-tmave, #a50b0b); color: #fff; }
.cta a { border-color: var(--inkoust); border-radius: 2px; }
.cta-partner { color: var(--inkoust); }
.cta-partner:hover { background: var(--panel); color: var(--inkoust); }

/* ---------- domovská: průvodce jako skutečná sekvence uzlů ---------- */
.uvod { display: grid; gap: 2rem 4rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; padding-bottom: 3rem; }
.uvod-perex { font-size: 1.125rem; color: var(--inkoust-tlum); max-width: 34rem; }
.uvod-kroky { list-style: none; counter-reset: krok; margin: .5rem 0 0; padding: 0; position: relative; }
.uvod-kroky::before { content: ""; position: absolute; left: 1rem; top: 1.25rem; bottom: 1.25rem; border-left: var(--trasa) solid var(--linka); }
.uvod-kroky-nadpis { color: var(--inkoust-tlum); font-size: .9rem; margin: .5rem 0 1rem 3rem; }
.uvod-kroky li { counter-increment: krok; position: relative; padding: .55rem 0 .55rem 3rem; margin: 0; font-size: .98rem; }
.uvod-kroky li::before {
    content: counter(krok); position: absolute; left: 0; top: .45rem; width: 2rem; height: 2rem;
    display: grid; place-items: center; background: var(--papir); border: var(--trasa) solid var(--cervena);
    color: var(--cervena); font-weight: 600; font-size: .85rem;
}
.karty-znacek { list-style: none; padding: 0; margin: 1.25rem 0 0; max-width: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); border-top: var(--trasa) solid var(--cervena); }
.karty-znacek li { margin: 0; position: relative; }
.karty-znacek li::before { content: ""; position: absolute; left: 50%; top: 0; height: 1.25rem; border-left: var(--trasa) solid var(--cervena); }
.karty-znacek a { grid-template-rows: 10.5rem auto 1fr; align-items: start; display: grid; gap: .4rem; padding: 2rem 1.25rem 1.5rem; text-decoration: none; color: var(--inkoust); height: 100%; }
.karty-znacek a:hover { background: var(--panel); color: var(--inkoust); }
.karty-znacek img { align-self: end; justify-self: center; width: auto; max-width: 100%; height: auto; max-height: 10rem; margin: 0 auto .5rem; }
.karty-znacek strong { font-size: 1.1rem; }
.karty-znacek span { font-size: .875rem; color: var(--inkoust-tlum); line-height: 1.55; }

/* ---------- produkt ---------- */
.produkt-hlava { display: grid; gap: 2rem 4rem; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; margin-bottom: 2.5rem; }
.produkt-media { margin: 0; display: grid; place-items: center; background: var(--jeviste); aspect-ratio: 4 / 3.2; }
.produkt-media img { max-width: 78%; max-height: 85%; mix-blend-mode: multiply; }
.produkt-souhrn .cena { border: 0; border-left: var(--trasa) solid var(--cervena); padding: .25rem 0 .25rem 1.25rem; }
.produkt-souhrn .cta { margin: 1.5rem 0 0; }
.produkt-souhrn .perex { color: var(--inkoust-tlum); }
.produkt-snimek { margin: 2.5rem 0 0; max-width: 46rem; }
.produkt-snimek img { display: block; width: 100%; height: auto; }

/* Obrazky v obsahu (ObsahObrazky): snimek s ramem, foto bez, schema v barve textu. */
.obr { margin: 1.75rem 0; max-width: var(--text-sirka); }
.obr img, .obr svg { display: block; max-width: 100%; height: auto; }
.obr figcaption { margin-top: .5rem; font-size: .875rem; color: var(--inkoust-tlum); }
.obr-snimek img { border: 1px solid var(--linka); border-radius: .5rem; box-shadow: 0 .5rem 1.5rem rgba(20, 24, 30, .12); }
.obr-foto img { border-radius: .75rem; }
.obr-schema svg { width: 100%; color: var(--inkoust); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .obr-snimek img { box-shadow: none; outline: 1px solid var(--linka); } }
:root[data-theme="dark"] .obr-snimek img { box-shadow: none; outline: 1px solid var(--linka); }

/* ---------- značka: edice na jedné sběrnici ---------- */
.znacka-hlava { display: grid; gap: 1.5rem 4rem; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); align-items: center; }
.znacka-hlava img { max-width: 100%; max-height: 15rem; justify-self: center; }
.klaus { font-size: 1.15rem; color: var(--inkoust-tlum); }
.edice { max-width: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); border-top: var(--trasa) solid var(--cervena); margin-top: 2rem; }
.edice li, .edice li:nth-child(n) { border: 0; padding: 1.75rem 1.25rem 1.25rem 0; margin: 0; position: relative; }
.edice li::before { content: ""; position: absolute; left: 0; top: -.35rem; width: .6rem; height: .6rem; background: var(--cervena); }
.edice strong { display: block; font-family: var(--bezpatky); font-size: 1.15rem; font-weight: 600; margin-bottom: .35rem; }
.prednosti { list-style: none; padding: 0; }
.prednosti li { padding-left: 1.25rem; position: relative; }
.prednosti li::before { content: ""; position: absolute; left: 0; top: .7em; width: .6rem; border-top: var(--trasa) solid var(--cervena); }

.paticka { background: var(--panel); border-top: var(--trasa) solid var(--cervena); }
.paticka-vnitrek { max-width: var(--sirka); }
.paticka h2 { font-size: .95rem; font-weight: 600; }

@media (max-width: 52rem) {
    .uvod, .produkt-hlava, .znacka-hlava { grid-template-columns: minmax(0, 1fr); }
    :root { --odsazeni-trasy: 1.5rem; }
}
.edice-kapacita { display: block; color: var(--inkoust-tlum); }

@media (prefers-color-scheme: dark) {
        :root:not([data-theme="light"]) .cta-koupit, :root:not([data-theme="light"]) .tlacitko, :root:not([data-theme="light"]) .pruvodce-krok button, :root:not([data-theme="light"]) .poptavka button { color: #fff; }
}
:root[data-theme="dark"] .cta-koupit, :root[data-theme="dark"] .tlacitko, :root[data-theme="dark"] .pruvodce-krok button, :root[data-theme="dark"] .poptavka button { color: #fff; }

.varovani { border-left: 3px solid var(--ne); background: var(--panel); padding: .875rem 1rem; margin: 1.5rem 0; max-width: var(--text-sirka); }
.varovani p:first-child { margin-top: 0; }
.varovani p:last-child { margin-bottom: 0; }

.rozcestnik ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 1.25rem 0 2rem; }
.rozcestnik a { display: inline-block; padding: .5rem 1rem; border: 2px solid var(--inkoust); text-decoration: none; font-weight: 600; }
.rozcestnik ul:first-child li:first-child a { background: var(--cervena, var(--ano)); border-color: var(--cervena, var(--ano)); color: #fff; }
.edice-karty { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.edice-karta { border: 1px solid var(--linka); border-top: 3px solid var(--cervena, var(--ano)); padding: 1rem; }
.edice-karta h3 { margin-top: 0; }
.co-to-je { font-size: 1.125rem; max-width: var(--text-sirka); }
.vyrobce { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .25rem 1rem; }
.vyrobce dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }

.rozcestnik .pro-drzitele { margin-top: .5rem; }
.rozcestnik p { margin-bottom: 0; }

.znacky-stazeni { list-style: none; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.znacky-stazeni li { margin: 0; }
.znacky-stazeni a { display: block; padding: 1.25rem; border: 1px solid var(--linka); background: var(--panel); font-weight: 600; }
.stahovani .stahnout { display: inline-block; padding: .65rem 1.1rem; background: var(--cervena); color: #fff; font-weight: 600; text-decoration: none; }
.stahovani .stahnout:hover { background: var(--cervena-tmave, #a50b0b); }
.stahovani h2 small { display: block; font-size: .7em; font-weight: 400; color: var(--inkoust-tlum); }

.kategorie-karty { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; }
.kategorie-karta { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--linka); border-top: 3px solid var(--cervena); padding: 1.25rem; }
.kategorie-media { display: flex; justify-content: center; align-items: center; height: 11rem; margin: -.25rem -.25rem 1.25rem; background: var(--jeviste); }
.kategorie-media img { max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.kategorie-karta h3 { margin: 0 0 .75rem; font-size: 1.125rem; }
.kategorie-karta .pro-koho { margin-top: 0; color: var(--inkoust-tlum); }
.kategorie-karta .cena { margin-top: auto; border: 0; border-top: 1px solid var(--linka); padding: 1rem 0 0; }
.kategorie-karta .cena-stav { margin-top: auto; }
.kategorie-karta .cena-hlavni { font-size: 1.125rem; }
.kategorie-karta .cena-jednotka, .kategorie-karta .cena-bez { font-size: .875rem; }
.kategorie-detail { margin: 0; padding-top: 1rem; }
.kategorie-detail a { font-weight: 600; }
@media (max-width: 40rem) {
    .kategorie-karty { grid-template-columns: minmax(0, 1fr); }
}

.partneri { color: var(--inkoust-tlum); font-size: .875rem; }

/* ================= vymazleni (7. 10. 2026, Martin schvalil smer) =================
   Statická trasa na úvodní stránce propojuje pět zastávek průvodce s cílem.
   Pohyb zůstává jen jako odezva na akci uživatele, s respektem k reduced-motion.
   Symbol u znacky ukazuje, co jeji licence pocita (cervene), edice znacky se ctou
   jako stojan — radky zarovnane napric kartami. */
:root { --cervena-tmave: #a50b0b; --cervena-svetla: #fdecec; --trasa-hero: 2px; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) { --cervena-tmave: #ff8585; --cervena-svetla: #3a1d1f; }
}
:root[data-theme="dark"] { --cervena-tmave: #ff8585; --cervena-svetla: #3a1d1f; }

/* ---------- hero ---------- */
.homepage .uvod { gap: 2.5rem 5rem; padding: 1rem 0 4.5rem; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.homepage .uvod h1 {
    font-size: clamp(2.25rem, 1.3rem + 3.4vw, 3.9rem); line-height: 1.04; letter-spacing: -.038em;
    max-width: 13ch; margin-bottom: 1.5rem;
}
.homepage .uvod-perex { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); line-height: 1.65; max-width: 36rem; margin-bottom: 2rem; }
.homepage .tlacitko { padding: 1rem 1.75rem; font-size: 1.0625rem; }

/* Pruvodce v uvodu: stejna trasa jako vlevo, pet zastavek a cil. */
.uvod-pruvodce { background: var(--panel); padding: 2rem 2rem 1.5rem 1.75rem; position: relative; }
.uvod-kroky-nadpis { margin: 0 0 1.25rem 3rem; font-weight: 500; color: var(--inkoust); font-size: 1rem; }
.uvod-kroky::before { left: 1rem; top: 1.4rem; bottom: 1.6rem; border-left: var(--trasa-hero) solid var(--linka); }
.uvod-kroky::after {
    content: ""; position: absolute; left: calc(1rem - 0px); top: 1.4rem; bottom: 1.6rem;
    border-left: var(--trasa-hero) solid var(--cervena); transform-origin: top; transform: scaleY(1);
}
.uvod-kroky li { padding: .7rem 0 .7rem 3rem; font-size: 1rem; line-height: 1.45; }
.uvod-kroky li::before { top: .55rem; z-index: 1; border-width: var(--trasa-hero); }
.uvod-kroky .uvod-cil { counter-increment: none; padding-top: 1.1rem; font-weight: 600; }
.uvod-kroky .uvod-cil::before {
    content: ""; top: 1rem; left: .35rem; width: 1.3rem; height: 1.3rem; border-radius: 50%;
    background: var(--cervena); border-color: var(--cervena); box-shadow: 0 0 0 5px var(--cervena-svetla);
}
.uvod-cil a { color: var(--inkoust); text-decoration-thickness: 2px; }
.uvod-cil a:hover { color: var(--cervena); }

/* ---------- znacky: krabice, nazev, symbol licencni jednotky ---------- */
.znacky-uvod > h2 { font-size: 1.6rem; }
.karty-znacek a { grid-template-rows: 10.5rem auto auto 1fr; padding: 2.25rem 1.5rem 1.75rem; transition: background-color .2s; }
.karty-znacek strong { font-size: 1.25rem; letter-spacing: -.015em; }
.glyf { width: 7rem; height: auto; margin: .5rem 0 .35rem; overflow: visible; }
.glyf rect, .glyf path { fill: none; stroke: var(--ano); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.glyf-legenda { color: var(--inkoust-tlum); font-size: .875rem; margin: 1rem 0 0; }
.glyf-legenda .l-pocita { color: var(--cervena); font-weight: 600; }
.glyf-legenda .l-volne { color: var(--ano); font-weight: 600; }
.glyf .pocita, .glyf .pocita rect, .glyf .pocita path { stroke: var(--cervena); }
.glyf rect.pocita, .glyf .pocita rect { fill: var(--cervena-svetla); }
.karty-znacek a:hover .glyf .pocita, .karty-znacek a:hover .glyf .pocita path { stroke: var(--cervena-tmave); }
.karty-znacek span { font-size: .9rem; }

/* ---------- textove sekce uvodni strany: uzsi sloupec, vetsi rytmus ---------- */
.homepage-text > h2 { margin-top: 3.5rem; font-size: 1.6rem; }
.homepage-text p { font-size: 1.0625rem; max-width: 38rem; }

/* ---------- rozcestnik znacky: jedno hlavni tlacitko, zbytek jako odkazy ---------- */
.rozcestnik ul { gap: .5rem 1.75rem; align-items: center; }
.rozcestnik a {
    border: 0; padding: .4rem 0; border-bottom: 2px solid var(--cervena); text-decoration: none;
}
.rozcestnik a:hover { color: var(--cervena); }
.rozcestnik ul:first-child li:first-child a {
    padding: .85rem 1.6rem; border: 2px solid var(--cervena); border-radius: 2px; margin-right: .5rem;
}
.rozcestnik ul:first-child li:first-child a:hover { background: var(--cervena-tmave); border-color: var(--cervena-tmave); color: #fff; }
.rozcestnik > p { color: var(--inkoust-tlum); font-size: .9375rem; margin-top: 1.5rem; }
.rozcestnik .pro-drzitele { margin-top: .25rem; }
.rozcestnik .pro-drzitele a { font-weight: 500; border-bottom-width: 1.5px; border-bottom-color: var(--linka); }
.rozcestnik .pro-drzitele a:hover { border-bottom-color: var(--cervena); }

/* ---------- hlava znacky ---------- */
.znacka-hlava h1 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.2rem); letter-spacing: -.035em; line-height: 1.06; max-width: 18ch; }
.co-to-je { font-size: 1.15rem; line-height: 1.65; }
.klaus { font-size: 1.05rem; border-left: var(--trasa-hero) solid var(--cervena); padding-left: 1rem; color: var(--inkoust); }

/* ---------- edice: stojan na sbernici ---------- */
.edice-karty {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    grid-auto-rows: auto; gap: 1.25rem; margin-top: 1.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.edice-karta {
    display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 0;
    border: 1px solid var(--linka); border-top: var(--trasa) solid var(--cervena);
    background: var(--papir); padding: 0 1.25rem; position: relative; min-width: 0;
}
.edice-karta:first-child { padding-left: 1.25rem; }
.edice-karta::before {
    content: ""; position: absolute; top: -.35rem; left: 1.5rem; width: .6rem; height: .6rem; background: var(--cervena);
}
.edice-karta:first-child::before { left: 1.5rem; }
.edice-karta > :is(h3, h4) { grid-row: 1; margin: 0; padding: 1.75rem 0 .75rem; font-size: 1.2rem; letter-spacing: -.015em; }
.edice-karta > .pro-koho { grid-row: 2; margin: 0; padding-bottom: 1rem; color: var(--inkoust-tlum); font-size: .9375rem; }
.edice-karta > .edice-kapacita {
    grid-row: 3; margin: 0; padding: .75rem 0; border-top: 1px solid var(--linka);
    color: var(--inkoust); font-weight: 600; font-size: .9375rem;
}
.edice-karta > .klicove-funkce { grid-row: 4; margin: 0; padding: .75rem 0; border-top: 1px solid var(--linka); font-size: .9375rem; }
.klicove-funkce ul { margin: 0; padding-left: 1.1rem; }
.klicove-funkce li { margin-bottom: .4rem; }
.klicove-funkce details { margin-top: .25rem; }
.klicove-funkce summary {
    cursor: pointer; font-weight: 600; color: var(--inkoust); width: fit-content;
    border-bottom: 1.5px solid var(--cervena); list-style: none; padding: .15rem 0;
}
.klicove-funkce summary::-webkit-details-marker { display: none; }
.klicove-funkce summary::after { content: " +"; color: var(--cervena); }
.klicove-funkce details[open] summary::after { content: " −"; }
.klicove-funkce details[open] ul { margin-top: .6rem; }
.edice-karta > .omezeni { grid-row: 5; margin: 0; padding: .75rem 0; border-top: 1px solid var(--linka); font-size: .875rem; color: var(--inkoust-tlum); }
.edice-karta > .edice-zaver { grid-row: 6; align-self: end; padding: 1rem 0 1.75rem; border-top: 1px solid var(--linka); }
.edice-karta { grid-template-columns: minmax(0, 1fr); }
.edice-karta > * { grid-column: 1; }
.edice-karta.produkt-znacky > p { grid-row: 2 / span 4; margin: 0; padding-bottom: 1rem; font-size: .9375rem; color: var(--inkoust-tlum); }
/* Samostatne produkty znacky nejsou dalsi stupen edic — visi pod sbernici jen tenkou linkou. */
.edice-karta.produkt-znacky { border-top-color: var(--linka); }
.edice-karta.produkt-znacky::before { display: none; }
.edice-zaver .cena { border: 0; padding: 0; margin: 0 0 .75rem; background: none; }
.edice-zaver .cena-hlavni { font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }
.edice-zaver p:last-child { margin: 0; }
.edice-zaver a { font-weight: 600; }
@media (max-width: 68rem) { .edice-karty { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .edice-karty { grid-template-columns: minmax(0, 1fr); } }

/* ---------- produkt: hlavni cena ---------- */
.produkt-souhrn .cena-hlavni { font-size: 2.1rem; font-weight: 600; letter-spacing: -.025em; }
@media (max-width: 52rem) {
    .homepage .uvod { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-bottom: 3rem; }
    .homepage .uvod h1 { max-width: none; }
    .uvod-pruvodce { padding: 1.5rem 1.25rem 1.25rem 1rem; }
}

/* ---------- pruvodce: trasa postupu, volic a schema site ---------- */
.pruvodce-trasa { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0 .5rem; flex-wrap: wrap; }
.pruvodce-trasa ol { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.pruvodce-trasa li {
    width: 1.75rem; height: 1.75rem; display: grid; place-items: center; margin: 0;
    font-size: .8rem; font-weight: 600; border: var(--trasa-hero) solid var(--linka); color: var(--inkoust-tlum);
    background: var(--papir); position: relative;
}
.pruvodce-trasa li + li { margin-left: 1.25rem; }
.pruvodce-trasa li + li::before {
    content: ""; position: absolute; right: 100%; top: 50%; width: calc(1.25rem + 2px);
    border-top: var(--trasa-hero) solid var(--linka);
}
.pruvodce-trasa li.hotovo { border-color: var(--cervena); color: var(--cervena); }
.pruvodce-trasa li.hotovo::before, .pruvodce-trasa li.aktualni::before { border-top-color: var(--cervena); }
.pruvodce-trasa li.aktualni { background: var(--cervena); border-color: var(--cervena); color: #fff; }
.pruvodce-trasa li.cil { width: 1rem; height: 1rem; border-radius: 50%; border-color: var(--linka); }
.pruvodce-trasa .pruvodce-postup { margin: 0; }

.pruvodce-plocha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: start; }
.pruvodce-plocha h2 { margin-top: .75rem; }
.pruvodce-dotaz .pruvodce-krok { margin-top: 1rem; }

.volic { display: inline-flex; align-items: stretch; margin: .5rem 0 0; }
.pruvodce-krok .volic input[type="number"] {
    width: 8.5rem; text-align: center; font: 600 2.6rem/1 var(--patky); letter-spacing: -.03em;
    border: var(--trasa-hero) solid var(--inkoust); border-left: 0; border-right: 0; padding: .55rem .25rem;
    -moz-appearance: textfield;
}
.volic input::-webkit-outer-spin-button, .volic input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pruvodce-krok .volic-krok {
    width: 3.25rem; padding: 0; font: 400 1.75rem/1 var(--bezpatky); cursor: pointer;
    background: var(--papir); color: var(--inkoust); border: var(--trasa-hero) solid var(--inkoust);
}
.pruvodce-krok .volic-krok:hover:not(:disabled) { background: var(--cervena); border-color: var(--cervena); color: #fff; }
.pruvodce-krok .volic-krok:disabled { color: var(--linka); cursor: default; }
.volic-rychle { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.5rem; max-width: 30rem; }
.pruvodce-krok .volic-cip {
    font: 500 .9375rem var(--bezpatky); padding: .4rem .85rem; cursor: pointer; border-radius: 999px;
    background: var(--papir); color: var(--inkoust); border: 1.5px solid var(--linka);
}
.pruvodce-krok .volic-cip:hover { border-color: var(--cervena); color: var(--cervena); background: var(--papir); }
:root .pruvodce-krok .volic-cip[aria-pressed="true"] { background: var(--inkoust); border-color: var(--inkoust); color: var(--papir); }
.pruvodce-krok .volic-krok, .volic-rychle { display: none; }
.js .pruvodce-krok .volic-krok { display: block; }
.js .volic-rychle { display: flex; }
:root:not(.js) .pruvodce-krok .volic input[type="number"] { border-inline: var(--trasa-hero) solid var(--inkoust); }

.scena { margin: .5rem 0 0; background: var(--panel); padding: 1.5rem 1.5rem 1rem; position: sticky; top: 1.5rem; }
.scena svg { display: block; width: 100%; height: auto; overflow: visible; }
.scena [hidden] { display: none; }
.scena figcaption { font-size: .8125rem; color: var(--inkoust-tlum); margin-top: 1.25rem; padding-top: .75rem; border-top: 1px solid var(--linka); }
.scena circle, .scena rect, .scena path { fill: none; stroke-width: 2.25; stroke-linejoin: round; stroke-linecap: round; }
.scena-sbernice, .scena-vodic { stroke: var(--linka); stroke-width: 1.5 !important; }
.scena-cislo { font: 600 26px var(--patky); letter-spacing: -.03em; fill: var(--inkoust); }
.scena-slovo { font: 400 11.5px var(--bezpatky); fill: var(--inkoust-tlum); }
.scena-hotovo :is(circle, rect, path):not(.scena-vodic) { stroke: var(--inkoust); }
.scena-aktualni :is(circle, rect, path):not(.scena-vodic) { stroke: var(--cervena); }
.scena-aktualni rect, .scena-aktualni circle { fill: var(--cervena-svetla); }
.scena-aktualni .scena-cislo { fill: var(--cervena); }
.scena-ceka :is(circle, rect, path) { stroke: var(--linka); stroke-dasharray: 3 4; }
.scena-ceka .scena-cislo { fill: var(--linka); }
.scena-spoje path { stroke: var(--cervena) !important; stroke-width: 2.5; }
.scena-spoje.scena-hotovo path { opacity: .85; }

@media (max-width: 52rem) {
    .pruvodce-plocha { grid-template-columns: minmax(0, 1fr); }
    .scena { position: static; order: -1; padding: 1rem; }
}
.pruvodce-dotaz .volba { margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--linka); max-width: 34rem; }
.pruvodce-dotaz .volba:first-of-type { border-top: 1px solid var(--linka); }
.pruvodce-dotaz .volba label { min-width: 0; cursor: pointer; align-items: center; gap: .75rem; }
.volba-text { min-width: 0; }
.volba > .napoveda { flex: none; }
.pruvodce-dotaz .volba input[type="checkbox"] { width: 1.3rem; height: 1.3rem; accent-color: var(--cervena); flex: none; }
.pruvodce-dotaz .volba:has(input:checked) label { font-weight: 600; }
@media (max-width: 52rem) { .scena-slovo { font-size: 17px; } .scena-cislo { font-size: 32px; } }

/* ---------- detail produktu ---------- */
.licence-obsah { display: flex; gap: 1.75rem; align-items: center; max-width: var(--text-sirka); }
.licence-obsah .glyf { width: 7.5rem; flex: none; margin: 0; }
.licence-obsah .licence-parametry { margin: 0; padding: 0; list-style: none; }
.licence-parametry { list-style: none; padding: 0; }
.licence-parametry li { position: relative; padding-left: 1.25rem; }
.licence-parametry li::before { content: ""; position: absolute; left: 0; top: .8em; width: .6rem; border-top: var(--trasa) solid var(--cervena); }
.licence-obsah .licence-parametry li:first-child { font-weight: 600; font-size: 1.0625rem; }
.v-kazde-edici { columns: 2 16rem; column-gap: 2.5rem; max-width: 46rem; }
.v-kazde-edici li { break-inside: avoid; }
@media (max-width: 40rem) { .licence-obsah { flex-direction: column; align-items: flex-start; } }

/* ---------- pruvodce: pomoc a vysledek ---------- */
.pruvodce-pomoc { display: flex; align-items: center; gap: .6rem; margin: 1.75rem 0 1.5rem; font-size: .9375rem; }
.pruvodce-pomoc > span {
    display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; flex: none;
    border: 1.5px solid var(--cervena); color: var(--cervena); font-weight: 700; font-size: .85rem;
}
.pruvodce-pomoc a { font-weight: 500; }

.vysledek-plocha { margin-top: 1rem; }
.vysledek-plocha .doporuceni { list-style: none; padding: 0; counter-reset: dop; max-width: none; }
.vysledek-plocha .doporuceni > li {
    counter-increment: dop; position: relative; padding: 1rem 0 1rem 2.75rem; border-bottom: 1px solid var(--linka);
    transition: background-color .15s;
}
.vysledek-plocha .doporuceni > li::before {
    content: counter(dop); position: absolute; left: 0; top: 1rem; width: 1.9rem; height: 1.9rem; display: grid; place-items: center;
    border: var(--trasa-hero) solid var(--linka); font-weight: 600; font-size: .85rem; color: var(--inkoust-tlum);
}
.vysledek-plocha .doporuceni > li.vybrane::before { border-color: var(--cervena); background: var(--cervena); color: #fff; }
/* Vysledek: vse zodpovezene tmave, cervene jen to, co pocita vybrana licence. */
.scena-vysledek .scena-radek :is(circle, rect, path):not(.scena-vodic) { stroke: var(--inkoust); fill: none; }
.scena-vysledek .scena-spoje path { stroke: var(--inkoust) !important; opacity: .55; }
.scena-vysledek .scena-cislo { fill: var(--inkoust); }
.scena-vysledek.pocita-lide [data-osa="uzivatele"] :is(circle, path):not(.scena-vodic),
.scena-vysledek.pocita-kam [data-osa="zarizeni_kam"] :is(rect, path) { stroke: var(--cervena); }
.scena-vysledek.pocita-lide [data-osa="uzivatele"] circle,
.scena-vysledek.pocita-kam [data-osa="zarizeni_kam"] rect { fill: var(--cervena-svetla); }
.scena-vysledek.pocita-lide [data-osa="uzivatele"] .scena-cislo,
.scena-vysledek.pocita-kam [data-osa="zarizeni_kam"] .scena-cislo,
.scena-vysledek.pocita-spoje [data-osa="soubezna_pripojeni"] .scena-cislo { fill: var(--cervena); }
.scena-vysledek.pocita-spoje .scena-spoje path { stroke: var(--cervena) !important; opacity: 1; stroke-width: 3; }
.scena-vysledek :is(circle, rect, path) { transition: stroke .2s, fill .2s, opacity .2s; }

.vysledek-plocha .na-poptavku li { padding: .85rem .5rem .85rem .75rem; border-left: 3px solid transparent; transition: border-color .15s; }
.vysledek-plocha .na-poptavku li.vybrane { border-left-color: var(--cervena); }
.vysledek-plocha .doporuceni > li.vybrane { background: none; }
.vysledek-plocha h2 { margin-top: 0; }

/* ---------- 5. krok: skupiny voleb ---------- */
.volby-skupina { min-inline-size: 0; border: 0; padding: 0; margin: 1.5rem 0 0; }
.volby-skupina > legend { font-weight: 600; font-size: 1rem; padding: 0; margin-bottom: .5rem; color: var(--inkoust); }
.pruvodce-vse .volby-skupina > legend { font-size: 1rem; }
.umi-vsichni {
    display: inline-block; margin-left: .35rem; padding: .05rem .5rem; border-radius: 999px; white-space: nowrap;
    font-size: .75rem; font-weight: 500; color: var(--ano); border: 1px solid currentColor; vertical-align: .1em;
}
.volby-skupina + p > button, .pruvodce-dotaz .volby-skupina ~ p { margin-top: 1.75rem; }

/* ---------- prepinac svetly/tmavy vzhled (hlavicka je tmava v obou rezimech) ---------- */
.prepinac-motivu {
    margin-left: auto; display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem;
    background: transparent; border: 1px solid #3a3f47; border-radius: 50%; color: #cfe0dd; cursor: pointer;
}
.prepinac-motivu:hover { color: #fff; border-color: var(--cervena); }
.prepinac-motivu:focus-visible { outline: 2px solid var(--cervena); outline-offset: 2px; }
.prepinac-motivu svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.prepinac-motivu .ikona-slunce { display: none; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .prepinac-motivu .ikona-slunce { display: block; }
    :root:not([data-theme="light"]) .prepinac-motivu .ikona-mesic { display: none; }
}
:root[data-theme="dark"] .prepinac-motivu .ikona-slunce { display: block; }
:root[data-theme="dark"] .prepinac-motivu .ikona-mesic { display: none; }


/* ---------- podium krabic ----------
   Krabice jsou fotky na bilem platne. Stoji na svetlem ateliérovem podkladu (bila nahore,
   jemne seda dole) v obou vzhledech; multiply nechá bile platno fotky splynout s podkladem,
   takze nikde neni hrana ani zubaty orez. Ve tmavem vzhledu je to zamerne nasvicena fotka. */
:root { --podium: var(--jeviste); --podium-okraj: transparent; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) { --podium-okraj: #000; }
}
:root[data-theme="dark"] { --podium-okraj: #000; }
.podium { display: grid; place-items: center; background: var(--podium); border-radius: 6px; box-shadow: 0 0 0 1px var(--podium-okraj); overflow: hidden; }
.podium img { mix-blend-mode: multiply; }
.karty-znacek .podium { align-self: stretch; height: 10.5rem; margin: 0 0 .5rem; padding: .9rem; }
.karty-znacek .podium img { max-height: 8.7rem; max-width: 100%; width: auto; height: auto; margin: 0; }
.znacka-hlava .podium { padding: 1.75rem 2.25rem; justify-self: center; }
.znacka-hlava .podium img { max-height: 13rem; }
.produkt-media.podium, .kategorie-media.podium { background: var(--podium); }
.kategorie-media.podium { display: flex; padding: .75rem; }
.kategorie-media.podium img { max-height: 9.5rem; }

/* Ikona označuje systém, dostupnost produktů určuje až obsah filtru. */
.ikona-os { width: 1.5em; height: 1.5em; flex: none; vertical-align: middle; }
.filtr h1 .ikona-os { margin-right: .4em; }
.systemy-dlazdice { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1rem; list-style: none; padding: 0; max-width: none; }
.systemy-dlazdice li { margin: 0; min-width: 0; }
.systemy-dlazdice a { display: flex; align-items: center; gap: .75rem; height: 100%; padding: 1rem; border: 1px solid var(--linka); background: var(--panel); color: var(--inkoust); text-decoration: none; }
.systemy-dlazdice a:hover { border-color: var(--cervena); }

/* UI loga dědí motiv; vlastní prostor bez míchání barev krabic. */
.logo-vyrobce { display: flex; align-items: center; justify-content: center; padding: 1rem; min-width: 0; height: 5rem; color: var(--inkoust); }
.logo-vyrobce-svg { display: block; width: 100%; max-width: 13rem; height: 100%; object-fit: contain; overflow: visible; }
.karty-vyrobcu { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1rem; margin: 1.5rem 0; }
.karta-vyrobce, .znacky-stazeni > li { border: 1px solid var(--linka); background: var(--panel); padding: 1.25rem; min-width: 0; overflow-wrap: anywhere; }
.karta-vyrobce h2, .znacky-stazeni h2 { margin-top: .75rem; }
.puvod-vyrobce { color: var(--inkoust-tlum); font-size: .9rem; }
.odkazy-vyrobce { padding-left: 1.25rem; }
.znacky-stazeni { max-width: none; }
.znacky-stazeni a { display: inline; padding: 0; border: 0; background: none; }
.znacky-stazeni a.stahnout { display: inline-block; padding: .65rem 1rem; background: var(--cervena); color: white; }
.platformy-stazeni > span { display: inline-flex; align-items: center; gap: .25rem; margin: .2rem .4rem .2rem 0; }
.platformy-stazeni .ikona-os { width: 1.1em; height: 1.1em; }
.karty-znacek .logo-znacky { display: flex; align-items: center; height: 1.75rem; color: var(--inkoust); }
.karty-znacek .logo-znacky .logo-vyrobce-svg { width: auto; max-width: 8.5rem; height: auto; max-height: 100%; }

/* Audit 19. 10.: společná kostra. Místo pro přepínač existuje i před spuštěním JS. */
:root { --na-akcentu: #fff; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) { --na-akcentu: var(--papir); }
}
:root[data-theme="dark"] { --na-akcentu: var(--papir); }
.hlavicka-vnitrek {
    display: grid; grid-template-columns: auto minmax(0, 1fr) 2.4rem;
    grid-auto-rows: minmax(2.4rem, auto);
    gap: .75rem 1.5rem;
}
.navigace { min-width: 0; }
.navigace a { font-weight: 600; }
.prepinac-motivu { grid-column: 3; grid-row: 1; margin-left: 0; }
h1 { max-width: 30ch; text-wrap: balance; }
@media (min-width: 52.01rem) {
    .stranka > h1, .filtr > h1, .stahovani > h1, .navody > h1, .navod > h1 { max-width: 38ch; }
}
h2, h3 { text-wrap: pretty; }
main :is(h2, h3, [id]) { scroll-margin-top: 1.5rem; }
main > :is(h2, h3) { max-width: var(--text-sirka); }
.tabulka-obal { max-width: 100%; overscroll-behavior-x: contain; }
.tabulka-obal:focus-visible { outline: 3px solid var(--cervena); outline-offset: 3px; }
.tabulka-obal table { border-collapse: collapse; min-width: min(38rem, 100%); width: 100%; }
.tabulka-obal :is(th, td) {
    text-align: left; vertical-align: top; padding: .75rem 1rem;
    border-bottom: 1px solid var(--linka); line-height: 1.55;
}
.tabulka-obal thead th { background: var(--panel); border-bottom: 2px solid var(--inkoust); }
.tabulka-obal tbody th[scope="rowgroup"] { background: var(--panel); padding-block: .5rem; }
.tabulka-obal tbody tr:hover { background: var(--panel); }
:root :is(.tlacitko, .cta-koupit, .stahnout, .poptavka button, .pruvodce-krok button[type="submit"]) { color: var(--na-akcentu); }
@media (max-width: 52rem) {
    .hlavicka-vnitrek { grid-template-columns: minmax(0, 1fr) 2.4rem; gap: .5rem .75rem; }
    .znacka { gap: .5rem; }
    .znacka-text { font-size: 1rem; }
    .prepinac-motivu { grid-column: 2; }
    .navigace { grid-row: 2; grid-column: 1 / -1; }
    .navigace ul { gap: .25rem 1rem; }
    main { padding-top: 2rem; }
    .tabulka-obal table { min-width: 38rem; }
}

/* Dlouhé texty a rozcestníky: navigace je nativní details, funguje i bez JS. */
.obsah-stranky { max-width: var(--text-sirka); margin: 1.75rem 0 2rem; border-block: 1px solid var(--linka); }
.obsah-stranky summary { padding: .8rem 0; cursor: pointer; font-weight: 600; }
.obsah-stranky ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.obsah-stranky li { padding-block: .15rem; break-inside: avoid; }
main h2:target { outline: 2px solid var(--cervena); outline-offset: .35rem; }
.navod-overeno, .navod-plati-pro { color: var(--inkoust-tlum); font-size: .875rem; }
.navod-overeno { margin-bottom: .25rem; }
.navod-plati-pro { padding-bottom: 1rem; border-bottom: 1px solid var(--linka); margin-bottom: 1.5rem; }
.seznam-navodu { list-style: none; padding: 0; max-width: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; }
.seznam-navodu > li { border-top: 1px solid var(--linka); padding: 1.25rem 0; margin: 0; }
.seznam-navodu > li > a { font-weight: 600; font-size: 1.0625rem; display: inline-block; }
.seznam-navodu .navod-popis { color: var(--inkoust-tlum); margin: .5rem 0 0; font-size: .9375rem; }
.stranka-rozcestnik > ul { list-style: none; padding: 0; }
.stranka-rozcestnik > ul > li { border-bottom: 1px solid var(--linka); padding: 1rem 0; margin: 0; }
.stranka-rozcestnik > ul > li:first-child { border-top: 1px solid var(--linka); }
.stranka-rozcestnik > ul > li > a:first-child { font-weight: 600; }
.stranka-rozcestnik > h2 { border-top: 1px solid var(--linka); padding-top: 1.5rem; margin-top: 2.5rem; }
.stranka-rozcestnik > .kategorie-karty { margin-top: 1.5rem; }
.souvisi { padding-left: 1.25rem; }
.souvisi li { padding-block: .2rem; }
.karty-vyrobcu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 52rem) {
    .seznam-navodu, .karty-vyrobcu { grid-template-columns: minmax(0, 1fr); }
    .systemy-dlazdice { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
    .systemy-dlazdice a { padding: .75rem .5rem; gap: .5rem; flex-wrap: wrap; }
}

/* Produkt a katalog: informace a akce mají přednost před opakovanou krabicí. */
.produkt-hlava { grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: 2rem 3rem; align-items: start; }
.produkt-media img { width: auto; height: auto; max-height: 15rem; object-fit: contain; }
.produkt-souhrn h1 { max-width: 28ch; }
.produkt-souhrn .partneri { margin-top: .75rem; }
.znacka-hlava .podium { width: 13rem; height: 16rem; padding: 1.25rem; }
.znacka-hlava .podium img { width: auto; height: auto; max-height: 13rem; }
.kategorie-karta { border: 0; border-top: 1px solid var(--linka); padding: 1.25rem 0; }
.kategorie-karty { column-gap: 2rem; }
.kategorie-media { margin: 0 0 1rem; height: 8rem; }
.kategorie-media.podium img { max-height: 7rem; }
@media (max-width: 52rem) {
    .produkt-hlava { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .produkt-souhrn { grid-row: 1; }
    .produkt-media { width: 8rem; justify-self: end; }
    .produkt-media img { max-height: 5.5rem; }
    .znacka-hlava .podium { display: none; }
}
@media (max-width: 40rem) {
    .kategorie-karta { display: grid; grid-template-columns: 5rem minmax(0, 1fr); column-gap: 1rem; align-items: start; }
    .kategorie-karta > * { grid-column: 1 / -1; }
    .kategorie-karta > .kategorie-media { grid-column: 1; grid-row: 1 / span 2; height: 5rem; padding: .25rem; margin: 0; }
    .kategorie-media.podium img { max-height: 4.5rem; }
    .kategorie-karta > h3 { grid-column: 2; margin-bottom: .5rem; font-size: 1rem; }
    .kategorie-karta > .pro-koho { grid-column: 2; font-size: .875rem; }
    .kategorie-karta .cena-hlavni { font-size: 1.25rem; }
}

/* Stahování: jeden modul, pod ním čitelné řádky platforma / akce. */
.stahovani-modul { max-width: var(--text-sirka); margin-block: 2rem; }
.stahovani-modul > h2 { margin-top: 0; }
.stahovani-platforma { display: grid; grid-template-columns: minmax(0, 1fr) 10rem; gap: .75rem 1.5rem; align-items: center; padding-block: 1rem; border-top: 1px solid var(--linka); }
.stahovani-platforma h3 { margin: 0; font-size: 1rem; }
.stahovani-platforma p { margin: 0; }
.stahovani-platforma .u-vyrobce { display: block; margin-top: .25rem; }
/* Akce a pata sdílejí spodní hranu sloupců; na mobilu výška zůstává přirozená. */
.znacky-stazeni > li { display: flex; flex-direction: column; }
.znacky-stazeni .stazeni-akce { margin-top: auto; }
.znacky-stazeni .stazeni-pata { padding-top: .75rem; }
@media (min-width: 36rem) {
    /* Prostor pro velikost souboru a nejvýše třířádkový odkaz; roste s písmem. */
    .znacky-stazeni .stazeni-akce { min-block-size: 5.5rem; }
    .znacky-stazeni .stazeni-pata { min-block-size: 6em; }
}
.znacky-stazeni .stahnout { font-size: .9375rem; }
/* Formuláře: stejný kontext, pole i ochrany; kontakt má údaje vedle formuláře. */
.formular-skok a { display: inline-block; padding-block: .35rem; font-weight: 600; }
.kontakt-rozlozeni { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: start; }
.kontakt-udaje > h2:first-of-type { margin-top: 1.5rem; }
.formular-panel { max-width: var(--text-sirka); padding-top: 1rem; border-top: 1px solid var(--linka); }
.formular-panel .poptavka { margin-top: 0; }
.poptavka-ucel { font-weight: 600; color: var(--inkoust); }
/* Průvodce: nejdřív otázka a odpověď; pořadová čísla patří jen krokům. */
.vysledek-plocha .doporuceni > li { padding-left: 0; counter-increment: none; }
.vysledek-plocha .doporuceni > li::before { content: none; }
@media (max-width: 52rem) {
    .pruvodce-plocha .scena { order: 0; margin-top: 0; }
    .pruvodce-plocha { gap: 1rem; }
    .kontakt-rozlozeni { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .stahovani-platforma { grid-template-columns: minmax(0, 1fr) 7.5rem; gap: .75rem; }
    .stahovani-platforma h3 { font-size: .9375rem; }
    .stahovani-platforma .stahnout { padding: .5rem .75rem; font-size: .9375rem; }
}

/* Patička na telefonu: skupiny vedle sebe, všechny odkazy zůstávají dostupné. */
@media (max-width: 52rem) {
    .paticka-sloupce { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
    .paticka-sloupce > div { min-width: 0; overflow-wrap: anywhere; }
}

/* Stručné huby bez krabice: stejná hierarchie, úměrná délce obsahu. */
.hub-strucny .znacka-hlava { grid-template-columns: minmax(0, 1fr); max-width: var(--text-sirka); }
.hub-strucny .znacka-hlava h1 { max-width: 30ch; }
.hub-strucny .rozcestnik { max-width: var(--text-sirka); margin-block: 1.25rem 2rem; padding-block: 1rem; border-block: 1px solid var(--linka); }
.hub-strucny .rozcestnik > ul:first-child { margin: 0 0 1rem; }
.hub-strucny .rozcestnik > p { margin-top: 0; }
.hub-strucny .rozcestnik .pro-drzitele { margin-bottom: 0; gap: .25rem 1.25rem; font-size: .9375rem; }
.hub-strucny .pro-drzitele a { padding-block: .25rem; }
.hub-strucny > h2 { margin-top: 2rem; }
.hub-strucny .edice-karta > :is(h3, h4) { padding-block: 1.25rem .5rem; }
.hub-strucny .edice-karta > .pro-koho { padding-bottom: .75rem; }
.hub-strucny .edice-karta > .edice-zaver { padding-block: .75rem 1.25rem; }

/* Archiv čte datum a cíl v samostatných sloupcích, na mobilu pod sebou. */
.stranka-archiv > ul { list-style: none; padding: 0; }
.stranka-archiv > ul > li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .25rem 1.5rem; margin: 0; padding-block: 1.25rem; border-bottom: 1px solid var(--linka); }
.stranka-archiv > ul > li:first-child { border-top: 1px solid var(--linka); }
.stranka-archiv > ul > li > strong { font-size: .9375rem; font-weight: 400; color: var(--inkoust-tlum); }
.stranka-archiv > ul > li > a { font-weight: 600; }

/* Dvě úplná vysvětlení nejistoty sdílejí jeden vizuální rámec. */
.filtr-nejistota { max-width: var(--text-sirka); margin-block: 1.5rem; padding: 1.25rem; border-left: 3px solid var(--overujeme); background: var(--panel); }
.filtr-nejistota :is(.prazdno, .bez-udaje-uvod) { border: 0; background: none; padding: 0; margin: 0 0 1rem; }
.filtr-nejistota > h2 { font-size: 1.125rem; margin-top: 1.5rem; }
.filtr-nejistota > p:last-child { margin-bottom: 0; }
@media (max-width: 52rem) {
    .stranka-archiv > ul > li { grid-template-columns: minmax(0, 1fr); }
    .hlavicka-stav .hlavicka-vnitrek { padding-block: .5rem; row-gap: .25rem; }
    .hlavicka-stav .navigace a { font-size: .875rem; }
}

/* Roční ceníky: základ je vidět vždy, další konfigurace otevře nativní details. */
#cenik-karty { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1.25rem; }
.cenik-karta { min-width: 0; padding: 1.25rem; border: 1px solid var(--linka); border-top: 3px solid var(--ano); background: var(--papir); overflow-wrap: anywhere; }
.cenik-karta h2, .cenik-karta h3 { margin-top: 0; }
.cenik-karta details { margin-top: 1.25rem; }
.cenik-karta summary { cursor: pointer; font-weight: 600; }
.cenik-karta table { width: 100%; }
#cenik-doplnky .cenik-karta { margin: 1rem 0; }

/* Společné FAQ a potíže: nativní ovládání bez závislosti na JavaScriptu. */
.faq { max-width: var(--text-sirka); margin-block: 2rem; }
.faq-polozka { border-top: 1px solid var(--linka); }
.faq-polozka:last-of-type { border-bottom: 1px solid var(--linka); }
.faq-polozka > summary { cursor: pointer; padding: 1rem .75rem; font-weight: 600; }
.faq-polozka > summary::marker { color: var(--cervena); }
.faq-polozka > summary:hover, .faq-polozka[open] > summary { background: var(--panel); }
.faq-polozka > summary:focus-visible { outline: 3px solid var(--cervena); outline-offset: 2px; }
.faq-odpoved { padding: .25rem .75rem 1rem; overflow-wrap: anywhere; }
.faq-odpoved > :last-child { margin-bottom: 0; }
@media print { .faq-polozka > .faq-odpoved { display: block; } }

/* Huby: orientace, klidné sekce a výraznější místo pro výběr edice. */
.hub .rozcestnik { margin-block: 1.5rem 2.5rem; padding-block: 1rem; border-block: 1px solid var(--linka); }
.hub .rozcestnik ul { max-width: none; gap: .25rem 1.5rem; margin: 0; }
.hub .rozcestnik .hub-kotvy a { padding: .5rem 0; border-bottom: 2px solid transparent; background: none; color: var(--inkoust); }
.hub .rozcestnik .hub-kotvy a:hover { border-color: var(--cervena); }
.hub .rozcestnik .hub-akce { margin-top: .75rem; font-size: .9375rem; }
.hub-drzitele { margin-top: .75rem; font-size: .9375rem; }
.hub-drzitele > summary { cursor: pointer; width: fit-content; padding-block: .35rem; color: var(--inkoust-tlum); }
.hub-drzitele[open] > summary { margin-bottom: .5rem; }
.hub-sekce { margin-block: 2.5rem; min-width: 0; }
.hub-sekce > h2:first-child { margin-top: 0; }
.hub-prednosti, .hub-licence { padding: 1.5rem; background: var(--panel); }
.hub-limity { border-left: var(--trasa) solid var(--linka); padding-left: 1.5rem; }
.hub-sekce :is(p, ul, dl) { max-width: var(--text-sirka); }
.hub-edice > .edice-karty { max-width: none; }
.hub .faq { max-width: var(--text-sirka); margin-block: 3rem; }
.hub-bezpecne { padding: 1.5rem; border-left: var(--trasa-hero) solid var(--cervena); background: var(--panel); }
.hub-bezpecne .varovani { border: 0; padding: 0; margin-bottom: 0; }
.hub-stazeni { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 2rem; }
.hub-stazeni h2 { margin-top: 0; }
.hub-stazeni .obr { margin: 0; }
.hub-stazeni .obr img { padding: .5rem; background: var(--jeviste); }
.hub-stazeni img { max-height: 24rem; width: auto; margin-inline: auto; object-fit: contain; }
.hub-stazeni figcaption { color: var(--inkoust); }
.hub :is(.produkty-znacky, .seznam-navodu) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; max-width: none; list-style: none; padding: 0; }
.hub :is(.produkty-znacky, .seznam-navodu) > li { margin: 0; padding: 1rem; border: 1px solid var(--linka); font-size: .9375rem; }
.hub :is(.produkty-znacky, .seznam-navodu) a { font-size: inherit; font-weight: 600; }
.hub-porovnani .tabulka-rada { font-size: .875rem; color: var(--inkoust-tlum); }
.hub-porovnani .srovnani-tabulka { border-collapse: separate; border-spacing: 0; }
.hub-porovnani :is(th, td) { min-width: 10rem; }
.hub-porovnani th[scope="row"], .hub-porovnani thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--panel); border-right: 1px solid var(--linka); }
.hub-porovnani th[scope="rowgroup"] { text-align: left; }
@media (max-width: 40rem) {
    .hub-prednosti, .hub-licence, .hub-bezpecne { padding: 1rem; }
    .hub-stazeni, .hub :is(.produkty-znacky, .seznam-navodu) { grid-template-columns: minmax(0, 1fr); }
    .hub-porovnani :is(th, td) { min-width: 8.5rem; padding: .6rem; }
    .hub-porovnani th[scope="row"] { max-width: 9rem; }
}

@media (min-width: 68.01rem) {
    .edice-karty:has(> .edice-karta:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.produkty-karty .edice-karta { grid-row: auto; grid-template-rows: auto 1fr auto; }
.produkty-karty .edice-karta.produkt-znacky > p { grid-row: 2; }
.produkty-karty .edice-karta > .edice-zaver { grid-row: 3; }
/* Subgrid nesmí převzít minimální šířku dlouhého názvu nebo cenového odkazu. */
.edice-karta > * { min-width: 0; overflow-wrap: anywhere; }
.edice-karta > :is(h3, h4) { text-wrap: wrap; }
