/*
 * GarageTV — tokeny a komponenty redesignu (GTV2-04-002, revize GTV-20261011-R2)
 * Cíl na webu: /css/gtv-design.css; styly si vkládá první blok gtv_* na stránce (gtv_assets), inc/header.php se nemění.
 * Všechny třídy mají předponu gtv-, aby se nepotkaly s Tailwindem ani se staršími bloky titulky.
 * Písmo: Inter, které web už načítá (nastavení web_font_*). Žádná nová knihovna ani další font.
 */

:root {
  /* Barvy — „garáž v noci“: asfalt, kost, signální oranžová */
  --gtv-ink: #0b0c0e;
  --gtv-asphalt: #131518;
  --gtv-steel: #1e2126;
  --gtv-line-dark: rgba(255, 255, 255, .14);
  --gtv-bone: #f3efe7;
  --gtv-paper: #fbfaf7;
  --gtv-line-light: rgba(11, 12, 14, .14);
  --gtv-white: #ffffff;
  --gtv-signal: #ff4b14;          /* akcent na tmavé; text na něm vždy --gtv-ink (5,8:1) */
  --gtv-signal-deep: #b3360c;     /* akcent jako text na světlé (5,3:1 na --gtv-bone) */
  --gtv-text-dark: #16181b;
  --gtv-text-dark-muted: #51565d; /* 6,4:1 na --gtv-bone */
  --gtv-text-light: #f5f3ee;
  --gtv-text-light-muted: #b4b8be;/* 9,8:1 na --gtv-ink */

  /* Typografie */
  --gtv-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --gtv-display: clamp(2.6rem, 1.2rem + 6.2vw, 8.75rem);
  --gtv-h2: clamp(2rem, 1.2rem + 3.2vw, 5rem);
  --gtv-h3: clamp(1.35rem, 1.05rem + 1.1vw, 2.25rem);
  --gtv-h4: clamp(1.1rem, .95rem + .6vw, 1.75rem);
  --gtv-lead: clamp(1.1rem, .95rem + .7vw, 1.9rem);
  --gtv-body: clamp(1rem, .9rem + .32vw, 1.375rem);
  --gtv-small: clamp(.875rem, .82rem + .18vw, 1.0625rem);
  --gtv-eyebrow: clamp(.75rem, .7rem + .16vw, .95rem);

  /* Rozměry — stránka využívá celou šířku, obsah se nezužuje do úzkého sloupce */
  --gtv-gutter: clamp(20px, 5vw, 112px);
  --gtv-max: 2200px;
  --gtv-section: clamp(72px, 9vw, 184px);
  --gtv-gap: clamp(16px, 1.6vw, 36px);
  --gtv-radius: 4px;
  --gtv-radius-lg: 10px;
  --gtv-tap: 48px;

  /* Pohyb */
  --gtv-ease: cubic-bezier(.2, .7, .2, 1);
  --gtv-fast: .18s;
  --gtv-slow: .7s;
}

