/* ==========================================================================================
   docentka.cz — hlavní stylesheet.

   Barvy, písma a tvary jsou v css/tokeny.css (kopie z brand/tokeny — needitovat ručně).
   Tady je jen rozložení a vzhled komponent. Ve stránkách se nikdy nepíše pevná barva.

   Pojmenování: .blok__prvek--varianta, česky.
   ========================================================================================== */

* { margin: 0; padding: 0; box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }

body {
    font-family: var(--pismo);
    font-size: 16px;
    line-height: var(--radek);
    color: var(--text);
    background: var(--plocha);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

a { color: var(--zelena-tmava); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; }

.obal { width: 100%; max-width: var(--max-sirka); margin: 0 auto; padding: 0 var(--mezera-s); }

/* ---------------------------------------------------------------- typografie */
h1, h2, h3 { color: var(--nadpis); line-height: var(--radek-nadpis); font-weight: var(--tucne); }
h1 { font-size: var(--vel-h1); }
h2 { font-size: var(--vel-h2); }
h3 { font-size: var(--vel-h3); }
p { max-width: 70ch; }

.nadpis-sekce { text-align: center; margin-bottom: var(--mezera-m); }
.nadpis-sekce h2 { margin-bottom: var(--mezera-xs); }
.nadpis-sekce p { color: var(--text-slaby); margin: 0 auto; }

/* ---------------------------------------------------------------- tlačítka */
.tlacitko {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .8rem 1.5rem;
    border-radius: var(--r-s);
    font-weight: var(--tucne);
    font-size: var(--vel-m);
    border: 1px solid transparent;
    cursor: pointer;
    transition: background var(--rychle), border-color var(--rychle);
}
.tlacitko:hover { text-decoration: none; }
.tlacitko--hlavni { background: var(--modra); color: #fff; }
.tlacitko--hlavni:hover { background: var(--modra-2); }
.tlacitko--vedlejsi { border-color: var(--linka-2); color: var(--nadpis); background: var(--plocha); }
.tlacitko--vedlejsi:hover { border-color: var(--modra); }
.tlacitko--svetle { background: var(--zelena); color: var(--modra); }
.tlacitko--svetle:hover { background: var(--zelena-svetla); }

/* ---------------------------------------------------------------- hlavička */
/* Hlavička zůstává viset nahoře i při posunu stránky.
   Pozor: lepí se i obalový <div data-komponenta="hlavicka">. Samotný .hlavicka by se lepil
   jen uvnitř toho obalu, a ten je vysoký přesně jako hlavička — nebylo by to vidět. */
.hlavicka,
[data-komponenta="hlavicka"] {
    position: sticky;
    top: 0;
    z-index: 50;
}

.hlavicka {
    background: var(--plocha);
    border-bottom: 1px solid var(--linka);
    transition: box-shadow var(--rychle);
}

/* Jakmile stránka odjede, hlavička se jemně oddělí stínem od obsahu pod sebou. */
.hlavicka.posunuto { box-shadow: var(--stin-2); }
.hlavicka__obsah {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--mezera-s);
    padding: .9rem var(--mezera-s);
    max-width: var(--max-sirka);
    margin: 0 auto;
}
.hlavicka__logo img { height: 34px; display: block; }
.hlavicka__logo .logo--tmave { display: none; }

.hlavicka__menu { display: flex; gap: 1.4rem; }
.hlavicka__menu a { color: var(--text); font-size: var(--vel-s); padding: .3rem 0; border-bottom: 2px solid transparent; }
.hlavicka__menu a:hover { color: var(--nadpis); text-decoration: none; border-bottom-color: var(--linka-2); }
.hlavicka__menu a.aktivni { color: var(--nadpis); font-weight: var(--tucne); border-bottom-color: var(--zelena); }

.hlavicka__akce { display: flex; align-items: center; gap: .6rem; }

.hamburger {
    display: none;
    background: none;
    border: 1px solid var(--linka-2);
    border-radius: var(--r-s);
    padding: .45rem .6rem;
    cursor: pointer;
    color: var(--nadpis);
    line-height: 1;
}
.hamburger svg { width: 22px; height: 22px; display: block; }

/* Přepínač vzhledu — web je výchozí světlý, tmavý si návštěvník zapne sám. */
.prepinac-vzhledu {
    background: none;
    border: 1px solid var(--linka-2);
    border-radius: var(--r-s);
    width: 38px; height: 38px;
    display: grid; place-items: center;
    cursor: pointer;
    color: var(--text-slaby);
    transition: color var(--rychle), border-color var(--rychle);
}
.prepinac-vzhledu:hover { color: var(--nadpis); border-color: var(--modra); }
.prepinac-vzhledu svg { width: 19px; height: 19px; display: block; }

/* ---------------------------------------------------------------- hero */
.hero { padding: var(--mezera-xl) 0; background: linear-gradient(180deg, var(--plocha) 0%, var(--pozadi) 100%); }
.hero__mrizka { display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--mezera-l); align-items: center; }
.hero h1 { font-size: var(--vel-hero); margin-bottom: var(--mezera-s); }
/* Dva pevné řádky; druhý je odsazený, aby nadpis nebyl nudně zarovnaný pod sebe. */
.hero h1 span, .hero h1 em { display: block; }
.hero h1 em { font-style: normal; color: var(--zelena-tmava); margin-left: 1.6em; }
.hero__perex { font-size: var(--vel-l); color: var(--text-slaby); margin-bottom: var(--mezera-m); }
.hero__akce { display: flex; gap: .7rem; flex-wrap: wrap; }
.hero__pod { margin-top: var(--mezera-s); font-size: var(--vel-s); color: var(--text-slaby); }

