/*
Theme Name: Galaxie X Šumperk
Theme URI: https://galaxie-x-sumperk.cz
Author: Galaxie X Šumperk
Description: Vlastní šablona pro Taneční a sportovní spolek Galaxie X Šumperk. Tmavá navy paleta, klubový font Rawson Alt, fotky týmu a decentní vesmírná atmosféra. Vyžaduje plugin „Galaxie X — obsah“.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: galaxie-x
Tags: custom-colors, custom-menu, custom-logo, featured-images, translation-ready, block-styles
*/

/* ════════════════════════════════════════════════════════════════════
   GALAXIE X ŠUMPERK — shared stylesheet (redesign 2026)
   Spec: DESIGN.md · font: Rawson Alt (klubový) · akcent: modrá
   ════════════════════════════════════════════════════════════════════ */

/* ── Font: Rawson Alt (self-hosted) ──
   Cesty jsou ABSOLUTNÍ (/assets/fonts/…). Relativní zápis (assets/fonts/…)
   se vyhodnocuje vůči umístění tohohle souboru, tedy /assets/ — prohlížeč
   pak hledal /assets/assets/fonts/… a všech deset řezů končilo 404. Web se
   kvůli tomu vykresloval systémovým fontem místo klubového. ── */
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltThin.otf') format('opentype'); font-weight:100; font-style:normal; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltThinIt.otf') format('opentype'); font-weight:100; font-style:italic; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltLight.otf') format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltLightIt.otf') format('opentype'); font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltRegular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltRegularIt.otf') format('opentype'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltMedium.otf') format('opentype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltSemiBold.otf') format('opentype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltBold.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Rawson Alt'; src:url('/assets/fonts/RawsonAltBlack.otf') format('opentype'); font-weight:900; font-style:normal; font-display:swap; }

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

:root {
  /* barvy — DESIGN.md §2 */
  --bg:#060B1C; --bg-deep:#04070F;
  --surface:#0C1530; --surface-2:#111C3E;
  --line:rgba(148,170,255,.16); --line-soft:rgba(148,170,255,.08);
  --blue:#3D7BFF; --blue-deep:#2F63D6; --blue-bright:#7FA7FF;
  --gold:#E9BE55;
  --ink:#F4F7FF; --ink-2:#B7C2DF; --ink-3:#8590AE;
  --ff:'Rawson Alt', system-ui, -apple-system, 'Segoe UI', sans-serif;
  /* tvary — jeden systém: ovládací 10 / karty a média 16 / chip 8 */
  --r-ctl:10px; --r-card:16px; --r-chip:8px;
  --container:1280px; --gutter:clamp(20px,5vw,48px); --section-y:clamp(76px,10vw,132px);
  /* motion */
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1);
  --shadow-photo:0 24px 48px -24px rgba(3,6,16,.8);
}

