/* pokorni.cz — jeden styl, tři linie (brand kniha §2–4).
   body.linie-neutral  rozcestník: bílá, inkoust, šedá, Inter
   body.linie-itispm   /vlastimil/: oranžová iTiSPM, Open Sans
   body.linie-poky     /veronika/: krém + inkoust + zelená POKY, Inter + Playfair
   Žádný JS, žádný build. */

:root {
    --sirka: 64rem;
    --podklad: #FFFFFF;
    --podklad2: #F7F7F7;
    --inkoust: #1A1A1A;
    --text: #2A2A2A;
    --tlumene: #686868;
    --linka: #E6E6E6;
    --akcent: #1A1A1A;        /* plochy, velké nadpisy */
    --akcent-hover: #4C4C4C;
    --odkaz: #1A1A1A;         /* text odkazů (kontrast AA) */
    --pismo: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --pismo-nadpis: "Inter", system-ui, sans-serif;
    --vaha-nadpis: 700;
    --radius: 8px;
}

body.linie-itispm {
    --podklad: #FFFFFF;
    --podklad2: #F7F7F7;
    --inkoust: #292929;
    --text: #4C4C4C;
    --tlumene: #686868;
    --linka: #E0E0E0;
    --akcent: #EA9018;
    --akcent-hover: #F5AB48;
    --akcent-tmavy: #915300;
    --odkaz: #B96E09;
    --pismo: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --pismo-nadpis: "Open Sans", system-ui, sans-serif;
    --vaha-nadpis: 700;
}

body.linie-poky {
    --podklad: #F5F1EA;
    --podklad2: #FFFFFF;
    --inkoust: #1A1A1A;
    --text: #2A2420;
    --tlumene: #7A6F61;
    --linka: #E6DFD2;
    --akcent: #21544F;
    --akcent-hover: #163D39;
    --akcent-tmavy: #163D39;
    --odkaz: #21544F;
    --jantar: #D9A441;
    --pismo: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --pismo-nadpis: "Playfair Display", Georgia, serif;
    --vaha-nadpis: 600;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--podklad);
    color: var(--text);
    font: 400 1.0625rem/1.65 var(--pismo);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--odkaz); text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
a:hover, a:focus-visible { color: var(--akcent-hover); }
h1, h2, h3 { font-family: var(--pismo-nadpis); font-weight: var(--vaha-nadpis); color: var(--inkoust); line-height: 1.2; margin: 0 0 0.5em; text-wrap: balance; }
h1 { font-size: clamp(2rem, 5vw, 2.75rem); }
h2 { font-size: clamp(1.4rem, 3vw, 1.75rem); margin-top: 2.2em; padding-top: 0.6em; border-top: 1px solid var(--linka); }
h3 { font-size: 1.15rem; margin-top: 1.6em; }
p { margin: 0 0 1em; }
ul { padding-left: 1.2em; }
li { margin-bottom: 0.35em; }
strong { color: var(--inkoust); }

.hlavicka-in, .obsah, .paticka-in { width: min(100% - 2.5rem, var(--sirka)); margin-inline: auto; }

/* Hlavička */
.hlavicka { border-bottom: 1px solid var(--linka); background: var(--podklad2); }
/* Hlavička je na všech liniích stejná (Víťa 11. 9.): vždy Inter (ne písmo linie), mřížka
   zpět | loga na střed | jazyk; na rozcestníku značka vlevo a jazyk vpravo. */
