/* ============================================================
   Písma — self-hosted (staženo z Google Fonts, subsety latin
   a latin-ext kvůli české diakritice). Nic se netahá z internetu.
   Baloo 2 i Quicksand jsou variabilní, proto jeden soubor
   pokrývá celý rozsah tlouštěk.
   ============================================================ */
@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/baloo2-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: 'Baloo 2';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/baloo2-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: 'Quicksand';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/quicksand-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: 'Quicksand';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/quicksand-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;
}

/* ============================================================
   moderator.cz — redesign 2026, směr 1a „Studio“
   Tokeny převzaté z design systému (Baloo 2 + Quicksand, rose/ink/cream).
   ============================================================ */

:root{
  /* Rose (brand) */
  --rose-50:#FFF1F3;  --rose-100:#FFE0E5; --rose-200:#FECDD6; --rose-300:#FDA4B4;
  --rose-400:#FB7187; --rose-500:#F43F5E; --rose-600:#E11D48; --rose-700:#BE123C;
  /* Ink (neutrály) */
  --ink-900:#1A1A1F; --ink-800:#26262D; --ink-700:#36363F; --ink-600:#4B4B56;
  --ink-500:#6A6A75; --ink-400:#9A9AA5; --ink-300:#C4C4CD; --ink-200:#E2E2E8;
  --ink-100:#EFEFF2;
  /* Yellow (akcent) — nadpis referencí a puntíky u hlavních referencí */
  --yellow-300:#FDE047; --yellow-400:#FACC15; --yellow-500:#EAB308;
  --accent:#F4CF3C;
  /* Cream (teplé světlé plochy) */
  --cream-50:#FFFBF5; --cream-100:#FFF7ED; --cream-200:#FBEFE0;
  /* Navy (tmavé plochy směru 1a) */
  --navy:#102A45; --navy-deep:#0D2439; --navy-edge:#071726;

  --brand:var(--rose-500);
  --brand-hover:var(--rose-600);
  --text-on-dark:#FAFAFA;
  --border-subtle:var(--ink-100);
  --border-default:var(--ink-200);

  --font-display:'Baloo 2', system-ui, 'Segoe UI', sans-serif;
  --font-body:'Quicksand', system-ui, 'Segoe UI', sans-serif;

  --radius-md:14px; --radius-lg:20px; --radius-xl:28px;
  --radius-2xl:36px; --radius-pill:999px;

  --shadow-sm:0 6px 20px rgba(19,19,22,.06);
  --shadow-md:0 10px 30px rgba(19,19,22,.07);
  --shadow-lift:0 16px 40px rgba(19,19,22,.28);
  --shadow-brand:0 12px 32px rgba(244,63,94,.32);
  --ring:0 0 0 4px rgba(244,63,94,.28);

  --pad:64px;      /* boční odsazení sekcí, zmenšuje se na mobilu */
  --maxw:1152px;   /* šířka obsahu */
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px; line-height:1.5;
  color:var(--ink-900); background:var(--cream-100);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:var(--font-display); font-weight:800; letter-spacing:-.02em; margin:0; line-height:1.15; }
p{ margin:0; }
img{ max-width:100%; display:block; }
a{ color:var(--rose-600); text-decoration:none; transition:opacity .14s cubic-bezier(.22,1,.36,1); }
a:hover{ opacity:.78; }
::selection{ background:var(--rose-200); color:var(--ink-900); }
:focus-visible{ outline:none; box-shadow:var(--ring); border-radius:10px; }

/* width:100% je nutné — .wrap je uvnitř flex sloupců (.gallery-sec),
   kde by samotné auto margin nechalo prvek smrsknout na obsah. */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; }
.eyebrow{
  font-size:12px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--brand);
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* cokoliv s data-full se dá rozkliknout do lightboxu */
[data-full]{ cursor:zoom-in; }
[data-full]:focus-visible{ box-shadow:var(--ring); border-radius:10px; }

