/* =========================================================
   veselizije.cz — v2 design systém (foto-forward, mobil-first)
   Živé pracující městečko DNES. Ručně tesané, ne AI web.
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Public+Sans:wght@400;500;600;700&family=Caveat:wght@400;600&display=swap');

:root{
  --cihlova:#B54A32;--smetanova:#F3EDE3;--zelena:#2F4A3E;--okrova:#D9A441;
  --grafit:#2B2B28;--modra:#5C7A8A;--cream:#FBF7EF;
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Public Sans',system-ui,sans-serif;color:var(--grafit);background:var(--smetanova);line-height:1.6;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;background-image:var(--noise);opacity:.6}
h1,h2,h3,.serif{font-family:'Fraunces',serif;line-height:1.06;letter-spacing:-.01em;color:var(--zelena)}
.hand{font-family:'Caveat',cursive;color:var(--cihlova)}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
img{max-width:100%;display:block}

/* ---------- RAZÍTKO ---------- */
.stamp{display:inline-block;width:96px;height:96px;flex:none;filter:contrast(1.1);transform:rotate(-3deg)}
.stamp svg{width:100%;height:100%}
.stamp .ring{fill:none;stroke:var(--cihlova);stroke-width:3;opacity:.92;stroke-dasharray:750;stroke-dashoffset:750}
.stamp.on .ring{animation:draw 1.4s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.stamp .ink{opacity:0;transform-origin:center}
.stamp.on .ink{animation:smash .5s cubic-bezier(.2,1.6,.4,1) forwards}
@keyframes smash{0%{opacity:0;transform:scale(1.35) rotate(-14deg)}60%{opacity:1}100%{opacity:.9;transform:scale(1) rotate(-3deg)}}
.badge{display:inline-flex;align-items:center;gap:8px;font-family:'Caveat',cursive;font-size:1.1rem;color:var(--cihlova);border:2px solid var(--cihlova);border-radius:999px;padding:4px 14px;transform:rotate(-2deg);opacity:.92}

/* ---------- TLAČÍTKA (ručně tištěná) ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:1rem;padding:13px 22px;border-radius:6px;text-decoration:none;cursor:pointer;border:2px solid var(--cihlova);background:var(--cihlova);color:var(--cream);transform:rotate(-.6deg);box-shadow:3px 3px 0 rgba(43,43,40,.18);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:rotate(0) translateY(-2px);box-shadow:4px 5px 0 rgba(43,43,40,.2)}
.btn.ghost{background:rgba(251,247,239,.88);color:var(--cihlova)}
.btn.ghost:hover{background:rgba(181,74,50,.06)}
.btn .arr{font-family:'Caveat',cursive;font-size:1.3em;line-height:0}

/* ---------- HEADER / NAV (mobil hamburger) ---------- */
header.top{position:sticky;top:0;z-index:100;background:rgba(243,237,227,.92);backdrop-filter:blur(6px);border-bottom:1px solid rgba(43,43,40,.08)}
.nav{display:flex;align-items:center;gap:18px;padding:12px 20px;max-width:1200px;margin:0 auto}
.brand{font-family:'Fraunces';font-weight:700;color:var(--zelena);text-decoration:none;font-size:1.05rem}
.nav .links{display:flex;gap:20px;margin-left:auto;font-size:.95rem;font-weight:600}
.nav .links a{color:var(--grafit);text-decoration:none}
.nav .links a:hover{color:var(--cihlova)}
.nav-toggle{display:none}
.nav .cta{padding:9px 15px;font-size:.88rem;white-space:nowrap}
@media(max-width:760px){
  .nav .links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--smetanova);flex-direction:column;gap:0;padding:8px 0;border-bottom:1px solid rgba(43,43,40,.1)}
  .nav .links a{padding:14px 20px;border-top:1px solid rgba(43,43,40,.06)}
  .nav .links.open{display:flex}
  .nav-toggle{display:inline-flex;margin-left:auto;background:none;border:none;font-size:1.4rem;color:var(--cihlova);cursor:pointer;line-height:1}
  .nav .cta{margin-left:0}
}

/* ---------- HERO (foto) ---------- */
.hero{position:relative;min-height:88svh;display:flex;align-items:flex-end;color:var(--cream);overflow:hidden}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,43,40,.12) 22%,rgba(43,43,40,.55) 55%,rgba(43,43,40,.82))}
.hero .inner{position:relative;z-index:2;padding:48px 20px 56px;max-width:1200px;margin:0 auto;width:100%}
.hero .tag{font-family:'Caveat';font-size:1.5rem;color:var(--okrova);display:block}
.hero h1{color:var(--cream);font-size:clamp(2.6rem,9vw,6rem);font-weight:700}
.hero .sub{font-family:'Caveat';font-size:clamp(1.3rem,4vw,2rem);color:var(--okrova);margin:6px 0 14px}
.hero .lead{max-width:540px;font-size:1.05rem;opacity:.96}
.hero .cta{margin-top:22px;display:flex;gap:14px;flex-wrap:wrap}
.hero .live{margin-top:26px;background:rgba(47,74,62,.9);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:14px;overflow:hidden}
.hero .live .tag{color:var(--okrova);margin:0;flex:none}
.hero .track{display:inline-flex;gap:34px;animation:scroll 34s linear infinite;white-space:nowrap}
.hero .slot{display:inline-flex;align-items:center;gap:7px}
.hero .slot .time{font-family:'Fraunces';color:var(--okrova);font-weight:600}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- RUBRIKACE / sekce ---------- */
section{padding:64px 0}
section.alt{background:var(--cream)}
.kicker{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;color:var(--okrova);display:block;margin-bottom:8px}
.lead{max-width:620px;margin:14px 0 28px}
h2.sec{font-size:clamp(1.9rem,6vw,3.1rem)}

