/* ANDYDOSENATU.CZ — kampaňový web
   Barvy dle manuálu: #28337C, gradient #AEFFAE→#19FFF4, #E42B5E */

:root{
  --blue:#28337C;
  --green:#AEFFAE;
  --cyan:#19FFF4;
  --accent:#E42B5E;
  --black:#000;
  --white:#fff;
  --grey:#f4f4f6;
  --nav-h:72px;
  --wrap:1180px;
  --font-display:"Bungee","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-body:"Helvetica Neue",Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}
body{
  margin:0;background:var(--white);color:var(--black);
  font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.05;letter-spacing:.005em;margin:0 0 .6em}
p{margin:0 0 1.1em}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.wrap--narrow{max-width:var(--wrap)}
.center{text-align:center}
.lead{font-size:1.25rem;line-height:1.55}
.section--why p,.split__text p{font-size:1.0625rem;line-height:1.65}
.why__body{max-width:820px}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--white);padding:12px 18px;z-index:200}
.skip-link:focus{left:0}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--white);
  border-bottom:2px solid var(--blue);transition:box-shadow .2s ease}
.nav--scrolled{box-shadow:0 2px 0 rgba(40,51,124,.15)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:16px}
.nav__brand{font-family:var(--font-display);color:var(--blue);text-decoration:none;font-size:1.05rem;letter-spacing:.02em}
.nav__brand span{color:var(--accent)}
.nav__menu ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav__menu a{
  text-decoration:none;color:var(--blue);font-weight:700;font-size:.94rem;
  padding:6px 0;border-bottom:3px solid transparent;transition:border-color .2s,color .2s;
}
.nav__menu a:hover{color:var(--accent)}
.nav__menu a.is-active{border-bottom-color:var(--accent)}
.nav__toggle{display:none;align-items:center;gap:10px;background:var(--blue);color:var(--white);
  border:0;padding:10px 16px;font:700 .9rem/1 var(--font-body);cursor:pointer}
.nav__bars{display:block;width:18px;height:2px;background:var(--white);box-shadow:0 6px 0 var(--white),0 -6px 0 var(--white)}

/* ---------- HERO ---------- */
.hero{
  min-height:100svh;padding-top:var(--nav-h);display:flex;align-items:flex-end;
  background:linear-gradient(160deg,var(--green) 0%,var(--cyan) 100%);
  overflow:hidden;
}
.hero__inner{display:grid;grid-template-columns:.94fr 1.06fr;gap:28px;align-items:end;width:100%}
.hero__text{padding:72px 0}
.hero__kicker{font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--blue);margin-bottom:1.25em}
.hero__title{color:var(--blue);font-size:calc(clamp(1.7rem,3.5vw,3.1rem) + 2px);text-transform:uppercase;margin-bottom:.65em}
.hero__title span{display:block;white-space:nowrap;line-height:1.15}
.hero__title em{font-style:normal;font-size:.62em;display:inline-block}
.ribbon{
  display:inline-block;background:var(--accent);color:var(--white);
  font-family:var(--font-display);text-transform:uppercase;font-size:calc(clamp(1.1rem,2.6vw,1.9rem) - 1px);
  padding:.35em .8em;margin:0 0 1.25rem;letter-spacing:.03em;
}
.hero__date{color:var(--blue);font-size:1.05rem;margin-bottom:1.6rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:18px;margin:1.2rem 0 0}
.hero__photo{align-self:end;display:flex;align-items:flex-end}
.hero__photo img{display:block;margin-inline:auto;margin-bottom:0;vertical-align:bottom;max-height:92svh;width:auto;filter:drop-shadow(0 24px 40px rgba(40,51,124,.22))}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-block;font-weight:700;text-decoration:none;text-transform:uppercase;
  letter-spacing:.06em;font-size:.95rem;padding:16px 32px;border:3px solid transparent;
  transition:background-color .18s,color .18s,border-color .18s;
}
.btn--accent{background:var(--accent);color:var(--white);border-color:var(--accent)}
.btn--accent:hover{background:var(--blue);border-color:var(--blue)}
.btn--ghost{background:transparent;color:var(--blue);border-color:var(--blue)}
.btn--ghost:hover{background:var(--blue);color:var(--white)}