/* ---------- vložené SVG ikony (nahradily fontovou sadu Phosphor) ---------- */
.ikona{ display:inline-flex; align-items:center; justify-content:center; flex:none; }
.ikona svg{ width:1.1em; height:1.1em; display:block; fill:currentColor; }

/* ---------- tlačítka ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 28px; border-radius:var(--radius-pill);
  font-family:var(--font-display); font-size:17px; font-weight:700;
  border:0; cursor:pointer; text-align:center;
  transition:transform .14s cubic-bezier(.34,1.56,.64,1), opacity .14s ease;
}
.btn:hover{ opacity:.92; }
.btn:active{ transform:scale(.96); }
.btn-brand{ background:var(--brand); color:#fff; box-shadow:var(--shadow-brand); }
.btn-ghost-dark{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.28); }
.btn-sm{ padding:10px 20px; font-size:15px; }

/* ---------- ON AIR tečka ---------- */
@keyframes onairpulse{ 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.45; transform:scale(.8); } }
.dot{ width:9px; height:9px; border-radius:50%; background:var(--rose-500); animation:onairpulse 1.6s ease-in-out infinite; }
@media (prefers-reduced-motion:reduce){ .dot{ animation:none; } html{ scroll-behavior:auto; } }

.badge-onair{
  display:inline-flex; align-items:center; gap:10px; align-self:flex-start;
  padding:8px 16px; border-radius:var(--radius-pill);
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16);
  font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
/* slovo „Živě“ ve stejné barvě jako blikající tečka vedle něj —
   platí i na bílé kartičce u fotky */
.zive-slovo{ color:var(--rose-500); font-weight:700; }

/* ---------- bublina s vysvětlivkou ----------
   Vzor převzatý z administrace firewallu (.bublina tamtéž).
   Jedna sdílená bublina na stránku, obsah bere z atributu
   data-bublina prvku, nad kterým zrovna je myš. */
.bublina{
  pointer-events:none;
  position:fixed; top:0; left:0; z-index:1080;
  background:#1a1a1a; color:#fff;
  padding:8px 12px; border-radius:8px;
  font-family:var(--font-body); font-size:13px; font-weight:600; line-height:1.4;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
  max-width:min(420px, 90vw);
  white-space:pre-wrap; overflow-wrap:anywhere;
  opacity:0; transition:opacity .15s;
}
.bublina.is-visible{ opacity:1; }
/* naznačíme, že se dá najet myší */
[data-bublina]{ cursor:help; }

/* ---------- upozornění pro redaktora ---------- */
.todo-bar{
  background:var(--rose-600); color:#fff; font-size:14px; font-weight:700;
  padding:12px var(--pad); text-align:center; line-height:1.5;
}
.todo-bar code{ background:rgba(255,255,255,.18); padding:2px 6px; border-radius:6px; font-size:13px; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; background:var(--navy); color:var(--text-on-dark);
  padding:28px var(--pad) 88px; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 70% at 78% 30%, rgba(56,132,199,.42), transparent 70%);
}
.hero > .wrap{ position:relative; }

