/* Bydlete spokojeně — redesign 2026
   Zdroj: designový balíček design_handoff_bydlete_spokojene/tokens.css, doplněný
   o lokálně hostované fonty a komponenty, které generátor potřebuje navíc
   (drobečky, kompaktní hlavička na vnitřních stránkách, tlačítka, tabulky
   v článcích, nástroj Průvodce katastrem, vyhledávání). Třídy z tokens.css
   se nepřejmenovávaly, aby zůstala 1:1 stopa k návrhu. */

/* ---------- Fonty (self-hosted, latin + latin-ext kvůli české diakritice) ---------- */
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/IBMPlexMono-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/IBMPlexMono-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/IBMPlexMono-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/IBMPlexMono-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-400-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-400-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-600-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonty/IBMPlexSans-600-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/Newsreader-400-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/Newsreader-400-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/Newsreader-500-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/Newsreader-500-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/Newsreader-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonty/Newsreader-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/Newsreader-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonty/Newsreader-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonty/Newsreader-600-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonty/Newsreader-600-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   Od tud dál: obsah tokens.css z designového balíčku, beze změny.
   ========================================================================== */

:root {
  /* Podklady a text */
  --bg:            #ffffff;
  --bg-soft:       #F6F3EA;   /* sekce s podkladem, boxy „V kostce" */
  --bg-faint:      #FBFAF6;   /* footer, reklamní pozice */
  --ink:           #17150F;   /* hlavní text, titulky, silné linky */
  --ink-body:      #24211A;   /* tělo článku */
  --ink-2:         #3A3528;   /* odkazy v seznamech */
  --ink-3:         #4A4536;   /* perex, popisky */
  --ink-4:         #5A5445;   /* sekundární text */
  --muted:         #6E6858;   /* mono microtypo */
  --muted-2:       #8A8371;   /* popisky fotek, meta */
  --muted-3:       #9A9280;   /* číslování */
  --line:          #E6E1D5;   /* hairline */
  --line-2:        #DCD6C6;   /* hairline na béžovém podkladu */
  --line-dark:     #33301F;   /* linka v tmavém boxu */

  /* Značka */
  --accent:        #6B5B2E;   /* olivová — odkazy, kurzíva ve wordmarku, akcenty */
  --accent-dark:   #4E4322;   /* hover odkazů */
  --accent-pale:   #B7AD8E;   /* nadpisky v tmavém boxu */
  --accent-gold:   #E7D9A8;   /* čísla a odkazy v tmavém boxu */

  /* Barvy rubrik — chip, hlavička rubriky, mastheadové spektrum */
  --r-najem:       #2F5D50;
  --r-koupe:       #8C4A32;
  --r-hypoteka:    #3B5474;
  --r-katastr:     #6B5B2E;
  --r-svj:         #5A4A6B;
  --r-stavba:      #7C4F3A;
  --r-energie:     #9E5B14;
  --r-technika:    #2A5B63;
  --r-interier:    #705A7A;
  --r-zahrada:     #4C6B2F;
  --r-provoz:      #8A6D2F;
  --r-stehovani:   #6B4A55;
  --r-penize:      #7A6A2E;
  --r-problemy:    #8C3A2B;

  /* Typografie */
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --sans:  'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --mono:  'IBM Plex Mono', ui-monospace, monospace;

  /* Mřížka */
  --wrap: 1240px;
  --pad: 28px;
}

/* ---------- Reset a základ ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--sans); font-size: 16px; -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { max-width: 100%; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad); }

/* ---------- Mono microtypo (opakuje se všude) ---------- */
.mono      { font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em; color: var(--muted); }
.label     { font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-2); }
.label--ink   { color: var(--ink); }
.label--accent{ color: var(--accent); }

/* ---------- Hlavička ---------- */
.topbar { border-bottom: 1px solid var(--line); }
.topbar__in { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between;
  padding: 9px var(--pad); font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted); }
.topbar__in a { color: var(--muted); }
.topbar__in .topbar__claim { color: var(--ink); }
.topbar__odkazy { display: flex; gap: 18px; }