.hlavicka, .hlavicka a { font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.hlavicka-in { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; padding: 0.9rem 0; }
.hlavicka-in > .zpet, .hlavicka-in > .znacka { grid-column: 1; justify-self: start; }
.hlavicka-in > .loga, .hlavicka-in > .logo { grid-column: 2; justify-self: center; }
.hlavicka-in > .jazyk { grid-column: 3; justify-self: end; }
.loga { display: flex; align-items: center; gap: 2rem; }
.znacka { display: inline-flex; align-items: center; color: var(--inkoust); text-decoration: none; }
/* Podpis Pokorni.cz jako SVG (Víťa 25. 9. 2026): výšku řídí CSS, šířku dopočítá
   viewBox, barvu dědí přes currentColor – proto hover funguje jako u textu. */
.znacka .znacka-svg { height: 1.9rem; width: auto; display: block; }
.znacka:hover, .znacka:focus-visible { color: var(--akcent-hover); }
/* Hero rozcestníku (Víťa 11. 9.): loga jako tlačítka vedle sebe; od 20. 9. 2026 zarovnaná
   k okrajům šířky obsahu (tlačítka vyplní řádek, mezera mezi nimi je pevná). */
.hero-loga { display: flex; justify-content: space-between; gap: 1.5rem; margin: 1.5rem 0 2.2rem; }
.hero-logo { flex: 1 1 0; min-width: 0; min-height: 8.5rem; display: flex; align-items: center; justify-content: center; padding: 1.2rem; border: 1px solid var(--linka); border-top: 5px solid var(--hero-akcent, var(--inkoust)); border-radius: 14px; background: var(--podklad2); text-decoration: none; transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s; }
.hero-logo:hover, .hero-logo:focus-visible { border-color: var(--hero-akcent, var(--inkoust)); border-top-color: var(--hero-akcent, var(--inkoust)); box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08); transform: translateY(-2px); }
.hero-logo img { width: auto; height: auto; max-width: 78%; max-height: 4.5rem; display: block; margin: 0 auto; }
.hero-logo-itispm { --hero-akcent: #EA9018; background: #FFFFFF; }
.hero-logo-itispm img { max-width: 64%; }
.hero-logo-pokybs { --hero-akcent: #21544F; background: #FFFFFF; }
.hero-logo-pokybs img { border-radius: 4px; }
/* Tlačítko POKY: tři loga v jednom tlačítku (pokybs · VeraBarbera · pokyhs, Víťa 20. 9. 2026),
   každé je vlastní odkaz. Tři loga chtějí víc místa než jedno iTiSPM – proto 1,6× širší. */
.hero-logo-poky { flex-grow: 1.6; gap: 0.9rem; padding: 0.9rem; }
.hero-logo-poky a { flex: 1 1 0; display: flex; align-items: center; justify-content: center; min-width: 0; text-decoration: none; transition: opacity 0.15s; }
.hero-logo-poky a:hover, .hero-logo-poky a:focus-visible { opacity: 0.75; }
.hero-logo-poky img { max-width: 92%; max-height: 5.6rem; }
/* Podpis VeraBarbera je na šířku – bez trochy místa navíc by vedle dvou POKY zapadl. */
.hero-logo-poky .hero-logo-vb { flex-grow: 1.3; }
.hero-del { width: 1px; align-self: stretch; background: var(--linka); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.logo img { height: 40px; width: auto; }
.logo-pokybs img, .logo-pokyhs img { border-radius: 4px; }
.loga-poky { gap: 1rem; }
.zpet { font-size: 0.95rem; text-decoration: none; color: var(--tlumene); }
/* Šipka „←“ je znak z Interu – proto se Inter načítá na všech liniích (head.php), jinak by ji kreslil náhradní font. */
.zpet:hover { color: var(--odkaz); }
.jazyk { font-size: 0.9rem; letter-spacing: 0.04em; margin-left: auto; }
.jazyk-aktivni { font-weight: 700; color: var(--inkoust); }
.jazyk-del { color: var(--tlumene); margin: 0 0.35em; }
.jazyk a { text-decoration: none; }

/* Obsah */
.obsah { flex: 1; padding: 2.5rem 0 3.5rem; }
.podtitul { font-size: 1.1rem; color: var(--tlumene); margin: -0.4rem 0 1.4rem; letter-spacing: 0.01em; }
/* Hlava profilu: portrét vlevo, jméno a podtitul vpravo (Víťa 11. 9.). */
/* Celý blok (fotka + jméno + podtitul) stojí uprostřed stránky jako jeden celek, uvnitř zarovnání vlevo (Víťa 11. 9.). */
.profil-hlava { display: flex; align-items: center; gap: 1.5rem; width: fit-content; max-width: 100%; margin: 0 auto 1.6rem; }
.profil-hlava h1 { margin-bottom: 0.15em; }
.profil-hlava .podtitul { margin: 0; }
.foto-profil { width: 128px; height: 128px; border-radius: 50%; object-fit: cover; flex: none; border: 1px solid var(--linka); background: var(--podklad2); }
.foto-chybi { flex: none; width: 128px; height: 128px; border-radius: 50%; border: 1px dashed var(--linka); display: grid; place-items: center; text-align: center; font-size: 0.8rem; padding: 0.5rem; }
/* Standard (Víťa 11. 9.): odstavce do bloku; výjimky se dělají cíleně (podtitul, patička, karty jen krátké texty). */
.obsah p { text-align: justify; hyphens: auto; }
.obsah .podtitul, .obsah .foto-chybi { text-align: left; hyphens: manual; }
/* Perex do bloku i na rozcestníku (Víťa 20. 9. 2026) – dřív jen na profilech. */
.perex { font-size: 1.15rem; color: var(--inkoust); text-align: justify; hyphens: auto; }
.motto { font-family: var(--pismo-nadpis); font-size: 1.3rem; color: var(--akcent); margin: 1.5rem 0; }
.cta { display: inline-block; margin: 0.5rem 0 1rem; padding: 0.7rem 1.25rem; background: var(--akcent); color: #FFFFFF; border-radius: var(--radius); text-decoration: none; font-weight: 600; }
.cta:hover, .cta:focus-visible { background: var(--akcent-hover); color: #FFFFFF; }
/* Nadpis sekce jako logo linie (profil Vlastimila, sekce iTiSPM – Víťa 19. 9.: logo místo textu, text jen v alt;
   odkaz na web je v logu, v Kontaktu a v patičce – žádný další řádek). */
.nadpis-logo a { display: inline-block; line-height: 0; transition: opacity 0.15s; }
.nadpis-logo a:hover, .nadpis-logo a:focus-visible { opacity: 0.75; }
.nadpis-logo img { width: 190px; height: auto; display: block; }
body.linie-poky .cta { color: #FFFFFF; }
.odkazy-radek { margin: 0.5rem 0 1.5rem; }
.odkazy-radek .del { color: var(--tlumene); margin: 0 0.4em; }

/* ---------- Kariérní časová osa ---------- */
[data-obor="poradenstvi"]  { --obor: #915300; --obor-svetla: #F3E7D9; }
[data-obor="bankovnictvi"] { --obor: #2F6DB5; --obor-svetla: #DDE8F5; }
[data-obor="vyroba"]       { --obor: #C2410C; --obor-svetla: #F8E2D8; }
[data-obor="energetika"]   { --obor: #2E9E5B; --obor-svetla: #DCF1E4; }
[data-obor="zdravotnictvi"]{ --obor: #0E8F9C; --obor-svetla: #D8EEF0; }
[data-obor="retail"]       { --obor: #7C3AED; --obor-svetla: #E9DFFB; }
[data-obor="logistika"]    { --obor: #A16207; --obor-svetla: #F3EAD3; }
[data-obor="it"]           { --obor: #C0392B; --obor-svetla: #F7DDDA; }
[data-obor="vzdelani"]     { --obor: #5B6B7A; --obor-svetla: #E4E9EE; }

.ko { --ko-vyber: #FFF6E8; font-family: var(--pismo); color: var(--text); position: relative; }
.ko-liste { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem 1rem; margin-bottom: 0.6rem; }
.ko-souhrn { font-size: 0.86rem; color: var(--tlumene); font-variant-numeric: tabular-nums; }
.ko-souhrn b { color: var(--inkoust); font-weight: 700; }
.ko-ovladani { display: flex; gap: 0.3rem; align-items: center; flex-wrap: wrap; }
.ko-ovladani button { font: inherit; font-size: 0.84rem; font-weight: 600; padding: 0.32rem 0.7rem; border: 1px solid var(--linka); background: var(--podklad); color: var(--inkoust); border-radius: 6px; cursor: pointer; }
.ko-ovladani button:hover, .ko-ovladani button:focus-visible { border-color: var(--akcent); color: var(--akcent-tmavy); outline: none; }
.ko-ovladani .napoveda { font-size: 0.78rem; color: var(--tlumene); margin-left: 0.5rem; }
.ko-trat { overflow-x: auto; overflow-y: hidden; border: 1px solid var(--linka); border-radius: 8px; background: var(--podklad2); cursor: grab; scrollbar-width: thin; touch-action: pan-x pan-y; position: relative; }
.ko-trat.tahnu { cursor: grabbing; user-select: none; }
.ko-trat:focus-visible { outline: 2px solid var(--akcent); outline-offset: 2px; }
.ko-plocha { position: relative; height: var(--vyska-k); width: calc(var(--ko-rozsah) * 96px); }
/* Dvě rozvržení výšek spočítaná v PHP (kompaktní -k / projektové -p, spec „Přepínání rozvržení“):
   JS jen přepíná atribut data-projekty na .ko, pozice čte z inline proměnných prvků. */
.ko[data-projekty] .ko-plocha { height: var(--vyska-p); }
.ko-pruh { top: var(--top-k); }
.ko[data-projekty] .ko-pruh { top: var(--top-p); height: var(--vyska-p); }
.ko[data-projekty] .ko-pruh small { display: none; }
.ko-projekt { display: none; top: var(--top-p); }
.ko[data-projekty] .ko-projekt { display: block; }
.ko-milnik { top: var(--top-k); }
.ko[data-projekty] .ko-milnik { top: var(--top-p); }
.ko-rok { position: absolute; top: 0; bottom: 0; border-left: 1px solid #ECECEC; }
.ko-rok.je-dekada { border-left-color: #CFCFCF; }
.ko-rok::after { content: attr(data-rok); position: absolute; top: 24px; left: 5px; font-size: 0.74rem; color: var(--tlumene); font-variant-numeric: tabular-nums; white-space: nowrap; }   /* roky nahoře (Víťa 19. 9.) */
.ko-rok.je-dekada::after { color: var(--inkoust); font-weight: 700; }
.ko[data-zoom="fit"] .ko-rok:not(.je-dekada):not(.je-pul)::after { opacity: 0; }
.ko-dnes { position: absolute; top: 0; bottom: 0; border-left: 2px dashed var(--akcent); }
/* Popisek vlevo od čáry: vpravo by vyčníval za konec trati a rozšiřoval posuvnou plochu (při „Vše“ ujel začátek osy). */
.ko-dnes::after { content: attr(data-popis); position: absolute; top: 3px; right: 6px; font-size: 0.72rem; font-weight: 700; color: var(--akcent-tmavy); white-space: nowrap; letter-spacing: 0.03em; }
.ko-pruh { position: absolute; height: 26px; border-radius: 6px; border: 0; border-left: 4px solid var(--obor); border-right: 3px solid var(--podklad2); background: var(--obor-svetla); color: var(--inkoust); font: inherit; font-size: 0.8rem; font-weight: 600; text-align: left; padding: 0 0.55rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; line-height: 26px; transition: filter 0.12s, opacity 0.15s; }
.ko-pruh small { font-weight: 400; color: var(--tlumene); margin-left: 0.3rem; }
.ko-pruh:hover, .ko-pruh:focus-visible { filter: brightness(0.95); outline: none; }
.ko-pruh.je-vybrany { outline: 2px solid var(--akcent); outline-offset: 1px; }
/* Popisek smí přetéct za pravý okraj pruhu na podklad trati (jako v Ganttu) – řádky mají mezi
   obdobími mezeru ≥ 1 rok, takže je kam. Jen při měřítku „Vše“ se popisky usekávají, aby se nemlely. */
.ko-pruh { display: flex; align-items: flex-start; gap: 0.3rem; overflow: visible; text-overflow: clip; }
/* <button> centruje obsah svisle – v projektovém rozvržení (vyšší pruh) by název sjel pod projekty; flex ho drží nahoře. */
.ko-pruh .popisek { display: block; flex: none; }   /* nesmí se zmenšovat – přetekl by přes dovětek „· n projektů“ */
.ko-pruh small { flex: none; margin-left: 0; }
.ko[data-zoom="fit"] .ko-pruh { overflow: hidden; }
.ko[data-zoom="fit"] .ko-pruh .popisek { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ko[data-zoom="fit"] .ko-pruh small { display: none; }   /* v přehledu jen názvy; „· n projektů“ bez názvu by mátlo */
.ko-pruh.je-uzky { padding-left: 0.3rem; }
.ko[data-zoom="fit"] .ko-pruh.je-uzky { color: transparent; padding: 0; }
.ko[data-zoom="fit"] .ko-pruh.je-uzky small { display: none; }
/* Milníky blízko sebe: popisek střídavě ve druhém řádku (PHP přidá je-nize). */
.ko-milnik.je-nize span { margin-top: 14px; }
.ko-pruh.je-zastresujici { background: transparent; border: 1px dashed var(--obor); border-left: 4px solid var(--obor); color: var(--obor); }
.ko-projekt { position: absolute; height: 15px; line-height: 15px; border-radius: 4px; border: 0; border-right: 2px solid var(--obor-svetla); background: var(--obor); color: #fff; font: inherit; font-size: 0.68rem; font-weight: 600; text-align: left; padding: 0 0.4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; opacity: 0.88; transition: opacity 0.12s; }
.ko-projekt:hover, .ko-projekt:focus-visible { opacity: 1; outline: none; }
.ko-projekt.je-vybrany { outline: 2px solid var(--inkoust); outline-offset: 1px; opacity: 1; }
.ko-projekt.je-uzky { color: transparent; padding: 0; }
.ko-milnik { position: absolute; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 3px; border: 0; background: none; padding: 0; cursor: pointer; font: inherit; color: var(--text); transition: opacity 0.15s; }
/* Milníky (certifikace, ocenění, maturita…) svítí zlatě bez ohledu na obor (Víťa 19. 9.). */
.ko-milnik i { width: 12px; height: 12px; background: var(--zlata); transform: rotate(45deg); border-radius: 2px; display: block; box-shadow: 0 0 0 2px var(--podklad), 0 0 9px 2px rgba(217, 166, 38, 0.55); }
.ko-milnik span { font-size: 0.72rem; white-space: nowrap; font-weight: 700; color: var(--zlata-tmava); }
.ko-milnik.je-vybrany span { color: var(--akcent-tmavy); text-decoration: underline; }
.je-ztlumeny { opacity: 0.22 !important; }
/* Legenda těsně, aby se vešla na jeden řádek (Víťa 19. 9.); na úzkém displeji se zalomí. */
.ko-legenda { list-style: none; padding: 0; margin: 0.6rem 0 0; display: flex; flex-wrap: wrap; gap: 0.15rem 0.2rem; font-size: 0.72rem; color: var(--tlumene); }
.ko-legenda li { display: flex; align-items: center; gap: 0.25rem; cursor: pointer; padding: 0.05rem 0.2rem; border-radius: 999px; border: 1px solid transparent; white-space: nowrap; }
.ko-legenda li:hover { border-color: var(--linka); }
.ko-legenda li.je-aktivni { border-color: var(--obor); color: var(--inkoust); background: var(--obor-svetla); }
.ko-legenda i { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--obor); flex: none; }
.ko-detail { position: absolute; left: 0.6rem; z-index: 6; margin: 0; padding: 0.9rem 2.4rem 0.9rem 1.1rem; border-left: 3px solid var(--akcent); background: #fff; border-radius: 0 8px 8px 0; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); font-size: 0.95rem; color: var(--text); max-width: min(440px, calc(100% - 1.2rem)); max-height: 70vh; overflow: auto; }
.ko-detail-zavrit { position: absolute; top: 0.25rem; right: 0.35rem; border: 0; background: none; font: 1.4rem/1 system-ui, sans-serif; color: var(--tlumene); cursor: pointer; padding: 0.2rem 0.4rem; }
.ko-detail-zavrit:hover { color: var(--inkoust); }
.ko-detail .obdobi { font-size: 0.78rem; font-weight: 700; color: var(--akcent-tmavy); letter-spacing: 0.03em; font-variant-numeric: tabular-nums; }
.ko-detail .org { font-weight: 700; color: var(--inkoust); font-size: 1.02rem; }
.ko-detail .role { color: var(--inkoust); }
.ko-detail .zam { color: var(--tlumene); font-size: 0.92rem; margin-top: 0.2rem; }
.ko-detail .vyzva { color: var(--tlumene); font-style: italic; }
.ko-detail ul { margin: 0.4rem 0 0; padding-left: 1.1rem; font-size: 0.88rem; }
.ko-detail ul .kdy { color: var(--akcent-tmavy); font-weight: 700; font-variant-numeric: tabular-nums; }
.ko-detail .ramec { color: var(--tlumene); font-size: 0.85rem; }
.ko-tipy { display: none; }

.ko-strom { margin-top: 1rem; font-size: 0.9rem; color: var(--text); }
.ko-strom > summary { cursor: pointer; font-weight: 600; color: var(--inkoust); }
.ko-strom ol { list-style: none; padding: 0; margin: 0.5rem 0 0; }
.ko-strom-seznam > li { border-top: 1px solid var(--linka); }
.ko-strom summary.radek { cursor: pointer; padding: 0.5rem 0.3rem; display: flex; gap: 0.55rem; align-items: baseline; flex-wrap: wrap; border-radius: 4px; }
.ko-strom summary.radek:hover { background: var(--podklad2); }
.ko-strom details.je-vybrany > summary.radek { background: var(--ko-vyber); }
.ko-strom .tecka { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--obor); display: inline-block; flex: none; align-self: center; }
.ko-strom .tecka.je-milnik { border-radius: 2px; transform: rotate(45deg); background: var(--zlata); }

/* Zlatá milníků (Víťa 19. 9.: „všechno svítit zlatě“) – ladí k oranžové iTiSPM, popisek tmavší kvůli kontrastu. */
.ko { --zlata: #D9A626; --zlata-tmava: #8A6A12; }

/* Přehledové okno pod osou: minimapa celé osy s roky, milníky a čárou dnes; výřez ukazuje, co je vidět
   v trati, klepnutím/tažením se osa posune (Víťa 19. 9.). JS ho odkryje. */
.ko-nav { position: relative; height: 36px; margin-top: 0.45rem; border: 1px solid var(--linka); border-radius: 6px; background: var(--podklad2); cursor: pointer; user-select: none; touch-action: none; overflow: hidden; }
.ko-nav-rok { position: absolute; top: 0; bottom: 0; border-left: 1px solid #E4E4E4; }
.ko-nav-rok::after { content: attr(data-rok); position: absolute; bottom: 3px; left: 3px; font-size: 0.62rem; color: var(--tlumene); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ko-nav-rok.je-dekada { border-left-color: #CFCFCF; }
.ko-nav-rok.je-dekada::after { color: var(--inkoust); font-weight: 700; }
.ko-nav-milnik { position: absolute; top: 6px; width: 7px; height: 7px; margin-left: -3.5px; background: var(--zlata); transform: rotate(45deg); border-radius: 1px; }
/* Období vybraného oboru v minimapě: kosočtverec v barvě oboru na začátku (jako zlaté
   milníky o řádek výš) a tenká linka až po konec, ať je vidět i délka. Bez filtru
   se nekreslí nic — minimapa má zůstat čitelná. */
.ko-nav-obdobi { position: absolute; top: 17px; height: 4px; background: var(--obor); border-radius: 2px; opacity: 0; pointer-events: none; transition: opacity 0.15s; }
.ko-nav-obdobi::before { content: ""; position: absolute; left: -4px; top: -2.5px; width: 9px; height: 9px; background: var(--obor); transform: rotate(45deg); border-radius: 1px; }
.ko-nav-obdobi.je-aktivni { opacity: 1; }
.ko-nav-dnes { position: absolute; top: 0; bottom: 0; border-left: 2px dashed var(--akcent); }
.ko-nav-okno { position: absolute; top: 0; bottom: 0; min-width: 8px; background: rgba(234, 144, 24, 0.16); border: 2px solid var(--akcent); border-radius: 4px; cursor: grab; }
.ko-nav.tahnu .ko-nav-okno { cursor: grabbing; }
.ko-nav:focus-visible { outline: 2px solid var(--akcent); outline-offset: 2px; }
.ko-strom .kdy { font-variant-numeric: tabular-nums; color: var(--akcent-tmavy); font-weight: 700; font-size: 0.8rem; min-width: 7.6rem; }
.ko-strom b { color: var(--inkoust); }
.ko-strom .role { color: var(--tlumene); }
.ko-strom-detail { padding: 0 0.3rem 0.6rem 1.5rem; }
.ko-strom-projekty { margin: 0 0 0.7rem 1.5rem; }
.ko-strom-projekty > summary { cursor: pointer; color: var(--akcent-tmavy); font-weight: 600; font-size: 0.85rem; padding: 0.2rem 0.3rem; }
.ko-strom-projekty ol { margin: 0.2rem 0 0 0.2rem; }
.ko-strom-projekty li { border-top: 1px dashed var(--linka); }
.ko-strom-projekty .kdy { min-width: 8.2rem; }
.ko-strom-projekty .popis { padding: 0 0.3rem 0.5rem 1.5rem; color: var(--tlumene); font-size: 0.85rem; }

.kontakt-seznam { list-style: none; padding: 0; }
.kontakt-seznam li { padding: 0.3rem 0; }

/* Rozcestník: dvě karty, každá ve své linii; celá karta = jeden odkaz */
.karty { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.5rem; margin: 2rem 0; }
.karta { display: block; padding: 1.6rem 1.5rem; border: 1px solid var(--linka); border-radius: 12px; text-decoration: none; color: var(--text); background: var(--podklad2); border-top: 5px solid var(--karta-akcent, var(--inkoust)); }
.karta:hover, .karta:focus-visible { border-color: var(--karta-akcent, var(--inkoust)); color: var(--text); box-shadow: 0 6px 24px rgba(0, 0, 0, 0.06); }
.karta h2, .karta h3 { margin: 0 0 0.3em; border: 0; padding: 0; font-size: 1.5rem; }
.karta .podtitul { margin: 0 0 0.9rem; }
.karta .dal { display: block; margin-top: 1rem; font-weight: 600; color: var(--karta-odkaz, var(--inkoust)); }
.karta-itispm { --karta-akcent: #EA9018; --karta-odkaz: #B96E09; font-family: "Open Sans", var(--pismo); }
.karta-itispm h2, .karta-itispm h3 { font-family: "Open Sans", var(--pismo); font-weight: 700; color: #292929; }
.karta-poky { --karta-akcent: #21544F; --karta-odkaz: #21544F; background: #F5F1EA; border-color: #E6DFD2; }
.karta-poky h2, .karta-poky h3 { font-family: "Playfair Display", Georgia, serif; font-weight: 600; }

/* Značky [DOPLNIT] / [k potvrzení] z návrhu — vidí je jen test za heslem */
mark.doplnit { background: #FFF3C4; color: #6B4E00; padding: 0 0.25em; border-radius: 3px; font-size: 0.9em; }

/* Patička */
.paticka { border-top: 1px solid var(--linka); background: var(--podklad2); font-size: 0.92rem; color: var(--tlumene); }
.paticka-in { padding: 1.4rem 0 1.8rem; text-align: center; }
.paticka p { margin: 0 0 0.4em; }
.rodina-popis { color: var(--inkoust); font-weight: 600; margin-right: 0.5em; }
.paticka .del { margin: 0 0.35em; }
.web-priprava { color: var(--tlumene); }
.paticka a { color: var(--odkaz); }

/* ---------- Vzpomínáme ---------- */
.vzpominame { margin: 3rem 0 1rem; padding-top: 2rem; border-top: 1px solid var(--linka); }
.vzpominame h2 { margin-top: 0; padding-top: 0; border-top: 0; }
.vzp-perex { color: var(--tlumene); }
.karta-vzpominka { width: 100%; text-align: left; font: inherit; cursor: pointer; background: var(--podklad2); --karta-akcent: #6B7A70; --karta-odkaz: #6B7A70; }
.karta-vzpominka:hover, .karta-vzpominka:focus-visible { color: var(--text); }
.karta-vzpominka .vzp-roky { display: block; }
.vzp-logo { width: 64px; height: 64px; display: block; margin: 0 0 0.8rem; }
/* Logo v modálu: Medvídkárna má širokou textovou verzi, RarePlants čtvercovou značku. */
.vzp-logo-velke { width: auto; height: auto; max-width: 20rem; max-height: 7rem; margin: 0 auto 1.2rem; }
.vzp-modal { border: 0; padding: 0; border-radius: 14px; max-width: 42rem; width: calc(100% - 2rem); position: relative; }
.vzp-modal::backdrop { background: rgba(26,26,26,0.55); }
.vzp-modal-in { padding: 1.8rem 1.6rem 2rem; }
.vzp-zavrit-form { margin: 0; }
.vzp-zavrit { position: absolute; top: .6rem; right: .8rem; border: 0; background: none; font: 1.6rem/1 system-ui, sans-serif; color: var(--tlumene); cursor: pointer; padding: 0.2rem 0.4rem; }
.vzp-zavrit:hover, .vzp-zavrit:focus-visible { color: var(--inkoust); }
/* Dvě i čtyři fotky se rozloží do jedné řady; na úzkém displeji se mřížka sama zalomí. */
.vzp-obrazky { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); justify-items: center; gap: 0.8rem; margin: 1.2rem 0 1.4rem; }
.vzp-obrazky img { width: 100%; max-width: 11rem; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 10px; border: 1px solid var(--linka); }
.vzp-modal h3 { font-size: 1.5rem; }
.vzp-modal h4 { margin: 1.2rem 0 0.3em; font-size: 1.05rem; }
.vzp-modal p { text-align: justify; hyphens: auto; }
.vzp-modal .podtitul { text-align: left; hyphens: manual; }
html:not(.js) .vzp-modal { display: block; position: static; max-width: none; width: auto; margin: 1rem 0; border: 1px solid var(--linka); }
html:not(.js) .vzp-zavrit-form { display: none; }
html:not(.js) .karta-vzpominka .dal { display: none; }

@media (max-width: 40rem) {
    body { font-size: 1rem; }
    .hlavicka-in { padding: 0.7rem 0; }
    .loga { gap: 1.2rem; }
    .logo img { height: 32px; }
    .profil-hlava { flex-direction: column; align-items: center; text-align: center; gap: 0.8rem; }
    /* Na telefonu tlačítka pod sebou, každé na celou šířku obsahu (tři loga POKY se vedle iTiSPM nevejdou). */
    .hero-loga { flex-wrap: wrap; gap: 0.8rem; }
    .hero-logo, .hero-logo-poky { flex-basis: 100%; min-height: 5.5rem; padding: 0.8rem; }
    .vzp-obrazky { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Vkládací stránka osy (vlastimil/osa/) ----------
   Jen osa v <iframe> na itispm.cz: bez okrajů stránky, strom pod osou se
   do výřezu nevejde a je i na profilu, proto se tu skrývá. */
main.osa-vlozena { max-width: none; margin: 0; padding: 0.5rem 0.75rem 0.75rem; }
main.osa-vlozena .ko-strom { display: none; }
main.osa-vlozena .ko-detail { display: none; }   /* detail ukazuje rodičovský web */