.nav{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.nav-logo{ font-family:var(--font-display); font-size:22px; font-weight:800; letter-spacing:-.02em; color:#fff; }
.nav-links{ display:flex; align-items:center; gap:32px; font-size:15px; font-weight:600; }
.nav-links a{ color:var(--ink-300); }
.nav-links a:hover{ color:#fff; opacity:1; }
/* CTA je tlačítko, ne odkaz v menu — musí přebít .nav-links a výš */
.nav-links a.btn-brand,
.nav-links a.btn-brand:hover{ color:#fff; }

.hero-grid{
  display:grid; grid-template-columns:minmax(0,1fr) 440px; gap:64px;
  align-items:center; margin-top:64px;
}
.hero-copy{ display:flex; flex-direction:column; gap:24px; }
.hero-copy h1{
  color:#fff; font-size:64px; line-height:1.05; text-wrap:balance;
}
/* jméno + podtitulek drží u sebe (menší mezera než gap 24px v .hero-copy) */
.hero-title{ display:flex; flex-direction:column; gap:10px; }
/* podtitulek: menší a lehčí než jméno (64px/800), ale výrazně tučnější
   než odstavec pod ním (18px/400) */
.hero-subtitle{
  font-family:var(--font-display); font-size:28px; font-weight:700;
  line-height:1.2; letter-spacing:-.01em; color:#fff;
}
.hero-lead{ max-width:520px; font-size:18px; line-height:1.65; color:var(--ink-300); }
.hero-actions{ display:flex; gap:14px; padding-top:8px; flex-wrap:wrap; }

.hero-stats{
  display:flex; gap:40px; flex-wrap:wrap;
  padding-top:24px; margin-top:16px; border-top:1px solid rgba(255,255,255,.12);
}
.hero-stats div{ display:flex; flex-direction:column; gap:4px; }
.hero-stats b{ font-family:var(--font-display); font-size:28px; font-weight:800; }
.hero-stats span{ font-size:13px; color:var(--ink-400); font-weight:600; }

.hero-media{ position:relative; width:440px; height:520px; }
.hero-media img{
  width:100%; height:100%; object-fit:cover;
  border-radius:var(--radius-2xl); box-shadow:var(--shadow-lift);
}
.hero-card{
  position:absolute; left:-32px; bottom:36px;
  display:flex; align-items:center; gap:14px;
  padding:14px 22px 14px 16px; border-radius:var(--radius-pill);
  background:#fff; box-shadow:0 16px 40px rgba(19,19,22,.28);
}
.hero-card i{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  background:var(--brand); color:#fff; flex:none;
}
.hero-card b{ font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--ink-900); display:block; }
.hero-card span{ font-size:13px; font-weight:600; color:var(--ink-500); }

/* ============================================================
   VYSÍLACÍ ČASY
   ============================================================ */
.section{ padding:72px var(--pad); }
.section-split{ display:grid; grid-template-columns:320px minmax(0,1fr); gap:56px; }
.section-intro{ display:flex; flex-direction:column; gap:12px; }
.section-intro h2{ font-size:36px; color:var(--ink-900); }
.section-intro p{ font-size:16px; line-height:1.65; color:var(--ink-600); }

/* Mapa pokrytí se nezobrazuje, jen se dá otevřít — proto odkaz, ne obrázek.
   Je to <button>, aby klik nikam neskákal; vypadá jako odkaz. */
.mapa-odkaz{
  align-self:flex-start; margin-top:4px;
  display:inline-flex; align-items:center; gap:8px;
  background:none; border:0; padding:0; text-align:left;
  font-family:var(--font-body); font-size:16px; font-weight:700;
  color:var(--rose-600); cursor:zoom-in;
}
.mapa-odkaz:hover{ opacity:.78; }

.schedule{ display:flex; flex-direction:column; gap:12px; }
.schedule-row{
  display:grid; grid-template-columns:150px minmax(0,1fr) 150px 110px;
  align-items:center; gap:24px;
  padding:24px 28px; border-radius:var(--radius-xl);
  background:#fff; box-shadow:var(--shadow-sm);
}
.schedule-day{ font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--ink-900); }
/* Pravý sloupec: buď „Živě“, nebo kdy to bude (Dnes / Zítra / 25. 8.).
   Roztažené přes celý sloupec a vycentrované, aby růžová bublina „Živě“
   a holý text data stály pod sebou — ne každý u jiného okraje. */
.schedule-stav{
  justify-self:stretch;
  display:flex; align-items:center; justify-content:center;
}
.schedule-kdy{ font-size:15px; font-weight:700; color:var(--ink-400); white-space:nowrap; }
.schedule-kdy.blizko{ color:var(--ink-800); }
.schedule-name{ display:flex; flex-direction:column; }
.schedule-name b{ font-size:17px; font-weight:700; color:var(--ink-900); }
.schedule-name span{ font-size:14px; font-weight:600; color:var(--ink-500); }
.schedule-time{ font-size:17px; font-weight:700; color:var(--ink-700); }
.schedule-live{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 16px; border-radius:var(--radius-pill);
  background:var(--rose-50); color:var(--brand); font-size:13px; font-weight:700;
}
.schedule-live .dot{ width:8px; height:8px; background:var(--brand); }

/* ============================================================
   O MNĚ
   ============================================================ */
.about{ padding:0 var(--pad) 72px; }
.about-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; }
.about-media img{
  width:100%; height:420px; object-fit:cover;
  border-radius:var(--radius-2xl); box-shadow:var(--shadow-md);
}
.about-copy{ display:flex; flex-direction:column; gap:20px; }
.about-copy h2{ font-size:40px; color:var(--ink-900); line-height:1.12; }
.about-copy ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
/* pomlčka je absolutně umístěná, ne flex položka — jinak by se z odkazů
   a interpunkce uvnitř textu staly samostatné flex položky a mezi ně by
   spadlo gap (mezera před tečkou za „Rádia Blaník“) */
.about-copy li{
  font-size:17px; line-height:1.7; color:var(--ink-600);
  position:relative; padding-left:28px;
}
.about-copy li::before{ content:"—"; color:var(--brand); position:absolute; left:0; top:0; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; padding-top:8px; }
.chips span{
  padding:10px 18px; border-radius:var(--radius-pill);
  background:#fff; border:1px solid var(--border-subtle);
  font-size:14px; font-weight:700; color:var(--ink-700);
}

/* ============================================================
   GALERIE
   ============================================================ */
.gallery-sec{ padding:0 var(--pad) 72px; display:flex; flex-direction:column; gap:24px; }
.gallery-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.gallery-head h2{ font-size:36px; color:var(--ink-900); }
.gallery{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr));
  grid-auto-rows:200px; gap:16px;
}
.gallery button{
  padding:0; border:0; background:none; cursor:pointer; min-width:0;
  border-radius:var(--radius-xl); overflow:hidden; display:block;
  transition:transform .24s cubic-bezier(.22,1,.36,1), box-shadow .24s ease;
}
.gallery button:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.gallery button img{ width:100%; height:100%; object-fit:cover; }
/* mozaika podle návrhu: velká 2x2 vlevo, dvě malé, jedna široká přes 2 sloupce */
.gallery .big{ grid-column:span 2; grid-row:span 2; }
.gallery .wide{ grid-column:span 2; }