body { font-family:var(--ff); background:var(--bg); color:var(--ink); line-height:1.65; overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; font-synthesis:none; }
img,svg,video { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
ul { list-style:none; }
::selection { background:rgba(61,123,255,.4); color:#fff; }
:focus-visible { outline:2px solid var(--blue-bright); outline-offset:3px; border-radius:4px; }

/* Ikony: sprite čárových ikon; brand glyfy (IG/FB) plné */
svg:has(use[href*="#i-"]) { fill:none; stroke:currentColor; stroke-width:1.6px; stroke-linecap:round; stroke-linejoin:round; }
svg:has(use[href*="#i-ig"]), svg:has(use[href*="#i-fb"]) { fill:currentColor; stroke:none; }

.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
section[id] { scroll-margin-top:80px; }
section { padding-block:var(--section-y); position:relative; }
.skip-link { position:absolute; left:16px; top:-60px; z-index:200; background:var(--blue); color:#fff; padding:10px 18px; border-radius:var(--r-ctl); font-weight:600; transition:top .2s var(--ease-out); }
.skip-link:focus { top:16px; }

/* ── Typografie ── */
.display { font-weight:700; text-transform:uppercase; letter-spacing:.005em; line-height:1; }
h1,h2,h3 { font-weight:700; }
.head { margin-bottom:clamp(34px,5vw,54px); max-width:760px; }
.head h2 { font-size:clamp(30px,4.2vw,52px); text-transform:uppercase; line-height:1.02; letter-spacing:.005em; }
.head p { color:var(--ink-2); font-size:clamp(16px,1.6vw,18px); margin-top:14px; max-width:60ch; }
.eyebrow { display:inline-block; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:14px; }
.lead { color:var(--ink-2); font-size:clamp(17px,1.7vw,19px); }

/* ── Buttony — solid modrá / obrys; žádné gradienty, žádné glow ── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; font-weight:600; font-size:15px; padding:14px 26px; border-radius:var(--r-ctl); border:1px solid transparent; white-space:nowrap; transition:background .15s var(--ease-out), border-color .15s var(--ease-out), color .15s var(--ease-out), transform .15s var(--ease-out); }
.btn svg { width:17px; height:17px; }
.btn:active { transform:scale(.98); }
.btn-primary { background:var(--blue); color:#fff; }
.btn-primary:hover { background:var(--blue-deep); transform:translateY(-1px); }
.btn-primary:active { transform:scale(.98); }
.btn-secondary { border-color:var(--line); color:var(--ink); background:rgba(12,21,48,.4); }
.btn-secondary:hover { border-color:var(--blue); color:#fff; transform:translateY(-1px); }
.link-more { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; color:var(--blue-bright); }
.link-more svg { width:16px; height:16px; transition:transform .2s var(--ease-out); }
.link-more:hover svg { transform:translateX(4px); }
.link-more:hover { color:#fff; }

/* ── Hvězdné pozadí — decentní, statické body ── */
.stars { position:fixed; inset:0; z-index:-1; pointer-events:none; }
.stars i { position:absolute; width:1px; height:1px; border-radius:50%; background:#fff; opacity:.45; animation:tw 7s ease-in-out infinite; }
@keyframes tw { 0%,100%{opacity:.45} 50%{opacity:.15} }

/* ── Header ── */
.site-header { position:fixed; inset:0 0 auto 0; z-index:100; border-bottom:1px solid transparent; transition:background .25s var(--ease-out), border-color .25s var(--ease-out); }
.site-header.scrolled, .site-header.solid { background:rgba(5,9,22,.86); backdrop-filter:blur(14px); border-bottom-color:var(--line-soft); }
.header-inner { display:flex; align-items:center; justify-content:space-between; height:68px; gap:18px; }
.brand { display:inline-flex; align-items:center; gap:11px; flex:none; }
.brand .emblem { width:38px; aspect-ratio:1/.74; overflow:hidden; }
.brand .emblem img { width:100%; transform:translateY(-7%) scale(1.18); }
/* Název klubu: „Galaxie X" tučně · „Šumperk" thin italic (brand pravidlo) */
.brand b { font-weight:900; font-size:17px; letter-spacing:.04em; text-transform:uppercase; color:#fff; line-height:1; }
.brand b span { display:block; font-size:12px; font-weight:300; font-style:italic; letter-spacing:.14em; text-transform:none; color:var(--ink-2); margin-top:2px; }
.nav { display:flex; align-items:center; gap:2px; }
.nav a { position:relative; font-size:14px; font-weight:500; color:var(--ink-2); padding:8px 11px; white-space:nowrap; transition:color .2s var(--ease-out); }
.nav a::after { content:''; position:absolute; left:11px; right:11px; bottom:2px; height:2px; border-radius:1px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease-out); }
.nav a:hover { color:#fff; }
.nav a.active { color:#fff; }
.nav a.active::after, .nav a:hover::after { transform:scaleX(1); }
.header-actions { display:flex; align-items:center; gap:10px; flex:none; }
.icon-btn { display:inline-grid; place-items:center; width:38px; height:38px; border-radius:var(--r-ctl); color:var(--ink-2); border:1px solid var(--line-soft); transition:color .2s, border-color .2s, transform .15s var(--ease-out); }
.icon-btn svg { width:17px; height:17px; }
.icon-btn:hover { color:#fff; border-color:var(--blue); }
.icon-btn:active { transform:scale(.96); }
.header-actions .btn { padding:11px 20px; font-size:14px; }
.hamburger { display:none; width:44px; height:44px; border-radius:var(--r-ctl); color:#fff; border:1px solid var(--line); }
.hamburger svg { width:22px; height:22px; margin:auto; }
.mobile-nav { position:fixed; inset:68px 0 auto 0; z-index:99; background:rgba(5,8,18,.97); backdrop-filter:blur(18px); border-bottom:1px solid var(--line-soft); padding:10px var(--gutter) 24px; display:grid; gap:2px; transform:translateY(-10px); opacity:0; visibility:hidden; transition:opacity .25s var(--ease-out), transform .25s var(--ease-out), visibility .25s; }
.mobile-nav.open { transform:translateY(0); opacity:1; visibility:visible; }
.mobile-nav a.m { font-size:16px; font-weight:500; color:var(--ink-2); padding:13px 4px; border-bottom:1px solid var(--line-soft); }
.mobile-nav a.m.active { color:#fff; box-shadow:inset 3px 0 0 var(--blue); padding-left:12px; }
.mobile-nav .m-foot { display:flex; gap:10px; align-items:center; margin-top:16px; }
.mobile-nav .m-foot .btn { flex:1; }

/* ── Homepage hero — full-bleed foto, obsah dole vlevo ── */
.hero { position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; padding-block:0; }
.hero-media { position:absolute; inset:0; z-index:-1; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.hero-media::after { content:''; position:absolute; inset:0; background:
  linear-gradient(0deg, rgba(4,7,15,.96) 0%, rgba(4,7,15,.45) 42%, rgba(4,7,15,.5) 100%),
  linear-gradient(90deg, rgba(4,7,15,.72) 0%, rgba(4,7,15,.2) 55%, transparent 80%),
  radial-gradient(70% 55% at 85% 8%, rgba(99,74,255,.22), transparent 60%); }
.hero-inner { position:relative; width:100%; padding-block:0 clamp(52px,8vw,88px); }
.hero h1 { font-size:clamp(46px,8.6vw,108px); line-height:.98; }
.hero h1 .hx { font-weight:900; }
.hero h1 .hs { display:inline-block; font-weight:100; font-style:italic; text-transform:none; letter-spacing:.01em; line-height:1.1; padding-bottom:.08em; }
.hero .sub { color:var(--ink-2); font-size:clamp(16px,1.8vw,19px); max-width:52ch; margin-top:18px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }

/* ── Honours strip — reálná čísla pod hero ── */
.honours { border-block:1px solid var(--line-soft); background:rgba(12,21,48,.5); padding-block:0; }
.honours-inner { display:grid; grid-template-columns:repeat(3,auto) 1fr; align-items:center; gap:clamp(22px,4vw,56px); padding-block:22px; }
.honours .h-item b { display:block; font-size:clamp(24px,2.6vw,32px); font-weight:700; color:var(--gold); line-height:1.05; }
.honours .h-item span { font-size:13px; color:var(--ink-3); letter-spacing:.03em; }
.honours .link-more { justify-self:end; }

/* ── Split (text + foto) ── */
.split { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,72px); align-items:center; }
.split.rev { grid-template-columns:.95fr 1.05fr; }
.split.rev .media { order:-1; }
.frame { position:relative; border-radius:var(--r-card); overflow:hidden; box-shadow:var(--shadow-photo); }
.frame img { width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform .5s var(--ease-out); }
.frame:hover img { transform:scale(1.03); }
.frame.tall img { aspect-ratio:4/4.4; }
.split h2 { font-size:clamp(30px,4.2vw,52px); text-transform:uppercase; line-height:1.02; }
.split .body { color:var(--ink-2); margin-top:16px; max-width:58ch; }

.stat-row { display:flex; flex-wrap:wrap; gap:clamp(24px,3vw,44px); margin-top:32px; padding-top:26px; border-top:1px solid var(--line-soft); }
.stat-row .s b { display:block; font-size:clamp(26px,3vw,36px); font-weight:700; color:#fff; line-height:1.05; }
.stat-row .s span { font-size:13px; color:var(--ink-3); }

/* ── Skupiny — feature + trio ── */
.feature-card { position:relative; display:flex; align-items:flex-end; min-height:clamp(300px,38vw,420px); border-radius:var(--r-card); overflow:hidden; box-shadow:var(--shadow-photo); }
.feature-card > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; transition:transform .5s var(--ease-out); }
.feature-card:hover > img { transform:scale(1.03); }
.feature-card::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(4,7,15,.9) 0%, rgba(4,7,15,.3) 55%, transparent 80%), linear-gradient(90deg, rgba(4,7,15,.55) 0%, transparent 55%); }
.feature-body { position:relative; z-index:1; padding:clamp(22px,3.4vw,40px); max-width:560px; }
.feature-body .tag { display:inline-block; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:10px; }
.feature-body h3 { font-size:clamp(26px,3.4vw,40px); text-transform:uppercase; line-height:1; }
.feature-body p { color:var(--ink-2); font-size:15.5px; margin-top:10px; }
.feature-body .link-more { margin-top:16px; }

.group-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); margin-top:clamp(16px,2vw,24px); }
.gcard { display:flex; flex-direction:column; border-radius:var(--r-card); overflow:hidden; background:var(--surface); border:1px solid var(--line-soft); transition:transform .2s var(--ease-out), border-color .2s var(--ease-out); }
.gcard:hover { transform:translateY(-4px); border-color:var(--line); }
.gcard:active { transform:translateY(-2px) scale(.99); }
.gcard .gimg { aspect-ratio:16/10; overflow:hidden; }
.gcard .gimg img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out); }
.gcard:hover .gimg img { transform:scale(1.03); }
.gcard .gbody { padding:20px 22px 24px; display:flex; flex-direction:column; flex:1; }
.gcard h3 { font-size:21px; font-weight:600; text-transform:none; }
.gcard .gmeta { font-size:13px; color:var(--ink-3); margin-top:3px; }
.gcard p { color:var(--ink-2); font-size:14.5px; margin-top:10px; flex:1; }
.gcard .link-more { margin-top:16px; font-size:14px; }

/* ── Výsledky / úspěchy ── */
.res-list { display:grid; gap:10px; margin-top:26px; }
.res-row { display:grid; grid-template-columns:auto 1fr; gap:6px 22px; align-items:baseline; padding:16px 0; border-bottom:1px solid var(--line-soft); }
.res-row:first-child { border-top:1px solid var(--line-soft); }
.res-row b { font-size:clamp(19px,2vw,24px); font-weight:700; color:var(--gold); white-space:nowrap; }
.res-row .r-what { font-weight:600; color:var(--ink); font-size:16px; }
.res-row .r-where { grid-column:2; font-size:13.5px; color:var(--ink-3); }

/* výsledkové boardy sezón */
.season { margin-top:clamp(30px,4vw,44px); }
.season h3 { font-size:clamp(21px,2.4vw,26px); text-transform:uppercase; letter-spacing:.02em; padding-bottom:14px; border-bottom:1px solid var(--line); }
.board { display:grid; }
.board .b-row { display:grid; grid-template-columns:150px 1fr; gap:8px 26px; padding:20px 0; border-bottom:1px solid var(--line-soft); }
.board .b-when { font-size:13.5px; font-weight:600; color:var(--ink-3); letter-spacing:.02em; padding-top:3px; }
.board .b-where { font-size:clamp(18px,2vw,22px); font-weight:600; }
.board .b-medals { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:6px; font-size:14.5px; color:var(--ink-2); }
.board .b-medals .g { color:var(--gold); font-weight:600; }

/* statistiky nahoře na Úspěších */
.stats-band { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,3vw,40px); }
.stats-band .s { padding-left:18px; border-left:2px solid var(--blue); }
.stats-band .s b { display:block; font-size:clamp(30px,3.6vw,44px); font-weight:700; color:var(--gold); line-height:1.05; }
.stats-band .s.plain b { color:#fff; }
.stats-band .s span { font-size:13.5px; color:var(--ink-3); }

/* ── Prose / checklist / facts ── */
/* ── Zalomení řádků v redakčních textech ──
   HTML samo o sobě konec řádku zahazuje: text uložený jako „první řádek\n
   druhý řádek" by se vykreslil jako jedna věta. Autor přitom své zalomení
   vidí — ale jen do prvního načtení stránky, protože do té doby drží
   rozepsaný text prohlížeč. Kdokoli jiný pak viděl slitý odstavec.

   `pre-line` zachová konce řádků, ale přebytečné mezery dál slučuje a text
   normálně zalamuje. Platí pro všechna místa, kde editor ukládá víceřádkový
   text — ať se web chová stejně na každém zařízení. */
.prose p, .head p, .hero .sub, .lead, .body, .jtext, .apply-note,
.facts .v, .gcard p, .feature-body p, .footer-brand p, .contact-li span,
.nabor-prazdno p, .stav-prazdno, .recruit-inner p, .yt p {
  white-space:pre-line;
}

.prose p { color:var(--ink-2); font-size:clamp(15.5px,1.6vw,17px); margin-top:14px; max-width:58ch; }
.prose p:first-of-type { margin-top:0; }
.prose strong { color:var(--ink); }
.prose h2 { font-size:clamp(28px,3.8vw,46px); text-transform:uppercase; line-height:1.04; margin-bottom:18px; }
.checklist { display:grid; gap:10px; margin-top:20px; }
.checklist li { display:flex; gap:11px; align-items:flex-start; color:var(--ink-2); font-size:15.5px; }
.checklist li svg { width:18px; height:18px; color:var(--blue-bright); flex:none; margin-top:4px; }

.facts { border-radius:var(--r-card); background:var(--surface); border:1px solid var(--line-soft); padding:clamp(22px,2.6vw,30px); }
.facts .row { display:grid; grid-template-columns:110px 1fr; gap:14px; padding:13px 0; border-bottom:1px solid var(--line-soft); align-items:baseline; }
.facts .row:first-child { padding-top:0; }
.facts .row:last-child { border-bottom:0; padding-bottom:0; }
.facts .k { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); font-weight:600; }
.facts .v { color:var(--ink); font-weight:500; font-size:15.5px; }
.facts .price { color:var(--gold); font-weight:700; }
.apply-note { font-size:13.5px; color:var(--ink-3); margin-top:12px; }

/* ── Galerie ── */
.gal { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:210px; gap:14px; }
.gal a { position:relative; overflow:hidden; border-radius:var(--r-card); }
.gal a img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out); }
.gal a:hover img { transform:scale(1.04); }
.gal a.w2 { grid-column:span 2; } .gal a.h2 { grid-row:span 2; }