/* Masthead: dvouřádkový, druhý řádek kurzívou v olivové */
.masthead { display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: flex-end; justify-content: space-between; padding-top: 34px; }
.wordmark { display: block; color: var(--ink); }
.wordmark__a, .wordmark__b { display: block; font-family: var(--serif); font-size: clamp(38px, 5.4vw, 62px); letter-spacing: -0.02em; }
.wordmark__a { font-weight: 500; line-height: 0.92; }
.wordmark__b { font-weight: 400; font-style: italic; line-height: 0.98; color: var(--accent); padding-left: 0.08em; }
.colophon { font-family: var(--mono); font-size: 11px; line-height: 1.75; letter-spacing: 0.04em; color: var(--muted); max-width: 320px; }

/* Spektrum rubrik: šířka pruhu = počet článků v rubrice (flex-grow) */
.spectrum { display: flex; height: 5px; margin-top: 22px; }
.spectrum > span { display: block; }

.mainnav { display: flex; flex-wrap: wrap; gap: 8px 26px; align-items: center;
  padding: 11px 0; border-bottom: 1px solid var(--line); }
.mainnav a { font-size: 15px; font-weight: 500; color: var(--ink); }
.mainnav__more { font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-left: auto; }

/* ---------- Nadpisy sekcí ---------- */
.rule-strong { border-bottom: 3px solid var(--ink); padding-bottom: 10px;
  display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.h-section { font-family: var(--serif); font-weight: 500; font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -0.015em; }

/* ---------- Obrázky a placeholdery ---------- */
.ph { position: relative; overflow: hidden; background: #EFEBE0;
  background-image: repeating-linear-gradient(135deg, #E6E0D2 0 10px, #EFEBE0 10px 20px); }
.ph--16x9 { aspect-ratio: 16 / 9; } .ph--3x2 { aspect-ratio: 3 / 2; } .ph--4x3 { aspect-ratio: 4 / 3; }
.ph__hint { position: absolute; inset: 0; display: grid; place-items: center;
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted-2); }
.ph > img { position: relative; width: 100%; height: 100%; object-fit: cover; display: block; }
.caption { margin-top: 9px; font-family: var(--mono); font-size: 11px; line-height: 1.5; color: var(--muted-2); }

/* ---------- Karty a výpisy ---------- */
.kicker { display: flex; align-items: center; gap: 8px; font-family: var(--mono);
  font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; }
.kicker__chip { width: 7px; height: 7px; background: var(--rc, var(--accent)); flex: 0 0 auto; }
.card { padding: 26px 0; border-bottom: 1px solid var(--line); }
.card__title { margin-top: 8px; font-family: var(--serif); font-weight: 500; font-size: 24px; line-height: 1.16; letter-spacing: -0.012em; }
.card__title a { color: var(--ink); }
.card__lead { margin-top: 8px; font-size: 15px; line-height: 1.55; color: var(--ink-4); }

.lead-title { font-family: var(--serif); font-weight: 500; font-size: clamp(32px, 4.2vw, 50px);
  line-height: 1.06; letter-spacing: -0.02em; text-wrap: pretty; }
.lead-lead { margin-top: 14px; font-size: 18px; line-height: 1.6; color: var(--ink-3); max-width: 60ch; text-wrap: pretty; }

/* Žebříček s velkými serifovými čísly */
.rank li { display: flex; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.rank__n { font-family: var(--serif); font-size: 26px; line-height: 1; color: #C9C2AE; }
.rank a { font-family: var(--serif); font-size: 21px; line-height: 1.2; letter-spacing: -0.01em; color: var(--ink); display: block; }
.rank__meta { display: block; margin-top: 6px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--rc, var(--muted)); }

/* Pruh čísel */
.figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.figures > div { padding: 18px 20px; border-right: 1px solid var(--line); }
.figures > div:last-child { border-right: 0; }
.figures b { display: block; font-family: var(--serif); font-weight: 500; font-size: 30px; line-height: 1; }
.figures span { display: block; margin-top: 5px; }

/* ---------- Článek ---------- */
.progress { position: fixed; inset: 0 0 auto 0; height: 3px; background: var(--accent);
  transform-origin: 0 50%; transform: scaleX(0); z-index: 30;
  animation: progress linear both; animation-timeline: scroll(root block); }
@keyframes progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.article-grid { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; padding-bottom: 60px; }
.article-grid__toc  { flex: 0 1 200px; min-width: 190px; position: sticky; top: 20px; order: 1; }
.article-grid__body { flex: 1 1 520px; min-width: 300px; max-width: 720px; order: 2; }
.article-grid__side { flex: 0 1 250px; min-width: 240px; position: sticky; top: 20px; order: 3; display: grid; gap: 26px; }
@media (max-width: 1080px) { .article-grid__toc, .article-grid__side { position: static; } }

.h1-article { font-family: var(--serif); font-weight: 500; font-size: clamp(36px, 5.4vw, 62px);
  line-height: 1.03; letter-spacing: -0.022em; text-wrap: pretty; }
.perex { margin-top: 20px; font-family: var(--serif); font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.42; color: var(--ink-3); max-width: 52ch; text-wrap: pretty; }
.byline { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: center; padding: 12px 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em; color: var(--muted); }
.byline__odkazy { margin-left: auto; display: flex; gap: 16px; }
.byline__odkazy a { color: var(--muted); }

/* Paragrafová značka u sekcí — podpis webu o papírech */
.h2-article { margin-top: 44px; display: flex; gap: 14px; align-items: baseline;
  font-family: var(--serif); font-weight: 500; font-size: clamp(26px, 3vw, 34px);
  line-height: 1.14; letter-spacing: -0.018em; }
.h2-article__par { font-family: var(--mono); font-size: 13px; letter-spacing: 0; color: #B7AD8E; }
.article-grid__body p { margin-top: 16px; font-size: 18px; line-height: 1.68; color: var(--ink-body); }
.article-grid__body blockquote p { font-family: var(--serif); font-style: italic; font-size: 23px; line-height: 1.36; color: var(--ink); }
.article-grid__body blockquote { margin-top: 26px; border-left: 3px solid var(--accent); padding: 4px 0 4px 20px; }

.summary { margin-top: 32px; background: var(--bg-soft); border-top: 3px solid var(--ink); padding: 22px 24px; }
.summary li { display: flex; gap: 12px; font-size: 16px; line-height: 1.5; color: #2A2619; }
.summary li + li { margin-top: 11px; }
.summary li::before { content: ""; width: 6px; height: 6px; background: var(--accent); flex: 0 0 auto; margin-top: 8px; }

/* Definiční řádky (oddíly LV, parametry) */
.deflist { margin-top: 26px; border-top: 1px solid var(--ink); }
.deflist__row { display: flex; flex-wrap: wrap; gap: 4px 24px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.deflist__k { flex: 0 0 170px; padding-top: 4px; font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); }
.deflist__v { flex: 1 1 220px; font-size: 16px; line-height: 1.55; color: var(--ink-body); }

/* Obsah článku; aktivní položku značí JS (IntersectionObserver) */
.toc a { display: flex; gap: 8px; font-size: 14px; line-height: 1.35; color: var(--ink-4);
  border-left: 2px solid var(--line); padding-left: 11px; }
.toc a[aria-current="true"] { border-left-color: var(--accent); color: var(--ink); font-weight: 500; }
.toc__par { font-family: var(--mono); color: #B7AD8E; }

/* FAQ */
.faq { margin-top: 22px; border-top: 1px solid var(--ink); }
.faq dt { padding-top: 18px; font-family: var(--serif); font-size: 21px; line-height: 1.28; color: var(--ink); }
.faq dd { padding: 8px 0 18px; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.6; color: var(--ink-2); }

/* ---------- Tmavý blok (ceník v liště, promo nástroje) ---------- */
.dark { background: var(--ink); color: #E8E3D5; padding: 20px; }
.dark .label { color: var(--accent-pale); }
.dark li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; color: #E8E3D5; }
.dark li + li { margin-top: 11px; }
.dark li:not(:last-child) { padding-bottom: 11px; border-bottom: 1px solid var(--line-dark); }
.dark .num { font-family: var(--mono); color: var(--accent-gold); white-space: nowrap; }
.dark a { color: var(--accent-gold); }

/* ---------- Reklamní pozice: vždy s rezervovanou výškou ---------- */
.ad { border: 1px solid var(--line); background: var(--bg-faint); display: grid; place-items: center; gap: 6px; }
.ad--leader { min-height: 190px; }   /* 970×150 v textu */
.ad--box    { min-height: 250px; }   /* 300×250 v liště */
.ad__mark { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: #A9A18C; }

/* ---------- Ceník (nástroj) ---------- */
.chip { border: 1px solid var(--line); background: #fff; color: var(--ink-2); padding: 8px 14px; font: inherit; font-size: 14px; cursor: pointer; }
.chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.ptable__head, .ptable__row { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.ptable__head { padding: 12px 0 10px; border-bottom: 1px solid var(--ink);
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted-2); }
.ptable__row { padding: 14px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.ptable__item  { flex: 1 1 240px; font-size: 16px; line-height: 1.4; color: var(--ink); }
.ptable__cat   { flex: 0 0 150px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em; color: var(--muted); }
.ptable__unit  { flex: 0 0 130px; font-family: var(--mono); font-size: 11px; color: var(--muted-2); }
.ptable__range { flex: 0 0 150px; text-align: right; font-family: var(--mono); font-size: 15px; color: var(--ink); }

/* ---------- Rozcestník (Průvodce) ---------- */
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 22px; }
.tile { display: block; border: 1px solid var(--line); padding: 24px; background: #fff; }
.tile:hover { border-color: var(--ink); background: var(--bg-faint); text-decoration: none; }
.tile__title { display: block; margin-top: 12px; font-family: var(--serif); font-size: 27px; line-height: 1.12; color: var(--ink); }
.tile__lead { display: block; margin-top: 10px; font-size: 15px; line-height: 1.55; color: var(--ink-3); }
.tile__cta { display: inline-block; margin-top: 14px; font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); }

/* ---------- Stránkování, footer ---------- */
.pager { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding-top: 22px;
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.pager a, .pager span.page { border: 1px solid var(--line); padding: 8px 13px; color: var(--ink-2); }
.pager .is-current { border-color: var(--ink); background: var(--ink); color: #fff; }

.footer { border-top: 1px solid var(--line); background: var(--bg-faint); }
.footer__in { display: flex; flex-wrap: wrap; gap: 32px 48px; padding: 34px var(--pad) 44px; }
.footer p { font-family: var(--mono); font-size: 11px; line-height: 1.8; color: var(--muted); }

/* ---------- Mobil ---------- */
@media (max-width: 640px) {
  :root { --pad: 18px; }
  .article-grid { gap: 32px; }
  .deflist__k { flex: 1 1 100%; }
  .ptable__cat, .ptable__unit { flex: 0 0 auto; }
  .ptable__range { flex: 1 1 auto; text-align: left; }
}

/* ==========================================================================
   Od tud dál: doplňkové komponenty, které tokens.css nepokrývá, ale generátor
   je potřebuje (skip link, kompaktní hlavička, drobečky, tlačítka, tabulky
   v článcích, nástroj Průvodce katastrem, vyhledávání, textové stránky).
   Drží se stejné škály barev, mezer a typografie jako zbytek souboru.
   ========================================================================== */

/* Skip link */
.preskoc { position: absolute; left: -999px; top: 0; z-index: 50; background: var(--ink); color: #fff;
  padding: 10px 16px; font-family: var(--mono); font-size: 12px; }
.preskoc:focus { left: var(--pad); top: 10px; }

/* Kompaktní hlavička na vnitřních stránkách (článek, rubrika, ceník, průvodce...) */
.hlavicka-uzka { border-bottom: 1px solid var(--line); }
.hlavicka-uzka__in { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; padding: 12px var(--pad); }
.hlavicka-uzka__znacka { font-family: var(--serif); font-size: 23px; line-height: 1; letter-spacing: -0.01em; color: var(--ink); }
.hlavicka-uzka__znacka em { font-style: italic; color: var(--accent); }
.mainnav--uzka { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-left: auto; font-size: 14px; }
.mainnav--uzka a { color: var(--ink-2); }
.mainnav--uzka a.je-aktivni { color: var(--ink); font-weight: 500; }
.mainnav--uzka .lupa { font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }

/* Rozbalovací "Další rubriky" (nativní details/summary) */
.vice { position: relative; }
.vice summary { list-style: none; cursor: pointer; font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.vice summary::-webkit-details-marker { display: none; }
.vice[open] summary { color: var(--ink); }
.vice .rozbal { position: absolute; right: 0; top: 100%; z-index: 20; margin-top: 8px; padding: 14px 16px;
  background: #fff; border: 1px solid var(--line); display: grid; gap: 9px; min-width: 220px; }
.vice .rozbal a { font-size: 14px; color: var(--ink-2); white-space: nowrap; }

/* Drobečky */
.drobecky { padding: 14px 0; font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em; color: var(--muted-2); }
.drobecky a { color: var(--muted-2); }
.drobecky span[aria-current] { color: var(--ink); }

/* 5px pruh v barvě rubriky (hlavička rubriky, katastr) */
.rubrika-pruh { height: 5px; background: var(--rc, var(--accent)); }

/* Tlačítka */
.btn { display: inline-block; background: var(--accent); color: #fff; padding: 13px 22px; font-size: 15px; font-weight: 500; }
.btn:hover { background: var(--accent-dark); color: #fff; text-decoration: none; }
.btn--tichy { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.btn--tichy:hover { border-color: var(--ink); background: var(--bg-faint); color: var(--ink); }

/* Rubrika/štítek u karty a titulku (barevný odkaz nad titulkem) */
.rubrika-stitek { font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc, var(--accent)); }

/* Hlavička výpisové stránky (rubrika, ceník, průvodce, mapa, hledání...) */
.hlavicka-vypisu { padding: 22px 0 0; display: flex; flex-wrap: wrap; gap: 28px 56px; align-items: flex-end; justify-content: space-between; }
.hlavicka-vypisu h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(34px, 5vw, 56px); line-height: 1.04; letter-spacing: -0.022em; max-width: 620px; }
.hlavicka-vypisu__lead { margin-top: 14px; font-size: 18px; line-height: 1.6; color: var(--ink-3); text-wrap: pretty; max-width: 620px; }
.hlavicka-vypisu__cisla { display: flex; gap: 32px; font-family: var(--mono); }
.hlavicka-vypisu__cisla dt { font-size: 10px; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted-2); }
.hlavicka-vypisu__cisla dd { margin-top: 4px; font-family: var(--serif); font-size: 30px; line-height: 1; color: var(--ink); }
.stitky-filtr { margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 12px 0; display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; }
.stitky-filtr__label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-2); }
.stitky-filtr a { font-size: 14px; color: var(--ink-2); }
.stitky-filtr a span { font-family: var(--mono); font-size: 10px; color: var(--muted-3); }

/* Řádek článku (výpis rubriky, hledání): náhled 132x92 + text */
.radek-clanku { display: flex; gap: 22px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.radek-clanku__foto { flex: 0 0 132px; height: 92px; }
.radek-clanku h3 { font-family: var(--serif); font-weight: 500; font-size: 23px; line-height: 1.16; letter-spacing: -0.012em; }
.radek-clanku h3 a { color: var(--ink); }
.radek-clanku p { margin-top: 7px; font-size: 15px; line-height: 1.55; color: var(--ink-4); }
.radek-clanku__meta { margin-top: 9px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted-2); }

/* První (velký) článek výpisu rubriky */
.clanek-velky { display: flex; flex-wrap: wrap; gap: 26px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.clanek-velky__foto { flex: 1 1 300px; min-width: 240px; }
.clanek-velky__text { flex: 1 1 260px; min-width: 240px; }
.clanek-velky h2 { margin-top: 9px; font-family: var(--serif); font-weight: 500; font-size: clamp(26px, 3vw, 34px); line-height: 1.1; letter-spacing: -0.018em; }
.clanek-velky h2 a { color: var(--ink); }
.clanek-velky p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: var(--ink-3); }
.clanek-velky__meta { margin-top: 12px; font-family: var(--mono); font-size: 11px; color: var(--muted); }

/* Sezónní blok (homepage) */
.sezona { background: var(--bg-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sezona__in { padding: 40px var(--pad); display: flex; flex-wrap: wrap; gap: 44px; }
.sezona__text { flex: 1 1 300px; min-width: 260px; }
.sezona__text h2 { margin-top: 12px; font-family: var(--serif); font-weight: 500; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.08; letter-spacing: -0.02em; }
.sezona__text p.tichy { margin-top: 12px; font-size: 16px; line-height: 1.6; max-width: 40ch; }
.sezona__foto { position: relative; aspect-ratio: 4 / 3; margin-top: 22px; }
.sezona ol { flex: 2 1 460px; min-width: 300px; align-self: flex-start; }
.sezona ol li { border-top: 1px solid var(--line-2); padding: 16px 0; display: flex; gap: 20px; align-items: baseline; }
.sezona ol li:last-child { border-bottom: 1px solid var(--line-2); }
.sezona ol li a { font-family: var(--serif); font-size: clamp(20px, 2.2vw, 26px); line-height: 1.2; color: var(--ink); }
.sezona ol li span.popis { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: var(--ink-4); }
.sezona__n { font-family: var(--mono); font-size: 11px; color: var(--muted-3); }
.sezona__vic { padding-top: 16px !important; border: 0 !important; }

/* Přehled rubrik (homepage, mapa webu) */
.rubriky-prehled { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0 44px; }
.rubrika-blok { padding: 24px 0; border-bottom: 1px solid var(--line); }
.rubrika-blok h3 { font-family: var(--serif); font-weight: 500; font-size: 22px; letter-spacing: -0.01em; display: flex; align-items: baseline; gap: 10px; }
.rubrika-blok h3 a { color: var(--ink); }
.rubrika-blok__pocet { font-family: var(--mono); font-size: 10px; color: var(--muted-3); }
.rubrika-blok ul { margin-top: 12px; display: grid; gap: 9px; }
.rubrika-blok ul a { font-size: 15px; line-height: 1.4; color: var(--ink-2); }
.rubrika-blok p.tichy { margin-top: 4px; font-size: 14px; }
.rubriky-zbytek { display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 22px 0 0; }
.rubriky-zbytek a { font-size: 15px; color: var(--ink-2); }
.rubriky-zbytek span { font-family: var(--mono); font-size: 10px; color: var(--muted-3); }

/* Nástroje promo (homepage) */
.nastroje-promo { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; }
.nastroje-promo a { display: block; padding: 30px 28px; }
.nastroje-promo a:hover { text-decoration: none; }
.nastroje-promo__tmava { background: var(--ink); color: #F6F3EA; }
.nastroje-promo__tmava .tile__title { color: #fff; }
.nastroje-promo__tmava .tile__lead { color: #C9C2AE; }
.nastroje-promo__tmava .tile__cta { color: var(--accent-gold); }
.nastroje-promo__svetla { background: var(--bg-soft); border: 1px solid var(--line); }

/* Newsletter / inzerce blok (homepage) */
.newsletter { border-top: 3px solid var(--ink); padding-top: 26px; display: flex; flex-wrap: wrap;
  gap: 24px 44px; align-items: flex-end; justify-content: space-between; }
.newsletter p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: var(--ink-3); max-width: 56ch; }

/* Tabulky v článcích a na stránce Pro inzerenty */
.tabulka-obal { overflow-x: auto; margin-top: 26px; }
.tabulka-obal table { width: 100%; border-collapse: collapse; font-size: 15px; }
.tabulka-obal caption { text-align: left; margin-bottom: 8px; font-family: var(--mono); font-size: 11px; color: var(--muted-2); }
.tabulka-obal th, .tabulka-obal td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.tabulka-obal thead th { font-family: var(--mono); font-size: 10px; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--muted-2); border-bottom: 1px solid var(--ink); font-weight: 400; }
.tabulka-obal td { color: var(--ink-body); }

/* Textové stránky (O webu, Pro inzerenty, 404) */
.text-stranka { max-width: 760px; padding-bottom: 60px; }
.text-stranka h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(34px, 5vw, 56px); line-height: 1.04; letter-spacing: -0.022em; }
.text-stranka > p.lead-lead { margin-top: 16px; }
.text-stranka h2 { margin-top: 40px; font-family: var(--serif); font-weight: 500; font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -0.015em; }
.text-stranka p { margin-top: 14px; font-size: 17px; line-height: 1.66; color: var(--ink-body); }
.text-stranka ul { margin-top: 14px; display: grid; gap: 9px; }
.text-stranka li { font-size: 16px; line-height: 1.6; color: var(--ink-body); padding-left: 16px; position: relative; }
.text-stranka li::before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; background: var(--accent); }
.text-stranka .chipy { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.text-stranka .chipy a { border: 1px solid var(--line); padding: 8px 14px; font-size: 14px; color: var(--ink-2); }

/* Vyhledávání */
.hledani-pole { margin-top: 22px; display: block; }
.hledani-pole input[type="search"] { width: 100%; max-width: 480px; padding: 13px 16px; font: inherit; font-size: 18px;
  border: 1px solid var(--line); background: #fff; color: var(--ink); }
.hledani-pole input[type="search"]:focus { outline: none; border-color: var(--ink); }
.hledani-pocet { margin-top: 14px; font-family: var(--mono); font-size: 11px; color: var(--muted); }

/* Průvodce katastrem: nástroj (akordeon + checklist) */
.lv-start { margin-top: 34px; padding: 26px; background: var(--bg-soft); }
.lv-start h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -0.015em; }
.lv-start p { margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--ink-3); }
.lv-start .btn { margin-top: 16px; }
.lv-sekce { margin-top: 44px; }
.lv-sekce > h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -0.015em; }
.lv-sekce > p.tichy { margin-top: 8px; }
.lv-cast { margin-top: 12px; border-top: 1px solid var(--line); padding: 16px 0; }
.lv-cast summary { cursor: pointer; list-style: none; display: flex; gap: 12px; align-items: baseline;
  font-family: var(--serif); font-size: 20px; color: var(--ink); }
.lv-cast summary::-webkit-details-marker { display: none; }
.lv-kod { font-family: var(--mono); font-size: 13px; color: var(--accent); flex: 0 0 auto; }
.lv-telo { margin-top: 14px; padding-left: 32px; }
.lv-telo p { font-size: 16px; line-height: 1.6; color: var(--ink-body); }
.lv-telo ul { margin-top: 10px; display: grid; gap: 8px; }
.lv-telo li { font-size: 15px; line-height: 1.55; color: var(--ink-2); padding-left: 16px; position: relative; }
.lv-telo li::before { content: ""; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; background: var(--accent); }
.lv-pozor { margin-top: 12px; padding: 12px 14px; background: var(--bg-soft); font-size: 14px; color: var(--ink-2); }
.lv-checklist { margin-top: 18px; border-top: 1px solid var(--ink); }
.lv-checklist li { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.lv-checklist label { display: flex; align-items: center; gap: 12px; flex: 1 1 auto; font-size: 15px; color: var(--ink-body); cursor: pointer; }
.lv-checklist input { width: 16px; height: 16px; accent-color: var(--accent); }
.lv-znacka { font-family: var(--mono); font-size: 11px; color: var(--muted-2); }
.lv-klic { font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #fff;
  background: var(--accent); padding: 3px 6px; }

/* Mapa webu */
.mapa { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 44px; }
.mapa-blok { padding: 20px 0; border-bottom: 1px solid var(--line); }
.mapa-blok h2 { font-family: var(--serif); font-weight: 500; font-size: 20px; }
.mapa-blok h2 a { color: var(--ink); }
.mapa-blok ul { margin-top: 12px; display: grid; gap: 7px; }
.mapa-blok li a { font-size: 14px; color: var(--ink-2); }

/* Pomocné třídy sdílené napříč šablonami */
.tichy { color: var(--ink-4); }
.mriz { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 0 40px; }
.mriz--velka { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
