/*
Theme Name: Srdcem PRO ŠUMPERK
Description: Kampaňový motiv pro komunální volby 2026. Bez závislostí, vlastní písma, žádné cookies třetích stran.
Author: Srdcem PRO ŠUMPERK
Version: 1.43
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: srdcem
*/

/* Vlastní písma — načítají se z domény, ne z Google Fonts.
   Každé písmo má dvě podmnožiny: základní latinku a latinku s diakritikou.
   Bez té druhé by se česká písmena sázela ze systémového písma. */

@font-face{
  font-family:"Figtree";font-style:normal;font-weight:400 900;font-display:swap;
  src:url(assets/fonts/figtree-latin.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face{
  font-family:"Figtree";font-style:normal;font-weight:400 900;font-display:swap;
  src:url(assets/fonts/figtree-latin-ext.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url(assets/fonts/plexmono-500-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url(assets/fonts/plexmono-500-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;
  src:url(assets/fonts/plexmono-600-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;
  src:url(assets/fonts/plexmono-600-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --ink:#002F66;
  --ink-deep:#001C3F;
  --yellow:#FDD330;
  --yellow-soft:#fff6d6;
  --blue-band:#dde7f5;
  --blue-line:rgba(0,45,104,.2);
  --note:#d81159;
  --note-bg:#ffe8ef;
  --paper:#ffffff;
  --grey-05:#f3f5f9;
  --grey-15:#d6dce8;
  --grey-45:#7d8ba5;
  --grey-65:#4e5f7d;

  --sans:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"Courier New",monospace;
  --shell:min(760px,100% - 2rem);
  --measure:72ch;
  --gap:clamp(2.25rem,4vw,3.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
section{scroll-margin-top:60px}
html,body{max-width:100%;overflow-x:clip}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:clamp(.98rem,.2vw + .94rem,1.02rem);
  line-height:1.62;font-weight:400;
}
h1,h2,h3,h4{font-family:var(--sans);font-weight:900;line-height:1.05;letter-spacing:-.012em;margin:0}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.shell{width:var(--shell);margin-inline:auto}

.label{
  font-family:var(--mono);font-weight:600;font-size:.68rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--grey-45);margin:0 0 1.1rem;
  display:flex;align-items:center;gap:.7rem;max-width:none;
}
.label::before{content:"";width:1.75rem;height:5px;background:var(--yellow);flex:none}
.todo{
  font-family:var(--mono);font-size:.86em;font-weight:600;color:var(--note);
  background:var(--note-bg);padding:.08em .35em;
}
.h2{font-size:clamp(1.28rem,2vw,1.6rem);text-transform:uppercase;word-spacing:.07em;font-weight:900}

/* ---------- header: menu nahoře, značka na střed ----------
   Chová se stejně na mobilu i na počítači. Nic není lepivé. */
.menurow{background:var(--paper);border-bottom:1px solid var(--grey-15);
  position:sticky;top:0;z-index:40}
.menurow > .shell{display:flex;justify-content:center;align-items:center;min-height:52px;
  width:min(1060px,100% - 2rem)}
.nav{display:none;gap:.35rem;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em}
.nav a{color:var(--ink);text-decoration:none;padding:.55rem .72rem;white-space:nowrap;
  transition:background .12s ease,color .12s ease}
.nav a:hover,.nav a:focus-visible{background:var(--ink);color:var(--yellow)}
.nav a[aria-current="page"]{background:var(--ink);color:var(--yellow)}

.brandbar{background:var(--yellow);border-bottom:0}
.brandbar .shell{display:flex;justify-content:center;padding:1.3rem 0}
.mark{display:flex;flex-direction:column;align-items:center;gap:.6rem;
  text-decoration:none;min-width:0;text-align:center}
.mark img{height:68px;width:auto;flex:none}
/* Hlavička funguje jako logotyp, proto verzálky. V textu a v zápatí
   se název píše tak, jak se píše. */
.mark-txt{font-weight:900;font-size:1.55rem;line-height:1.05;letter-spacing:0;color:var(--ink);
  word-spacing:.09em;text-transform:uppercase}

.burger{width:44px;height:44px;background:var(--ink);border:0;padding:0;cursor:pointer;
  display:grid;place-content:center;flex:none}
.burger span{display:block;width:21px;height:3px;background:var(--yellow);margin:3px auto;
  transition:transform .18s ease,opacity .18s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mob{border-top:1px solid var(--grey-15);background:var(--paper)}
.mob[hidden]{display:none}
.mob > .shell{width:min(1060px,100% - 2rem)}
.mob a{display:block;padding:.95rem .8rem;border-bottom:1px solid var(--grey-15);text-decoration:none;
  font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.03em}
.mob a:hover,.mob a:focus-visible,.mob a[aria-current="page"]{background:var(--ink);color:var(--yellow)}
.mob a:last-child{border-bottom:0}

@media (min-width:900px){
  .nav{display:flex}
  .burger,.mob{display:none!important}
  .brandbar .shell{padding:1.9rem 0}
  .mark{flex-direction:row;gap:1.1rem}
  .mark img{height:96px}
  .mark-txt{font-size:2.5rem}
}

/* ---------- hero ---------- */
.hero{padding:clamp(2rem,4.5vw,3.5rem) 0 clamp(1.5rem,3vw,2.5rem)}
.hero-when{
  font-family:var(--mono);font-weight:600;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink);background:var(--yellow);display:inline-block;padding:.55rem .9rem;margin-bottom:1.6rem;
}
.hero h1{font-size:clamp(1.35rem,5.2vw,2.7rem);font-weight:900;text-transform:uppercase;
  white-space:nowrap;
  letter-spacing:-.008em;word-spacing:.1em;text-wrap:balance}
.hero-sub{font-weight:700;font-size:clamp(1rem,1.2vw,1.1rem);margin:1.4rem 0 0;word-spacing:.04em;
  max-width:none;letter-spacing:-.015em}
.hero-lede{color:var(--grey-65);max-width:none;margin-top:.9rem;font-size:1rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:2rem}
.btn{font-family:var(--sans);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;
  text-decoration:none;padding:.8rem 1.2rem;display:inline-block;border:2px solid var(--ink);text-align:center}
@media (max-width:560px){
  .btn-row{flex-direction:column;align-items:stretch;gap:.55rem}
  .btn{width:100%}
}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:var(--yellow);color:var(--ink)}
.btn-ghost:hover{background:var(--yellow-soft)}

/* ---------- hlavní médium: spot nebo fotka ---------- */
.shot{padding-bottom:var(--gap)}
.media{position:relative;aspect-ratio:16/9;background:var(--grey-05);border:2px dashed var(--grey-15);
  display:grid;place-items:center;padding:1.25rem;text-align:center;width:100%;cursor:pointer;overflow:hidden}
.media p{font-family:var(--mono);font-size:.8rem;color:var(--grey-65);line-height:1.8;margin:0;max-width:46ch}
.media b{color:var(--ink);display:block;font-family:var(--sans);font-size:.98rem;margin-bottom:.6rem;
  text-transform:uppercase;letter-spacing:.02em}
.play{width:58px;height:58px;background:var(--ink);display:grid;place-items:center;margin:0 auto 1rem}
.play::after{content:"";width:0;height:0;border-left:20px solid var(--yellow);
  border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px}
.media iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:620px){
  .media{padding:.75rem}
  .media .mnote{display:none}
  .media b{font-size:.82rem;margin-bottom:0}
  .play{width:44px;height:44px;margin-bottom:.7rem}
  .play::after{border-left-width:15px;border-top-width:10px;border-bottom-width:10px}
}

.hashtags{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.7rem 0 0}
.hashtags b{background:var(--ink);color:#fff;font-weight:700;font-size:.78rem;
  padding:.32rem .62rem;letter-spacing:-.01em}

/* ---------- registr priorit ---------- */
.reg{padding:var(--gap) 0;border-top:1px solid var(--grey-15)}
.reg-head{margin-bottom:2rem}
.reg-head .h2{margin-bottom:.9rem}
.reg-head p:not(.label){color:var(--grey-65);margin:0}
.reg-list{border-top:4px solid var(--ink)}
.item{display:grid;gap:.4rem 1.4rem;padding:1.5rem 0;border-bottom:1px solid var(--grey-15);
  grid-template-columns:3rem 1fr;align-items:start}
.item:hover{background:var(--yellow-soft)}
.item-no{font-family:var(--mono);font-weight:600;font-size:.95rem;color:var(--ink);line-height:1.1;
  border-bottom:5px solid var(--yellow);justify-self:start;padding-bottom:.15rem;margin-top:.16rem}
.item h3{font-size:1.12rem;letter-spacing:-.02em;line-height:1.2}
.item h3 a{text-decoration:none}
.item:hover h3 a{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:4px;text-underline-offset:3px}
.item p{grid-column:2;color:var(--grey-65);font-size:.94rem;margin:0}

/* ---------- lídři ---------- */
.leads{padding:var(--gap) 0;background:var(--grey-05);border-block:1px solid var(--grey-15)}
.leads .h2{margin-bottom:2rem}
.people{display:grid;gap:1.25rem}
.person{background:var(--paper);border:1px solid var(--grey-15);padding:1.4rem;
  display:grid;gap:1.1rem;grid-template-columns:1fr;text-decoration:none;color:inherit}
.person:hover{border-color:var(--ink)}
.person:hover h3{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:4px;text-underline-offset:3px}
.person-img{width:132px;height:132px;background:var(--grey-15);overflow:hidden;flex:none}
.person-img img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.person-rank{font-family:var(--mono);font-weight:600;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink);background:var(--yellow);display:inline-block;padding:.32rem .55rem;margin:0 0 .8rem;max-width:none}
.person h3{font-size:1.08rem;margin-bottom:.3rem}
.person-role{font-size:.88rem;color:var(--grey-65);margin:0 0 1rem;line-height:1.5;max-width:none}
.person blockquote{margin:0;padding-top:.95rem;border-top:1px solid var(--grey-15);
  font-size:.95rem;color:var(--ink);font-weight:500;max-width:none}
@media (min-width:620px){
  .person{grid-template-columns:132px 1fr;gap:1.6rem;align-items:start}
}

/* ---------- hlasovací lístek ---------- */
.ballot{padding:var(--gap) 0}
.ballot-head{margin-bottom:2rem}
.ballot-head .h2{margin-bottom:.9rem}
.ballot-head p:not(.label){color:var(--grey-65);margin:0}
.sheet{border:4px solid var(--ink);background:var(--paper)}
.sheet-top{padding:1.2rem;border-bottom:4px solid var(--ink);display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.sheet-no{font-family:var(--mono);font-weight:600;font-size:1.4rem;border:4px solid var(--ink);
  padding:.15rem .6rem;flex:none;line-height:1.25}
.sheet-name{font-weight:900;font-size:.98rem;letter-spacing:-.015em}
.sheet-name em{display:block;font-style:normal;font-family:var(--mono);font-weight:500;font-size:.68rem;
  color:var(--grey-45);letter-spacing:.06em;margin-top:.25rem;text-transform:none}
.sheet-box{width:44px;height:44px;border:4px solid var(--ink);flex:none;margin-left:auto;
  background:var(--yellow);display:grid;place-items:center;padding:5px}
.sheet-box svg{width:100%;height:100%;display:block}
.sheet-box svg path{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round}
.rows{list-style:none;margin:0;padding:0}
.rows li{border-bottom:1px solid var(--grey-15)}
.rows li:last-child{border-bottom:0}
a.row{display:grid;grid-template-columns:24px 1.5rem 1fr;gap:.2rem .85rem;
  align-items:center;padding:.75rem 1.2rem;text-decoration:none;color:inherit}
a.row:hover{background:var(--grey-05)}
a.row:hover .nm{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:3px;text-underline-offset:3px}
.box{width:24px;height:24px;border:2.5px solid var(--ink);flex:none;display:grid;place-items:center;padding:3px}
.box.marked{background:var(--yellow)}
.box svg{width:100%;height:100%;display:block}
.box svg path{fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round}
.num{font-family:var(--mono);font-weight:600;font-size:.88rem;color:var(--grey-45);text-align:left}
.nm{grid-column:3;font-weight:700;font-size:.95rem;letter-spacing:-.01em}
.meta{grid-column:3;display:flex;gap:.65rem;font-size:.85rem;color:var(--grey-65);line-height:1.4}
.ag{width:1.7rem;flex:none;font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}
@media (min-width:640px){
  a.row{grid-template-columns:24px 1.5rem minmax(0,14rem) 1fr;gap:.85rem}
  .meta{grid-column:4}
}
.rows .extra{display:none}
.rows.open .extra{display:block}
.rows .more{background:var(--grey-05);text-align:center;padding:.85rem}
.toggle{font-family:var(--mono);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:none;border:0;cursor:pointer;padding:.35rem 0;
  border-bottom:4px solid var(--yellow)}
.sheet-note{font-family:var(--mono);font-size:.78rem;color:var(--grey-45);margin:1rem 0 0;line-height:1.7;max-width:none}

/* ---------- jak volit (světle modrý pruh) ---------- */
.vote{padding:var(--gap) 0;background:var(--blue-band)}
.vote .label{color:var(--ink)}
.vote .label::before{background:var(--ink)}
.vote .h2{margin-bottom:1.4rem;max-width:28ch}
.steps{border-top:4px solid var(--ink)}
.step{padding:1.5rem 0;border-bottom:1px solid var(--blue-line);display:grid;gap:.5rem 1.1rem;
  grid-template-columns:1.95rem 1fr;align-items:center}
.step:last-child{border-bottom:0}
.step-mark{font-family:var(--mono);font-weight:600;font-size:.82rem;color:#fff;background:var(--ink);
  width:1.95rem;height:1.95rem;display:grid;place-items:center;align-self:start;margin-top:.05rem}
.step h3{font-size:1.05rem;align-self:center}
.step p{grid-column:2;color:var(--ink);font-size:.94rem;margin:0;max-width:none}
.dates{margin-top:2rem;font-family:var(--mono);font-size:.86rem;border-top:4px solid var(--ink)}
.dates div{display:grid;grid-template-columns:1fr;gap:.15rem .9rem;padding:.7rem 0;
  border-bottom:1px solid var(--blue-line)}
@media (min-width:620px){.dates div{grid-template-columns:11rem 1fr;gap:.9rem}}
.dates div:last-child{border-bottom:0}
.dates b{font-weight:600}

/* ---------- aktuality ---------- */
.news{padding:var(--gap) 0;background:var(--grey-05);border-bottom:1px solid var(--grey-15)}
.news-head{margin-bottom:2rem}
.news-head .h2{margin-bottom:.9rem}
.news-head p:not(.label){margin:0;color:var(--grey-65)}
.posts{border-top:4px solid var(--ink)}
.post{display:grid;gap:.6rem 1.4rem;grid-template-columns:1fr;padding:1.5rem 0;
  border-bottom:1px solid var(--grey-15);text-decoration:none}
.post:hover{background:var(--paper)}
.post-img{aspect-ratio:3/2;background:var(--grey-15);display:grid;place-items:center;
  font-family:var(--mono);font-size:.7rem;color:var(--grey-65);text-align:center;padding:.75rem;line-height:1.6}
.post time{font-family:var(--mono);font-weight:500;font-size:.72rem;letter-spacing:.06em;
  color:var(--grey-45);display:block;margin-top:.7rem}
.post h3{font-size:1.05rem;margin:0 0 .5rem;letter-spacing:-.02em}
.post:hover h3{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:4px;
  text-underline-offset:3px}
.post p{font-size:.95rem;color:var(--grey-65);margin:0}
.post-img{position:relative}
@media (min-width:620px){
  .post{grid-template-columns:180px 1fr;gap:1.5rem;align-items:start}
  .post-img{aspect-ratio:3/2}
}

/* ---------- pro média ---------- */
.press{padding:var(--gap) 0;background:var(--ink);color:#e8eef8}
.press .label{color:#93a6c6}
.press .h2{color:#fff;margin-bottom:1.4rem;max-width:24ch}
.press-lede{color:#a9bcd8;margin-bottom:2rem}
.dl{list-style:none;margin:0 0 1.6rem;padding:0;border-top:1px solid var(--grey-15)}
.press .dl{border-top-color:#1d4482}
.dl a{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.9rem 0;
  border-bottom:1px solid var(--grey-15);text-decoration:none;font-weight:700;font-size:.96rem}
.press .dl a{border-bottom-color:#1d4482}
.dl a:hover{color:var(--yellow)}
.dl small{font-family:var(--mono);font-weight:500;font-size:.72rem;color:#7e93b5;letter-spacing:.06em}
.contact{border:1px solid var(--grey-15);border-left:5px solid var(--yellow);padding:1.4rem;max-width:none}
.press .contact{border-color:#1d4482;border-left-color:var(--yellow)}
.contact h3{font-size:.98rem;margin-bottom:.6rem;color:var(--ink)}
.press .contact h3{color:#fff}
.contact p{font-size:.94rem;color:var(--grey-65);margin:0 0 .3rem}
.press .contact p{color:#a9bcd8}

/* ---------- footer ---------- */
.foot{background:var(--paper);border-top:4px solid var(--ink);padding:calc(var(--gap) * .7) 0 2rem;font-size:.93rem}
.foot-grid{display:grid;gap:2rem;margin-bottom:2.25rem}
.foot h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--grey-45);margin-bottom:.85rem;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.foot ul a{text-decoration:none}
.foot ul a:hover{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:4px;
  text-underline-offset:3px}
.foot p{margin:0 0 .35rem}
.legal{border-top:1px solid var(--grey-15);padding-top:1.4rem;font-family:var(--mono);font-size:.74rem;
  color:var(--grey-45);display:grid;gap:.5rem;line-height:1.7}
.legal p{max-width:none}
@media (min-width:700px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr}}


/* ================= společné pro podstránky ================= */
.crumbs{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--grey-45);margin:0 0 1.1rem;display:flex;gap:.5rem;flex-wrap:wrap}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px}
.pagehead{padding:var(--gap) 0 0}
.pagehead h1{font-size:clamp(1.5rem,3vw,2.1rem);text-transform:uppercase;word-spacing:.07em}
.pagehead .lede{color:var(--grey-65);margin-top:1rem}
.rule{height:4px;background:var(--ink);margin:1.6rem 0 0}
.backlink{display:inline-block;font-family:var(--mono);font-size:.76rem;letter-spacing:.09em;
  text-transform:uppercase;text-decoration:none;border-bottom:4px solid var(--yellow);padding-bottom:.15rem}

/* ---------- obsah programu ---------- */
.toc{padding:var(--gap) 0 0}
.toc ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--grey-15)}
.toc li{border-bottom:1px solid var(--grey-15)}
.toc a{display:grid;grid-template-columns:2rem 1fr;gap:.8rem;padding:.6rem .2rem;
  text-decoration:none;font-weight:600;font-size:.94rem;align-items:baseline}
.toc a:hover{background:var(--yellow-soft)}
.toc .n{font-family:var(--mono);font-weight:600;font-size:.82rem;color:var(--grey-45)}
.toc li{break-inside:avoid}
@media (min-width:700px){.toc ol{column-count:2;column-gap:2.5rem}}

/* ---------- body programu ---------- */
.pt{padding:var(--gap) 0 0}
.pt-no{font-family:var(--mono);font-weight:600;font-size:.82rem;color:var(--ink);
  border-bottom:5px solid var(--yellow);display:inline-block;padding-bottom:.15rem;margin-bottom:.9rem}
.pt h2{font-size:clamp(1.2rem,1.9vw,1.5rem);text-transform:uppercase;word-spacing:.06em;margin-bottom:.9rem}
.pt .intro{color:var(--ink);font-weight:500}
.pt h3{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--grey-45);margin:2.5rem 0 .9rem}
.pt ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--grey-15)}
.pt li{padding:.7rem 0 .7rem 1.5rem;border-bottom:1px solid var(--grey-15);position:relative;
  font-size:.94rem;color:var(--grey-65)}
.pt li:last-child{border-bottom:0}
.pt li::before{content:"";position:absolute;left:0;top:1.15rem;width:9px;height:9px;background:var(--yellow)}
.bonus{background:var(--blue-band);padding:1.6rem 1.4rem;margin-top:var(--gap)}
.bonus .pt-no{border-bottom-color:var(--ink)}
.bonus ul,.bonus li{border-color:var(--blue-line)}
.bonus li{color:var(--ink)}

/* ---------- výpis aktualit ---------- */
.feed{padding:var(--gap) 0;border-top:4px solid var(--ink)}
.fitem{display:grid;gap:.6rem 1.5rem;grid-template-columns:1fr;padding:1.5rem 0;
  border-bottom:1px solid var(--grey-15);text-decoration:none;color:inherit}
.fitem:hover{background:var(--grey-05)}
.fitem:hover h2{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:4px;text-underline-offset:3px}
.fitem .thumb{aspect-ratio:3/2;background:var(--grey-15);display:grid;place-items:center;
  font-family:var(--mono);font-size:.7rem;color:var(--grey-65);text-align:center;padding:.6rem;position:relative}
.fitem time{font-family:var(--mono);font-weight:500;font-size:.72rem;letter-spacing:.06em;
  color:var(--grey-45);display:block;margin-top:.7rem;justify-self:start}
.fitem h2{font-size:1.12rem;text-transform:none;letter-spacing:-.02em;margin:0 0 .4rem}
.fitem p{font-size:.94rem;color:var(--grey-65);margin:0}
@media (min-width:620px){
  .fitem{grid-template-columns:200px 1fr;align-items:start}
  .fitem .txt{grid-column:2}
}
.article{padding:var(--gap) 0 0;max-width:none}
.article .meta-line{font-family:var(--mono);font-size:.74rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--grey-45);margin:0 0 1rem}
.article h1{font-size:clamp(1.4rem,2.6vw,1.9rem);text-transform:none;margin-bottom:1rem}
.article .perex{font-weight:600;font-size:1.05rem}
.article > p{color:var(--grey-65)}

/* ---------- mřížka kandidátů ---------- */
.cands{padding:var(--gap) 0;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}
@media (min-width:560px){.cands{gap:1.1rem}}
@media (min-width:820px){.cands{grid-template-columns:repeat(3,1fr)}}
/* Na úzkých displejích jsou dvě karty vedle sebe, takže text musí být drobnější. */
@media (max-width:559px){
  .cc-body{padding:.7rem .75rem .95rem;gap:.25rem}
  .cc-no{font-size:.72rem;min-width:1.4rem;padding:.12rem .4rem}
  .cc-nm{font-size:.88rem;line-height:1.25}
  .cc-rl{font-size:.78rem;line-height:1.35}
  .cc-ini{font-size:1.5rem}
}
.cc{background:var(--paper);border:1px solid var(--grey-15);text-decoration:none;color:inherit;
  display:flex;flex-direction:column}
.cc:hover{border-color:var(--ink)}
.cc:hover .cc-nm{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:4px;text-underline-offset:3px}
.cc-img{aspect-ratio:4/5;background:var(--grey-05);overflow:hidden;display:grid;place-items:center}
.cc-img img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.cc-ini{font-weight:900;font-size:2rem;color:var(--grey-15);letter-spacing:.02em}
.cc-body{padding:.9rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.cc-no{font-family:var(--mono);font-weight:600;font-size:.78rem;color:var(--ink);
  background:var(--yellow);align-self:flex-start;padding:.15rem .5rem;min-width:1.6rem;text-align:center}
.cc-nm{font-weight:700;font-size:.98rem;letter-spacing:-.01em;margin-top:.2rem}
.cc-rl{font-size:.85rem;color:var(--grey-65);line-height:1.4}

/* ---------- detail kandidáta ---------- */
.cd{padding:var(--gap) 0 0;display:grid;gap:1.6rem;grid-template-columns:1fr}
.cd-photo{background:var(--grey-05);aspect-ratio:4/5;overflow:hidden}
.cd-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.cd h1{font-size:clamp(1.5rem,3vw,2.1rem);text-transform:uppercase;word-spacing:.07em;margin-bottom:.5rem}
.cd .badge{font-family:var(--mono);font-weight:600;font-size:.7rem;letter-spacing:.11em;
  text-transform:uppercase;background:var(--yellow);display:inline-block;padding:.35rem .6rem;margin-bottom:.9rem}
.facts{margin:1.4rem 0 0;border-top:4px solid var(--ink);font-size:.92rem}
.facts div{display:grid;grid-template-columns:9rem 1fr;gap:.9rem;padding:.65rem 0;
  border-bottom:1px solid var(--grey-15)}
.facts dt{font-family:var(--mono);font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--grey-45);margin:0}
.facts dd{margin:0}
.cd blockquote{margin:1.6rem 0 0;padding:1.2rem 1.3rem;background:var(--blue-band);
  font-weight:500;font-size:1rem}
.cd .body{margin-top:1.6rem}
.cd .body .label{margin-top:2.4rem}
.cd .body .label:first-child{margin-top:0}
.cd .body p{color:var(--grey-65)}
@media (min-width:760px){
  .cd{grid-template-columns:280px 1fr;gap:2.5rem;align-items:start}
}
.pn{display:grid;gap:.6rem;grid-template-columns:1fr;margin-top:var(--gap);
  border-top:1px solid var(--grey-15);padding-top:1.4rem}
.pn a{text-decoration:none;font-size:.92rem;font-weight:600}
.pn a:hover{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px}
.pn span{font-family:var(--mono);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--grey-45);display:block;margin-bottom:.2rem}
@media (min-width:620px){.pn{grid-template-columns:1fr 1fr;gap:2rem}
  /* Když je jen odkaz na dalšího, musí zůstat v pravém sloupci. */
  .pn .next{grid-column:2;text-align:right}}


/* ================= doplňky pro WordPress ================= */
.wp-block-image img{height:auto}
.alignleft{float:left;margin:0 1.4rem 1rem 0}
.alignright{float:right;margin:0 0 1rem 1.4rem}
.aligncenter{margin-inline:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;z-index:99;background:var(--ink);color:#fff;padding:.6rem 1rem}
.admin-bar .menurow{top:32px}
@media (max-width:782px){.admin-bar .menurow{top:46px}}
/* Pod 600 px je pruh administrace odrolovatelný, takže se o něj neodsazujeme. */
@media (max-width:600px){.admin-bar .menurow{top:0}}

/* obsah stránek a příspěvků psaný v editoru */
.entry{padding:var(--gap) 0 0;max-width:none}
/* Šířku omezujeme jen textu, ne vloženým prvkům přes celý sloupec. */
/* Pohodlná délka řádku pro běžný text. Vlastní prvky (seznam ke stažení,
   kroky, tabulka termínů, kontakt) si šířku řídí samy. */
.entry > p,.entry > ul:not([class]),.entry > ul.wp-block-list,.entry > ol,
.entry > h2,.entry > h3,.entry > h4,
.entry > blockquote,.entry > figure{max-width:40rem}
.entry > h2{font-size:clamp(1.2rem,1.9vw,1.5rem);text-transform:uppercase;margin:2.2rem 0 .9rem}
.entry > h3{font-size:1.1rem;margin:1.8rem 0 .7rem}
.entry > p{color:var(--grey-65)}
.entry ol{color:var(--grey-65);padding-left:1.2rem}
.entry li{margin-bottom:.4rem}
/* Odrážky v textu stejné jako v programu: žlutý čtvereček. */
.entry ul:not(.dl):not(.kontakty):not(.menu),.vlozeno ul:not(.dl):not(.kontakty):not(.menu){list-style:none;padding-left:0;margin:1.1rem 0;
  color:var(--grey-65)}
.entry ul:not(.dl):not(.kontakty):not(.menu) > li,.vlozeno ul:not(.dl):not(.kontakty):not(.menu) > li{position:relative;padding-left:1.6rem;
  margin-bottom:.55rem}
.entry ul:not(.dl):not(.kontakty):not(.menu) > li::before,.vlozeno ul:not(.dl):not(.kontakty):not(.menu) > li::before{content:"";position:absolute;
  left:0;top:.52em;width:9px;height:9px;background:var(--yellow)}
.vlozeno ul:not(.dl):not(.kontakty):not(.menu){color:inherit}
.entry a{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;
  text-underline-offset:3px}
.entry blockquote{margin:1.6rem 0;padding:1.2rem 1.3rem;background:var(--blue-band);font-weight:500}
.entry img{margin:1.4rem 0}

/* stránkování výpisu */
.strankovani{display:flex;gap:.5rem;flex-wrap:wrap;padding:1.5rem 0 0;font-family:var(--mono);font-size:.8rem}
.strankovani .page-numbers{padding:.45rem .7rem;text-decoration:none;border:1px solid var(--grey-15)}
.strankovani .current{background:var(--ink);color:var(--yellow);border-color:var(--ink)}

/* ---------- kontakty s ikonami ---------- */
.kontakty{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.55rem}
.kontakty a{display:flex;align-items:center;gap:.6rem;text-decoration:none;line-height:1.3}
.kontakty a:hover span{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:3px;text-underline-offset:3px}
.ikona{width:20px;height:20px;flex:none;color:var(--ink)}

/* ---------- obsah stránky vypsaný na úvodní stránce ----------
   Bez pravidel obálky .entry, aby si vložené prvky nesly vlastní barvy a odkazy. */
.vlozeno{max-width:none}
.vlozeno > *:first-child{margin-top:0}
.vlozeno p{margin-bottom:1em}

/* Odkaz v tabulce termínů: běžné podtržení, ne žluté zvýraznění. */
.dates a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

/* Když tytéž prvky stojí na samostatné stránce, obálka .entry je nesmí přebít. */
.entry .dl a,.entry .btn{text-decoration:none}
.entry .dates a{text-decoration-color:currentColor;text-decoration-thickness:1px}
.entry .steps p,.entry .dates{color:inherit}
.entry .step p{color:var(--ink)}

/* Náhledový obrázek v aktualitě */
.article > .nahled{margin:1.4rem 0}
.article > .nahled img{width:100%;height:auto}

/* Odkaz v kontaktním rámečku: bez žlutého zvýraznění. */
.entry .contact a,.vlozeno .contact a{text-decoration:underline;text-decoration-color:currentColor;
  text-decoration-thickness:1px;text-underline-offset:3px}

/* ---------- video s náhledovým obrázkem jako pozadím ---------- */
.media.has-poster{border:0;background-color:var(--ink);background-size:cover;
  background-position:center;position:relative;overflow:hidden}
.media.has-poster::before{content:"";position:absolute;inset:0;background:rgba(0,47,102,.5)}
.media.has-poster p{position:relative;z-index:1;color:#fff;max-width:36ch}
.media.has-poster b{color:#fff}
.media.has-poster .mnote{color:rgba(255,255,255,.85)}
.media.has-poster .play{background:rgba(253,211,48,.82)}
.media.has-poster .play::after{border-left-color:var(--ink)}
.media.has-poster:hover::before{background:rgba(0,47,102,.38)}
.media.has-poster:hover .play{transform:scale(1.06)}
.media.has-poster .play{transition:transform .15s ease}

/* Na samostatné stránce už linku nad sebou dělá pruh v záhlaví. */
.entry .steps,.entry .dates{border-top:0}
.entry .dates{margin-top:1.6rem;border-top:4px solid var(--ink)}

/* Značka kroku vždy uprostřed nadpisu vedle sebe, bez ohledu na okolí. */
.step-mark{align-self:center;margin-top:0}
.step h3{align-self:center}
.step p{align-self:start}

/* Nadpisy uvnitř vložených prvků si nesou vlastní odsazení. */
.entry .step h3,.entry .contact h3,.entry .pt h3{margin:0}

/* Běžný seznam se žlutými čtverečky, použitelný kdekoli. */
.odrazky{list-style:none;padding-left:0;margin:1.1rem 0}
.odrazky li{position:relative;padding-left:1.6rem;margin-bottom:.55rem}
.odrazky li::before{content:"";position:absolute;left:0;top:.52em;
  width:9px;height:9px;background:var(--yellow)}
.odrazky a{font-weight:600;text-decoration:none}
.odrazky a:hover{text-decoration:underline;text-decoration-color:var(--yellow);
  text-decoration-thickness:4px;text-underline-offset:3px}

/* Video natočené na výšku. */
.media.na-vysku{aspect-ratio:9/16;max-width:26rem;margin-inline:auto}

/* Název uskupení se píše tak, jak se píše — bez převodu na verzálky. */
.foot h4.nazev-uskupeni{font-family:var(--sans);font-size:1.02rem;font-weight:900;
  letter-spacing:-.015em;text-transform:none;color:var(--ink);margin-bottom:.9rem}

/* Hlavní fotografie na úvodní stránce. */
.uvodni-foto img{width:100%;height:auto;display:block}

/* Hlavní médium hned pod heslem. */
.hero-media{margin:1.5rem 0 0}


/* V aktualitě se text sází na celou šířku sloupce jako na úvodní stránce. */
.article .entry > p,.article .entry > ul,.article .entry > ol,
.article .entry > h2,.article .entry > h3,.article .entry > h4,
.article .entry > blockquote,.article .entry > figure{max-width:none}

/* Náhledy ve výpisu: rámeček 3:2 drží vždy, fotka se do něj vejde celá.
   Fotka na výšku se zmenší a po stranách zůstanou pruhy.
   Fotka se zmenšuje vlastními rozměry (max-width/max-height), ne přes object-fit —
   to platí i tam, kde by se poměr stran rámečku nepropsal do výšky obrázku. */
.post .post-img,.fitem .thumb{overflow:hidden;min-height:0;padding:0;
  display:flex;align-items:center;justify-content:center;background:var(--grey-05)}
.post .post-img img,.fitem .thumb img{display:block;width:auto;height:auto;
  max-width:100%;max-height:100%;object-fit:contain}

/* Náhled videa: šipka v kolečku uprostřed fotografie. */
.post .post-img.is-video::before,.fitem .thumb.is-video::before{content:"";position:absolute;
  left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;
  background:rgba(253,211,48,.82);box-shadow:0 2px 10px rgba(0,47,102,.3);transition:transform .15s ease}
.post .post-img.is-video::after{content:"";position:absolute;left:50%;top:50%;
  transform:translate(-38%,-50%);width:0;height:0;border-left:15px solid var(--ink);
  border-top:10px solid transparent;border-bottom:10px solid transparent}
.fitem .thumb.is-video::after{content:"";position:absolute;left:50%;top:50%;
  transform:translate(-38%,-50%);width:0;height:0;border-left:15px solid var(--ink);
  border-top:10px solid transparent;border-bottom:10px solid transparent}
.post:hover .post-img.is-video::before,.fitem:hover .thumb.is-video::before{transform:translate(-50%,-50%) scale(1.08)}