/* ---------- FOTOGALERIE míst (TADY ŽIJEME) ---------- */
.places{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.place{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;border:2px solid rgba(43,43,40,.1);box-shadow:3px 4px 0 rgba(43,43,40,.08);transition:transform .2s}
.place img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.place:hover img{transform:scale(1.05)}
.place .lbl{position:absolute;left:12px;bottom:12px;right:12px;z-index:2}
.place .lbl b{font-family:'Fraunces';color:var(--cream);font-size:1.25rem;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.place .lbl span{display:block;font-family:'Caveat';color:var(--okrova);font-size:1.1rem}
.place::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(43,43,40,.55));z-index:1}
@media(max-width:900px){.places{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.places{grid-template-columns:1fr}}

/* ---------- PROGRAM akordeon ---------- */
.pitem{border:1.5px solid rgba(43,43,40,.14);border-radius:12px;background:var(--cream);margin-bottom:14px;overflow:hidden}
.pitem summary{cursor:pointer;list-style:none;padding:18px 22px;display:flex;align-items:center;gap:16px;font-family:'Fraunces';font-size:1.25rem;color:var(--zelena)}
.pitem summary::-webkit-details-marker{display:none}
.pitem summary .ic{width:32px;height:32px;flex:none;border-radius:8px;overflow:hidden}
.pitem summary .ic img{width:100%;height:100%;object-fit:cover}
.pitem summary .plus{margin-left:auto;font-family:'Caveat';font-size:1.5rem;color:var(--modra);transition:transform .2s}
.pitem[open] summary .plus{transform:rotate(45deg)}
.pitem .body{padding:0 22px 22px}
.pitem .body ul{margin-top:8px;padding-left:2px;list-style:none}
.pitem .body li{padding-left:20px;position:relative;margin:7px 0}
.pitem .body li::before{content:"✕";position:absolute;left:0;color:var(--okrova);font-size:.8rem}
@media(max-width:560px){.pitem summary{font-size:1.1rem;padding:16px 16px}.pitem .body{padding:0 16px 18px}}

/* ---------- KANDIDÁTKA ---------- */
.cand{background:var(--cream);border:1px solid rgba(43,43,40,.12);border-radius:12px;padding:16px;position:relative;box-shadow:2px 3px 0 rgba(43,43,40,.05)}
.cand .num{font-family:'Fraunces';color:var(--okrova);font-size:1rem;opacity:.8}
.cand .photo{margin:10px 0;aspect-ratio:4/5;border-radius:9px;overflow:hidden;border:1px solid rgba(43,43,40,.1);position:relative;background:#eee}
.cand .photo img{width:100%;height:100%;object-fit:cover}
.cand .photo .mark{position:absolute;bottom:8px;left:8px;font-family:'Caveat';font-size:.9rem;color:var(--cream);background:rgba(43,43,40,.55);padding:2px 8px;border-radius:6px}
.cand h3{font-size:1.18rem;color:var(--grafit);margin-bottom:2px}
.cand .role{font-size:.9rem;color:var(--modra);margin-bottom:8px}
.cand .badge{font-size:.95rem;padding:2px 10px;margin-bottom:8px}
.cand .fact{font-size:.9rem;opacity:.85}
.cand.lead{border-color:var(--cihlova);box-shadow:inset 0 0 0 2px rgba(181,74,50,.2)}
.cand.lead h3{color:var(--cihlova);font-size:1.42rem}
.cands{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
@media(max-width:900px){.cands{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cands{grid-template-columns:1fr}}

/* ---------- EVA ---------- */
.eva{display:grid;grid-template-columns:360px 1fr;gap:36px;align-items:center}
.eva .ph{aspect-ratio:4/5;border-radius:14px;overflow:hidden;border:2px solid rgba(43,43,40,.1);position:relative;box-shadow:4px 6px 0 rgba(43,43,40,.08)}
.eva .ph img{width:100%;height:100%;object-fit:cover}
.eva .ph .mark{position:absolute;bottom:10px;left:10px;font-family:'Caveat';color:#fff;background:rgba(43,43,40,.55);padding:3px 10px;border-radius:8px}
.eva h2{font-size:clamp(2rem,5vw,3.2rem)}
.eva .ident{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}
.eva .ident b{font-family:'Fraunces';color:var(--zelena);display:block;font-size:1.05rem}
.eva .ident span{font-size:.86rem;color:var(--modra)}
@media(max-width:860px){.eva{grid-template-columns:1fr}.eva .ph{max-width:320px}.eva .ident{grid-template-columns:1fr}}

/* ---------- VIZE ---------- */
.vize{display:grid;gap:16px;max-width:820px}
.vize .card{display:flex;gap:18px;align-items:flex-start;background:var(--cream);border:1px solid rgba(43,43,40,.12);border-radius:14px;padding:22px;box-shadow:2px 3px 0 rgba(43,43,40,.05)}
.bignum{font-family:'Fraunces';font-size:3rem;color:var(--cihlova);line-height:1;flex:none}

/* ---------- VOLBY ---------- */
.vote{background:var(--cihlova);color:var(--cream);border-radius:18px;padding:40px;position:relative;overflow:hidden}
.vote h2{color:var(--cream)}
.vote .date{font-family:'Fraunces';font-size:1.9rem;margin:6px 0 16px;color:var(--okrova)}
.vote .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
.vote .step b{display:block;font-family:'Fraunces';font-size:1.15rem;color:var(--cream);margin-bottom:4px}
.vote .step span{opacity:.92;font-size:.92rem}
@media(max-width:760px){.vote .steps{grid-template-columns:1fr}}

/* ---------- FORM ---------- */
.form-row{display:flex;gap:12px;flex-wrap:wrap}
.form-row input{flex:1;min-width:220px;padding:14px 16px;font-family:'Public Sans';border:2px solid rgba(43,43,40,.18);border-radius:8px;background:var(--cream);color:var(--grafit)}
@media(max-width:560px){.form-row input{min-width:100%}}

/* ---------- PATIČKA ---------- */
footer{background:var(--zelena);color:#d9e2d9;padding:46px 0 28px;margin-top:60px}
footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
footer h4{font-family:'Fraunces';color:var(--cream);margin-bottom:10px;font-size:1.05rem}
footer a{color:var(--okrova);text-decoration:none}
footer .fine{margin-top:24px;font-size:.8rem;opacity:.7;border-top:1px solid rgba(255,255,255,.15);padding-top:16px}
@media(max-width:760px){footer .cols{grid-template-columns:1fr}}

/* ---------- INTERAKTIVNÍ MAPA ---------- */
.mapbody{position:relative;border:2px solid var(--zelena);border-radius:14px;overflow:hidden;box-shadow:3px 4px 0 rgba(43,43,40,.08);background:#e9ddc7}
.mapbody .mapbg{width:100%;display:block}
.pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--cihlova);border:3px solid var(--cream);box-shadow:0 0 0 5px rgba(181,74,50,.22);cursor:pointer;z-index:3;transition:transform .15s}
.pin:hover,.pin.on{transform:translate(-50%,-50%) scale(1.15)}
.pin.on{background:var(--zelena);box-shadow:0 0 0 5px rgba(47,74,62,.25)}
.pin span{position:absolute;left:50%;top:-6px;transform:translateX(-50%);font-family:'Caveat';font-size:1.05rem;color:var(--zelena);background:rgba(251,247,239,.95);padding:1px 9px;border-radius:6px;opacity:0;pointer-events:none;transition:.2s}
.pin:hover span{opacity:1;top:-26px}
.mapnote{display:flex;gap:18px;align-items:center;margin-top:16px;background:var(--cream);border:1px solid rgba(43,43,40,.12);border-radius:12px;padding:16px;box-shadow:2px 3px 0 rgba(43,43,40,.05)}
.mapnote img{width:150px;height:100px;object-fit:cover;border-radius:9px;flex:none}
.mapnote h3{font-size:1.25rem}
.mapnote p{font-size:.95rem;margin-top:4px}
@media(max-width:560px){.mapnote{flex-direction:column;align-items:flex-start}.mapnote img{width:100%;height:auto}}

/* ---------- JEDNO VESELÍ ---------- */
.jednowrap{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.jednocard{background:var(--cream);border:1px solid rgba(43,43,40,.12);border-radius:14px;padding:26px;box-shadow:2px 3px 0 rgba(43,43,40,.05)}
.jednocard h3{font-size:1.4rem;margin-bottom:10px}
.jednocard p{font-size:.98rem;margin-bottom:12px}
.jednocard ul{list-style:none}
.jednocard li{padding-left:22px;position:relative;margin:8px 0}
.jednocard li::before{content:"✕";position:absolute;left:0;color:var(--okrova)}
.jednocard.jn-highlight{border-color:var(--cihlova);background:#FBF7EF}
.jn-lead{font-size:1.05rem;border-left:4px solid var(--cihlova);padding-left:14px;color:var(--grafit)}
.jn-highlight .jn-lead strong{color:var(--cihlova)}
@media(max-width:760px){.jednowrap{grid-template-columns:1fr}}
