:root{--blue:#0000fe;--ink:#111;--muted:#5a5a5a;--line:#e4e4ec;--bg:#fff;--bg-soft:#f5f5fa;--max:1080px;--r:14px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{font-family:Poppins, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;color:var(--ink);background:var(--bg);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
h1,h2,h3{line-height:1.12;letter-spacing:-.02em;font-weight:700}
h2{font-size:clamp(28px,4.4vw,42px)}
a{color:var(--blue)}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:10px;display:block}
.lead{font-size:clamp(17px,2vw,20px);color:var(--muted);max-width:62ch;margin-top:14px}

/* ---------- hlavička (template-owned) ---------- */
header.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.site-header .wrap{display:flex;align-items:center;gap:20px;height:78px}
.logo{height:38px;width:auto;flex:none;display:block}
.logo img{display:block;height:100%;width:auto}
.site-nav{margin-left:auto;display:flex;gap:24px;align-items:center}
.site-nav a{color:var(--ink);text-decoration:none;font-size:15px;font-weight:500}
.site-nav a:hover{color:var(--blue)}
.ballot{background:var(--blue);color:#fff;font-weight:700;font-size:14px;padding:8px 14px;border-radius:999px;text-decoration:none;white-space:nowrap;flex:none}
@media (max-width:860px){.site-nav{margin-left:auto;order:2;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:calc(100vw - 220px)}.site-nav a{white-space:nowrap;font-size:13.5px}.ballot{order:1;margin-left:auto}}
@media (max-width:520px){header.site-header .wrap{height:64px;gap:12px}.logo{height:30px}.site-nav{max-width:calc(100vw - 190px)}}

/* ---------- generic per-page hero band (subpages only) ---------- */
.page-hero{padding:48px 0 36px;background:var(--bg-soft);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(34px,5vw,56px);max-width:25ch}
.page-subtitle{max-width:64ch;margin-top:16px;color:var(--muted);font-size:clamp(18px,2.3vw,22px)}

/* ---------- cms-content: plain prose gets a wrap; section-rich (homepage) content owns its own wraps ---------- */
main.cms-content{padding:clamp(44px,7vw,84px) 0}
main.cms-content:has(.hero){padding:0}
main.cms-content:not(:has(.hero)) > *{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:22px;padding-right:22px}
.cms-content h2{font-size:clamp(28px, 4.4vw, 42px)}
.cms-content h3{font-size:23px;margin:1.5em 0 .45em}
.cms-content p,.cms-content li{max-width:70ch}
.cms-content img{max-width:100%;height:auto;border-radius:var(--r)}

/* ---------- ilustrační systém ---------- */
section{position:relative}
.postava{position:absolute;top:34px;right:18px;width:152px;height:auto;pointer-events:none;opacity:.96}
#setkani .postava,#kandidati .postava{top:28px}
@media (max-width:1180px){.postava{width:118px;opacity:.9}}
@media (max-width:900px){.postava{display:none}}
.nit-predel{height:34px;margin:0;border:0;opacity:.9;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22240%22%20height%3D%2234%22%20viewBox%3D%220%200%20240%2034%22%3E%3Cpolyline%20points%3D%220.0%2C17.0%202.0%2C17.5%204.0%2C17.9%206.0%2C18.4%208.0%2C18.9%2010.0%2C19.3%2012.0%2C19.8%2014.0%2C20.2%2016.0%2C20.7%2018.0%2C21.1%2020.0%2C21.5%2022.0%2C21.9%2024.0%2C22.3%2026.0%2C22.7%2028.0%2C23.0%2030.0%2C23.4%2032.0%2C23.7%2034.0%2C24.0%2036.0%2C24.3%2038.0%2C24.5%2040.0%2C24.8%2042.0%2C25.0%2044.0%2C25.2%2046.0%2C25.4%2048.0%2C25.6%2050.0%2C25.7%2052.0%2C25.8%2054.0%2C25.9%2056.0%2C26.0%2058.0%2C26.0%2060.0%2C26.0%2062.0%2C26.0%2064.0%2C26.0%2066.0%2C25.9%2068.0%2C25.8%2070.0%2C25.7%2072.0%2C25.6%2074.0%2C25.4%2076.0%2C25.2%2078.0%2C25.0%2080.0%2C24.8%2082.0%2C24.5%2084.0%2C24.3%2086.0%2C24.0%2088.0%2C23.7%2090.0%2C23.4%2092.0%2C23.0%2094.0%2C22.7%2096.0%2C22.3%2098.0%2C21.9%20100.0%2C21.5%20102.0%2C21.1%20104.0%2C20.7%20106.0%2C20.2%20108.0%2C19.8%20110.0%2C19.3%20112.0%2C18.9%20114.0%2C18.4%20116.0%2C17.9%20118.0%2C17.5%20120.0%2C17.0%20122.0%2C16.5%20124.0%2C16.1%20126.0%2C15.6%20128.0%2C15.1%20130.0%2C14.7%20132.0%2C14.2%20134.0%2C13.8%20136.0%2C13.3%20138.0%2C12.9%20140.0%2C12.5%20142.0%2C12.1%20144.0%2C11.7%20146.0%2C11.3%20148.0%2C11.0%20150.0%2C10.6%20152.0%2C10.3%20154.0%2C10.0%20156.0%2C9.7%20158.0%2C9.5%20160.0%2C9.2%20162.0%2C9.0%20164.0%2C8.8%20166.0%2C8.6%20168.0%2C8.4%20170.0%2C8.3%20172.0%2C8.2%20174.0%2C8.1%20176.0%2C8.0%20178.0%2C8.0%20180.0%2C8.0%20182.0%2C8.0%20184.0%2C8.0%20186.0%2C8.1%20188.0%2C8.2%20190.0%2C8.3%20192.0%2C8.4%20194.0%2C8.6%20196.0%2C8.8%20198.0%2C9.0%20200.0%2C9.2%20202.0%2C9.5%20204.0%2C9.7%20206.0%2C10.0%20208.0%2C10.3%20210.0%2C10.6%20212.0%2C11.0%20214.0%2C11.3%20216.0%2C11.7%20218.0%2C12.1%20220.0%2C12.5%20222.0%2C12.9%20224.0%2C13.3%20226.0%2C13.8%20228.0%2C14.2%20230.0%2C14.7%20232.0%2C15.1%20234.0%2C15.6%20236.0%2C16.1%20238.0%2C16.5%20240.0%2C17.0%22%20fill%3D%22none%22%20stroke%3D%22%23111111%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22/%3E%3Ccircle%20cx%3D%2220.0%22%20cy%3D%2221.5%22%20r%3D%224.2%22%20fill%3D%22%23E4007F%22%20stroke%3D%22%23111%22%20stroke-width%3D%221.4%22/%3E%3Ccircle%20cx%3D%2260.0%22%20cy%3D%2226.0%22%20r%3D%224.2%22%20fill%3D%22%23243B8F%22%20stroke%3D%22%23111%22%20stroke-width%3D%221.4%22/%3E%3Ccircle%20cx%3D%22100.0%22%20cy%3D%2221.5%22%20r%3D%224.2%22%20fill%3D%22%235B7F88%22%20stroke%3D%22%23111%22%20stroke-width%3D%221.4%22/%3E%3Ccircle%20cx%3D%22140.0%22%20cy%3D%2212.5%22%20r%3D%224.2%22%20fill%3D%22%23D4B25A%22%20stroke%3D%22%23111%22%20stroke-width%3D%221.4%22/%3E%3Ccircle%20cx%3D%22180.0%22%20cy%3D%228.0%22%20r%3D%224.2%22%20fill%3D%22%23C8A9BA%22%20stroke%3D%22%23111%22%20stroke-width%3D%221.4%22/%3E%3Ccircle%20cx%3D%22220.0%22%20cy%3D%2212.5%22%20r%3D%224.2%22%20fill%3D%22%23F04A45%22%20stroke%3D%22%23111%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E") repeat-x center / auto 34px}
section.s-nit{border-top:0;padding-top:clamp(26px,4vw,44px)}
.s-nit,.form-sec{padding:clamp(52px,8vw,86px) 0;border-top:1px solid var(--line)}
.s-nit.form-sec{background:var(--bg-soft)}

/* ---------- proč sbíráme podněty ---------- */
.podnety-proc{display:grid;grid-template-columns:140px 1fr;gap:26px;align-items:center;margin-top:30px;padding:26px;background:#fff;border-radius:var(--r);border:1px solid var(--line)}
.podnety-proc img{display:block;width:100%;max-height:132px;object-fit:contain;height:auto;align-self:center}
.podnety-proc p{margin:0}
.podnety-proc p + p{margin-top:12px}
.podnety-proc strong{color:var(--blue)}
@media (max-width:700px){.podnety-proc{grid-template-columns:1fr;gap:16px}.podnety-proc img{width:130px}}

/* ---------- hero (homepage only) ---------- */
.hero{border-top:0;padding:0 0 clamp(40px,6vw,64px)}
.hero-img{width:100%;display:block}
.hero-img img{width:100%;height:auto;display:block}
.hero-txt{margin-top:clamp(30px,5vw,48px)}
.hero h1{font-size:clamp(30px,5.4vw,54px);max-width:26ch;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--blue)}
.facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.fact{border:1.5px solid var(--blue);color:var(--blue);border-radius:999px;padding:7px 16px;font-size:14.5px;font-weight:600}
.fact.solid{background:var(--blue);color:#fff}

/* ---------- termíny ---------- */
.terms{list-style:none;margin-top:34px;position:relative}
.terms::before{content:"";position:absolute;left:7px;top:14px;bottom:14px;width:2px;background:var(--blue);opacity:.85;border-radius:2px}
.term{display:grid;grid-template-columns:30px 120px 68px 1fr;align-items:baseline;gap:0 14px;padding:13px 0;border-bottom:1px solid var(--line)}
.term:last-child{border-bottom:0}
.term-bead{width:12px;height:12px;border-radius:50%;background:var(--blue);justify-self:start;margin-left:2px;align-self:center}
.term-date{font-weight:700;color:var(--blue)}
.term-time{font-weight:700;font-variant-numeric:tabular-nums}
.term-place strong{font-weight:600}
.term-place span{color:var(--muted)}
.term-place span::before{content:" – "}
.term.is-past{opacity:.38}
.term.is-next{background:#f0f0ff;border-radius:10px;padding-left:6px;padding-right:10px}
.term.is-next .term-place::after{content:"nejbližší";margin-left:10px;font-size:12px;font-weight:700;color:#fff;background:var(--blue);padding:2px 9px;border-radius:999px;vertical-align:2px;white-space:nowrap}
@media (max-width:680px){.term{grid-template-columns:24px auto 1fr;gap:3px 10px}.term-bead{grid-row:1/3;align-self:start;margin-top:6px}.term-date{grid-column:2;grid-row:1}.term-time{grid-column:3;grid-row:1;justify-self:start}.term-place{grid-column:2/4;grid-row:2}.term.is-next .term-place::after{display:inline-block;margin:4px 0 0}}

/* ---------- jedenáctka ---------- */
.eleven{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:34px;background:var(--line);border-radius:var(--r);overflow:hidden}
.eleven div{background:var(--blue);color:#fff;padding:22px 20px}
.eleven b{display:block;font-size:40px;line-height:1;font-weight:700}
.eleven span{display:block;margin-top:6px;font-size:15px;opacity:.92}
.eleven-note{margin-top:16px;font-size:16px;color:var(--muted)}
@media (max-width:620px){.eleven{grid-template-columns:1fr}}

/* ---------- program ---------- */
.pts{margin-top:34px;border-top:1px solid var(--line)}
.pt{border-bottom:1px solid var(--line)}
.pt summary{display:flex;gap:16px;align-items:baseline;cursor:pointer;list-style:none;padding:18px 34px 18px 0;position:relative;font-weight:600;font-size:19px}
.pt summary::-webkit-details-marker{display:none}
.pt summary::after{content:"+";position:absolute;right:4px;top:14px;font-size:24px;font-weight:400;color:var(--blue);line-height:1}
.pt[open] summary::after{content:"–"}
.pt-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;font-size:14px;font-weight:700;display:grid;place-items:center;align-self:start;margin-top:1px}
.pt-body{padding:0 34px 24px 46px}
.pt-lead{font-weight:600}
.pt-body p + p{margin-top:12px;color:var(--muted)}

/* ---------- kandidáti ---------- */
.cands{list-style:none;margin-top:34px;display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.cand-photo{position:relative;aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;background:var(--bg-soft);display:grid;place-items:center}
.cand-photo img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.cand-initials{font-size:34px;font-weight:700;color:var(--blue);opacity:.35}
.cand-photo.has-photo .cand-initials{display:none}
.cand-txt{margin-top:12px}
.cand-no{display:inline-block;font-size:12px;font-weight:700;color:#fff;background:var(--blue);border-radius:999px;padding:1px 9px;margin-right:6px}
.cand-deg{font-size:13px;color:var(--muted)}
.cand h3{font-size:18px;margin-top:4px}
.cand p{font-size:14.5px;color:var(--muted);line-height:1.4;margin-top:2px}
.cand-more{font:inherit;font-size:13.5px;font-weight:600;line-height:1.3;margin:10px 0 0 -10px;padding:5px 11px;border:0;border-radius:999px;background:transparent;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease,color .15s ease}
.cand-more:hover,.cand-more:focus-visible{background:var(--blue);color:#fff;text-decoration:none}
.cand-more:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
dialog.bio{width:min(640px,calc(100vw - 32px));border:0;border-radius:var(--r);padding:0;color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.28)}
dialog.bio::backdrop{background:rgba(17,17,34,.55)}
.bio-in{padding:30px 32px 34px;position:relative}
.bio-in h3{font-size:26px}
.bio-role{color:var(--blue);font-weight:600;font-size:15px;margin-bottom:4px}
.bio-in p{margin-top:16px}
.bio-close{position:absolute;top:12px;right:14px;font:inherit;font-size:26px;line-height:1;background:none;border:0;cursor:pointer;color:var(--muted);padding:4px 8px;z-index:9999}
.bio-close:hover{color:var(--ink)}

/* ---------- formulář ---------- */
form{margin-top:30px;display:grid;gap:16px;max-width:720px}
label{font-weight:600;font-size:15px;display:block;margin-bottom:6px}
input,textarea,select{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
textarea{min-height:108px;resize:vertical}
.two{display:grid;gap:16px;grid-template-columns:1fr 1fr}
@media (max-width:620px){.two{grid-template-columns:1fr}}
button,input[type=submit]{font:inherit;font-weight:700;background:var(--blue);color:#fff;border:0;padding:13px 26px;border-radius:999px;cursor:pointer;justify-self:start}
button:hover,input[type=submit]:hover{background:#0000c8}
.form-note{font-size:14px;color:var(--muted)}
/* poptavkovy_formular module markup has no .two wrapper; reproduce the
   reference's first-row two-column layout (jméno / část obce) structurally */
#podnety form{grid-template-columns:1fr 1fr}
#podnety form>label:nth-of-type(n+3),#podnety form>div,#podnety form>button{grid-column:1/-1}
@media (max-width:620px){#podnety form{grid-template-columns:1fr}}

/* ---------- patička (template-owned) ---------- */
footer.site-footer{background:var(--blue);color:#fff;padding:clamp(44px,7vw,70px) 0 34px}
footer.site-footer a{color:#fff;text-decoration:none}
footer.site-footer a:hover{text-decoration:underline}
footer.site-footer .logo img{filter:brightness(0) invert(1)}
.f-claim{font-size:clamp(19px,2.6vw,26px);font-weight:700;margin-top:22px;max-width:62ch;line-height:1.35}
.f-cols{display:flex;flex-wrap:wrap;gap:40px;margin-top:34px}
.f-cols h4{font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:8px}
.f-cols a,.f-cols span{color:#fff;display:block}
.f-bottom{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.3);font-size:13.5px;opacity:.8}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:99;color:var(--ink)}
@media (max-width: 860px) {
    nav {
        display: none !important;
    }
}