/* ── Nábor band — foto pozadí, levé zarovnání ── */
.recruit { position:relative; overflow:hidden; }
.recruit .hero-media img { object-position:center 35%; }
.recruit .hero-media::after { content:''; position:absolute; inset:0; background:
  linear-gradient(90deg, rgba(4,7,15,.94) 0%, rgba(4,7,15,.78) 45%, rgba(4,7,15,.45) 100%),
  radial-gradient(60% 80% at 90% 100%, rgba(56,182,255,.14), transparent 60%); }
.recruit-inner { position:relative; padding-block:clamp(72px,10vw,120px); max-width:640px; }
.recruit h2 { font-size:clamp(30px,4.4vw,54px); text-transform:uppercase; line-height:1.02; }
.recruit p { color:var(--ink-2); margin-top:16px; max-width:52ch; }
.recruit .hero-actions { margin-top:28px; }
.recruit .tel-note { margin-top:18px; font-size:15px; color:var(--ink-2); }
.recruit .tel-note a { color:#fff; font-weight:600; border-bottom:1px solid var(--line); transition:border-color .2s; }
.recruit .tel-note a:hover { border-color:var(--blue-bright); }

/* ── Podstránky — hero ── */
.page-hero { position:relative; min-height:clamp(360px,56vh,520px); display:flex; align-items:flex-end; overflow:hidden; padding-block:0; }
.page-hero .hero-media img { object-position:center 30%; }
.page-hero .hero-inner { padding-block:clamp(120px,16vh,160px) clamp(36px,5vw,56px); }
.page-hero h1 { font-size:clamp(40px,7vw,92px); line-height:.96; }
.page-hero .lead { margin-top:12px; max-width:54ch; }
.crumbs { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-3); margin-bottom:14px; }
.crumbs a:hover { color:#fff; }
.crumbs svg { width:13px; height:13px; opacity:.6; }
.ptag { display:inline-block; font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:10px; }

/* ── Kolaž (mažoretky) ── */
/* Koláž skupiny: vlevo jeden portrét přes celou výšku, vpravo dvě fotky
   na šířku pod sebou. Poměry stran jsou pevné, takže výměna fotky mění
   obrázek, ne rozvržení. */
.collage { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:14px; }
.collage .frame-portret { grid-row:span 2; }
.collage .frame-portret img { aspect-ratio:3/4.4; height:100%; object-position:center 30%; }
.collage .frame-sirka img { aspect-ratio:16/10; height:100%; }

/* ── Kontakt ── */
.contact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.2vw,22px); }
.cc { display:flex; flex-direction:column; gap:6px; padding:clamp(22px,2.6vw,30px); border-radius:var(--r-card); background:var(--surface); border:1px solid var(--line-soft); transition:transform .2s var(--ease-out), border-color .2s; }
a.cc:hover { transform:translateY(-3px); border-color:var(--line); }
.cc svg { width:22px; height:22px; color:var(--blue-bright); margin-bottom:10px; }
.cc .k { font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); font-weight:600; }
.cc .v { font-size:17px; color:#fff; font-weight:600; word-break:break-word; }

/* Lidé v Galaxii — portrét a jméno. Karet bývá málo, proto se roztahují
   podle obsahu a nezůstávají po nich prázdná místa v mřížce. */
/* Lidé v Galaxii — kulatý portrét a pod ním jméno.
   Žádná karta ani jmenný pruh: dva lidé mají působit jako profily, ne
   jako dlaždice v katalogu. */
.people { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(28px,6vw,72px); }
.people .p { display:flex; flex-direction:column; align-items:center; gap:16px; margin:0; text-align:center; max-width:260px; }
.people .p-foto { width:clamp(150px,22vw,210px); aspect-ratio:1; border-radius:50%; overflow:hidden; background:var(--surface-2); border:1px solid var(--line); }
.people .p-foto img { width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.people .p-jmeno { font-weight:600; font-size:clamp(16px,1.6vw,18px); line-height:1.35; }
/* Doplňující text pod jménem — kvalifikace, zkušenosti a podobně.
   Prázdný se do stránky vůbec nedostane, takže tu nevzniká mezera. */
.people .p-popis { margin-top:-6px; font-size:14px; line-height:1.6; color:var(--ink-2); white-space:pre-line; }

/* ── Sociální sítě na stránce Kontakt ──
   Tři karty vedle sebe, na mobilu pod sebou. Celá karta je odkaz, proto má
   vlastní stav při najetí i při procházení klávesnicí. Barva sítě svítí jen
   v ikoně a v jemném stínu — základ zůstává navy jako zbytek webu. */
.site-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.2vw,26px); }
.site-karta {
  --site-akcent:var(--blue-bright);
  display:flex; flex-direction:column; gap:6px;
  padding:clamp(22px,2.6vw,30px);
  border:1px solid var(--line-soft); border-radius:var(--r-card); background:var(--surface);
  transition:transform .2s var(--ease-out), border-color .2s var(--ease-out), background .2s var(--ease-out), box-shadow .3s var(--ease-out);
}
.site-karta:hover { transform:translateY(-4px); border-color:var(--line); background:var(--surface-2); box-shadow:0 26px 52px -30px var(--site-akcent); }
.site-karta:active { transform:translateY(-2px); }
.site-karta:focus-visible { outline:2px solid var(--blue-bright); outline-offset:3px; }
.site-ikona {
  display:grid; place-items:center; width:52px; height:52px; margin-bottom:14px;
  border-radius:var(--r-ctl); border:1px solid var(--line-soft);
  background:rgba(148,170,255,.08); color:var(--site-akcent);
  transition:border-color .2s var(--ease-out), background .2s var(--ease-out);
}
.site-karta:hover .site-ikona { border-color:var(--site-akcent); background:rgba(148,170,255,.14); }
.site-ikona svg { width:25px; height:25px; }
.site-nazev { font-size:clamp(19px,2vw,23px); font-weight:700; text-transform:uppercase; letter-spacing:.01em; line-height:1.1; }
.site-profil { font-size:15px; color:var(--ink-2); word-break:break-word; }
.site-cta { display:inline-flex; align-items:center; gap:8px; margin-top:18px; font-size:14.5px; font-weight:600; color:var(--blue-bright); }
.site-cta svg { width:16px; height:16px; transition:transform .25s var(--ease-out); }
.site-karta:hover .site-cta svg { transform:translateX(4px); }
.site-facebook { --site-akcent:#5B8DFF; }
.site-instagram { --site-akcent:#D96BA8; }
.site-tiktok { --site-akcent:#4FD1D9; }

.apply-list { display:grid; gap:10px; margin-top:24px; }
.apply-radek { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 20px; border:1px solid var(--line-soft); border-radius:var(--r-ctl); background:var(--surface); font-weight:600; font-size:15.5px; transition:border-color .2s, transform .15s var(--ease-out); }
a.apply-radek:hover { border-color:var(--blue); transform:translateY(-1px); }
.apply-radek span { font-size:13px; color:var(--ink-3); font-weight:500; }
.apply-radek .apply-nazev { font-size:15.5px; color:var(--ink); font-weight:600; margin-right:auto; }
.apply-radek svg { width:16px; height:16px; color:var(--blue-bright); flex:none; }

/* Stav přihlášek. Zavřené musí být poznat na první pohled, ale pruh má
   zůstat čitelný — proto barevný štítek, ne přeškrtnutý text. */
.apply-stav { padding:5px 11px; border-radius:999px; font-size:11.5px !important; font-weight:700 !important; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
/* Otevřený stav je jen tichá poznámka — pozornost si má brát ten červený. */
.apply-stav-otevreno { color:var(--ink-3) !important; background:none; padding-left:0; padding-right:0; }
.apply-stav-zavreno { color:#FCA5A5 !important; background:rgba(248,113,113,.16); border:1px solid rgba(248,113,113,.45); }

/* Zavřená přihláška se nevykresluje jako odkaz, takže se na ni nedá ani
   kliknout, ani zaostřit klávesnicí. Vzhled to jen dopoví. */
.je-zavreno .apply-radek { border-color:rgba(248,113,113,.3); cursor:not-allowed; }
.je-zavreno .apply-radek .apply-nazev { color:var(--ink-2); }
.je-zavreno .apply-radek svg { color:var(--ink-3); opacity:.45; }

@media (max-width:560px) {
  .apply-radek { flex-wrap:wrap; }
  .apply-radek .apply-nazev { flex:1 1 100%; margin-right:0; }
}

/* ── Nábor s plakáty ── */
.join-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,36px); }
.join-item { display:flex; flex-direction:column; border-radius:var(--r-card); background:var(--surface); border:1px solid var(--line-soft); overflow:hidden; }
.join-poster { display:block; position:relative; cursor:zoom-in; }
.join-poster img { width:100%; height:auto; display:block; transition:transform .5s var(--ease-out); }
.join-poster:hover img { transform:scale(1.015); }
.join-poster::after { content:''; position:absolute; inset:0; box-shadow:inset 0 -1px 0 var(--line-soft); }
.join-body { padding:clamp(20px,2.6vw,30px); display:flex; flex-direction:column; flex:1; }
.join-body h3 { font-size:clamp(21px,2.4vw,26px); font-weight:700; text-transform:uppercase; letter-spacing:.01em; }
.join-body .gmeta { font-size:13.5px; color:var(--ink-3); margin-top:4px; }
.join-body p.jtext { color:var(--ink-2); font-size:15px; margin-top:12px; flex:1; }
.join-body .hero-actions { margin-top:18px; }

/* ── Výsledky MS 2026 ── */
.ms-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,3vw,40px); margin-bottom:clamp(34px,5vw,52px); }
.ms-summary .s { padding-left:18px; border-left:2px solid var(--gold); }
.ms-summary .s b { display:block; font-size:clamp(30px,3.6vw,44px); font-weight:700; color:var(--gold); line-height:1.05; }
.ms-summary .s.silver { border-left-color:var(--line); }
.ms-summary .s.silver b { color:var(--ink); }
.ms-summary .s span { font-size:13.5px; color:var(--ink-3); }
.rgroup { margin-top:clamp(28px,4vw,40px); }
.rgroup h3 { font-size:clamp(18px,2vw,22px); text-transform:uppercase; letter-spacing:.02em; padding-bottom:12px; border-bottom:1px solid var(--line); }
.rgroup h3 .place { color:var(--gold); margin-right:10px; }
.rgroup.r2 h3 .place, .rgroup.r3 h3 .place, .rgroup.r4 h3 .place { color:var(--blue-bright); }
.rlist { display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(24px,4vw,56px); }
.rlist li { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--line-soft); font-size:15px; }
.rlist li span { color:var(--ink-2); }
.rlist li b { font-weight:600; color:var(--ink); white-space:nowrap; }
.award { display:flex; gap:18px; align-items:flex-start; margin-top:clamp(30px,4vw,44px); padding:clamp(20px,2.6vw,28px); background:var(--surface); border-left:2px solid var(--gold); border-radius:0 var(--r-card) var(--r-card) 0; }
.award svg { width:26px; height:26px; color:var(--gold); flex:none; margin-top:2px; }
.award b { font-size:17px; }
.award p { color:var(--ink-2); font-size:15px; margin-top:4px; }
.ack { color:var(--ink-3); font-size:13.5px; margin-top:22px; }