/* ukázka doklad → údaj */
.ukazka {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--plocha);
    border: 1px solid var(--linka);
    border-radius: var(--r-l);
    overflow: hidden;
    box-shadow: var(--stin-3);
}
.ukazka__doklad { padding: 1.3rem; background: var(--plocha); border-right: 1px solid var(--linka); }
.ukazka__stitek { font-size: var(--vel-xs); color: var(--text-slaby); margin-bottom: .8rem; text-transform: uppercase; letter-spacing: .07em; }
.ukazka__radek { height: 8px; background: var(--linka); border-radius: 4px; margin-bottom: .55rem; }
.ukazka__radek--kratky { width: 45%; }
.ukazka__radek--stredni { width: 70%; }
.ukazka__udaj {
    display: inline-block;
    background: var(--jantar-plocha);
    border: 2px solid var(--jantar);
    border-radius: var(--r-s);
    padding: .25rem .55rem;
    font-family: var(--pismo-kod);
    font-size: var(--vel-xs);
    font-weight: var(--tucne);
    color: var(--jantar-text);
    margin: .5rem 0;
}
.ukazka__pole { padding: 1.3rem; background: var(--plocha-2); }
.ukazka__pole label { display: block; font-size: var(--vel-xs); color: var(--text-slaby); margin-bottom: .25rem; }
.ukazka__vstup {
    background: var(--plocha);
    border: 1px solid var(--linka-2);
    border-radius: var(--r-s);
    padding: .5rem .65rem;
    font-size: var(--vel-s);
    margin-bottom: .7rem;
}
.ukazka__vstup--potvrzen { border-color: var(--zelena); }
.ukazka__overeno { color: var(--zelena-tmava); font-size: var(--vel-xs); }

