/* =========================================================================
   pages.css — komponenty podstránek (Lidé, Redakční zásady,
   Vlastnická struktura, Ochrana osobních údajů).

   Navazuje na produkční main.css. Barvy bere z jeho proměnných,
   s fallbackem na hodnoty odečtené z homepage, aby fungoval i samostatně.
   TOTO je soubor určený k nasazení.
   ========================================================================= */

:root {
  --nv:    var(--navy, #2b2d42);
  --nv-d:  var(--navy-deep, #21232f);
  --rd:    var(--red, #ef233c);
  /* Firemní #ef233c má na bílé kontrast 4,22:1, na #f6f7f9 dokonce 3,94:1 —
     obojí pod hranicí 4,5:1 pro běžný text. --rd-tx je stejný odstín i sytost
     (H 353°, S 85 %), jen tmavší: 5,11:1 na bílé, 4,77:1 na šedé.
     --rd zůstává pro grafiku, boxy a plochy, kde na kontrast textu nedojde. */
  --rd-tx: var(--red-text, #d61f36);
  --tx:    var(--ink, #1c1e26);
  --tx-s:  var(--ink-soft, #565a6b);
  --tx-f:  var(--ink-faint, #6c7183);
  --ln:    var(--line, #e3e5ea);
  --pp:    var(--paper, #ffffff);
  --pp-a:  var(--paper-alt, #f6f7f9);
  --rd-sm: 8px;
  --rd-lg: 16px;
}

/* ---------- Skip link ---------- */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--rd-tx); color: #fff; padding: 10px 18px; border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; }

/* ---------- Kompaktní hlavička podstránky ---------- */
/* Podstránky nesou class="hero page-hero" — .hero dodá produkční vzhled
   (navigace, logo, barvy), .page-hero ho jen zkrátí a upraví typografii. */
.hero.page-hero { padding-bottom: clamp(32px, 4vw, 56px); }
.hero.page-hero .hero-content { padding-top: clamp(18px, 2.5vw, 34px); max-width: 820px; }

.hero.page-hero h1 { margin-bottom: .3em; font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3rem); }
.hero.page-hero .sub { color: rgba(255,255,255,.76); font-size: clamp(1rem,.95rem + .3vw,1.15rem); max-width: 60ch; margin-bottom: 0; }

/* ---------- Drobečky ---------- */
/* Drobeček je <nav> uvnitř .hero, takže na něj sedá .hero nav { padding-block: 26px }
   z main.css — pravidlo psané pro hlavní menu. Pod drobečkem tím vznikalo 38 px
   hluchého místa a vypadal odskočeně od nadpisu. */
.hero.page-hero .breadcrumb { padding-block: 6px 0; font-size: .82rem; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; padding: 0; }
.breadcrumb li { color: rgba(255,255,255,.55); }
.breadcrumb li::after { content: "›"; margin-left: 6px; color: rgba(255,255,255,.3); }
.breadcrumb li:last-child::after { content: ""; }
.breadcrumb a { color: rgba(255,255,255,.72); }
.breadcrumb a:hover { color: #fff; text-decoration: underline; }

/* ---------- Metadata dokumentu ---------- */
.doc-meta {
  display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 20px;
  font-size: .82rem; color: rgba(255,255,255,.6);
}
.doc-meta strong { color: rgba(255,255,255,.9); font-weight: 600; }

/* ---------- Layout s obsahem ---------- */
.page-body { padding-block: clamp(44px, 6vw, 72px); }
.with-toc { display: grid; grid-template-columns: minmax(0,1fr) 268px; gap: 56px; align-items: start; }

.toc {
  position: sticky; top: 24px; font-size: .88rem;
  /* Obsah je v DOM před textem, aby ho klávesnice i odečítač našly tam,
     kde ho na mobilu vidí oko. Na desktopu ho do pravého sloupce vrátí order. */
  order: 2;
}
.toc h2, .toc h4 {
  font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--tx-f); margin-bottom: 10px;
}
.toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--ln); }
.toc li { margin: 0; }
.toc a {
  display: block; padding: 7px 0 7px 14px; margin-left: -2px;
  border-left: 2px solid transparent; color: var(--tx-s);
}
.toc a:hover { color: var(--tx); border-left-color: var(--rd); }

/* ---------- Blok se sekcí ---------- */
.anchor-block { scroll-margin-top: 24px; }
/* Původní id sekcí zásad, na která mohou odkazovat tituly. Nic nezobrazují,
   jen drží místo, kam starý odkaz doskočí. */
.kotva-alias { display: block; height: 0; scroll-margin-top: 24px; }
.anchor-block + .anchor-block { margin-top: 48px; padding-top: 48px; border-top: 1px solid var(--ln); }
/* .section-lead má na webu dvě role: úvod celého dokumentu (zásady, ochrana
   údajů) a podtitulek jedné sekce (kontakt, vlastnická struktura). Úvod
   dokumentu nese navíc .doc-uvod a končí stejnou linkou, jakou jsou od sebe
   oddělené sekce — vázat ji na následující blok by při jiném pořadí
   vykreslilo čáru i tam, kde nemá být. */
.doc-uvod { padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid var(--ln); }
.anchor-block h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.85rem); }
.anchor-block h3 { margin-top: 2em; font-size: 1.05rem; }

/* ---------- Odrážky se zadáním obsahu ---------- */
.spec { list-style: none; padding: 0; margin: 0 0 1em; }
.spec > li {
  position: relative; padding-left: 22px; margin-bottom: .6em;
  color: var(--tx-s); font-size: .95rem;
}
.spec > li::before {
  content: ""; position: absolute; left: 3px; top: .62em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--rd); opacity: .55;
}
.spec strong { color: var(--tx); font-weight: 650; }
.spec a { color: var(--rd-tx); font-weight: 500; }
.spec a:hover { text-decoration: underline; }

/* ---------- Placeholder / poznámka k implementaci ---------- */
.placeholder {
  padding: 20px 22px; margin-bottom: 32px;
  background: var(--pp-a); border: 1px dashed var(--ln); border-left: 3px solid var(--rd);
  border-radius: 0 var(--rd-sm) var(--rd-sm) 0;
}
.ph-label {
  display: block; margin-bottom: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tx-f);
}
.placeholder > :last-child { margin-bottom: 0; }

/* ---------- Právní definiční seznam ---------- */
.dl-legal {
  display: grid; grid-template-columns: 220px minmax(0,1fr); margin: 0;
  border: 1px solid var(--ln); border-radius: var(--rd-sm); overflow: hidden;
}
.dl-legal dt {
  padding: 12px 16px; background: var(--pp-a); border-bottom: 1px solid var(--ln);
  font-size: .84rem; font-weight: 600; color: var(--tx-s);
}
.dl-legal dd { padding: 12px 16px; margin: 0; border-bottom: 1px solid var(--ln); font-size: .94rem; }
.dl-legal dt:last-of-type, .dl-legal dd:last-of-type { border-bottom: 0; }

/* ---------- Tabulky ---------- */
.table-scroll { overflow-x: auto; border: 1px solid var(--ln); border-radius: var(--rd-sm); margin-bottom: 1em; }
.table-scroll:focus-visible { outline: 2px solid var(--rd-tx); outline-offset: 2px; }
.table-scroll table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 560px; }
.table-scroll th, .table-scroll td { text-align: left; padding: 12px 15px; border-bottom: 1px solid var(--ln); vertical-align: top; }
.table-scroll thead th {
  background: var(--pp-a); font-size: .8rem; text-transform: uppercase; letter-spacing: .07em;
  color: var(--tx-s); font-weight: 700;
}
.table-scroll tbody tr:last-child td { border-bottom: 0; }

/* ---------- Profil osoby ---------- */
.profile-head { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }

.hero.page-hero .chip {
  background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.18); color: rgba(255,255,255,.85);
}
.hero.page-hero .chip:hover { border-color: rgba(255,255,255,.5); color: #fff; }
.hero.page-hero .p-glyph { border-color: rgba(255,255,255,.22); color: rgba(255,255,255,.7); }
.hero.page-hero .p-glyph:hover { border-color: #fff; color: #fff; }

/* ---------- Karta osoby v adresáři ---------- */
/* =========================================================================
   Položka adresáře. Bez fotky nemá smysl vysoká dlaždice — obsah je
   jméno, role, tituly a kontakty, tedy čtyři řádky. Karta je proto nízká
   a hustá: jméno a ikony na jednom řádku, role hned pod ním, tituly dole.
   Jméno je roztažený odkaz přes celou plochu, ikony leží nad ním.
   ========================================================================= */

a.p-name {
  font-size: .98rem; font-weight: 650; line-height: 1.3; color: var(--tx);
  text-decoration: none; min-width: 0;
}
a.p-name::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Chybějící kontakt — prázdné místo, ne mrtvý odkaz. */

/* ---------- Drobnosti ---------- */
.muted { color: var(--tx-f); }
.small { font-size: .86rem; }
.mb-0 { margin-bottom: 0; }
.mt-24 { margin-top: 24px; }
.mt-40 { margin-top: 40px; }
.section-lead { max-width: 66ch; color: var(--tx-s); }
.tag {
  display: inline-block; padding: 3px 10px; border-radius: 100px;
  background: var(--pp-a); border: 1px solid var(--ln);
  font-size: .78rem; font-weight: 600; color: var(--tx-s);
}
.tag--red { background: rgba(239,35,60,.09); border-color: rgba(239,35,60,.22); color: #c5122a; }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .with-toc { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .toc { position: static; order: 0; padding: 18px; background: var(--pp-a); border-radius: var(--rd-sm); }
  .toc ol { border-left: 0; }
  .toc a { padding-left: 0; border-left: 0; }
}
@media (max-width: 640px) {
  .dl-legal { grid-template-columns: minmax(0,1fr); }
  .dl-legal dt { border-bottom: 0; padding-bottom: 2px; background: transparent; }
  .dl-legal dd { padding-top: 2px; }
}

/* Odsazení mezi skupinami týmu (Vydavatelství / Redakce) */
.team-block + .team-block { margin-top: clamp(40px, 5vw, 64px); }
.team-block .team-grid { margin-top: 28px; }

/* Chipy uvnitř klikací karty jsou <span> — vnořený <a> v <a> rozbíjí parser. */
span.chip { cursor: inherit; }

/* Přepínač titulů pod nadpisem skupiny */
/* Filtr zůstává po ruce i uprostřed dlouhého seznamu — u 44 redaktorů
   je zúžení podle titulu hlavní způsob, jak se v adresáři vyznat. */

/* Stín by byl vidět i v klidové poloze a působil jako chybná linka pod
   tlačítky. Odsazení nahoře řeší, aby pod tlačítka nic nepodjíždělo. */

/* Dlouhá jména na jeden řádek.
   Karta 271 px: 2×22 padding + 46 avatar + 14 mezera nechá jménu jen 167 px,
   což je přesně šířka „Kristýna Vondráčková“ → zlom. Zúžením paddingu,
   avataru a mezery a drobným zmenšením písma vznikne 177 px místa. */
.team-block .p-head { gap: 12px; }

/* Schéma vlastnické struktury */
.schema { margin: 28px 0; padding: 24px; background: var(--pp-a); border: 1px solid var(--ln); border-radius: var(--rd-lg); }
.schema svg { display: block; width: 100%; height: auto; }
.schema figcaption { margin-top: 16px; font-size: .84rem; color: var(--tx-f); text-align: center; }

/* Věcné konstatování — bez rámování, plyne v textu */
.note { margin: 0 0 1em; }
.note p { margin: 0 0 .8em; color: var(--tx-s); }
.note p:last-child { margin-bottom: 0; }
.note strong { color: var(--tx); }

/* Věcný seznam (na rozdíl od .spec nejde o poznámku k dopsání) */
.fakta { margin: 0 0 1em; padding-left: 1.15em; }
.fakta li { margin-bottom: .5em; color: var(--tx-s); font-size: .95rem; }
.fakta li::marker { color: var(--rd-tx); }
.fakta strong { color: var(--tx); }
.anchor-block h3 { margin-top: 2.2em; font-size: 1.02rem; }
.anchor-block h3:first-of-type { margin-top: 1.6em; }

/* Jediné datum platnosti údajů — na konci stránky, platí pro celý obsah */
.zdroj-udaju {
  margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--ln);
  font-size: .84rem; color: var(--tx-f);
}

/* Rezervovat místo pro posuvník, aby obsah neposkakoval mezi krátkou
   a dlouhou stránkou (na systémech s klasickými posuvníky). */
html { scrollbar-gutter: stable; }

/* Odkazový výpis v kartě vedle kontaktu na homepage */
.cc-links { list-style: none; margin: 0; padding: 0; }
.cc-links li + li { margin-top: 2px; border-top: 1px solid var(--ln); }
.cc-links a { display: block; padding: 11px 0; font-size: .94rem; font-weight: 500; color: var(--tx); }
.cc-links a::after { content: " →"; color: var(--rd-tx); }
.cc-links a:hover { color: var(--rd-tx); }

/* Zmínka o nezávislém měření a hodnocení v sekci Portfolio */
.hodnoceni { margin-top: -.4em; }
.hodnoceni strong { color: var(--tx); font-weight: 650; }

/* =========================================================================
   Textové odkazy v obsahu — červeně a podtrženě, aby byly rozpoznatelné.
   Platí napříč celým webem. Komponenty (navigace, karty, chipy, ikony,
   drobečky, patička) si níže vrací vlastní vzhled.
   ========================================================================= */
.page-body p a,
/* Karty osob nejsou text — jméno je celý klikací blok a ikony mají vlastní
   vzhled. Bez výjimky je pravidlo pro odkazy v textu obarvilo načerveno
   a podtrhlo, jakmile /redakce/ dostala .page-body. */
.page-body li:not(.person) a,
.page-body td a,
.page-body dd a,
#o-nas p a,
#portfolio p a,
.contact .lead a,
.team .intro a {
  color: var(--rd-tx);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.page-body p a:hover,
.page-body li a:hover,
.page-body td a:hover,
.page-body dd a:hover,
#o-nas p a:hover,
#portfolio p a:hover,
.contact .lead a:hover,
.team .intro a:hover { text-decoration-thickness: 2px; }

/* výjimky — tyhle odkazy jsou komponenty, ne text */
/* jen položky obsahu — zpětný odkaz pod nimi se chová jako běžný textový odkaz */
.page-body .toc ol a, .toc ol a { color: var(--tx-s); text-decoration: none; }
.page-body .toc ol a:hover, .toc ol a:hover { color: var(--tx); }
.page-body .chip,
.page-body .p-glyph,
.page-body .p-more { text-decoration: none; }

/* =========================================================================
   Sekce s logy: dvě třetiny text, jedna třetina logotypy vpravo.
   Text je tím užší a čte se líp, sekce je nižší. Logotypy se needitují,
   omezuje je jen max-height a max-width.
   ========================================================================= */
.sekce-text > :last-child { margin-bottom: 0; }

/* ON AIR pruh začíná na stejné ose jako obsah stránky */

/* Statistiky v hero nesou celé sousloví, ne jen číslo — menší stupeň
   a vlastní řádkování, ať se tři údaje vejdou vedle sebe. */
.hero .stats { gap: clamp(24px, 4vw, 56px); }
.hero .stat .num {
  font-size: clamp(1.35rem, .95rem + 1.15vw, 2rem);
  line-height: 1.15; letter-spacing: -.025em; white-space: nowrap;
}
.hero .stat .label { margin-top: 6px; }
@media (max-width: 620px) {
  .hero .stat .num { white-space: normal; }
}

/* =========================================================================
   Šířka textových bloků. Původní omezení na 62 ch lámalo i krátké věty
   do dvou řádků. Zvednuto na 92 ch — dvouřádkové věty se srovnají na jeden
   řádek, ale řádek nepřeroste čitelnou délku na širokých obrazovkách.
   Platí napříč webem.
   ========================================================================= */
.intro,
.about-lead,
.about-text,
.contact .lead,
.section-lead,
.tvrzeni p,
.hero.page-hero .sub { max-width: 92ch; }

.page-body p,
.page-body .note p,
.page-body .fakta li,
.page-body .spec > li { max-width: 92ch; }

/* =========================================================================
   Výška tmavé hlavičky. Homepage zůstává vysoká — nese nadpis, perex
   i statistiky. Podstránky jsou stažené, aby modrý pruh nezabíral místo
   nad obsahem, kde je jen drobečková navigace a nadpis.
   ========================================================================= */
.hero.page-hero { padding-bottom: 18px; }
/* main.css dává .hero-content spodní odsazení 100 px (mobil 72 px) pro homepage.
   Podstránky ho dědily a pod nadpisem vznikalo 124 px prázdné modré plochy. */
.hero.page-hero .hero-content { padding-top: 4px; padding-bottom: 0; }
.hero.page-hero .breadcrumb ol { margin-bottom: 10px; }
.hero.page-hero h1 { font-size: clamp(1.7rem, 1.2rem + 1.9vw, 2.6rem); margin-bottom: .15em; }

/* profil osoby — kompaktní hlavička, tituly a kontakty jsou v obsahu */
.hero.page-hero .profile-head { gap: 16px; }
.hero.page-hero .profile-head .sub { font-size: .95rem; }

/* Tituly a kontakty přesunuty z tmavé hlavičky do obsahu profilu,
   aby měl profil stejně vysoký modrý pruh jako ostatní stránky. */
.profil-kontakt {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px;
  padding-bottom: 24px; margin-bottom: 28px; border-bottom: 1px solid var(--ln);
}
.profil-kontakt .p-sites, .profil-kontakt .p-social { margin: 0; }

/* Nabídková karta v portfoliu — jediná barevná v mřížce, ať je vidět,
   že nejde o titul, ale o výzvu k oslovení. */
a.card.card-nakup {
  background: linear-gradient(135deg, rgba(239, 35, 60, .07), rgba(239, 35, 60, 0) 65%), var(--pp);
  border-color: rgba(239, 35, 60, .38);
}
a.card.card-nakup:hover {
  border-color: var(--rd);
  background: linear-gradient(135deg, rgba(239, 35, 60, .13), rgba(239, 35, 60, .02) 70%), var(--pp);
  box-shadow: 0 8px 20px -12px rgba(239, 35, 60, .5);
}
.card-nakup .cat { color: var(--rd-tx); }
.card-nakup .domain { color: var(--tx); }
.card-nakup .card-icon { color: var(--rd); opacity: 1; }

/* Kotvy na homepage mají skočit přesně na začátek sekce.
   main.css má scroll-padding-top: 24px, což nechávalo nad sekcí viditelný
   proužek předchozího obsahu. Podstránky si odsazení řeší přes
   .anchor-block { scroll-margin-top }, takže je nula bezpečná. */
html { scroll-padding-top: 0; }

/* Kotvy na skupiny redakce — stránka je dlouhá, tohle je zkratka na vrcholu */
.kotvy { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
/* Stránka, která místo textu začíná navigačním pruhem, drží kratší odstup
   shora. Plná mezera .page-body je stavěná pro odstavec, ne pro řádek pilulek. */
.page-body--kotvy { padding-top: clamp(20px, 2.5vw, 32px); }
.kotvy a {
  display: inline-flex; align-items: center;
  padding: 8px 16px; border: 1px solid var(--ln); border-radius: 100px;
  font-size: .88rem; font-weight: 500; color: var(--tx-s);
  transition: border-color .15s, color .15s, background .15s;
}
.kotvy a:hover { border-color: var(--nv); color: var(--tx); background: var(--pp); }
.team-block { scroll-margin-top: 24px; }

/* Domény v tickeru vyjíždějí zleva z rozostření a vpravo mizí přesně
   na pravé hranici obsahu, ne až u kraje okna. */

/* =========================================================================
   Plovoucí navigace — vyjede při rolování nahoru, schová se při rolování dolů.
   Obsah klonuje JS z hlavičky, takže se navigace udržuje jen na jednom místě.
   ========================================================================= */

/* Patička */
.footer-copy { color: rgba(255, 255, 255, .55); }

   /* kresba nesmí přetéct do bílé sekce pod ním */
/* obsah hero i ticker leží nad kresbou, pás je průsvitný, ať linky prosvítají */

/* Pás publikovaných výstupů na profilu autora */
.clanky { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 14px; margin: 20px 0 16px; }
.clanek {
  display: block; padding: 16px 18px; background: var(--pp);
  border: 1px solid var(--ln); border-radius: var(--rd-sm);
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.clanek:hover { border-color: var(--nv); transform: translateY(-2px); box-shadow: 0 8px 20px -12px rgba(43,45,66,.45); }
.clanek-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: .8rem; color: var(--tx-f); }
.clanek-titulek { font-size: .96rem; font-weight: 600; line-height: 1.35; color: var(--tx); }
@media (prefers-reduced-motion: reduce) { .clanek:hover { transform: none; } }

/* U autorů se nezobrazují fotky ani monogramy — karty i hlavičky profilů
   stojí jen na typografii. */

.hero.page-hero .profile-head { gap: 0; }

/* Na mobilu se z dlaždic stává dělený seznam: bez rámečků a zaoblení,
   položky odděluje vlasová linka. Ušetří to výšku i vizuální šum,
   který 58 orámovaných boxů pod sebou nadělá. */
@media (max-width: 640px) {
  
  
  
  
  
  
  
  /* na dotyku naopak větší cíl, ne menší — 40 px je spodní hranice pohodlí */
  
  
  
}

/* =========================================================================
   Mobilní navigace. Sedm položek se i s logem vejde do řádku zhruba
   od 1100 px; níž se skládají pod tlačítko. Tlačítko vkládá JS, takže
   bez skriptu zůstane seznam viditelný a web zůstane průchodný.
   ========================================================================= */

@media (max-width: 1100px) {
  

  
  
  
  
  
  
  
  
  

  
  
  
  
  .hero nav.js-nav.je-otevrene ul a[aria-current="page"],
  
}

/* =========================================================================
   Dotykové cíle. Na myši stačí drobné ikony, na dotyku ne — pod zhruba
   40 px se do nich těžko trefuje. Týká se to filtru, kotev, ikon na
   profilu a odkazů v patičce.
   ========================================================================= */
@media (hover: none), (max-width: 768px) {
  
  .kotvy a { padding: 11px 18px; }
  
  
  .profil-kontakt { gap: 14px 16px; }
  /* chipy v profilu jsou odkazy na tituly, ne jen štítky */
  a.chip { padding: 9px 14px; }
  .footer-nav { gap: 4px 20px; }
  .footer-nav a { display: inline-block; padding: 8px 0; }
  .to-top { display: inline-block; padding: 10px 0; }
  .dl-legal dd a, .page-body p a { padding-block: 2px; }
}

/* Na úzkých displejích se dlouhé tabulky posouvají vodorovně — ať je to vidět */
@media (max-width: 640px) {
  .table-scroll { position: relative; }
  .table-scroll::after {
    content: "";
    position: absolute; top: 0; right: 0; bottom: 0; width: 28px;
    background: linear-gradient(to right, transparent, var(--pp));
    pointer-events: none;
  }
}

/* =========================================================================
   Opravy z auditu — přístupnost, mobilní adresář, plovoucí lišta
   ========================================================================= */

/* Sprite s ikonami leží v dokumentu jednou a nesmí zabírat místo. */

/* Vlastní focus styl. :focus-visible je jinak jen v main.css, který se
   podle README nenasazuje — pages.css si ho musí nést sám. */
.filtr-btn:focus-visible,
.filtr-toggle:focus-visible,
.kotvy a:focus-visible,
a.p-name:focus-visible,
.p-glyph:focus-visible,
a.chip:focus-visible { outline: 2px solid var(--rd-tx); outline-offset: 3px; border-radius: 4px; }

/* Plovoucí lišta vyjíždí přes vršek okna, kde už sedí přilepený filtr
   a obsah stránky. Lepivé prvky se o její výšku odsunou, ať je nepřekryje. */
.filtr, .filtr-toggle, .toc { transition: top .25s ease; }
@media (prefers-reduced-motion: reduce) {
  .filtr, .filtr-toggle, .toc { transition: none; }
}

/* Kotvy skáčou na sekci, tlačítka filtru zužují seznam. Vypadaly stejně,
   takže z nich nešlo poznat, co která udělá. Kotvy dostaly šipku a plnou
   plochu, filtr zůstal prázdnou pilulkou. */
.kotvy a { background: var(--pp-a); }
.kotvy a::after { content: "↓"; margin-left: 8px; color: var(--tx-f); font-size: .9em; }
.kotvy a:hover::after { color: var(--rd-tx); }

/* Drobečky jsou seznam odkazů, ne věta — 16px vysoký cíl je na dotyk málo. */
/* Odkaz má svislý padding kvůli dotykové ploše, poslední položka drobečku
   odkaz není — text se proto rozešel o 5 px. Zarovnání na střed srovná
   položky bez ohledu na to, která z nich je odkaz. */
.breadcrumb ol { align-items: center; }
.breadcrumb li { display: inline-flex; align-items: center; }
.breadcrumb a { display: inline-block; padding-block: 5px; }

/* Tabulka: hlavička patří k rozsahu, obal je vlastní oblast se jménem. */
.table-scroll table caption {
  caption-side: top; text-align: left; padding: 0 0 10px;
  font-size: .86rem; color: var(--tx-f);
}

/* ---------- Adresář na mobilu: filtr se sbaluje ----------
   Devět tlačítek se na telefonu lámalo do šesti řádků, dohromady 340 px.
   Přilepené nahoře to byla polovina obrazovky nad seznamem, který filtrují.
   Tlačítko níž nechá lepivého jen 48 px a panel se otevře na vyžádání. */

@media (max-width: 640px) {
  
  
  
  
  

  /* Bez JS tlačítko nevznikne a filtr zůstane rozbalený jako dosud. */
  
  
  
  
}

/* Počet výsledků filtru — čte ho odečítač, na obrazovce ho nese sám seznam. */