/* ── Lightbox ── */
.lb { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:clamp(16px,4vw,48px); background:rgba(4,7,15,.78); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); opacity:0; transition:opacity .22s var(--ease-out); }
/* [hidden] musí přebít display:flex, jinak zavřený lightbox odchytává kliky celé stránky */
.lb[hidden] { display:none; }
.lb.open { opacity:1; }
.lb figure { position:relative; margin:0; display:flex; align-items:center; justify-content:center; max-width:min(90vw,1400px); max-height:80vh; transform:scale(.96); opacity:0; transition:transform .22s var(--ease-out), opacity .22s var(--ease-out); }
.lb.open figure { transform:scale(1); opacity:1; }
.lb img { max-width:100%; max-height:80vh; width:auto; height:auto; border-radius:12px; box-shadow:0 40px 90px -30px rgba(0,0,0,.9); }
.lb-caption { position:absolute; left:12px; right:12px; bottom:12px; padding:10px 14px; border-radius:var(--r-ctl); color:#fff; background:rgba(4,7,15,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); font-size:13.5px; line-height:1.4; text-align:center; }
.lb-caption[hidden] { display:none; }
.lb-btn { position:absolute; display:grid; place-items:center; width:44px; height:44px; border-radius:var(--r-ctl); color:#fff; background:rgba(12,21,48,.82); border:1px solid var(--line); transition:border-color .15s var(--ease-out), background .15s var(--ease-out), transform .15s var(--ease-out); }
.lb-btn svg { width:20px; height:20px; }
.lb-btn:hover { border-color:var(--blue); background:rgba(17,28,62,.95); }
.lb-btn:active { transform:scale(.96); }
.lb-close { top:18px; right:18px; }
.lb-prev { left:14px; top:50%; transform:translateY(-50%); }
.lb-next { right:14px; top:50%; transform:translateY(-50%); }
.lb-prev:active { transform:translateY(-50%) scale(.96); }
.lb-next:active { transform:translateY(-50%) scale(.96); }
.lb-prev svg { transform:rotate(180deg); }
.lb[data-single] .lb-prev, .lb[data-single] .lb-next { display:none; }
body.lb-open { overflow:hidden; }
@media (max-width:600px){
  .lb { padding:12px; }
  .lb figure, .lb img { max-height:74vh; }
  .lb-close { top:max(12px, env(safe-area-inset-top)); right:12px; }
  .lb-prev { left:8px; } .lb-next { right:8px; }
  .lb-caption { left:8px; right:8px; bottom:8px; padding:8px 10px; font-size:12.5px; }
}

/* ── Footer ── */
.site-footer { padding-top:clamp(56px,8vw,88px); padding-bottom:36px; border-top:1px solid var(--line-soft); margin-top:var(--section-y); background:var(--bg-deep); }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:clamp(28px,4vw,48px); }
.footer-brand .brand { margin-bottom:16px; }
.footer-brand p { color:var(--ink-2); font-size:14.5px; max-width:34ch; }
.support { margin-top:16px; font-size:13px; color:var(--ink-3); }
.footer-col h4 { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:16px; font-weight:600; }
.footer-col ul { display:grid; gap:10px; }
.footer-col a, .footer-col li { color:var(--ink-2); font-size:14.5px; transition:color .2s; }
.footer-col a:hover { color:#fff; }
.contact-li { display:flex; align-items:flex-start; gap:10px; }
.contact-li svg { width:16px; height:16px; color:var(--blue-bright); flex:none; margin-top:4px; }
.footer-social { display:flex; gap:10px; }
.footer-bottom { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; margin-top:clamp(36px,6vw,56px); padding-top:22px; border-top:1px solid var(--line-soft); color:var(--ink-3); font-size:13px; }
/* Vstup do správy: má být k nalezení, ne na očích. */
.footer-admin { color:var(--ink-3); text-decoration:none; opacity:.55; transition:opacity .2s var(--ease-out), color .2s var(--ease-out); }
.footer-admin:hover, .footer-admin:focus-visible { opacity:1; color:var(--ink); text-decoration:underline; }

/* ── Reveal on scroll ── */
.gx-anim .reveal { opacity:0; transform:translateY(20px); transition:opacity .55s var(--ease-out), transform .55s var(--ease-out); }
.gx-anim .reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.07s } .reveal.d2 { transition-delay:.14s } .reveal.d3 { transition-delay:.21s }

/* ── Responsive ── */
@media (max-width:1120px){
  .nav { display:none; }
  .hamburger { display:grid; place-items:center; }
  .header-actions .icon-btn, .header-actions .btn { display:none; }
}
@media (max-width:1080px){
  .group-grid { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr; max-width:560px; }
  /* Portréty se skládají samy; na úzké obrazovce zůstanou vedle sebe,
     dokud se vejdou, jinak se zalomí pod sebe — vždy vystředěné. */
  @media (max-width:480px) { .people { gap:32px; } .people .p { max-width:none; } }
  .stats-band { grid-template-columns:1fr 1fr; gap:26px; }
}
@media (max-width:900px){
  .join-grid { grid-template-columns:1fr; }
  /* Karty sítí pod sebe; celá karta zůstává velkou dotykovou plochou. */
  .site-grid { grid-template-columns:1fr; }
  .rlist { grid-template-columns:1fr; }
  .ms-summary { grid-template-columns:1fr; gap:18px; }
  .split, .split.rev { grid-template-columns:1fr; gap:28px; }
  .split.rev .media { order:0; }
  .honours-inner { grid-template-columns:1fr 1fr; gap:18px; }
  .honours .link-more { justify-self:start; grid-column:1/-1; }
  .gal { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .board .b-row { grid-template-columns:1fr; gap:4px; }
  .facts .row { grid-template-columns:96px 1fr; }
}
@media (max-width:600px){
  .group-grid { grid-template-columns:1fr; }
  .feature-card { min-height:340px; }
  .hero-actions .btn { width:100%; }
  .footer-grid { grid-template-columns:1fr; }
  .collage { grid-template-columns:1fr 1fr; }
  /* Na úzkém telefonu by byly fotky vedle sebe nečitelně malé — poskládáme
     je pod sebe a portrét si nechá svůj tvar. */
  @media (max-width:560px) {
    .collage { grid-template-columns:1fr; grid-template-rows:auto; }
    .collage .frame-portret { grid-row:auto; }
    .collage .frame-portret img { aspect-ratio:4/5; }
  }
  .stat-row { gap:20px; }
  .res-row { grid-template-columns:1fr; gap:2px; }
  .res-row .r-where { grid-column:1; }
}
@media (prefers-reduced-motion:reduce){
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1 !important; transform:none !important; }
  .lb figure { transform:none !important; }
}


/* ════════════════════════════════════════════════════════════════
   WordPress — povinné třídy, editor a prvky administrace
   ════════════════════════════════════════════════════════════════ */

.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus { position:fixed!important; top:16px; left:16px; z-index:200; width:auto; height:auto; clip:auto; padding:10px 18px; background:var(--blue); color:#fff; border-radius:var(--r-ctl); font-weight:600; }

.alignleft { float:left; margin:6px 24px 18px 0; }
.alignright { float:right; margin:6px 0 18px 24px; }
.aligncenter { display:block; margin-inline:auto; }
.alignwide { max-width:1100px; margin-inline:auto; }
.alignfull { max-width:none; }
.wp-caption { max-width:100%; }
.wp-caption-text, figcaption { margin-top:10px; font-size:13.5px; color:var(--ink-3); }
.sticky, .bypostauthor { position:relative; }

/* Obsah z editoru uvnitř .prose */
.prose ul, .prose ol { display:grid; gap:8px; margin-top:14px; padding-left:20px; color:var(--ink-2); }
.prose ul li { list-style:disc; }
.prose ol li { list-style:decimal; }
.prose blockquote { margin:24px 0; padding-left:20px; border-left:2px solid var(--blue); color:var(--ink); font-size:17px; }
.prose a { color:var(--blue-bright); border-bottom:1px solid var(--line); }
.prose a:hover { color:#fff; border-color:var(--blue-bright); }
.prose img, .prose .wp-block-image img { border-radius:var(--r-card); height:auto; }
.prose figure { margin:26px 0; }
.prose table { width:100%; border-collapse:collapse; margin-top:20px; font-size:15px; }
.prose th, .prose td { padding:10px 14px; border-bottom:1px solid var(--line-soft); text-align:left; }
.prose th { color:var(--ink); font-weight:600; }

/* Wrapper obrázků, aby jiný poměr stran nerozhodil layout */
.pomer { position:relative; overflow:hidden; border-radius:var(--r-card); }
.pomer img { width:100%; height:100%; object-fit:cover; display:block; }
.pomer-43 { aspect-ratio:4/3; }
.pomer-169 { aspect-ratio:16/9; }
.pomer-1610 { aspect-ratio:16/10; }
.pomer-34 { aspect-ratio:3/4; }
.frame img, .gimg img, .gal a img, .feature-card > img { height:100%; }

/* Články a detaily */
.clanek { max-width:820px; margin-inline:auto; }
.clanek h1 { font-size:clamp(30px,4.4vw,54px); margin-bottom:12px; }
.clanek-meta { color:var(--ink-3); font-size:14px; margin-bottom:26px; }
.detail-foto { margin-bottom:30px; }
.clanek-zpet { margin-top:34px; }
.detail-galerie { margin-top:34px; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; }
.detail-galerie a { aspect-ratio:4/3; cursor:zoom-in; }
.detail-galerie .gallery-caption { position:absolute; z-index:1; left:8px; right:8px; bottom:8px; padding:7px 9px; border-radius:var(--r-ctl); color:#fff; background:rgba(4,7,15,.76); font-size:12.5px; line-height:1.35; text-align:center; backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
@media (max-width:900px) {
  .detail-galerie { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .detail-galerie { grid-template-columns:1fr; }
}

/* Stav bez obsahu */
.stav-prazdno { grid-column:1/-1; padding:26px 0; color:var(--ink-3); font-size:15.5px; }

/* Stav přihlášek u akcí */
.stav-prihlasek { display:inline-block; align-self:flex-start; margin-top:12px; padding:5px 10px; border:1px solid var(--line); border-radius:var(--r-chip); font-size:12.5px; font-weight:600; letter-spacing:.04em; color:var(--ink-2); }
.stav-prihlasek.stav-otevrene { border-color:var(--blue); color:var(--blue-bright); }
.stav-prihlasek.stav-naplneno, .stav-prihlasek.stav-ukoncene { color:var(--ink-3); }
.gcard.je-zrusena, .je-zrusena { opacity:.62; }

/* Oznamovací pruh */
.oznameni { display:block; background:var(--surface-2); border-bottom:1px solid var(--line-soft); color:var(--ink); font-size:14.5px; text-align:center; }
.oznameni-inner { padding:11px var(--gutter); }
a.oznameni:hover { background:var(--blue); color:#fff; }

/* Stránkování */
.strankovani { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:clamp(40px,6vw,64px); }
.strankovani .page-numbers { display:inline-grid; place-items:center; min-width:44px; height:44px; padding:0 14px; border:1px solid var(--line-soft); border-radius:var(--r-ctl); color:var(--ink-2); font-weight:600; font-size:15px; transition:border-color .15s var(--ease-out), color .15s var(--ease-out); }
.strankovani .page-numbers:hover { border-color:var(--blue); color:#fff; }
.strankovani .page-numbers.current { background:var(--blue); border-color:var(--blue); color:#fff; }
.strankovani .dots { border:0; }

/* Administrátorská lišta nesmí zakrýt fixní hlavičku */
.admin-bar .site-header { top:32px; }
.admin-bar .mobile-nav { top:calc(68px + 32px); }
@media screen and (max-width:782px) {
  .admin-bar .site-header { top:46px; }
  .admin-bar .mobile-nav { top:calc(68px + 46px); }
}

/* ════════════════════════════════════════════════════════════════
   Akce — seznam událostí
   Záměrně jiná stavba než karty aktualit: akce se čtou jako program,
   ne jako články. Vlevo datum, uprostřed podrobnosti, vpravo stav,
   který se počítá z termínu.
   ════════════════════════════════════════════════════════════════ */
.akce-seznam { display:grid; gap:14px; }
.akce-radek {
  display:grid; grid-template-columns:auto 1fr auto; gap:clamp(16px,3vw,32px); align-items:center;
  padding:clamp(16px,2.4vw,24px); background:var(--surface); border:1px solid var(--line);
  border-left:4px solid var(--line); border-radius:var(--r-card);
  transition:border-color .3s var(--ease-out), background .3s var(--ease-out);
}
.akce-radek:hover { background:var(--surface-2); border-color:rgba(148,170,255,.3); }

.akce-datum {
  display:grid; place-items:center; min-width:74px; padding:10px 14px;
  background:var(--bg-deep); border:1px solid var(--line-soft); border-radius:var(--r-chip);
}
.akce-den { font-size:clamp(26px,3.4vw,34px); font-weight:700; line-height:1; }
.akce-mesic { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-top:5px; }

.akce-nazev { font-size:clamp(19px,2.4vw,24px); font-weight:600; margin:0 0 6px; }
.akce-nazev a:hover { color:var(--blue-bright); }
.akce-udaje { display:flex; flex-wrap:wrap; gap:8px; color:var(--ink-2); font-size:15px; margin:0; }
.akce-oddelovac { color:var(--ink-3); }
.akce-popis { color:var(--ink-3); margin:8px 0 0; max-width:62ch; }
.akce-zruseno-znacka { color:var(--ink-3); text-decoration:line-through; margin-right:8px; }

/* Stavový pruh — musí být vidět na první pohled. */
.akce-stav {
  display:grid; place-items:center; min-width:132px; padding:11px 18px;
  border-radius:999px; border:1px solid currentColor;
  font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-align:center; white-space:nowrap;
}
.akce-stav-upcoming  { color:var(--blue-bright); background:rgba(61,123,255,.14); }
.akce-stav-tomorrow  { color:var(--gold);        background:rgba(233,190,85,.16); }
.akce-stav-today     { color:#0A1024;            background:var(--gold); border-color:var(--gold); }
.akce-stav-running   { color:#04140A;            background:#4ADE80; border-color:#4ADE80; }
.akce-stav-past      { color:var(--ink-3);       background:rgba(133,144,174,.12); }
.akce-stav-cancelled { color:#FCA5A5;            background:rgba(248,113,113,.14); }

/* Levý proužek řádku nese stejnou informaci i bez čtení textu. */
.akce-upcoming  { border-left-color:var(--blue); }
.akce-tomorrow  { border-left-color:var(--gold); }
.akce-today     { border-left-color:var(--gold); }
.akce-running   { border-left-color:#4ADE80; }
.akce-past      { border-left-color:rgba(133,144,174,.35); opacity:.72; }
.akce-cancelled { border-left-color:#F87171; opacity:.72; }

/* Právě probíhající akci necháme pomalu pulsovat, ať je nepřehlédnutelná. */
@keyframes akce-tep { 0%,100% { opacity:1 } 50% { opacity:.72 } }
.akce-stav-running { animation:akce-tep 2.4s var(--ease-in-out) infinite; }
@media (prefers-reduced-motion:reduce) { .akce-stav-running { animation:none; } }

@media (max-width:720px) {
  .akce-radek { grid-template-columns:auto 1fr; row-gap:14px; }
  .akce-stav { grid-column:1 / -1; justify-self:start; }
}

/* ════════════════════════════════════════════════════════════════
   Nábor — stránka „Přidej se k nám" a plakáty na hlavní stránce
   ════════════════════════════════════════════════════════════════ */

/* Plakát nese často text přímo v grafice, takže se nesmí ořezávat.
   Vejde se celý a doplní se tmavým podkladem. */
.join-poster img { object-fit:contain; background:var(--bg-deep); }

.join-vice { margin-top:28px; }

/* Uzavřená přihláška není odkaz — tohle je jen jeho vzhled. */
.btn.je-zavreno {
  background:rgba(248,113,113,.14); color:#FCA5A5; border:1px solid rgba(248,113,113,.45);
  cursor:not-allowed; box-shadow:none;
}
.btn.je-zavreno:hover { transform:none; background:rgba(248,113,113,.14); }

/* Skrytý nábor vidí jen správce v editaci, ať pozná, co veřejnost nevidí. */
.join-item.je-skryty { opacity:.62; }
.join-skryto {
  display:inline-block; margin:0 0 12px; padding:5px 11px; border-radius:999px;
  font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold); background:rgba(233,190,85,.16);
}

/* Prázdný stav: vlídná zpráva místo prázdné mřížky. */
.nabor-prazdno {
  max-width:640px; margin:0 auto; padding:clamp(32px,6vw,56px) clamp(24px,4vw,40px);
  text-align:center; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-card);
}
.nabor-prazdno-nadpis { font-size:clamp(20px,3vw,26px); font-weight:600; margin:0 0 10px; }
.nabor-prazdno p:last-child { color:var(--ink-3); margin:0; }

/* Poznámka pod hlavním tlačítkem, když zrovna nikoho nenabíráme. */
.hero-nabor-zprava {
  max-width:52ch; margin:18px 0 0; padding:12px 16px;
  font-size:14.5px; color:var(--ink-2);
  background:rgba(12,21,48,.72); border-left:3px solid var(--gold);
  border-radius:0 var(--r-ctl) var(--r-ctl) 0; backdrop-filter:blur(6px);
}

/* ════════════════════════════════════════════════════════════════
   YouTube — sekce na konci hlavní stránky

   Záměrně nevypadá jako vložený cizí modul: stejné odsazení, stejné
   rámečky a stejná typografie jako zbytek webu. Přehrávač se načte
   teprve po kliknutí, do té doby je to obyčejný obrázek.
   ════════════════════════════════════════════════════════════════ */
.yt { padding-bottom:calc(var(--section-y) * .9); }
.yt .head { max-width:66ch; }
.yt .ptag { display:inline-block; margin-bottom:14px; }

.yt-hlavni { margin-top:clamp(28px,4vw,44px); }

.yt-ramecek {
  position:relative; display:block; width:100%; padding:0; overflow:hidden;
  aspect-ratio:16/9; border:1px solid var(--line); border-radius:var(--r-card);
  background:var(--surface); box-shadow:var(--shadow-photo);
}
.yt-ramecek iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.yt-ramecek-velky { max-width:960px; margin:0 auto; }

/* Náhled je tlačítko — musí se chovat jako tlačítko, ne jako obrázek. */
.yt-nahled { cursor:pointer; transition:border-color .25s var(--ease-out), transform .2s var(--ease-out); }
.yt-nahled:hover { border-color:var(--blue); transform:translateY(-2px); }
.yt-nahled:focus-visible { outline:2px solid var(--blue-bright); outline-offset:3px; }
.yt-nahled img { width:100%; height:100%; object-fit:cover; }
/* Podklad, když se náhled z YouTube nenačte — sekce zůstane celistvá. */
.yt-nahled-podklad { position:absolute; inset:0; background:linear-gradient(140deg,var(--surface-2),var(--bg-deep)); }

.yt-tlacitko-prehrat {
  position:absolute; inset:0; display:grid; place-items:center;
  background:linear-gradient(to top,rgba(4,7,15,.55),rgba(4,7,15,.05));
}
.yt-tlacitko-prehrat svg { width:clamp(58px,8vw,86px); height:auto; filter:drop-shadow(0 6px 18px rgba(0,0,0,.5)); }
.yt-tlacitko-pozadi { fill:rgba(12,21,48,.86); transition:fill .2s var(--ease-out); }
.yt-tlacitko-sipka { fill:#fff; }
.yt-nahled:hover .yt-tlacitko-pozadi { fill:var(--blue); }

.yt-mrizka { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,2vw,20px); margin-top:clamp(14px,2vw,20px); }
.yt-mrizka .yt-ramecek { border-radius:var(--r-ctl); }
.yt-mrizka .yt-tlacitko-prehrat svg { width:clamp(38px,5vw,54px); }

.yt-akce { margin-top:clamp(26px,4vw,38px); }

@media (max-width:860px) {
  /* Na telefonu se videa poskládají pod sebe — vedle sebe by byla malá. */
  .yt-mrizka { grid-template-columns:1fr; }
}

/* „KDY" na stránce skupiny může mít víc řádků — rozvrh se často píše
   po dnech pod sebe, jednořádkové pole by ho slepilo dohromady. */
.facts .v-viceradkove { white-space: pre-line; }