/* ---------- SECTIONS ---------- */
.section{padding:clamp(64px,9vw,120px) 0}
.section--why .h-display{color:var(--blue);font-size:clamp(1.9rem,4.4vw,3.2rem);text-transform:uppercase}
.section--dark{background:var(--blue);color:var(--white)}
.section--dark .h-display{color:var(--white)}
.section--dark a{color:var(--cyan)}
.section--grad{background:linear-gradient(150deg,var(--green),var(--cyan))}
.h-display{font-size:clamp(1.8rem,4vw,3rem);color:var(--blue);text-transform:uppercase}
.sign{font-size:1.5rem;color:var(--accent);font-weight:700;margin-top:2rem}

.split{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,64px);align-items:center}
.split__media img{background:transparent}

/* ---------- CARDS ---------- */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--blue);margin-top:48px}
.card{background:var(--white);padding:clamp(24px,3vw,40px)}
.card__tag{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:.8em}
.card h3{font-size:1.15rem;color:var(--blue);text-transform:uppercase;line-height:1.2}
.card p:last-child{margin-bottom:0}

/* ---------- PROGRAM ---------- */
.program{list-style:none;margin:48px 0 48px;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--blue)}
.program__item{background:var(--white);padding:clamp(24px,3vw,40px);display:flex;gap:20px}
.program__num{font-family:var(--font-display);color:var(--accent);font-size:1.6rem;line-height:1}
.program__item h3{font-size:1.1rem;color:var(--blue);text-transform:uppercase;line-height:1.2}
.program__item p{margin-bottom:.7em}
.why{font-weight:700;color:var(--blue);margin-bottom:0}
.btn--sm{padding:12px 24px;font-size:.85rem}
.card__cta{margin:1.4em 0 0}