/* ---------- Základ ---------- */
.gtv-scope, .gtv-scope * { box-sizing: border-box; }
.gtv-scope {
  font-family: var(--gtv-font);
  font-size: var(--gtv-body);
  line-height: 1.6;
  color: var(--gtv-text-dark);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.gtv-scope img, .gtv-scope video { display: block; max-width: 100%; }
/* :where drží nulovou specificitu, aby barvu odkazu přebila každá komponenta (tlačítko, velký blok) */
:where(.gtv-scope) a { color: inherit; }
.gtv-scope :focus-visible {
  outline: 3px solid var(--gtv-signal);
  outline-offset: 3px;
  border-radius: 2px;
}
.gtv-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- Sekce a plochy ---------- */
.gtv-section { padding: var(--gtv-section) var(--gtv-gutter); position: relative; }
.gtv-section > .gtv-wrap { max-width: var(--gtv-max); margin-inline: auto; }
.gtv-dark { background: var(--gtv-ink); color: var(--gtv-text-light); }
.gtv-asphalt { background: var(--gtv-asphalt); color: var(--gtv-text-light); }
.gtv-bone { background: var(--gtv-bone); color: var(--gtv-text-dark); }
.gtv-paper { background: var(--gtv-paper); color: var(--gtv-text-dark); }
.gtv-dark .gtv-muted, .gtv-asphalt .gtv-muted { color: var(--gtv-text-light-muted); }
.gtv-bone .gtv-muted, .gtv-paper .gtv-muted { color: var(--gtv-text-dark-muted); }

/* ---------- Typografie ---------- */
.gtv-display, .gtv-h2, .gtv-h3, .gtv-h4 { margin: 0; font-weight: 800; text-wrap: balance; }
.gtv-display { font-size: var(--gtv-display); line-height: .96; letter-spacing: -.045em; }
.gtv-h2 { font-size: var(--gtv-h2); line-height: 1; letter-spacing: -.035em; }
.gtv-h3 { font-size: var(--gtv-h3); line-height: 1.12; letter-spacing: -.02em; font-weight: 700; }
.gtv-h4 { font-size: var(--gtv-h4); line-height: 1.25; letter-spacing: -.01em; font-weight: 700; }
.gtv-lead { font-size: var(--gtv-lead); line-height: 1.45; margin: 0; max-width: 46ch; text-wrap: pretty; }
.gtv-eyebrow {
  display: inline-flex; align-items: center; gap: .9em; margin: 0;
  font-size: var(--gtv-eyebrow); font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
}
.gtv-eyebrow::before { content: ""; width: 2.4em; height: 2px; background: var(--gtv-signal); }
.gtv-bone .gtv-eyebrow::before, .gtv-paper .gtv-eyebrow::before { background: var(--gtv-signal-deep); }

/* Hlavička sekce: nadpis vlevo, doprovodný text a odkaz vpravo */
.gtv-head {
  display: grid; gap: var(--gtv-gap); align-items: end;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  margin-bottom: clamp(32px, 4vw, 80px);
}
.gtv-head > div:first-child { display: grid; gap: clamp(14px, 1.4vw, 28px); }
.gtv-head-side { display: grid; gap: 20px; justify-items: start; }
@media (max-width: 900px) { .gtv-head { grid-template-columns: 1fr; align-items: start; } }

/* ---------- Tlačítka a odkazy ---------- */
.gtv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .8em;
  min-height: var(--gtv-tap); padding: .95em 1.6em;
  font: 700 var(--gtv-body)/1.1 var(--gtv-font); letter-spacing: -.005em; text-decoration: none;
  border: 1.5px solid transparent; border-radius: var(--gtv-radius); cursor: pointer;
  transition: background var(--gtv-fast) var(--gtv-ease), color var(--gtv-fast) var(--gtv-ease),
              border-color var(--gtv-fast) var(--gtv-ease), transform var(--gtv-fast) var(--gtv-ease);
}
.gtv-btn::after { content: "→"; transition: transform var(--gtv-fast) var(--gtv-ease); }
.gtv-btn:hover::after { transform: translateX(4px); }
.gtv-btn--primary { background: var(--gtv-signal); color: var(--gtv-ink); }
.gtv-btn--primary:hover { background: var(--gtv-white); }
.gtv-btn--ghost { border-color: currentColor; background: transparent; color: inherit; }
.gtv-btn--ghost:hover { background: var(--gtv-white); color: var(--gtv-ink); border-color: var(--gtv-white); }
.gtv-bone .gtv-btn--primary, .gtv-paper .gtv-btn--primary { background: var(--gtv-ink); color: var(--gtv-white); }
.gtv-bone .gtv-btn--primary:hover, .gtv-paper .gtv-btn--primary:hover { background: var(--gtv-signal-deep); }
.gtv-bone .gtv-btn--ghost:hover, .gtv-paper .gtv-btn--ghost:hover { background: var(--gtv-ink); color: var(--gtv-white); border-color: var(--gtv-ink); }
.gtv-btn--plain::after { content: none; }
.gtv-actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 520px) { .gtv-actions .gtv-btn { width: 100%; } }