/* lightbox */
.lb{
  position:fixed; inset:0; z-index:60; display:none;
  align-items:center; justify-content:center; padding:32px;
  background:rgba(19,19,22,.88);
}
.lb.open{ display:flex; }
/* kamkoliv se dá kliknout pro zavření, i na samotnou fotku */
.lb, .lb img{ cursor:zoom-out; }
.lb img{ max-width:100%; max-height:100%; border-radius:var(--radius-xl); }
/* Kolečko se zavíráním. padding:0 a flex centrování jsou tu podstatné —
   tlačítko má vlastní vnitřní okraj od prohlížeče a znak × se zarovnává
   podle účaří, takže bez tohohle sedí křížek mimo střed. */
.lb-close{
  position:absolute; top:24px; right:24px;
  width:48px; height:48px; flex:none; padding:0;
  display:flex; align-items:center; justify-content:center;
  border:0; border-radius:50%; line-height:0;
  background:rgba(255,255,255,.14); color:#fff;
  cursor:pointer; transition:background .14s ease;
}
.lb-close:hover{ background:rgba(255,255,255,.26); }
.lb-close svg{
  width:20px; height:20px; display:block;
  fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round;
}

/* ============================================================
   REFERENCE
   ============================================================ */
.refs{ background:var(--navy); color:var(--text-on-dark); padding:72px var(--pad); }
.refs h2{ font-size:36px; color:var(--accent); margin-top:10px; }
.refs h3{
  font-family:var(--font-display); font-size:20px; font-weight:800;
  color:#fff; margin:0 0 14px; padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.refs ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.refs li{
  font-size:17px; line-height:1.6; color:var(--ink-300);
  position:relative; padding-left:20px;
}
/* klasický puntík jako na původních stránkách; absolutně umístěný (ne flex,
   viz .about-copy li výš), calc ho drží na středu prvního řádku */
