/* Spoločná šablóna ručne písaných podstránok (profil.html, program.html).
   Paletu a písmo preberá z návrhu 3, aby podstránky pôsobili ako jeho súčasť.
   Návrhy webu sa generujú z bundlov a tento súbor sa ich netýka. */

/* latin-ext */
@font-face {
  font-family: 'Sen'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("fonts/f-628671f032.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;
}
/* latin */
@font-face {
  font-family: 'Sen'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("fonts/f-190641b65b.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;
}

/* Paleta a písmo sú prebrané z návrhu 3, aby profil pôsobil ako jeho
   podstránka, nie ako cudzia stránka. Na rozdiel od návrhu 3 sa tento
   súbor needituje v návrhovom nástroji — píše sa ručne. */
:root {
  --paper: #FFFFFF;
  --paper-alt: #F6F4F1;
  --ink: #0B0B0B;
  --body: #26241F;
  --body-soft: #4C4741;
  --muted: #6B6660;
  --line: #E4DFDA;
  --akcent: #C2521C;
  --akcent-tmavy: #A8420F;
  --akcent-svetly: #FBE3D6;
  --pad: clamp(22px, 6.25vw, 120px);
  --padY: clamp(64px, 6vw, 116px);
}
*, *::before, *::after { box-sizing: border-box; }

/* Odkaz na preskočenie navigácie — vidno ho až po zameraní tabulátorom. */
.preskoc {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--ink); color: #FFFFFF; padding: 14px 22px;
  border-bottom-right-radius: 12px; font-weight: 600; text-decoration: none;
}
.preskoc:focus { left: 0; }

/* Text len pre čítačky obrazovky a vyhľadávače. */
.len-pre-citacky {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 96px; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 18px/1.65 'Sen', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p, ul, ol, li, figure, blockquote, dl, dd { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; }
img { display: block; max-width: 100%; }
/* Sen nemá kurzívu — zdôrazňujeme tučnosťou, nie falošným sklonom */
em { font-style: normal; font-weight: 600; }

.wrap { width: 100%; max-width: 1920px; margin: 0 auto; }
.sekcia { padding: var(--padY) var(--pad); }
.sekcia--alt { background: var(--paper-alt); }
.stitok {
  display: block; font-size: 15px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: var(--akcent);
}

/* ---- horná lišta ---- */
.lista {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
  padding: 15px var(--pad); background: var(--ink); color: #FFFFFF;
}
.lista a { text-decoration: none; }
.lista .meno { font-size: clamp(16px, 1.15vw, 21px); font-weight: 700; letter-spacing: .01em; }
.lista nav { display: flex; align-items: center; gap: clamp(14px, 1.6vw, 32px); font-size: clamp(15px, 1.05vw, 19px); font-weight: 500; }
.lista nav a { color: #D8D3CD; transition: color .2s ease; }
.lista nav a:hover { color: #F0A97E; }
.lista .cta {
  background: var(--akcent); color: #FFFFFF; font-weight: 600;
  padding: 10px 20px; border-radius: 999px; transition: background-color .2s ease;
}
.lista .cta:hover { background: var(--akcent-tmavy); color: #FFFFFF; }

/* Do 760 px sa štyri odkazy do riadku nezmestia — každý sa lámal do dvoch
   riadkov a z tlačidla „Napíšte mi" bola klobása cez pol lišty. Odkazy tu
   preto skryje `assets/menu.js` a nahradí ich hamburgerom; lišta má potom
   jeden riadok: meno vľavo, tlačidlo vpravo. */
@media (max-width: 760px) {
  .lista { flex-wrap: nowrap; gap: 12px; padding: 9px var(--pad); }
  .lista nav { gap: 0; }
  /* Odkazy v paneli začínajú na tej istej zvislici ako meno v lište. */
  .menu-panel { --menu-pad: var(--pad); }
  /* Odkaz vysoký 23 px sa prstom trafí ťažko; odsadenie z neho spraví 43 px
     bez toho, aby sa medzera medzi riadkami zmenila. */
  footer .odkazy { gap: 0; }
  footer .odkazy a { padding: 10px 0; }
}

/* ---- hlavička stránky ---- */
.hlavicka { padding: clamp(52px, 5.4vw, 104px) var(--pad) clamp(40px, 4vw, 72px); }
.hlavicka h1 {
  margin-top: 26px; font-size: clamp(44px, 6.4vw, 118px); font-weight: 700;
  line-height: 1.02; letter-spacing: -.03em; max-width: 16ch;
}
.hlavicka .lede {
  margin-top: 30px; max-width: 62ch;
  font-size: clamp(19px, 1.45vw, 25px); line-height: 1.6; color: var(--body);
}
.hlavicka .spat {
  display: inline-block; margin-top: 30px; font-size: 17px; color: var(--muted);
  text-decoration: none; border-bottom: 1px solid var(--line);
  transition: color .2s ease, border-color .2s ease;
}
.hlavicka .spat:hover { color: var(--akcent); border-color: var(--akcent); }

/* ---- hlavička s fotografiou (profil, program) ----
   Text a fotka vedľa seba — vyplní prázdny pravý stĺpec, ktorý inde nemá
   hlavička žiadny obsah. Fotka je na výšku, rovnaký pomer strán ako
   ostatné portréty v tomto sete, aby sedeli rozmery `width`/`height`. */
.hlavicka--foto { display: grid; grid-template-columns: minmax(0, 1fr) min(420px, 34%); gap: clamp(32px, 5vw, 96px); align-items: center; }
.hlavicka--foto figure { margin: 0; align-self: stretch; }
/* `picture` je inline, takže by výšku `100 %` na obrázku nemalo cez čo prepustiť. */
.hlavicka--foto picture { display: block; height: 100%; }
.hlavicka--foto img { width: 100%; height: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: clamp(24px, 2.2vw, 40px); }

/* ---- fakty v skratke (pruh pre novinárov) ---- */
.fakty { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fakty dl {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: clamp(24px, 2.6vw, 48px); margin-top: 34px;
}
.fakty dt {
  font-size: 13px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--muted);
}
.fakty dd { margin-top: 8px; font-size: clamp(17.5px, 1.2vw, 20px); line-height: 1.5; color: var(--body); }

/* ---- kapitoly životného príbehu ---- */
.kapitoly { display: flex; flex-direction: column; }
.kapitola {
  display: grid; grid-template-columns: minmax(0, 0.62fr) minmax(0, 1.38fr);
  gap: clamp(26px, 4.2vw, 84px);
  padding: clamp(40px, 3.6vw, 64px) 0; border-top: 1px solid var(--line);
}
.kapitoly .kapitola:last-child { border-bottom: 1px solid var(--line); }
.kapitola .obdobie {
  display: flex; flex-direction: column; gap: 12px; align-self: start;
  position: sticky; top: 28px;
}
.kapitola .roky {
  font-size: 14px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--akcent);
}
.kapitola h2 {
  font-size: clamp(24px, 2.1vw, 40px); font-weight: 700;
  line-height: 1.16; letter-spacing: -.018em; text-wrap: pretty;
}
.kapitola .telo { display: flex; flex-direction: column; gap: 22px; max-width: 66ch; }
.kapitola p { font-size: clamp(17.5px, 1.2vw, 20px); line-height: 1.74; color: var(--body-soft); }
.kapitola p strong { font-weight: 700; color: var(--ink); }

.citat {
  font-size: clamp(20px, 1.6vw, 30px); font-weight: 600; line-height: 1.38;
  letter-spacing: -.014em; color: var(--akcent); max-width: 34ch;
  border-left: 3px solid var(--akcent); padding-left: 24px;
}

/* odrážkový zoznam vnútri kapitoly — rovnaký tvar ako v programe na úvodke */
.body { display: flex; flex-direction: column; gap: 14px; }
/* Guľôčka je absolútne umiestnená, nie grid bunka — v gride by každý
   <strong> vnútri odrážky vytvoril vlastnú bunku a riadok by sa rozsypal. */
.body li {
  position: relative; padding-left: 23px;
  font-size: clamp(17.5px, 1.2vw, 20px); line-height: 1.6; color: var(--body-soft);
}
.body li::before {
  content: ""; position: absolute; left: 0; top: .56em;
  width: 9px; height: 9px; border-radius: 50%; background: var(--akcent);
}
.body li strong { color: var(--ink); font-weight: 700; }

/* ---- placeholder pre fotografiu, ktorú ešte nemáme ---- */
.img-slot {
  display: flex; align-items: center; justify-content: center; text-align: center;
  width: 100%; height: clamp(220px, 20vw, 340px); border-radius: clamp(20px, 1.8vw, 32px);
  background: repeating-linear-gradient(135deg, rgba(0,0,0,.045) 0 12px, rgba(0,0,0,.075) 12px 24px);
  outline: 1px dashed rgba(0,0,0,.22); outline-offset: -1px;
}
.img-slot span {
  font: 500 15px/1.4 'Sen', system-ui, sans-serif; letter-spacing: .04em;
  text-transform: uppercase; color: rgba(0,0,0,.42); padding: 12px 18px;
}

/* ---- skutočná fotografia v kapitole ----
   Na rozdiel od .img-slot nedostáva pevnú výšku: pomer drží aspect-ratio,
   takže sa dokumentárny záber nikde neoreže. */
.foto { display: flex; flex-direction: column; gap: 14px; }
.foto img {
  width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: clamp(20px, 1.8vw, 32px);
}
.foto figcaption { font-size: 16px; line-height: 1.5; color: var(--body-soft); }

/* ---- rodina (profil) a mestské časti (program) — rovnaký tvar ---- */
.rodina, .casti { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: clamp(26px, 3vw, 56px); margin-top: 46px; }
.rodina h3, .casti h3 { font-size: clamp(19px, 1.4vw, 24px); font-weight: 700; letter-spacing: -.012em; }
.rodina .rola, .casti .rola { margin-top: 4px; font-size: 15px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--akcent); }
.rodina p, .casti p { margin-top: 14px; font-size: clamp(17px, 1.15vw, 19px); line-height: 1.7; color: var(--body-soft); }

/* ---- pre médiá ---- */
.media { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 96px); align-items: start; }
.media h2 { font-size: clamp(32px, 3.6vw, 66px); font-weight: 700; letter-spacing: -.022em; }
.media p { margin-top: 22px; font-size: clamp(17.5px, 1.25vw, 21px); line-height: 1.7; color: var(--body-soft); max-width: 52ch; }
.media .kontakt {
  display: flex; flex-direction: column; gap: 8px; margin-top: 26px;
  font-size: clamp(17.5px, 1.25vw, 21px); font-weight: 600; color: var(--akcent);
}
.media .kontakt a { text-decoration: none; }
/* odkaz na transparentný účet v texte na svetlom podklade — inak by splynul,
   `a { color: inherit }` mu inak nedá žiadnu farbu */
.media a[href*="transparentneucty"] {
  color: var(--akcent); font-weight: 600; text-decoration: none;
  border-bottom: 1px solid var(--line); transition: border-color .2s ease;
}
.media a[href*="transparentneucty"]:hover { border-color: var(--akcent); }

/* ---- tlačová fotografia (pre médiá) ----
   `.foto` má pomer 4/3 pre dokumentárne zábery z kapitol; portrét na stiahnutie
   potrebuje užší, portrétový orez a menšiu šírku, nech nezaberie celý stĺpec. */
.foto--media { max-width: 320px; }
.foto--media img { aspect-ratio: 3 / 4; object-position: 50% 20%; }
.foto--media figcaption a { color: var(--akcent); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line); transition: border-color .2s ease; }
.foto--media figcaption a:hover { border-color: var(--akcent); }

/* ---- pruh volieb (rovnaký ako na úvodke) ---- */
.volby {
  padding: clamp(44px, 3.8vw, 72px) var(--pad); background: var(--akcent); color: #FFFFFF;
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(26px, 4.2vw, 80px); flex-wrap: wrap;
}
.volby .kicker { font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--akcent-svetly); }
.volby .datum { display: block; margin-top: 12px; font-size: clamp(26px, 2.9vw, 54px); font-weight: 700; letter-spacing: -.018em; }
.volby .doplnok { font-size: clamp(17.5px, 1.25vw, 21px); line-height: 1.62; color: var(--akcent-svetly); max-width: 44ch; }