.gtv-link {
  display: inline-flex; align-items: center; gap: .6em; min-height: var(--gtv-tap);
  font-weight: 700; text-decoration: none;
  background: linear-gradient(currentColor, currentColor) 0 calc(100% - 12px) / 100% 1.5px no-repeat;
}
.gtv-link::after { content: "→"; transition: transform var(--gtv-fast) var(--gtv-ease); }
.gtv-link:hover::after { transform: translateX(4px); }

/* ---------- Štítky a čipy ---------- */
.gtv-tag {
  display: inline-block; padding: .38em .7em; border-radius: 2px;
  font-size: clamp(.75rem, .7rem + .16vw, .9rem); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2;
  background: var(--gtv-signal); color: var(--gtv-ink);
}
.gtv-tag--line { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; }
.gtv-tag--ad { background: var(--gtv-white); color: var(--gtv-ink); }
.gtv-chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; list-style: none; }
.gtv-chip {
  display: inline-flex; align-items: center; gap: .6em; min-height: var(--gtv-tap); padding: .6em 1.15em;
  border: 1.5px solid var(--gtv-line-light); border-radius: 999px; background: transparent; color: inherit;
  font: 600 var(--gtv-body)/1.1 var(--gtv-font); text-decoration: none; cursor: pointer;
  transition: background var(--gtv-fast) var(--gtv-ease), color var(--gtv-fast) var(--gtv-ease), border-color var(--gtv-fast) var(--gtv-ease);
}
.gtv-dark .gtv-chip, .gtv-asphalt .gtv-chip { border-color: var(--gtv-line-dark); }
.gtv-chip:hover, .gtv-chip[aria-pressed="true"], .gtv-chip[aria-current="true"] {
  background: var(--gtv-ink); color: var(--gtv-white); border-color: var(--gtv-ink);
}
.gtv-dark .gtv-chip:hover, .gtv-dark .gtv-chip[aria-pressed="true"],
.gtv-asphalt .gtv-chip:hover, .gtv-asphalt .gtv-chip[aria-pressed="true"] {
  background: var(--gtv-signal); color: var(--gtv-ink); border-color: var(--gtv-signal);
}
.gtv-chip small { font-weight: 500; opacity: .65; font-size: .82em; }

/* ---------- Obrazové plochy ---------- */
.gtv-media { position: relative; overflow: hidden; background: var(--gtv-steel); border-radius: var(--gtv-radius); }
.gtv-media > img, .gtv-media > video { width: 100%; height: 100%; object-fit: cover; }
.gtv-media--16x9 { aspect-ratio: 16 / 9; }
.gtv-media--4x3 { aspect-ratio: 4 / 3; }
.gtv-media--3x4 { aspect-ratio: 3 / 4; }
.gtv-media--21x9 { aspect-ratio: 21 / 9; }
.gtv-zoom > img { transition: transform var(--gtv-slow) var(--gtv-ease); }
a:hover .gtv-zoom > img, .gtv-zoom:hover > img { transform: scale(1.04); }
/* Náhradní plocha, když obrázek chybí nebo se nenačte: tmavý panel s názvem, ne rozbitá ikona */
.gtv-media--empty { display: grid; place-items: center; padding: 24px; color: var(--gtv-text-light-muted); font-weight: 700; text-align: center; }