/* ---------------------------------------------------------------- sekce */
.sekce { padding: var(--mezera-xl) 0; }
.sekce--plocha { background: var(--pozadi); }
.sekce--tmava { background: var(--modra); color: #C9CEDC; }
.sekce--tmava h2, .sekce--tmava h3 { color: #fff; }
.sekce--tmava .nadpis-sekce p { color: #A4A9C9; }

/* karty */
.karty { display: grid; gap: var(--mezera-s); }
.karty--3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.karty--2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }

.karta {
    background: var(--plocha);
    border: 1px solid var(--linka);
    border-radius: var(--r-m);
    padding: var(--mezera-s);
}
.karta h3 { margin-bottom: .5rem; }
.karta p { color: var(--text-slaby); font-size: var(--vel-s); }
.karta__ikona {
    width: 44px; height: 44px;
    border-radius: var(--r-s);
    background: var(--plocha-2);
    color: var(--zelena-tmava);
    display: grid; place-items: center;
    margin-bottom: .8rem;
}
/* Ikony jsou vlastní inline SVG (ne emoji, ne externí font) a dědí barvu z rodiče. */
.karta__ikona svg { width: 24px; height: 24px; display: block; }
.sekce--tmava .karta { background: var(--modra-3); border-color: #22225F; }
.sekce--tmava .karta p { color: #A4A9C9; }
.sekce--tmava .karta__ikona { background: #14144F; color: var(--zelena-svetla); }

/* kroky */
.kroky { counter-reset: krok; display: grid; gap: var(--mezera-m); grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
/* Tři kroky vedle sebe — nesmí se zlomit na 2 + 1, to vypadá rozbitě. */
.kroky--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 760px) { .kroky--3 { grid-template-columns: 1fr; } }
.krok { position: relative; padding-top: 3.2rem; }
.krok::before {
    counter-increment: krok;
    content: counter(krok);
    position: absolute;
    top: 0; left: 0;
    width: 2.4rem; height: 2.4rem;
    border-radius: 50%;
    background: var(--modra);
    color: #fff;
    display: grid; place-items: center;
    font-weight: var(--tucne-vic);
}
.krok h3 { font-size: var(--vel-l); margin-bottom: .35rem; }
.krok p { color: var(--text-slaby); font-size: var(--vel-s); }

/* pruh s tvrzením */
.pruh {
    background: var(--plocha-2);
    border-left: 4px solid var(--zelena);
    border-radius: var(--r-s);
    padding: var(--mezera-s);
    margin: var(--mezera-m) 0;
}
.pruh p { font-size: var(--vel-l); margin: 0; }

/* seznam s odrážkou */
.seznam { list-style: none; }
.seznam li { position: relative; padding-left: 1.6rem; margin-bottom: .6rem; }
.seznam li::before {
    content: "";
    position: absolute;
    left: 0; top: .55em;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--zelena);
}

/* CTA */
.vyzva { background: var(--modra); color: #fff; border-radius: var(--r-l); padding: var(--mezera-m); text-align: center; }
.vyzva h2 { color: #fff; margin-bottom: var(--mezera-xs); }
.vyzva p { color: #A4A9C9; margin: 0 auto var(--mezera-s); }

/* ---------------------------------------------------------------- patička */
.paticka { background: var(--modra); color: #A4A9C9; padding: var(--mezera-l) 0 var(--mezera-s); margin-top: auto; }
.paticka__mrizka { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--mezera-m); }
.paticka img { height: 28px; margin-bottom: .8rem; }
.paticka h3 { color: #fff; font-size: var(--vel-s); text-transform: uppercase; letter-spacing: .07em; margin-bottom: .7rem; }
.paticka a { color: #C9CEDC; font-size: var(--vel-s); display: block; margin-bottom: .4rem; }
.paticka a:hover { color: #fff; }
.paticka__popis { font-size: var(--vel-s); max-width: 40ch; }
.paticka__cara { border-top: 1px solid #22225F; margin-top: var(--mezera-m); padding-top: var(--mezera-s);
    display: flex; justify-content: space-between; align-items: center; gap: var(--mezera-s);
    font-size: var(--vel-xs); color: #8B91B8; flex-wrap: wrap; }

/* Podpis autora: znak a název NAŠÍ SPOLEČNOSTI s odkazem na firemní web.
   Nikdy v hlavičce a nikdy v jednom celku s logem DocEnt.KA — je to podpis, ne druhá značka. */
.paticka__autor { display: inline-flex; align-items: center; gap: .6rem; font-size: var(--vel-s); }
.paticka__znak { flex: 0 0 28px; width: 28px; height: 28px; display: block; margin: 0; }
/* Selektor musí být zapsaný jako „.paticka a.paticka__spolecnost“, aby přebil obecné
   „.paticka a { display:block }“ pro odkazy v seznamech — samotná třída má nižší specificitu. */
.paticka a.paticka__spolecnost { display: inline; margin: 0; color: #C9CEDC; font-size: inherit; white-space: nowrap; }
.paticka a.paticka__spolecnost:hover { color: #fff; }
.paticka__spolecnost:hover { color: #fff; }
.paticka__spolecnost b { font-weight: var(--tucne); }

/* ---------------------------------------------------------------- tmavý režim: prohození log */
:root[data-rezim="tmavy"] .hlavicka__logo .logo--svetle { display: none; }
:root[data-rezim="tmavy"] .hlavicka__logo .logo--tmave { display: block; }
@media (prefers-color-scheme: dark) {
    :root:not([data-rezim="svetly"]) .hlavicka__logo .logo--svetle { display: none; }
    :root:not([data-rezim="svetly"]) .hlavicka__logo .logo--tmave { display: block; }
}

/* ---------------------------------------------------------------- responzivita */
@media (max-width: 900px) {
    .hero__mrizka { grid-template-columns: 1fr; }
    .paticka__mrizka { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    :root { --vel-hero: 2.3rem; --vel-h1: 1.9rem; --vel-h2: 1.5rem; --mezera-xl: 3rem; }
    .hero h1 em { margin-left: 1em; }
    .hamburger { display: block; }
    .hlavicka__menu {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--plocha);
        border-bottom: 1px solid var(--linka);
        flex-direction: column;
        gap: 0;
        padding: var(--mezera-xs) var(--mezera-s) var(--mezera-s);
    }
    .hlavicka__menu.otevreno { display: flex; }
    .hlavicka__menu a { padding: .7rem 0; border-bottom: 1px solid var(--linka); }
    .hlavicka__akce .tlacitko { display: none; }
    .ukazka { grid-template-columns: 1fr; }
    .ukazka__doklad { border-right: 0; border-bottom: 1px solid var(--linka); }
    .obal { padding: 0 16px; }
}

@media (max-width: 480px) {
    .paticka__mrizka { grid-template-columns: 1fr; }
}