/* ---- interná poznámka — nie je súčasť návrhu, len prototypu ---- */
.interne {
  margin: 0 var(--pad) clamp(56px, 5vw, 96px);
  border: 1px dashed rgba(0,0,0,.28); border-radius: 20px;
  padding: clamp(26px, 2.6vw, 40px);
  background: repeating-linear-gradient(135deg, rgba(0,0,0,.018) 0 14px, rgba(0,0,0,.04) 14px 28px);
}
.interne h2 { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.interne p { margin-top: 16px; font-size: 17px; line-height: 1.7; color: var(--body-soft); max-width: 78ch; }
.interne ul { margin-top: 18px; display: flex; flex-direction: column; gap: 12px; }
.interne li {
  position: relative; padding-left: 22px;
  font-size: 17px; line-height: 1.66; color: var(--body-soft);
}
.interne li::before {
  content: ""; position: absolute; left: 0; top: .6em;
  width: 8px; height: 8px; border-radius: 2px; background: var(--muted);
}
.interne strong { color: var(--ink); font-weight: 700; }

/* ---- pätička ---- */
/* Pätička je zámerne rovnaká ako na úvodnej stránke — tam je vysadená
   inline štýlmi, tu triedami, ale rozmery, farby aj poradie stĺpcov sedia.
   Keď sa mení jedna, treba prejsť aj druhú. */
footer {
  padding: clamp(52px, 4.4vw, 84px) var(--pad) clamp(44px, 3.8vw, 72px);
  background: var(--ink); color: #FFFFFF;
  display: flex; flex-direction: column; gap: 44px;
}
footer .stlpce {
  display: grid; grid-template-columns: 1fr auto auto;
  gap: clamp(32px, 6.2vw, 120px);
}
footer .znacka { display: flex; flex-direction: column; gap: 10px; }
footer .znacka .meno { font-size: clamp(19px, 1.5vw, 28px); font-weight: 700; letter-spacing: -.012em; }
footer .znacka .rola { font-size: clamp(17.5px, 1.2vw, 20px); color: #A8A29B; }
footer .znacka .kontakt { font-size: clamp(17.5px, 1.2vw, 20px); color: #F0A97E; padding-top: 8px; }
footer .odkazy { display: flex; flex-direction: column; gap: 12px; font-size: 19px; }

footer a { text-decoration: none; }
/* Odkazy v stĺpcoch sú biele a na akcent sa menia až pri prejdení myšou —
   rovnako ako na úvodke. Kontakt a odkaz v drobnom texte sú akcentové hneď. */
footer .odkazy a { color: #FFFFFF; }
footer .odkazy a:hover { color: #F0A97E; }
footer .znacka .kontakt a { color: #F0A97E; }
footer .znacka .kontakt a:hover { text-decoration: underline; }
/* Dva drobné riadky patria k sebe tesnejšie, než je 44px medzera pätičky. */
footer .drobnosti { display: flex; flex-direction: column; gap: 14px; }
footer .drobne { font-size: 17px; line-height: 1.72; color: #8A857F; max-width: 90ch; }
footer .drobne a { color: #F0A97E; border-bottom: 1px solid rgba(240,169,126,.4); }
/* Zákonné označenie podľa § 6 zákona č. 181/2014 Z. z. — musí byť čitateľné,
   preto rovnaká veľkosť ako zvyšok drobného textu, len bez akcentu. */
footer .drobne strong { color: #A8A29B; font-weight: 600; }

/* Stránka je kreslená pre desktop. Pod 900 px sa stĺpce zalomia pod seba,
   aby sa dala otvoriť aj na mobile — nie je to návrh mobilnej verzie. */
@media (max-width: 900px) {
  footer .stlpce { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .kapitola, .media, .hlavicka--foto { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .kapitola .obdobie { position: static; }
  .hlavicka--foto figure { order: -1; }
  /* Rámček na výšku, nie na šírku: postava je vysoká a úzka, takže v ležatom
     4:3 z nej ostal stredový výrez — na fotke z parku prerezaný cez hlavu, na
     fotke z námestia postava tak ďaleko, že sa strácala. Zdrojom je tu iný
     súbor (`-mobil-*`, viď `<picture>` v hlavičkách) — orez z originálu, kde
     je Roman veľký a v strede.

     `max-height` drží fotku v rozumnej výške na tablete, kde je stĺpec široký
     700+ px. Musí ju pri tom zmenšiť, nie stlačiť: pri `width: 100%` sa rámček
     medzi 760 a 900 px stal ležatým (na 880 px 770 × 496) a `object-fit: cover`
     z fotky na výšku nechal vodorovný pás — postava bez nôh. `width: auto`
     drží pomer 4:5, takže sa fotka len zmenší a vycentruje a celá postava
     ostane v zábere. `object-position` je nad stredom pre prípad, že by
     rámček predsa len orezával — aby ubral zospodu a nikdy nie z hlavy. */
  .hlavicka--foto picture { height: auto; }
  .hlavicka--foto img { aspect-ratio: 4 / 5; width: auto; height: auto; max-width: 100%; max-height: 62vh; margin-inline: auto; object-position: 50% 8%; }
  /* v jednom stĺpci by 28ch spravilo z citátu úzky prúžok */
  .citat, .hlavicka h1 { max-width: none; }
}
/* ---- miesta na doplnenie (šablóna) ---- */
.slot {
  border: 1px dashed rgba(0,0,0,.28); border-radius: 14px;
  padding: 16px 20px; background: rgba(0,0,0,.022);
  font-size: clamp(16.5px, 1.1vw, 18px); line-height: 1.6; color: var(--muted);
}
.slot b {
  display: block; margin-bottom: 6px;
  font-size: 12.5px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--akcent);
}
.slot--velky { padding: 26px 28px; }
.kapitola .telo .slot { max-width: none; }

/* ---- témy mimo piatich bodov ----
   Ľahší tvar než `.kapitola`: päť sľubov je chrbtica programu, témy sú vrstva
   nad ňou — preto tenšia linka, menší nadpis a užší ľavý stĺpec. */
.temy { display: flex; flex-direction: column; margin-top: 40px; }
/* Scopované cez `.temy` zámerne: `.tema` je aj bunka tabuľky v analýze
   sentimentu (`.tabulka td.tema`) a display:grid by ju rozbil. */
.temy .tema {
  display: grid; grid-template-columns: minmax(0, 0.5fr) minmax(0, 1.5fr);
  gap: clamp(20px, 3.4vw, 64px);
  padding: clamp(26px, 2.6vw, 40px) 0; border-top: 1px solid var(--line);
}
.temy .tema:last-child { border-bottom: 1px solid var(--line); }
.temy .tema h3 {
  align-self: start; position: sticky; top: 28px;
  font-size: clamp(21px, 1.7vw, 30px); font-weight: 700;
  line-height: 1.18; letter-spacing: -.016em; text-wrap: pretty;
}
.temy .tema .telo { display: flex; flex-direction: column; gap: 16px; max-width: 66ch; }
.temy .tema p { font-size: clamp(17px, 1.15vw, 19px); line-height: 1.72; color: var(--body-soft); }
.temy .tema p strong { font-weight: 700; color: var(--ink); }

/* ---- široký pás s fotografiou a citátom (program) ----
   Jediná fotografia na šírku v sete — celoplošný pás medzi Oblasťami
   programu a Piatimi bodmi, prestávka v dlhom texte, nie ďalšia kapitola. */
.pas { padding: 0 var(--pad) var(--padY); }
.pas figure { position: relative; margin: 0; border-radius: clamp(24px, 2.2vw, 44px); overflow: hidden; }
.pas img { width: 100%; height: clamp(320px, 40vw, 620px); object-fit: cover; object-position: 50% 30%; }
.pas figcaption {
  position: absolute; inset: auto 0 0 0; padding: clamp(28px, 3vw, 56px) clamp(28px, 3.4vw, 64px);
  background: linear-gradient(to top, rgba(11,11,11,.72), rgba(11,11,11,0) 65%); color: #FFFFFF;
}
.pas .kicker { display: block; font-size: 15px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--akcent-svetly); }
.pas .veta { display: block; margin-top: 12px; font-size: clamp(26px, 2.9vw, 52px); font-weight: 700; letter-spacing: -.02em; line-height: 1.12; max-width: 20ch; text-wrap: pretty; }
/* Na telefóne mal pás 320 px a titulok v ňom pristál presne cez Romanovu tvár
   — a navyše cez bielu košeľu, na ktorej sa biele písmo strácalo. Vyšší pás
   posunie text pod tvár a hustejší prechod ho udrží čitateľný aj nad košeľou.
   `object-position` vodorovne dorovnáva to, že Roman je na fotke vľavo od
   stredu; zvislo je bez účinku, výška sa zobrazuje celá. */
@media (max-width: 620px) {
  .pas img { height: min(58vh, 460px); object-position: 36% 50%; }
  .pas figcaption {
    /* Prechod je ukotvený na titulok, nie na fotku — keby začínal až pod ním,
       vrchný riadok by ostal nad bielou košeľou takmer neviditeľný. Väčšie
       horné odsadenie mu dá výbeh a text sedí až v tmavej časti. */
    padding: 88px 26px 30px;
    background: linear-gradient(to top, rgba(11,11,11,.92) 0%, rgba(11,11,11,.82) 38%, rgba(11,11,11,.46) 72%, rgba(11,11,11,0) 100%);
  }
}

/* ---- tmavý panel s výzvou (rovnaký ako na úvodke) ---- */
.panel {
  background: var(--ink); color: #FFFFFF; border-radius: clamp(28px, 2.3vw, 44px);
  padding: clamp(38px, 3.8vw, 70px) clamp(32px, 4vw, 74px);
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 4vw, 72px); align-items: center;
}
.panel .stitok { color: #F0A97E; }
.panel h2 { font-size: clamp(28px, 2.7vw, 52px); font-weight: 700; line-height: 1.1; letter-spacing: -.022em; max-width: 20ch; margin-top: 16px; }
.panel p { margin-top: 16px; font-size: clamp(17.5px, 1.25vw, 21px); line-height: 1.66; color: #B8B2AB; max-width: 54ch; }
.panel a {
  background: var(--akcent); color: #FFFFFF; text-decoration: none;
  font-size: clamp(18px, 1.35vw, 22px); font-weight: 600;
  padding: 21px 40px; border-radius: 999px; white-space: nowrap;
  transition: background-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.panel a:hover { background: var(--akcent-tmavy); transform: translateY(-2px); box-shadow: 0 18px 34px -18px rgba(194,82,28,.9); }
@media (max-width: 900px) {
  .panel { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .panel h2 { max-width: none; }
}

/* ---- analýza sentimentu ----
   Analýza je dlhý súvislý text s tabuľkou a zoznamom zdrojov — veci, ktoré
   profil ani program nepotrebovali. Triedy nižšie sú pridané, nie prepísané —
   jedinou spoločnou je `.nadpis`, ktorý používa aj program.html. */

:root {
  /* Druhá farba je tu nutnosť: v tabuľke sentimentu musí byť na prvý pohľad
     vidieť rozdiel medzi „výrazne negatívny" a „výrazne pozitívny", a oranžová
     je v kampani akcent, nie hodnotenie. Zelená sa používa len v .tabulka. */
  --zelena: #2F6B45;
}

/* Analýza nie je kampaňová stránka — horná lišta preto namiesto tlačidla
   „Napíšte mi" nesie štítok, že ide o interný podklad. */
.lista .znacka {
  border: 1px solid #55504A; border-radius: 999px; padding: 8px 16px;
  font-size: 13px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #D8D3CD;
}

/* Profil vystačil so štítkom nad obsahom, tu treba skutočné nadpisy sekcií —
   inak sa dvadsať strán textu nedá prelistovať očami. */
.nadpis {
  margin-top: 18px; font-size: clamp(30px, 3.2vw, 58px); font-weight: 700;
  line-height: 1.08; letter-spacing: -.022em; max-width: 22ch; text-wrap: pretty;
}
.text {
  margin-top: 26px; max-width: 72ch;
  font-size: clamp(17.5px, 1.2vw, 20px); line-height: 1.74; color: var(--body-soft);
}
.text + .text { margin-top: 20px; }
.text strong { font-weight: 700; color: var(--ink); }

/* Číslované zistenia — šesť bodov zhrnutia a sedem záverov pre kampaň.
   Číslo je absolútne umiestnené z rovnakého dôvodu ako guľôčka v .body:
   v gride by <strong> vnútri odrážky rozbil riadok. */
.cisla { margin-top: 34px; display: flex; flex-direction: column; gap: 20px; counter-reset: cislo; }
.cisla li {
  position: relative; counter-increment: cislo; padding-left: 54px; max-width: 74ch;
  font-size: clamp(17.5px, 1.2vw, 20px); line-height: 1.7; color: var(--body-soft);
}
.cisla li::before {
  content: counter(cislo); position: absolute; left: 0; top: -.04em;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--akcent-svetly); color: var(--akcent);
  font-size: 15px; font-weight: 700; line-height: 34px; text-align: center;
}
.cisla li strong { color: var(--ink); font-weight: 700; }

/* .body mimo kapitoly — v kapitole ho odsadzuje .telo, samostatne v sekcii
   si musí odstup aj mieru riadka určiť sám. */
.body--samostatny { margin-top: 34px; max-width: 74ch; }

/* Prehľad tém — 15 riadkov × 6 stĺpcov sa na užšej obrazovke nezalomí
   čitateľne, preto sa tabuľka posúva vodorovne vo vlastnom ráme. */
.tabulka { margin-top: 34px; overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; }
.tabulka table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: clamp(15.5px, 1vw, 17px); }
.tabulka th, .tabulka td { padding: 14px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.tabulka thead th {
  background: var(--paper-alt); white-space: nowrap;
  font-size: 12.5px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--muted);
}
.tabulka tbody tr:last-child td { border-bottom: 0; }
.tabulka td { color: var(--body-soft); line-height: 1.5; }
.tabulka td:first-child { color: var(--muted); font-variant-numeric: tabular-nums; }
.tabulka td.tema { color: var(--ink); font-weight: 700; }
.tabulka .zle { color: var(--akcent-tmavy); font-weight: 700; }
.tabulka .dobre { color: var(--zelena); font-weight: 700; }
.tabulka .mix { color: var(--body); font-weight: 700; }
.popisok { margin-top: 16px; max-width: 76ch; font-size: 15.5px; line-height: 1.62; color: var(--muted); }

/* Zdroje — dlhý zoznam odkazov, členený podľa tém. */
.zdroje { margin-top: 34px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: clamp(28px, 3vw, 52px); }
.zdroje h4 { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--akcent); }
.zdroje ul { margin-top: 16px; display: flex; flex-direction: column; gap: 13px; }
.zdroje li { font-size: 16.5px; line-height: 1.55; color: var(--body-soft); }
.zdroje a { color: var(--body-soft); text-decoration: none; border-bottom: 1px solid var(--line); transition: color .2s ease, border-color .2s ease; }
.zdroje a:hover { color: var(--akcent); border-color: var(--akcent); }

/* Panel s číslom, ktoré treba pred verejným použitím overiť (⚠ v podklade). */
.overit {
  margin-top: 30px; max-width: 76ch; border-left: 3px solid var(--akcent);
  padding: 6px 0 6px 22px; font-size: 16.5px; line-height: 1.66; color: var(--body-soft);
}
.overit strong { color: var(--ink); font-weight: 700; }

/* ---- úvodné odseky sekcie ----
   Nadpis sekcie (`.nadpis`) je spoločný s analýzou sentimentu, je vyššie. */
.uvod {
  margin-top: 20px; max-width: 62ch;
  font-size: clamp(17.5px, 1.25vw, 21px); line-height: 1.72; color: var(--body-soft);
}
.uvod + .uvod { margin-top: 16px; }
.uvod strong { font-weight: 700; color: var(--ink); }

/* ---- obsah dlhej stránky ---- */
.obsah { display: flex; flex-wrap: wrap; gap: 10px 12px; margin-top: 30px; }
.obsah a {
  padding: 9px 18px; border: 1px solid var(--line); border-radius: 999px;
  font-size: 16px; font-weight: 600; color: var(--body); text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.obsah a:hover { background: var(--akcent-svetly); border-color: var(--akcent); color: var(--akcent-tmavy); }

/* ---- „Čoho sa zdržím" — negatívny záväzok na konci každého bodu ----
   Druhý selektor prebíja `.kapitola p`, inak by odsek zdedil jeho veľkosť. */
.zdrzim, .telo .zdrzim {
  border-top: 1px solid var(--line); padding-top: 16px;
  font-size: clamp(17px, 1.15vw, 19px); line-height: 1.66; color: var(--muted);
}
.zdrzim em { color: var(--akcent); }

/* ---- mesto v číslach ----
   `.cisla` už patrí číslovanému zoznamu v analýze sentimentu, preto `.udaje`. */
.udaje {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: clamp(24px, 2.6vw, 44px); margin-top: 44px;
}
.udaj { border-top: 2px solid var(--ink); padding-top: 16px; }
.udaj .hodnota {
  font-size: clamp(30px, 3vw, 50px); font-weight: 700;
  line-height: 1.04; letter-spacing: -.024em;
}
.udaj .popis { margin-top: 12px; font-size: clamp(16.5px, 1.1vw, 18px); line-height: 1.6; color: var(--body-soft); }
.udaj .zdroj { margin-top: 10px; font-size: 13.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
/* číslo, ktoré zatiaľ nikto nezverejnil — v bode 05 nesie celú pointu */
.udaj--chyba { border-top-color: var(--akcent); }
.udaj--chyba .hodnota { color: var(--akcent); }

@media (max-width: 900px) {
  .temy .tema { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .temy .tema h3 { position: static; }
}

/* ---- oznam v hlavičke stránky ----
   Že program nie je hotový, je zámer, nie výhovorka — musí to byť vidieť hneď,
   nie až v treťom odseku. */
.oznam {
  margin-top: 30px; max-width: 68ch;
  border-left: 3px solid var(--ink); padding: 4px 0 4px 22px;
  font-size: clamp(17px, 1.15vw, 19px); line-height: 1.7; color: var(--body-soft);
}
.oznam b {
  display: block; margin-bottom: 8px;
  font-size: clamp(17.5px, 1.2vw, 20px); font-weight: 700;
  letter-spacing: -.01em; color: var(--ink);
}

/* ---- rozbaľovačky ----
   Dlhé texty sa pod 900 px schovajú za tlačidlo „chcem vedieť viac". Tlačidlo
   vyrába `assets/rozbalovacky.js`, v značkovaní je len atribút `data-rozbal` —
   bez skriptu teda na stránke nič nepribudne a nič sa neskryje. Nad 900 px
   skript tlačidlá schová a telá otvorí, takže desktop ostáva nedotknutý.
   Podrobnosti sú v README, sekcia Rozbaľovačky. */
.rozbal-tlacidlo {
  justify-self: start; align-self: start;
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 4px; padding: 11px 22px;
  border: 1px solid var(--line); border-radius: 999px;
  background: transparent; color: var(--akcent);
  font: 600 16px/1 'Sen', system-ui, sans-serif; cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
/* `display` z pravidla vyššie by prebil `hidden` z UA štýlov — bez tohto by
   tlačidlo svietilo aj na desktope a rozbilo dvojstĺpcový grid. */
.rozbal-tlacidlo[hidden] { display: none !important; }
.rozbal-tlacidlo:hover { background: var(--akcent-svetly); border-color: var(--akcent); }
.rozbal-tlacidlo:focus-visible { outline: 2px solid var(--akcent); outline-offset: 3px; }
.rozbal-tlacidlo::after {
  content: ""; width: 8px; height: 8px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px); transition: transform .2s ease;
}
.rozbal-tlacidlo[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(1px); }
.rozbal-tlacidlo[aria-expanded="true"] .viac,
.rozbal-tlacidlo[aria-expanded="false"] .menej { display: none; }

/* Triedu `zbalene` dáva a odoberá skript, nie médiový blok — inak by sa stav
   nedal prepnúť klikom. `!important` je tu nutnosť, nie lenivosť: telo bloku
   má `display: flex` zo selektorov ako `.temy .tema .telo` (0,3,0), proti
   ktorým by jednoduchá trieda (0,1,0) neprešla. */
.zbalene { display: none !important; }

/* Na papieri musí byť celý text, nech sa tlačí z akejkoľvek šírky. Rovnaká
   špecificita aj `!important` ako vyššie, rozhoduje teda poradie. */
@media print {
  .zbalene { display: flex !important; }
  .rozbal-tlacidlo { display: none !important; }
}