/* ---------- Hero ---------- */
.gtv-hero {
  position: relative; isolation: isolate; display: grid; align-content: end;
  min-height: min(100svh, 1500px); padding: clamp(120px, 14vh, 220px) var(--gtv-gutter) clamp(28px, 4vw, 64px);
  background: var(--gtv-ink); color: var(--gtv-text-light); overflow: hidden;
}
.gtv-hero-media { position: absolute; inset: 0; z-index: -2; }
.gtv-hero-media img, .gtv-hero-media video { width: 100%; height: 100%; object-fit: cover; object-position: var(--gtv-hero-focus, 50% 50%); }
.gtv-hero::before { /* čitelnost textu: zdola a zleva, střed fotografie zůstává čistý */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(to top, rgba(11,12,14,.92) 0%, rgba(11,12,14,.55) 34%, rgba(11,12,14,0) 62%),
    linear-gradient(to right, rgba(11,12,14,.6) 0%, rgba(11,12,14,0) 55%),
    linear-gradient(to bottom, rgba(11,12,14,.55) 0%, rgba(11,12,14,0) 22%);
}
.gtv-hero-body { max-width: var(--gtv-max); width: 100%; margin-inline: auto; display: grid; gap: clamp(20px, 2.2vw, 40px); }
.gtv-hero .gtv-display { max-width: 13ch; }
.gtv-hero .gtv-lead { color: var(--gtv-text-light); max-width: 44ch; }
.gtv-hero-foot {
  max-width: var(--gtv-max); width: 100%; margin: clamp(36px, 5vw, 96px) auto 0; padding-top: 22px;
  border-top: 1px solid var(--gtv-line-dark);
  display: flex; flex-wrap: wrap; gap: 14px 48px; align-items: center; justify-content: space-between;
  font-size: var(--gtv-small); color: var(--gtv-text-light-muted);
}
.gtv-hero-facts { display: flex; flex-wrap: wrap; gap: 10px 40px; margin: 0; padding: 0; list-style: none; }
.gtv-hero-facts b { color: var(--gtv-white); font-size: 1.35em; font-weight: 800; margin-right: .35em; letter-spacing: -.02em; }
.gtv-hero-credit { opacity: .85; }
.gtv-hero-toggle { /* pauza ambientního videa — vždy dosažitelná klávesnicí */
  min-width: var(--gtv-tap); min-height: var(--gtv-tap); border-radius: 999px; cursor: pointer;
  border: 1.5px solid var(--gtv-line-dark); background: rgba(11,12,14,.4); color: var(--gtv-white); font: 700 .8rem var(--gtv-font);
  padding: 0 1.1em;
}
@media (max-width: 700px) {
  .gtv-hero { min-height: min(92svh, 860px); }
  .gtv-hero-media img, .gtv-hero-media video { object-position: var(--gtv-hero-focus-mobile, var(--gtv-hero-focus, 50% 50%)); }
  .gtv-hero::before { background: linear-gradient(to top, rgba(11,12,14,.95) 0%, rgba(11,12,14,.7) 45%, rgba(11,12,14,.15) 78%), linear-gradient(to bottom, rgba(11,12,14,.6) 0%, rgba(11,12,14,0) 20%); }
}

/* ---------- Redakční výběr ---------- */
.gtv-edit { display: grid; gap: var(--gtv-gap); grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
.gtv-edit-list { display: grid; align-content: start; }
.gtv-story { display: grid; gap: 18px; text-decoration: none; color: inherit; }
.gtv-story-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-size: var(--gtv-small); }
.gtv-story-meta time, .gtv-story-meta span { opacity: .78; }
.gtv-story:hover .gtv-h3, .gtv-story:hover .gtv-h4, .gtv-story:hover .gtv-h2 { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .14em; }
.gtv-story--lead .gtv-h2 { font-size: clamp(1.8rem, 1.1rem + 2.6vw, 4.25rem); max-width: 18ch; }
.gtv-story--row {
  grid-template-columns: clamp(104px, 11vw, 220px) minmax(0, 1fr); align-items: center; gap: clamp(14px, 1.6vw, 32px);
  padding: clamp(16px, 1.5vw, 28px) 0; border-top: 1px solid var(--gtv-line-light);
}
.gtv-dark .gtv-story--row, .gtv-asphalt .gtv-story--row { border-top-color: var(--gtv-line-dark); }
.gtv-story--row:first-child { border-top: 0; padding-top: 0; }
.gtv-story--row > div { display: grid; gap: 10px; }
@media (max-width: 1000px) { .gtv-edit { grid-template-columns: 1fr; } }