.refs li::before{
  content:""; position:absolute; left:0;
  top:calc((1.6em - 6px) / 2);
  width:6px; height:6px; border-radius:50%; background:currentColor;
}

/* dvě hlavní reference nad sloupci — bílý text, žlutý puntík */
.refs-lead{ margin-top:24px !important; }
.refs-lead li{ font-size:19px; font-weight:600; color:#fff; }
.refs-lead li::before{ background:var(--accent); }

/* „Dříve“ — nadpisek nad sloupci, stejný styl jako „Reference“;
   nese i oddělovací čáru, aby čára byla nad ním, ne nad sloupci */
.refs-drive{
  display:block; margin-top:48px; padding-top:28px;
  border-top:1px solid rgba(255,255,255,.12);
  color:var(--rose-300);   /* stejná jako „Kontakt & booking“ */
}

/* Rádio / Televize / Maturitní plesy */
.refs-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:40px; align-items:start; margin-top:24px;
}
.refs-col li{ font-size:16px; }

/* ============================================================
   KONTAKT
   ============================================================ */
.contact{ background:var(--navy-deep); color:var(--text-on-dark); padding:72px var(--pad); }
.contact-grid{ display:grid; grid-template-columns:minmax(0,1fr) 460px; gap:72px; align-items:start; }
.contact-copy{ display:flex; flex-direction:column; gap:20px; }
.contact-copy .eyebrow{ color:var(--rose-300); }
.contact-copy h2{ font-size:44px; color:#fff; line-height:1.1; }
.contact-copy p{ font-size:17px; line-height:1.7; color:var(--ink-300); max-width:460px; }
.contact-list{ display:flex; flex-direction:column; gap:14px; padding-top:12px; }
.contact-list a, .contact-list span{
  display:flex; align-items:center; gap:12px;
  font-size:17px; font-weight:600; color:var(--text-on-dark);
}
.contact-list a:hover{ color:#fff; }
.contact-list i{ color:var(--rose-400); }

.form-card{
  background:#fff; border-radius:var(--radius-2xl); padding:36px;
  display:flex; flex-direction:column; gap:16px; color:var(--ink-900);
  border:2px solid var(--accent);   /* žlutý rám ve stejné barvě jako puntíky */
}
.form-card h3{ font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--ink-900); }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-size:13px; font-weight:700; color:var(--ink-600); }
.field input, .field textarea{
  font-family:var(--font-body); font-size:16px; color:var(--ink-900);
  padding:12px 16px; border-radius:var(--radius-md);
  border:1.5px solid var(--border-default); background:var(--cream-50);
  width:100%; transition:border-color .14s ease, box-shadow .14s ease;
}
.field input{ height:48px; }
.field textarea{ min-height:92px; resize:vertical; line-height:1.6; }
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(244,207,60,.42);   /* #F4CF3C, stejná žlutá jako rám */
}
/* Firefox sám maluje prázdným required polím červený okraj — pryč s ním */
.field input:-moz-ui-invalid, .field textarea:-moz-ui-invalid{ box-shadow:none; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-card .btn{ margin-top:8px; height:54px; padding:0; width:100%; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.note{
  border-radius:var(--radius-xl); padding:24px 28px; color:#fff;
  display:flex; flex-direction:column; gap:6px; margin-bottom:20px;
}
.note b{ font-family:var(--font-display); font-size:20px; font-weight:800; }
.note-ok{ background:#0F9D6E; }
.note-err{ background:var(--rose-600); }

/* ============================================================
   PATIČKA
   ============================================================ */
.footer{
  background:var(--navy-edge); color:var(--ink-400);
  padding:32px var(--pad); font-size:14px; font-weight:600;
}
.footer .wrap{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer a{ color:var(--ink-300); }
/* odkaz „Nahoru“ i se šipkou — inline-flex, ať šipka sedí na účaří textu */
.nahoru{ display:inline-flex; align-items:center; gap:7px; }
.nahoru:hover{ color:#fff; opacity:1; }

/* ============================================================
   RESPONZIVITA
   ============================================================ */
@media (max-width:1100px){
  :root{ --pad:40px; }
  .hero-grid{ grid-template-columns:minmax(0,1fr) 380px; gap:40px; }
  .hero-media{ width:380px; height:460px; }
  .hero-copy h1{ font-size:52px; }
  .hero-subtitle{ font-size:24px; }
  .contact-grid{ grid-template-columns:minmax(0,1fr) 400px; gap:48px; }
}

@media (max-width:900px){
  .nav{ justify-content:center; text-align:center; }
  .nav-links{ gap:20px; font-size:14px; flex-wrap:wrap; justify-content:center; }
  /* Hero je teď v jednom sloupci — celý obsah včetně fotky na střed. */
  .hero-grid{ grid-template-columns:minmax(0,1fr); margin-top:40px; justify-items:center; }
  .hero-copy{ align-items:center; text-align:center; }
  .badge-onair{ align-self:center; }
  .hero-title{ align-items:center; }
  .hero-lead{ max-width:520px; margin-left:auto; margin-right:auto; }
  .hero-actions{ justify-content:center; }
  .hero-stats{ justify-content:center; }
  .hero-media{ width:100%; height:440px; max-width:440px; margin:0 auto; }
  .hero-card{ left:16px; bottom:16px; }
  .section-split{ grid-template-columns:minmax(0,1fr); gap:32px; }
  /* Dvě patra místo tří: den a „Dnes / Zítra / datum“ vedle sebe nahoře,
     vpravo čas; název pořadu přes celou šířku pod tím. Dřív byl stav až
     na třetím řádku a kartička kvůli tomu zbytečně narostla. */
  .schedule-row{
    grid-template-columns:auto auto minmax(0,1fr);
    gap:4px 12px; padding:18px 20px; align-items:center;
  }
  .schedule-day{ font-size:18px; order:1; }
  .schedule-stav{ order:2; justify-self:start; justify-content:flex-start; }
  .schedule-time{ order:3; justify-self:end; }
  .schedule-name{ order:4; grid-column:1 / -1; }
  .about-grid{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .contact-grid{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .gallery{ grid-template-columns:repeat(2, minmax(0,1fr)); grid-auto-rows:160px; }
  .refs-drive{ margin-top:36px; padding-top:32px; }
  .refs-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:32px; }
}

@media (max-width:600px){
  :root{ --pad:20px; }
  .section, .refs, .contact{ padding-top:48px; padding-bottom:48px; }
  .about, .gallery-sec{ padding-bottom:48px; }
  .hero{ padding-bottom:56px; }
  .hero-copy h1{ font-size:38px; }
  .hero-subtitle{ font-size:20px; }
  .hero-lead{ font-size:16px; }
  .hero-media{ height:340px; }
  .hero-card{ padding:10px 16px 10px 12px; }
  .hero-card b{ font-size:14px; }
  .hero-stats{ gap:24px; }
  .hero-actions .btn{ width:100%; }
  .section-intro h2, .gallery-head h2, .refs h2{ font-size:28px; }
  .about-copy h2{ font-size:30px; }
  .contact-copy h2{ font-size:32px; }
  /* na úzkých displejích ať se ten první řádek vejde na jednu linku */
  .schedule-row{ gap:4px 10px; padding:16px 18px; }
  .schedule-time{ font-size:15px; }
  .schedule-kdy{ font-size:14px; }
  .schedule-live{ padding:6px 12px; font-size:12px; }
  .form-card{ padding:24px; }
  .field-row{ grid-template-columns:1fr; }
  .gallery .big{ grid-column:span 2; grid-row:span 1; }
  .refs-grid{ grid-template-columns:minmax(0,1fr); gap:28px; }
  .refs-lead li{ font-size:17px; }
}
