/* Karty akci (faze C, 22. 10. 2026; vizual = designer, prototyping/output/2026-10-22-faze-c-design/mockup.html).
   Spolecne pro /akce/, /akce/<slug> a sekci na uvodu. Barvy z stranky (--bg --ink --accent --muted --line --card) + dodatecne nize;
   tmava varianta pres html[data-theme="dark"] (theme_head.inc.html). Kontejnerove dotazy: rodic .akce-ct. */
:root { --paper:#f4ecdd; --ok:#2e7d32; --ok-soft:#e5f2e6; --grid:rgba(120,105,80,.13); --note:#c62828; }
html[data-theme="dark"] { --paper:#18181c; --ok:#66bb6a; --ok-soft:#1d2e1f; --grid:rgba(255,255,255,.06); }
.akce-ct { container-type:inline-size; }
.card { transition:transform .15s ease, box-shadow .15s ease; }
.card:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.12); }
.card:focus-visible, .btn:focus-visible, .back:focus-visible, .fchip:focus-visible, .more:focus-visible, .all:focus-visible, .cta a:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { .card { transition:none; } .card:hover { transform:none; } }
.card:not(.featured):not(.compact) { display:flex; flex-direction:column; height:100%; }
.card:not(.featured):not(.compact) .cbody { flex:1; }
.card { display:block; background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; color:inherit; text-decoration:none; text-align:left; }
.banner { position:relative; aspect-ratio:16/9; background:var(--paper); overflow:hidden; }
.banner img.routes { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; }
.banner img.routes.photo { opacity:1; }
.banner .noarch { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; color:var(--muted); font-size:13px; }
.banner .noarch img { width:54px; opacity:.35; filter:grayscale(1); }
.logo-tile { position:absolute; left:12px; top:12px; background:#fff; border-radius:12px; padding:6px 10px; height:58px; display:flex; align-items:center; box-shadow:0 1px 3px rgba(0,0,0,.18); }
.logo-tile img { max-height:46px; max-width:130px; display:block; }
.logo-tile.fallback { background:var(--accent); padding:6px; width:58px; justify-content:center; }
.logo-tile.fallback img { max-height:44px; filter:brightness(0) invert(1); }
.chip { position:absolute; right:12px; top:12px; display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; padding:5px 10px; border-radius:999px; background:var(--card); color:var(--muted); border:1px solid var(--line); }
.chip.live { background:var(--ok-soft); color:var(--ok); border-color:transparent; }
.chip.live::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--ok); animation:pulse 1.4s ease-in-out infinite; }
.chip.upcoming { color:var(--accent); border-color:var(--accent); }
@keyframes pulse { 50% { opacity:.3; } }
@media (prefers-reduced-motion:reduce) { .chip.live::before { animation:none; } }
.cbody { padding:14px 16px 16px; }
.cname { font:700 19px/1.25 Georgia,serif; margin:0 0 4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cmeta { color:var(--muted); font-size:13px; }
.corg { color:var(--accent); font-size:13px; font-style:italic; margin-top:2px; }
.stats { display:flex; gap:18px; margin-top:12px; }
.stats div { display:flex; flex-direction:column; }
.stats b { font-size:20px; line-height:1.1; }
.stats span { color:var(--muted); font-size:12px; }
.card.featured .cname { font-size:24px; }
@container (min-width:700px) {
  .card.featured { display:grid; grid-template-columns:3fr 2fr; }
  .card.featured .banner { aspect-ratio:auto; min-height:300px; }
  .card.featured .cbody { padding:22px 24px; display:flex; flex-direction:column; justify-content:center; }
  .card.featured .stats b { font-size:26px; }
}
.card.compact { display:grid; grid-template-columns:112px 1fr; }
.card.compact .banner { aspect-ratio:auto; min-height:84px; }
.card.compact .logo-tile, .card.compact .chip { display:none; }
.card.compact .cbody { padding:10px 12px; }
.card.compact .cname { font-size:15px; }
.card.compact .stats { gap:12px; margin-top:6px; }
.card.compact .stats b { font-size:14px; }
/* seznam */
.akce-page { max-width:1040px; margin:0 auto; padding:28px 20px 40px; text-align:left; }
h1.pt { font:700 30px Georgia,serif; margin:0 0 6px; }
p.lead { color:var(--muted); font-size:15px; margin:0 0 18px; max-width:640px; }
.filters { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 22px; font-size:13px; color:var(--muted); }
.fchip { border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:999px; padding:5px 12px; font-size:13px; cursor:pointer; font-family:inherit; }
.fchip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
h2.grp { font:700 13px/1 -apple-system,Arial,sans-serif; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:26px 0 12px; }
.grid { display:grid; grid-template-columns:1fr; gap:16px; }
@container (min-width:700px) { .grid { grid-template-columns:repeat(3,1fr); } }
.empty { border:1px dashed var(--line); border-radius:14px; padding:18px; color:var(--muted); font-size:14px; }
.empty a { color:var(--accent); font-weight:700; text-decoration:none; }
/* stranka akce */
.back { color:var(--accent); text-decoration:none; font-size:14px; font-weight:700; }
.dhead { display:flex; gap:18px; align-items:center; margin:16px 0 8px; flex-wrap:wrap; }
.dhead .logo-tile { position:static; height:84px; padding:8px 12px; }
.dhead .logo-tile img { max-height:68px; max-width:200px; }
.dhead .logo-tile.fallback { width:84px; }
.dhead h1 { font:700 30px/1.15 Georgia,serif; margin:0; }
@container (max-width:600px) { .dhead h1 { font-size:24px; } .dhead .logo-tile { height:64px; } .dhead .logo-tile img { max-height:50px; max-width:150px; } }
.dmeta { color:var(--muted); font-size:14px; margin-top:4px; }
.dmeta a { color:var(--accent); text-decoration:none; font-weight:600; }
.dchip { position:static; margin-top:6px; }
.partner { display:flex; gap:10px; align-items:center; margin:4px 0 6px; font-size:14px; }
.partner .plogo { width:72px; height:40px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.18); }
.partner .plogo img { height:30px; width:auto; max-width:64px; display:block; }
.small { color:var(--muted); font-size:12px; margin-top:8px; }
.desc { font-size:15px; line-height:1.55; max-width:720px; margin:10px 0 18px; white-space:pre-line; }
.btns { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 18px; }
.btn { display:inline-block; text-decoration:none; font-weight:700; font-size:14px; padding:11px 16px; border-radius:12px; }
.btn-primary { background:var(--accent); color:#fff; }
.btn-outline { color:var(--accent); border:2px solid var(--accent); padding:9px 14px; }
.box { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px; margin:0 0 18px; }
.box h3 { font:700 18px Georgia,serif; margin:0 0 10px; }
.days { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 10px; }
.map { position:relative; background-color:var(--paper); background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px); background-size:56px 56px; border-radius:12px; aspect-ratio:16/10; overflow:hidden; }
.map img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.map #leaf { position:absolute; inset:0; z-index:0; background:transparent; }
.map .live-hint { position:absolute; left:12px; bottom:12px; z-index:500; }
.tiles { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:0 0 18px; }
@container (min-width:700px) { .tiles { grid-template-columns:repeat(5,1fr); } }
.tile { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px 14px; }
.tile b { display:block; font-size:24px; }
.tile span { color:var(--muted); font-size:12px; }
table.fl { width:100%; border-collapse:collapse; font-size:14px; }
table.fl th { text-align:left; color:var(--muted); font-weight:600; font-size:12px; padding:6px 8px; border-bottom:1px solid var(--line); }
table.fl td { padding:9px 8px; border-bottom:1px solid var(--line); }
table.fl td a { color:var(--accent); text-decoration:none; font-weight:600; }
.flm { display:none; }
@container (max-width:600px) {
  table.fl { display:none; }
  .flm { display:block; }
  .flm .row { padding:10px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:2px 10px; font-size:14px; }
  .flm .row b { font-weight:700; }
  .flm .row span { color:var(--muted); font-size:12px; }
  .flm .row a { color:var(--accent); text-decoration:none; font-weight:600; font-size:13px; align-self:center; grid-row:1 / span 2; grid-column:2; }
}
.more { display:inline-block; margin-top:10px; color:var(--accent); font-weight:700; text-decoration:none; font-size:14px; background:none; border:0; padding:0; cursor:pointer; font-family:inherit; }
ol.res { margin:0 0 10px; padding-left:20px; font-size:14px; }
ol.res li { padding:4px 0; }
ol.res li span { color:var(--muted); }
.cta { background:var(--accent); color:#fff; border-radius:16px; padding:20px; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; text-align:left; }
.cta h3 { font:700 20px Georgia,serif; margin:0 0 4px; }
.cta p { margin:0; font-size:14px; opacity:.95; max-width:520px; color:#fff; }
.cta a { background:#fff; color:#8a4a10; text-decoration:none; font-weight:800; padding:12px 16px; border-radius:12px; font-size:14px; white-space:nowrap; }
.leaflet-container { font-family:inherit; }
/* Leaflet v tmavem rezimu = jako map.html */
html[data-theme="dark"] .leaflet-tile-pane { filter: invert(100%) hue-rotate(180deg) brightness(95%) contrast(90%); }
html[data-theme="dark"] .leaflet-container { background: #1a1a20; }
html[data-theme="dark"] .leaflet-bar a { background: var(--card); color: var(--ink); border-bottom-color: var(--line); }
html[data-theme="dark"] .leaflet-control-attribution { background: rgba(30,30,36,.85); color: var(--muted); }
html[data-theme="dark"] .leaflet-control-attribution a { color: var(--accent); }
/* zive mapy: nebezi na pomeru 16:10, ale ~60 vh (stranka akce) */
.map.live-big { aspect-ratio:auto; height:60vh; min-height:340px; }
/* prehravac letoveho dne */
.rp-host { margin:0 0 12px; }
.rp-map { aspect-ratio:16/10; }
.rp-leaf { position:absolute; inset:0; }
.rp-bar { display:flex; align-items:center; gap:10px; margin-top:8px; flex-wrap:wrap; }
.rp-play { width:38px; height:34px; border-radius:10px; border:1px solid var(--line); background:var(--card); color:var(--accent); font-size:16px; cursor:pointer; }
.rp-play:focus-visible, .rp-time:focus-visible, .rp-speed select:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.rp-time { flex:1; min-width:140px; accent-color:var(--accent); }
.rp-clock { font-variant-numeric:tabular-nums; color:var(--muted); font-size:13px; min-width:42px; }
.rp-speed { color:var(--muted); font-size:13px; }
.rp-speed select { font:inherit; color:var(--accent); background:var(--card); border:1px solid var(--line); border-radius:8px; padding:3px 6px; }
.rp-cap { color:var(--muted); font-size:13px; margin:6px 0 0; }
.rp-cap a { color:var(--accent); font-weight:700; text-decoration:none; }
/* celo trasy v prehravaci: kolecko v barve tras s bilym okrajem nad stopou; po pristani mensi, bile s obrysem v barve tras (balon stoji na miste) */
.rp-dot { cursor:pointer; }
.rp-dot i { display:block; width:100%; height:100%; border-radius:50%; background:#c9701a; border:2px solid #fff; box-shadow:0 0 0 1px rgba(0,0,0,.35), 0 1px 4px rgba(0,0,0,.4); box-sizing:border-box; transition:transform .25s ease; }
.rp-dot.landed i { transform:scale(.65); background:#fff; border:2.5px solid #c9701a; box-shadow:0 1px 3px rgba(0,0,0,.35); }
@media (prefers-reduced-motion:reduce) { .rp-dot i { transition:none; } }
/* partneri akce (mockup 02083cd6): general = dlazdice 56 px, partneri 40 px, bile i v tmavem rezimu; bez loga jmeno v ramecku */
.partners { margin:6px 0 12px; }
.plabel { display:block; margin:0 0 6px; font:700 12px -apple-system,Arial,sans-serif; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.prow { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.ptile { display:inline-flex; align-items:center; justify-content:center; height:40px; padding:5px 10px; background:#fff; border-radius:10px; box-shadow:0 1px 3px rgba(0,0,0,.18); box-sizing:border-box; text-decoration:none; color:#3a2f1e; }
.ptile img { display:block; max-height:28px; max-width:100px; width:auto; height:auto; }
.ptile.big { height:56px; padding:8px 14px; border-radius:12px; }
.ptile.big img { max-height:40px; max-width:150px; }
.ptile.noimg { background:transparent; border:1px solid var(--line); box-shadow:none; color:var(--ink); font-size:13px; }
.ptile.big.noimg { font-size:15px; font-weight:700; }
a.ptile:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.pmore { color:var(--muted); font-size:13px; }

.credit a { color:var(--muted); text-decoration:none; }
.credit a:hover { text-decoration:underline; }

/* Karta pred akci (23. 10. 2026): mapa mista (OSM, ztlumena, bez interakce), uvodni obrazek, misto textem */
.pmap { position:absolute; inset:0; overflow:hidden; background:var(--paper); }
.pmap .ptiles { position:absolute; left:50%; top:50%; filter:saturate(.55); opacity:.8; }
html[data-theme="dark"] .pmap .ptiles { filter:invert(100%) hue-rotate(180deg) brightness(.9) contrast(.9) saturate(.55); }
.pmap .ptiles img { position:absolute; width:256px; height:256px; max-width:none; }
.pmap .pdot { position:absolute; left:50%; top:50%; width:15px; height:15px; margin:-7.5px 0 0 -7.5px; border-radius:50%; background:var(--accent); border:2.5px solid #fff; box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 16%, transparent); }
.pmap .pattr { position:absolute; right:0; bottom:0; font-size:9.5px; padding:1px 5px; background:rgba(255,255,255,.7); color:#444; border-radius:6px 0 0 0; }
.banner .noplace { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:6px; padding:62px 16px 12px; text-align:center; color:var(--accent);
  background:var(--paper) linear-gradient(var(--line) 1px, transparent 1px) 0 0/100% 28px, var(--paper) linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0/28px 100%; background-blend-mode:multiply; }
.banner .noplace b { font:700 17px Georgia,serif; color:var(--ink); } .banner .noplace span { font-size:13px; color:var(--muted); }

.banner .noplace .emb { width:54px; opacity:.35; filter:grayscale(1); }
html[data-theme="dark"] .pmap .pattr { background:rgba(30,30,36,.75); color:#cfcfd4; }