/* Mřížka karet článků */
.gtv-grid { display: grid; gap: clamp(28px, 2.6vw, 56px) var(--gtv-gap); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gtv-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1280px) { .gtv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gtv-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .gtv-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .gtv-grid, .gtv-grid--3 { grid-template-columns: 1fr; } }

/* ---------- Praktická garáž: průvodce a karty firem ---------- */
.gtv-guide { display: grid; gap: var(--gtv-gap); grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: start; }
.gtv-guide-panel {
  display: grid; gap: 28px; padding: clamp(24px, 3vw, 56px); border-radius: var(--gtv-radius-lg);
  background: var(--gtv-ink); color: var(--gtv-text-light);
}
.gtv-guide-step { display: grid; gap: 14px; border: 0; padding: 0; margin: 0; min-width: 0; }
.gtv-guide-step legend { padding: 0; font-size: var(--gtv-eyebrow); font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gtv-text-light-muted); margin-bottom: 14px; }
.gtv-guide-panel .gtv-chip { border-color: var(--gtv-line-dark); }
.gtv-guide-panel .gtv-chip:hover, .gtv-guide-panel .gtv-chip[aria-pressed="true"] { background: var(--gtv-signal); color: var(--gtv-ink); border-color: var(--gtv-signal); }
.gtv-field {
  width: 100%; min-height: 56px; padding: 0 18px; border-radius: var(--gtv-radius);
  border: 1.5px solid var(--gtv-line-dark); background: rgba(255,255,255,.06); color: var(--gtv-white);
  font: 500 1.0625rem var(--gtv-font); /* ≥ 16 px: iOS nepřibližuje */
}
.gtv-field::placeholder { color: var(--gtv-text-light-muted); }
.gtv-firms { display: grid; gap: var(--gtv-gap); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gtv-firm {
  display: grid; grid-template-rows: auto 1fr; background: var(--gtv-white); color: var(--gtv-text-dark);
  border-radius: var(--gtv-radius-lg); overflow: hidden; box-shadow: 0 1px 0 var(--gtv-line-light), 0 18px 40px -28px rgba(11,12,14,.35);
}
.gtv-firm .gtv-media { border-radius: 0; }
.gtv-firm-body { display: grid; gap: 10px; padding: clamp(16px, 1.4vw, 26px); align-content: start; }
.gtv-firm-place { font-size: var(--gtv-small); color: var(--gtv-text-dark-muted); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.gtv-firm-desc { margin: 0; font-size: var(--gtv-small); color: var(--gtv-text-dark-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.gtv-firm-foot { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--gtv-line-light); }
.gtv-firm a.gtv-firm-name { text-decoration: none; }
.gtv-firm a.gtv-firm-name:hover { text-decoration: underline; }
/* Vyšší tarif: výraznější rám a štítek, kontakt základní firmy ale zůstává stejně čitelný */
.gtv-firm--plus { box-shadow: 0 0 0 2px var(--gtv-ink), 0 24px 48px -28px rgba(11,12,14,.5); }
.gtv-compare-add {
  display: inline-flex; align-items: center; gap: .5em; min-height: 44px; padding: 0 .9em; cursor: pointer;
  border: 1.5px solid var(--gtv-line-light); border-radius: 999px; background: transparent; color: inherit; font: 600 .875rem var(--gtv-font);
}
.gtv-compare-add[aria-pressed="true"] { background: var(--gtv-ink); color: var(--gtv-white); border-color: var(--gtv-ink); }
@media (max-width: 1100px) { .gtv-guide { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .gtv-firms { grid-template-columns: 1fr 1fr; } .gtv-firms > :nth-child(3):last-child { grid-column: 1 / -1; } }
@media (max-width: 560px) { .gtv-firms { grid-template-columns: 1fr; } }

/* ---------- Velký obrazový blok (příběh značky, reportáž) ---------- */
.gtv-feature {
  position: relative; isolation: isolate; display: grid; align-content: end; overflow: hidden;
  min-height: clamp(520px, 62vw, 1180px); padding: var(--gtv-section) var(--gtv-gutter);
  background: var(--gtv-ink); color: var(--gtv-text-light);
}
.gtv-feature > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.gtv-feature::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(11,12,14,.94) 0%, rgba(11,12,14,.5) 42%, rgba(11,12,14,.05) 75%); }
.gtv-feature-body { max-width: var(--gtv-max); width: 100%; margin-inline: auto; display: grid; gap: 22px; }
.gtv-feature .gtv-h2 { max-width: 20ch; }

/* ---------- Mapa a seznam ---------- */
.gtv-mapsplit { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--gtv-gap); align-items: stretch; }
.gtv-map { min-height: clamp(380px, 38vw, 760px); border-radius: var(--gtv-radius-lg); overflow: hidden; background: var(--gtv-steel); position: relative; }
.gtv-citylist { list-style: none; margin: 0; padding: 0; display: grid; align-content: start; }
.gtv-citylist li { border-top: 1px solid var(--gtv-line-dark); }
.gtv-citylist li:first-child { border-top: 0; }
.gtv-citylist a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; min-height: 60px; padding: 14px 0; text-decoration: none; font-weight: 700; font-size: var(--gtv-h4); }
.gtv-citylist a span { font-weight: 500; font-size: var(--gtv-small); color: var(--gtv-text-light-muted); }
.gtv-citylist a:hover { color: var(--gtv-signal); }
@media (max-width: 1000px) { .gtv-mapsplit { grid-template-columns: 1fr; } }