/* ---------- VOLEBNI OBVOD ---------- */
#obvod,
.section--obvod{background:#f5f5f5}
.tagpill{display:inline-block;font-family:var(--font-display);font-size:.78rem;letter-spacing:.16em;
  text-transform:uppercase;background:var(--accent);color:var(--white);padding:9px 22px}
.district__intro{max-width:820px;margin:0 auto 8px}
.district{display:grid;grid-template-columns:.42fr 1fr;gap:2px;background:var(--blue);margin-top:48px}
.district__facts{background:#f5f5f5;padding:clamp(24px,3vw,36px)}
.district__factstitle{font-size:1.05rem;color:var(--blue);text-transform:uppercase;margin-bottom:1em}
.district__facts ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.district__facts li{background:#fff;padding:16px 18px;border-left:4px solid var(--accent)}
.district__num{display:block;font-family:var(--font-display);color:var(--accent);font-size:1.25rem;line-height:1.1;text-transform:uppercase}
.district__lbl{display:block;font-size:.88rem;color:var(--blue);font-weight:700}
  .district__map{background:#f5f5f5;padding:0;display:flex;flex-direction:column;justify-content:center}
.district__map img{width:100%;height:auto;display:block}
.districtmap{
  width:100%;aspect-ratio:3/2;min-height:260px;
  background:#f5f5f5;border-radius:14px;overflow:hidden;
  border:1px solid rgba(40,51,124,.12);
}
@media (max-width:640px){.districtmap{aspect-ratio:4/5;min-height:320px}}
.districtmap .leaflet-container{background:var(--grey);font-family:var(--font-body)}
.districtmap__credit{
  margin:.6em 0 0;font-size:.8rem;line-height:1.4;opacity:.65;
}


/* ---------- KONTAKT ---------- */
.section--dark{background:var(--accent);color:var(--white)}
.section--dark a{color:var(--white)}
.tagpill--light{background:var(--cyan);color:var(--blue)}
.contact__head{max-width:720px;margin:0 auto}
.contact__head .h-display{font-size:clamp(2rem,4.6vw,3.4rem)}
.contact-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,56px);align-items:start;margin-top:48px}
.contact-main{display:grid;gap:16px}
.contact-tile{
  display:flex;gap:18px;align-items:center;text-decoration:none;color:var(--white);
  background:rgba(255,255,255,.16);padding:clamp(20px,2.6vw,28px);
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
.contact-tile:hover{background:var(--white);color:var(--accent);transform:translateY(-3px)}
.contact-tile__icon{
  flex:0 0 auto;display:grid;place-items:center;width:54px;height:54px;
  background:var(--cyan);color:var(--blue);
}
.contact-tile__icon svg{width:26px;height:26px}
.contact-tile__label{display:block;font-family:var(--font-display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.contact-tile__value{display:block;font-weight:700;font-size:1.2rem;line-height:1.3;word-break:break-word}
.contact-tile__note{display:block;font-size:.85rem;opacity:.8}
.contact-side__title{font-size:1rem;letter-spacing:.06em;color:var(--white);margin-bottom:.9em}
.socials{display:flex;gap:12px;list-style:none;margin:0;padding:0}
.social{
  display:grid;place-items:center;width:56px;height:56px;color:var(--cyan);
  background:rgba(255,255,255,.16);transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
.social svg{width:26px;height:26px}
.social:hover{background:var(--cyan);color:var(--blue);transform:translateY(-3px)}
.contact-vote{background:var(--blue);color:var(--white);padding:22px;margin:0 0 28px;display:grid;gap:4px}
.contact-vote__label{font-family:var(--font-display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.contact-vote__value{font-weight:700;font-size:1.15rem}
.contact-vote__note{font-size:.85rem;opacity:.8}

/* ---------- FOOTER ---------- */
.footer{background:var(--white);color:var(--blue);padding:56px 0;font-size:.92rem;border-top:2px solid var(--blue)}
.footer__inner{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.footer a{color:var(--blue)}
.footer__name{font-family:var(--font-display);font-size:1.05rem;margin-bottom:.4em}
.footer__logo{background:var(--white);padding:10px 14px;margin-bottom:14px}
.footer__legal{font-size:.78rem;line-height:1.5;opacity:.8}
.footer__copy{opacity:.7;font-size:.8rem}

/* ---------- ANIMACE ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px){
  .hero__inner{grid-template-columns:1fr;gap:0;text-align:left}
  .hero__text{padding:40px 0 16px}
  .hero__photo img{max-height:52svh}
  .split{grid-template-columns:1fr}
  .split__media{max-width:420px}
  .cards,.program{grid-template-columns:1fr}
  .district{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr;gap:28px}
}
@media (max-width:800px){
  .nav__toggle{display:inline-flex}
  .nav__menu{
    position:absolute;top:var(--nav-h);left:0;right:0;background:var(--white);
    border-bottom:2px solid var(--blue);display:none;
  }
  .nav__menu.is-open{display:block}
  .nav__menu ul{flex-direction:column;gap:0;padding:8px 24px 20px}
  .nav__menu li{border-top:1px solid rgba(40,51,124,.15)}
  .nav__menu a{display:block;padding:14px 0;border-bottom:0;border-left:4px solid transparent;padding-left:12px}
  .nav__menu a.is-active{border-left-color:var(--accent)}
}
@media (max-width:520px){
  body{font-size:1rem}
  .lead{font-size:1.1rem}
  .btn{width:100%;text-align:center}
  .contact-tile{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}

/* ---------- WHY: video + text ---------- */
.why__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center}
.sign__img{width:min(260px,70%);height:auto}
.sign-note{color:var(--blue);font-size:1.05rem;margin-top:1.4rem}
.why__video{width:100%;height:auto;display:block;border:3px solid var(--blue);background:#000}
@media (max-width:800px){.why__grid{grid-template-columns:1fr}}

/* ---------- HERO name on top ---------- */
.ribbon--top{margin-bottom:1rem}
.hero__stamp{display:block;width:120px;height:auto;margin:0 0 12px}
@media (max-width:560px){.hero__stamp{width:90px}}

/* ---------- GALLERY ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.gallery{grid-template-columns:1fr}}
.gallery__item{margin:0}
.gallery__item a{display:block;overflow:hidden;border:3px solid var(--blue)}
.gallery__item img{width:100%;height:280px;object-fit:cover;display:block;transition:transform .35s ease}
.gallery__item a:hover img{transform:scale(1.05)}
.gallery__item figcaption{margin-top:.6em;font-size:.9rem;font-weight:700;color:var(--blue);line-height:1.35}
.gallery__item--video a{position:relative}
.gallery__item--video img{object-position:center 20%}
.gallery__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(10,14,45,.25)}
.gallery__play::after{content:"";width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.9);
  clip-path:circle(50%);position:relative}
.gallery__play::before{content:"";position:absolute;z-index:1;border-style:solid;
  border-width:13px 0 13px 22px;border-color:transparent transparent transparent var(--blue);
  margin-left:6px}

/* ---------- LIGHTBOX ---------- */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(10,14,45,.94);
  display:flex;align-items:center;justify-content:center;padding:32px}
.lightbox[hidden]{display:none}
.lightbox__fig{margin:0;max-width:min(1100px,92vw);text-align:center}
.lightbox__fig img{max-width:100%;max-height:78vh;display:block;margin:0 auto}
.lightbox__fig figcaption{color:#fff;margin-top:1em;font-weight:700}
.lightbox__close{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;
  font-size:2.6rem;line-height:1;cursor:pointer}

.lightbox figcaption{color:#fff !important}

/* ---------- ÚPRAVY TEXTŮ ---------- */
.accent-text{color:var(--accent)}
.hero__title-first{margin-top:25px}
  .vote-call{
    font-family:var(--font-display);font-weight:400;
    font-size:calc(1.15rem + 2px);line-height:1.2;text-transform:uppercase;
    color:var(--accent);margin-top:1.4rem;
  }
  .section--why .vote-call{font-size:calc(1.0625rem + 2px)}
  .vote-call strong{font-weight:400}
  .program__call{font-size:1.05rem;margin:0 0 .6em}

.lightbox__fig video{height:78vh;width:auto;max-width:92vw;display:block;margin:0 auto;background:#000}
.lightbox__fig video[hidden]{display:none}
.lightbox__fig img[hidden]{display:none}

/* --- Terminy setkani --- */
.section--terminy{background:var(--grey)}
.terminy{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.terminy{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.terminy{grid-template-columns:repeat(3,1fr)}}
.termin{display:flex;align-items:stretch;gap:1rem;background:var(--white);border-radius:16px;overflow:hidden;
  box-shadow:0 6px 20px rgba(40,51,124,.10);border:2px solid transparent;transition:transform .2s ease,box-shadow .2s ease}
.termin:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(40,51,124,.16)}
.termin__date{flex:0 0 92px;background:var(--blue);color:var(--white);display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:.9rem .4rem;line-height:1}
.termin__day{font-family:var(--font-display);font-size:1.9rem}
.termin__month{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;margin-top:.35rem;opacity:.85}
.termin__body{padding:.95rem 1.05rem;display:flex;flex-direction:column;gap:.4rem;justify-content:center}
.termin__place{font-weight:700;font-size:1.02rem;color:var(--blue);display:flex;gap:.45rem;align-items:flex-start}
.termin__time{display:flex;gap:.45rem;align-items:center;color:#444;font-size:.95rem}
.termin__note{display:block;margin-top:.35rem;color:#555;font-size:.88rem;line-height:1.4}
.termin svg{flex:0 0 auto;width:16px;height:16px;margin-top:.15rem}
.termin__badge{align-self:flex-start;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  padding:.18rem .5rem;border-radius:999px;background:var(--cyan);color:var(--blue);font-weight:700}
.termin--next{border-color:var(--cyan)}
.termin--past{opacity:.55}
.termin--past .termin__date{background:#8a8fa8}
.termin--past .termin__badge{background:#e3e3e8;color:#555}
.terminy__empty{text-align:center;margin-top:1.6rem;font-size:1.05rem;color:var(--blue)}