/* ---------- Prázdný stav ---------- */
.gtv-empty {
  display: grid; gap: 14px; justify-items: start; padding: clamp(24px, 3vw, 56px);
  border: 1.5px dashed var(--gtv-line-light); border-radius: var(--gtv-radius-lg);
}
.gtv-dark .gtv-empty, .gtv-asphalt .gtv-empty { border-color: var(--gtv-line-dark); }
.gtv-empty p { margin: 0; max-width: 56ch; }

/* ---------- Výhody účtu ---------- */
.gtv-benefits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--gtv-line-light); }
.gtv-benefits li { display: grid; gap: 10px; align-content: start; padding: clamp(20px, 2vw, 40px) clamp(16px, 1.6vw, 32px) 0 0; }
.gtv-benefits li + li { border-left: 1px solid var(--gtv-line-light); padding-left: clamp(16px, 1.6vw, 32px); }
.gtv-benefits .gtv-num { font-size: var(--gtv-eyebrow); font-weight: 800; letter-spacing: .2em; color: var(--gtv-signal-deep); }
.gtv-benefits p { margin: 0; color: var(--gtv-text-dark-muted); }
@media (max-width: 1000px) { .gtv-benefits { grid-template-columns: 1fr 1fr; } .gtv-benefits li:nth-child(3) { border-left: 0; padding-left: 0; } }
@media (max-width: 560px) { .gtv-benefits { grid-template-columns: 1fr; } .gtv-benefits li { padding-bottom: 20px; } .gtv-benefits li + li { border-left: 0; padding-left: 0; border-top: 1px solid var(--gtv-line-light); } }

/* ---------- Dvousloupcová výzva (firmy, newsletter) ---------- */
.gtv-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 120px); align-items: end; }
.gtv-split > div { display: grid; gap: clamp(18px, 1.8vw, 32px); justify-items: start; }
@media (max-width: 900px) { .gtv-split { grid-template-columns: 1fr; align-items: start; } }

/* ---------- Hlavička ---------- */
.gtv-header {
  position: absolute; inset: 0 0 auto 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: clamp(14px, 1.4vw, 28px) var(--gtv-gutter); color: var(--gtv-white);
}
.gtv-header nav ul { display: flex; gap: clamp(18px, 2.2vw, 44px); list-style: none; margin: 0; padding: 0; }
.gtv-header nav a { font-size: var(--gtv-body); display: inline-flex; align-items: center; min-height: var(--gtv-tap); font-weight: 600; text-decoration: none; }
.gtv-header nav a:hover { color: var(--gtv-signal); }
.gtv-logo { display: inline-flex; align-items: center; gap: 12px; font-weight: 900; font-size: 1.35rem; letter-spacing: -.03em; text-decoration: none; }
.gtv-logo img { height: 44px; width: auto; border-radius: 3px; }
.gtv-header-entry { display: flex; gap: 10px; align-items: center; }
.gtv-header-entry .gtv-btn { min-height: 44px; padding: .7em 1.15em; font-size: var(--gtv-small); }
.gtv-header-entry .gtv-btn::after { content: none; }
.gtv-burger { display: none; min-width: var(--gtv-tap); min-height: var(--gtv-tap); border: 1.5px solid var(--gtv-line-dark); border-radius: var(--gtv-radius); background: transparent; color: inherit; font: 700 .9rem var(--gtv-font); padding: 0 1em; cursor: pointer; }
@media (max-width: 1100px) {
  .gtv-header nav, .gtv-header-entry { display: none; }
  .gtv-burger { display: inline-flex; align-items: center; }
}

/* ---------- Patička ---------- */
.gtv-footer { padding: clamp(48px, 6vw, 112px) var(--gtv-gutter) 36px; }
.gtv-footer-grid { max-width: var(--gtv-max); margin-inline: auto; display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: var(--gtv-gap); }
.gtv-footer h3 { margin: 0 0 14px; font-size: var(--gtv-eyebrow); letter-spacing: .2em; text-transform: uppercase; color: var(--gtv-text-light-muted); }
.gtv-footer ul { list-style: none; margin: 0; padding: 0; display: grid; }
.gtv-footer li a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.gtv-footer li a:hover { color: var(--gtv-signal); }
.gtv-footer-legal { max-width: var(--gtv-max); margin: clamp(36px, 4vw, 72px) auto 0; padding-top: 22px; border-top: 1px solid var(--gtv-line-dark); font-size: var(--gtv-small); color: var(--gtv-text-light-muted); display: flex; flex-wrap: wrap; gap: 8px 32px; justify-content: space-between; }
@media (max-width: 900px) { .gtv-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .gtv-footer-grid { grid-template-columns: 1fr; } }

/* ---------- Pohyb ---------- */
/* Bez JavaScriptu se nic neschovává: skrytí zapíná až třída gtv-js, kterou přidá skript */
.gtv-js .gtv-reveal { opacity: 0; transform: translateY(24px); transition: opacity var(--gtv-slow) var(--gtv-ease), transform var(--gtv-slow) var(--gtv-ease); }
.gtv-js .gtv-reveal.gtv-is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .gtv-scope *, .gtv-scope *::before, .gtv-scope *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
  .gtv-js .gtv-reveal { opacity: 1; transform: none; }
  .gtv-zoom > img { transform: none !important; }
  .gtv-hero-media video { display: none; } /* zůstává poster */
}
/* Pomalé připojení nebo úsporný režim: video se nenačítá, zůstává poster (řeší i skript bloku) */
@media (prefers-reduced-data: reduce) { .gtv-hero-media video { display: none; } }

/* ---------- Doplňky pro bloky skladače (GTV2-04-003) ---------- */
.gtv-guide-label { margin: 0 0 14px; font-size: var(--gtv-eyebrow); font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gtv-text-light-muted); }
.gtv-guide-note { margin: 0; font-size: var(--gtv-small); }
.gtv-story-title { margin-top: 10px; }
.gtv-firm-foot .gtv-link { min-height: 44px; }
.gtv-scope.gtv-feature { color: var(--gtv-text-light); text-decoration: none; }
.gtv-feature-cta { justify-self: start; }
.gtv-feature:hover .gtv-feature-cta { background: var(--gtv-white); color: var(--gtv-ink); border-color: var(--gtv-white); }
.gtv-map-wait { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; margin: 0; text-align: center; }
.gtv-map .leaflet-container { position: absolute; inset: 0; font-family: var(--gtv-font); }
.gtv-map .leaflet-popup-content a { color: var(--gtv-signal-deep); font-weight: 700; }
.gtv-citylist li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; font-weight: 700; font-size: var(--gtv-h4); }
.gtv-citylist li span + span { font-weight: 500; font-size: var(--gtv-small); color: var(--gtv-text-light-muted); white-space: nowrap; }
.gtv-partners { margin-top: clamp(40px, 5vw, 96px); padding-top: 28px; border-top: 1px solid var(--gtv-line-dark); display: grid; gap: 24px; }
.gtv-partners-label { margin: 0; display: flex; align-items: center; gap: 14px; font-size: var(--gtv-small); color: var(--gtv-text-light-muted); }
.gtv-partners-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: clamp(16px, 2vw, 40px); align-items: center; }
.gtv-partners-list img { max-height: 96px; width: auto; border-radius: var(--gtv-radius); background: var(--gtv-white); }

/* ---------- Oprava po kontrole GTV2-04-002 ---------- */
/* V1, V2: tmavý panel průvodce je tmavá plocha i uvnitř světlé sekce – tlačítka a tlumený text se řídí panelem, ne sekcí */
.gtv-scope .gtv-guide-panel .gtv-btn--primary { background: var(--gtv-signal); color: var(--gtv-ink); }
.gtv-scope .gtv-guide-panel .gtv-btn--primary:hover { background: var(--gtv-white); color: var(--gtv-ink); }
.gtv-scope .gtv-guide-panel .gtv-btn--ghost:hover { background: var(--gtv-white); color: var(--gtv-ink); border-color: var(--gtv-white); }
.gtv-scope .gtv-guide-panel .gtv-muted { color: var(--gtv-text-light-muted); }
/* D1: v mřížce karet drží štítek a datum stejnou výšku bez ohledu na délku titulku */
.gtv-grid > .gtv-story { grid-template-rows: auto 1fr; align-content: start; }
/* D2: dotykové cíle nejméně 44 px */
.gtv-firm a.gtv-firm-name { display: inline-flex; align-items: center; min-height: 44px; }
.gtv-hero-credit a { display: inline-flex; align-items: center; min-height: 44px; }
.gtv-logo { min-height: 44px; }
/* D6: velký obrazový blok – na úzkém displeji silnější ztmavení pod textem */
@media (max-width: 700px) { .gtv-feature::before { background: linear-gradient(to top, rgba(11,12,14,.96) 0%, rgba(11,12,14,.8) 48%, rgba(11,12,14,.2) 82%); } }
/* ---------- Drobné nálezy 2. kontroly GTV2-04-002 (N1–N3) ---------- */
/* N1: v mřížce karet zůstává štítek, datum a autor na jednom řádku; dlouhé jméno se zkrátí */
.gtv-grid > .gtv-story .gtv-story-meta { flex-wrap: nowrap; }
.gtv-grid > .gtv-story .gtv-story-meta > :last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* N2: průvodce a karty firem vedle sebe až od 1500 px, jinak jsou karty příliš úzké */
@media (max-width: 1500px) { .gtv-guide { grid-template-columns: 1fr; } }
/* N3: štítek ve velkém obrazovém bloku má vlastní tmavý podklad */
.gtv-feature .gtv-tag--line { background: rgba(11, 12, 14, .72); }
/* ---------- Drobné vady kontroly GTV2-04-003 (D6) ---------- */
/* Ovládání mapy: dotykový cíl 44 px a viditelný fokus */
.gtv-map .leaflet-bar a { width: 44px; height: 44px; line-height: 44px; font-size: 22px; }
.gtv-map:focus, .gtv-map .leaflet-bar a:focus, .gtv-map .leaflet-container:focus, .gtv-map .leaflet-control-attribution a:focus { outline: 3px solid var(--gtv-signal) !important; outline-offset: -3px; }
.gtv-map .leaflet-control-attribution a { display: inline-block; padding: 4px 2px; }
/* Výběr s jediným článkem: velká karta přes celou šířku */
.gtv-edit > .gtv-story--lead:only-child { grid-column: 1 / -1; }
