/*
Theme Name: FitPlan
Theme URI: https://www.fitplan.sk/
Description: Child téma pre fitplan.sk — brutalist-lite dizajnový systém pre appku Minúta, Fit vek test a normy.
Author: Michal Ochránek
Author URI: https://www.michalochranek.sk/
Template: Divi
Version: 2.0.0
Text Domain: fitplan-child
*/

/* ============================================================ TOKENY */
:root{
  --bg:#F4F1EA;
  --ink:#0D0D0D;
  --accent:#C8F31D;
  --surface:#FFFFFF;
  --muted:#5C5A54;
  --danger:#FF4D2E;
  --line:3px solid var(--ink);
  --line-thin:2px solid var(--ink);
  --shadow:8px 8px 0 var(--ink);
  --shadow-sm:5px 5px 0 var(--ink);
  --shadow-xs:3px 3px 0 var(--ink);
  --max:760px;
  --wide:1140px;
  --display:'Space Grotesk','Segoe UI',system-ui,sans-serif;
  --body:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
}

/* ============================================================ RESET */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.fitplan{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.fitplan img{max-width:100%;height:auto;display:block}
body.fitplan a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
body.fitplan a:hover{background:var(--accent);text-decoration:none}
body.fitplan h1,body.fitplan h2,body.fitplan h3,body.fitplan h4{
  font-family:var(--display);font-weight:700;line-height:1.05;
  letter-spacing:-0.02em;margin:0 0 .5em;text-wrap:balance;
}
body.fitplan h1{font-size:clamp(2.3rem,7vw,4.3rem)}
body.fitplan h2{font-size:clamp(1.7rem,4.6vw,2.7rem)}
body.fitplan h3{font-size:clamp(1.15rem,2.6vw,1.5rem)}
body.fitplan p{margin:0 0 1.1em}
body.fitplan strong{font-weight:800}
body.fitplan ul{margin:0 0 1.2em;padding-left:1.3em;list-style:disc}
body.fitplan ol{margin:0 0 1.2em;padding-left:1.4em;list-style:decimal}
body.fitplan li::marker{font-family:var(--display);font-weight:700}
body.fitplan li{margin-bottom:.45em}
body.fitplan table{border-collapse:collapse;width:100%}
:focus-visible{outline:4px solid var(--ink);outline-offset:3px}

/* ============================================================ LAYOUT */
.fp-wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.fp-wrap--wide{max-width:var(--wide)}
.fp-sec{padding:clamp(48px,9vw,96px) 0;scroll-margin-top:80px}
.fp-sec--tight{padding:clamp(32px,5vw,56px) 0}
.fp-sec--ink{background:var(--ink);color:var(--bg)}
.fp-sec--ink h2,.fp-sec--ink h3{color:var(--bg)}
.fp-sec--accent{background:var(--accent)}
.fp-center{text-align:center}
.fp-hr{height:3px;background:var(--ink);border:0;margin:0}

/* mikro-label */
.fp-label{
  font-family:var(--display);font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.14em;display:block;margin-bottom:14px;
}
.fp-label--muted{color:var(--muted)}

/* ============================================================ HLAVIČKA */
.fp-head{
  position:sticky;top:0;z-index:60;background:var(--bg);
  border-bottom:var(--line);
}
.fp-head__in{
  max-width:var(--wide);margin:0 auto;padding:12px 20px;
  display:flex;align-items:center;gap:18px;
}
.fp-logo{
  font-family:var(--display);font-weight:700;font-size:1.22rem;letter-spacing:-.03em;
  text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
}
.fp-logo:hover{background:transparent}
.fp-logo b{background:var(--ink);color:var(--accent);padding:2px 7px}
.fp-nav{margin-left:auto;display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.fp-nav a{
  font-family:var(--display);font-weight:500;font-size:.86rem;text-decoration:none;
  padding:8px 11px;border:2px solid transparent;
}
.fp-nav a:hover,.fp-nav a[aria-current="page"]{border-color:var(--ink);background:var(--accent)}
.fp-burger{display:none;margin-left:auto;background:var(--accent);border:var(--line-thin);
  font-family:var(--display);font-weight:700;padding:9px 13px;cursor:pointer;font-size:.9rem}
@media(max-width:860px){
  .fp-burger{display:block}
  .fp-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);
    border-bottom:var(--line);flex-direction:column;gap:0;padding:8px}
  .fp-nav.is-open{display:flex}
  .fp-nav a{width:100%;padding:13px 12px;font-size:1rem}
}

/* ============================================================ TLAČIDLÁ */
.fp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--display);font-weight:700;font-size:1.05rem;line-height:1;
  padding:20px 30px;min-height:60px;background:var(--accent);color:var(--ink);
  border:var(--line);box-shadow:var(--shadow-sm);text-decoration:none;cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease;text-align:center;
}
.fp-btn:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink);background:var(--accent)}
.fp-btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.fp-btn[disabled],.fp-btn.is-locked{opacity:.45;cursor:not-allowed;transform:none;box-shadow:var(--shadow-xs)}
.fp-btn--ink{background:var(--ink);color:var(--bg)}
.fp-btn--ghost{background:transparent}
.fp-btn--big{font-size:clamp(1.15rem,3.4vw,1.6rem);padding:26px 40px;min-height:78px;width:100%}
.fp-btn--sm{font-size:.9rem;padding:13px 18px;min-height:46px;box-shadow:var(--shadow-xs)}
.fp-btnrow{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* ============================================================ KARTY */
.fp-card{background:var(--surface);border:var(--line);box-shadow:var(--shadow);padding:clamp(22px,4vw,36px)}
.fp-card--flat{box-shadow:none}
.fp-card--accent{background:var(--accent)}
.fp-card--ink{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.fp-card--ink h2,.fp-card--ink h3{color:var(--bg)}
.fp-grid{display:grid;gap:20px}
.fp-grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.fp-grid--3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.fp-grid--4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}

/* ============================================================ VEĽKÉ ČÍSLA */
.fp-big{
  font-family:var(--display);font-weight:700;line-height:.82;letter-spacing:-.05em;
  font-size:clamp(5rem,24vw,10.5rem);display:block;
}
.fp-big--shadow{text-shadow:8px 8px 0 var(--accent)}
.fp-num{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums}

/* ============================================================ HERO / MINÚTA */
.fp-hero{padding:clamp(28px,5vw,60px) 0 0}
.fp-day{
  display:inline-block;font-family:var(--display);font-weight:700;font-size:.8rem;
  text-transform:uppercase;letter-spacing:.14em;background:var(--ink);color:var(--accent);
  padding:7px 13px;margin-bottom:18px;
}
.fp-claim{font-size:clamp(1.05rem,2.5vw,1.3rem);max-width:34ch;margin:0 auto 6px}

.fp-minuta{
  border:var(--line);background:var(--surface);box-shadow:var(--shadow);
  padding:clamp(24px,5vw,44px);text-align:center;position:relative;
}
.fp-minuta__kat{font-family:var(--display);font-size:.75rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.16em;color:var(--muted);margin-bottom:10px}
.fp-minuta__nazov{font-family:var(--display);font-weight:700;line-height:1;
  font-size:clamp(2rem,8vw,3.6rem);letter-spacing:-.03em;margin:0 0 6px}
.fp-minuta__davka{font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,5vw,2rem);
  background:var(--accent);display:inline-block;padding:6px 16px;border:var(--line-thin);margin-bottom:20px}
.fp-minuta__ako{text-align:left;max-width:46ch;margin:0 auto 24px}
.fp-minuta__ako li{margin-bottom:.55em}

/* odpočet na celú obrazovku */
.fp-timer{
  position:fixed;inset:0;z-index:9999;background:var(--ink);color:var(--bg);
  display:none;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;text-align:center;overflow-y:auto;
}
.fp-timer.is-on{display:flex}
.fp-timer__cvik{font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,5vw,2.2rem);margin-bottom:4px}
.fp-timer__pod{color:#B9B6AE;margin-bottom:18px;max-width:40ch}
.fp-timer__kruh{position:relative;width:min(72vw,44vh,320px);aspect-ratio:1;margin:6px 0}
.fp-timer__kruh svg{width:100%;height:100%;transform:rotate(-90deg)}
.fp-timer__ring-bg{fill:none;stroke:#2a2a27;stroke-width:10}
.fp-timer__ring{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:butt;
  transition:stroke-dashoffset .95s linear}
.fp-timer__cislo{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:700;
  font-size:min(22vw,13vh,7.5rem);line-height:1;
  color:var(--accent);font-variant-numeric:tabular-nums;margin:0;
}
.fp-timer.je-hotovo .fp-timer__ring{animation:fpPuls .6s ease 2}
.fp-timer__zvuk{position:absolute;top:16px;right:16px;background:transparent;
  border:2px solid #4a4a46;color:#B9B6AE;font-family:var(--display);font-size:.74rem;
  padding:8px 12px;cursor:pointer;letter-spacing:.06em}
.fp-timer__zvuk:hover{border-color:var(--accent);color:var(--accent)}
.fp-timer__zapis{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;
  justify-content:center;align-items:center;max-width:420px}
.fp-timer__zapis p{color:#B9B6AE;margin:0 0 10px;width:100%}
.fp-timer__zapis input{font-family:var(--display);font-weight:700;font-size:1.3rem;padding:14px;
  width:130px;border:3px solid var(--accent);background:var(--ink);color:var(--accent);text-align:center}
@keyframes fpPuls{0%,100%{opacity:1}50%{opacity:.35}}
.fp-timer__ring{display:block;margin:0 auto 8px}
.fp-timer__pod2{margin-top:14px;font-size:.95rem;color:#B9B6AE}
.fp-timer__vzdat{margin-top:26px;background:transparent;border:2px solid #4a4a46;color:#B9B6AE;
  font-family:var(--display);padding:12px 18px;cursor:pointer;font-size:.85rem}
.fp-timer__vzdat:hover{border-color:var(--danger);color:var(--danger)}

/* zámok zvyšku stránky */
.fp-lock{position:relative}
.fp-lock.is-locked>.fp-lock__obsah{
  filter:blur(7px);opacity:.45;pointer-events:none;user-select:none;
  max-height:430px;overflow:hidden;
}
.fp-lock__zavora{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding:24px;z-index:5;
}
.fp-lock.is-locked .fp-lock__zavora{display:flex}
.fp-lock:not(.is-locked) .fp-lock__zavora{display:none}
.fp-lock__box{background:var(--ink);color:var(--bg);border:var(--line);padding:28px 32px;
  box-shadow:var(--shadow);max-width:34ch;text-align:left}
.fp-lock__t{font-family:var(--display);font-weight:700;font-size:1.45rem;margin:0 0 10px;color:var(--accent)}
.fp-lock__p{margin:0;font-size:.95rem;color:#E6E3DC}
.fp-lock__p b{color:var(--accent)}
.fp-lock.je-odomknute>.fp-lock__obsah{animation:fpOdomkni .75s ease both}
@keyframes fpOdomkni{
  0%{filter:blur(7px);opacity:.45;transform:scale(.985)}
  100%{filter:blur(0);opacity:1;transform:none}
}
.fp-lock__box svg{width:34px;height:34px;margin-bottom:10px}
.fp-lock__box svg path,.fp-lock__box svg rect{stroke:var(--accent);stroke-width:2.4;fill:none}
.fp-lock__box b{color:var(--accent)}

/* ============================================================ SÉRIA */
.fp-seria{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}
.fp-seria__cislo{font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,10vw,4.4rem);line-height:1}
.fp-mriezka{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}
.fp-mriezka span{
  width:26px;height:26px;border:var(--line-thin);background:var(--surface);display:block;
}
.fp-mriezka span.je{background:var(--accent)}
.fp-mriezka span.dnes{outline:3px solid var(--danger);outline-offset:2px}
.fp-mriezka span.bum{animation:fpBum .7s cubic-bezier(.2,1.6,.4,1) both}
@keyframes fpBum{0%{transform:scale(.2) rotate(-12deg)}60%{transform:scale(1.35)}100%{transform:none}}
.fp-mriezka span.pre{background:repeating-linear-gradient(45deg,#E6E3DC,#E6E3DC 4px,#F4F1EA 4px,#F4F1EA 8px)}

/* ============================================================ POČÍTADLO */
.fp-pocitadlo{text-align:center}
.fp-pocitadlo__cislo{font-family:var(--display);font-weight:700;
  font-size:clamp(3rem,13vw,6.5rem);line-height:.9;color:var(--accent);font-variant-numeric:tabular-nums}
.fp-kraje{display:grid;gap:9px;margin-top:26px;text-align:left}
.fp-kraj{display:grid;grid-template-columns:118px 1fr auto;gap:10px;align-items:center;font-size:.9rem}
.fp-kraj__bar{height:17px;background:#2a2a27;position:relative;overflow:hidden}
.fp-kraj__bar i{position:absolute;inset:0 auto 0 0;background:var(--accent);display:block}
.fp-kraj__n{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:520px){.fp-kraj{grid-template-columns:96px 1fr auto;font-size:.82rem}}

/* ============================================================ VÝHOVORKOMAT */
.fp-vyh__vstup{display:flex;gap:12px;flex-wrap:wrap}
.fp-vyh__vstup input{
  flex:1 1 240px;font-family:var(--body);font-size:1.05rem;padding:17px 16px;
  border:var(--line);background:var(--surface);color:var(--ink);min-height:60px;
}
.fp-vyh__vstup input::placeholder{color:#8d8a83}
.fp-vyh__odpoved{margin-top:22px;display:none}
.fp-vyh__odpoved.is-on{display:block;animation:fpUp .34s ease both}
.fp-vyh__hlaska{font-family:var(--display);font-weight:700;font-size:clamp(1.25rem,4vw,1.8rem);
  line-height:1.12;margin-bottom:14px}
.fp-vyh__chipy{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.fp-vyh__chipy button{
  font-family:var(--display);font-size:.82rem;font-weight:500;background:var(--surface);
  border:var(--line-thin);padding:8px 12px;cursor:pointer;
}
.fp-vyh__chipy button:hover{background:var(--accent)}

/* ============================================================ FORMULÁRE */
.fp-form{display:flex;gap:12px;flex-wrap:wrap}
.fp-form input[type=email],.fp-form input[type=text],.fp-form select{
  flex:1 1 220px;font-family:var(--body);font-size:1.02rem;padding:16px;
  border:var(--line);background:var(--surface);color:var(--ink);min-height:58px;
}
.fp-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fp-suhlas{font-size:.8rem;color:var(--muted);margin-top:12px;line-height:1.5}
.fp-hlaska{margin-top:14px;font-weight:600;display:none}
.fp-hlaska.is-on{display:block}
.fp-hlaska.je-ok{color:#1f7a1f}
.fp-hlaska.je-zle{color:var(--danger)}

/* ============================================================ TABUĽKY NORIEM */
.fp-tabwrap{overflow-x:auto;border:var(--line);background:var(--surface);margin-bottom:10px}
.fp-tab{min-width:440px;font-size:.93rem}
.fp-tab th,.fp-tab td{padding:12px 14px;text-align:left;border-bottom:2px solid #E2DFD7}
.fp-tab thead th{background:var(--ink);color:var(--bg);font-family:var(--display);
  font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;border-bottom:0}
.fp-tab tbody tr:last-child td{border-bottom:0}
.fp-tab td:first-child{font-family:var(--display);font-weight:700}
.fp-tab .je-ty{background:var(--accent)}
.fp-zdroj{font-size:.78rem;color:var(--muted);margin:0 0 26px}

/* kalkulačka normy */
.fp-kalk__vstup{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}
.fp-kalk__vstup input,.fp-kalk__vstup select{
  font-family:var(--display);font-weight:700;font-size:1.1rem;padding:15px;
  border:var(--line);background:var(--surface);min-height:58px;flex:1 1 120px;
}
.fp-kalk__out{display:none;margin-top:24px;border-top:var(--line);padding-top:24px}
.fp-kalk__out.is-on{display:block;animation:fpUp .34s ease both}
.fp-kalk__verdikt{font-family:var(--display);font-weight:700;
  font-size:clamp(1.5rem,5vw,2.4rem);line-height:1.1;margin-bottom:10px}
.fp-kalk__pasmo{display:inline-block;padding:5px 12px;border:var(--line-thin);
  font-family:var(--display);font-weight:700;font-size:.85rem;background:var(--accent)}

/* ============================================================ FOTKY */
/* Zámerne bez mix-blend-mode: na tmavom podklade z toho vznikne čierny obdĺžnik.
   Duotone robíme čiernobielym filtrom + jemným kyslým závojom. */
.fp-foto{position:relative;border:var(--line);overflow:hidden;background:var(--bg);margin:0}
.fp-foto img{
  display:block;width:100%;height:auto;
  filter:grayscale(1) contrast(1.14) brightness(.97);
}
.fp-foto::after{
  content:"";position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(200,243,29,.16),rgba(13,13,13,.22));
}
.fp-foto figcaption{
  position:relative;z-index:2;font-size:.78rem;color:var(--muted);
  padding:10px 12px;background:var(--bg);border-top:var(--line-thin);
}
.fp-foto figcaption + *{margin-top:0}
.fp-foto--plain img{filter:none}
.fp-foto--plain::after{display:none}
.fp-hero-foto{aspect-ratio:16/7;object-fit:cover;width:100%}

/* ============================================================ RÔZNE */
.fp-marquee{background:var(--ink);color:var(--accent);overflow:hidden;
  border-top:var(--line);border-bottom:var(--line);padding:11px 0}
.fp-marquee__in{display:flex;gap:44px;width:max-content;animation:fpSlide 34s linear infinite;
  font-family:var(--display);font-weight:700;font-size:.86rem;text-transform:uppercase;letter-spacing:.1em}
@keyframes fpSlide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.fp-gauc{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.fp-cite{border-left:8px solid var(--accent);padding:4px 0 4px 18px;margin:26px 0;
  font-family:var(--display);font-size:1.15rem;line-height:1.35}
.fp-fakt{background:var(--accent);border:var(--line);padding:18px 22px;margin:24px 0;
  box-shadow:var(--shadow-xs)}
.fp-fakt b{font-family:var(--display)}
.fp-pozn{background:#EFECE4;border-left:8px solid var(--ink);padding:16px 20px;
  font-size:.9rem;margin:24px 0}
.fp-kroky{counter-reset:k;list-style:none;padding:0}
.fp-kroky li{counter-increment:k;position:relative;padding-left:56px;margin-bottom:20px}
.fp-kroky li::before{content:counter(k);position:absolute;left:0;top:-4px;
  font-family:var(--display);font-weight:700;font-size:1.6rem;background:var(--accent);
  border:var(--line-thin);width:42px;height:42px;display:flex;align-items:center;justify-content:center}
.fp-faq details{border:var(--line);background:var(--surface);margin-bottom:12px}
.fp-faq summary{font-family:var(--display);font-weight:700;padding:17px 20px;cursor:pointer;
  list-style:none;font-size:1.02rem}
.fp-faq summary::-webkit-details-marker{display:none}
.fp-faq summary::after{content:"+";float:right;font-size:1.3rem;line-height:1}
.fp-faq details[open] summary::after{content:"–"}
.fp-faq details>div{padding:0 20px 18px;border-top:2px solid #E2DFD7}

/* cenový box */
.fp-cena{font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,10vw,4rem);line-height:1}
.fp-cena small{font-size:1rem;font-weight:500;display:block;color:var(--muted)}
.fp-stack{list-style:none;padding:0;margin:0 0 22px}
.fp-stack li{display:flex;gap:12px;padding:11px 0;border-bottom:2px solid #E2DFD7;font-size:.97rem}
.fp-stack li::before{content:"";flex:0 0 20px;height:20px;background:var(--accent);
  border:var(--line-thin);margin-top:2px}
.fp-stack li span{margin-left:auto;font-family:var(--display);font-weight:700;white-space:nowrap}

/* pätička */
.fp-foot{background:var(--ink);color:#B9B6AE;padding:56px 0 40px;font-size:.88rem}
.fp-foot a{color:var(--bg)}
.fp-foot a:hover{background:var(--accent);color:var(--ink)}
.fp-foot__grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.fp-foot h4{font-family:var(--display);color:var(--bg);font-size:.8rem;text-transform:uppercase;
  letter-spacing:.12em;margin:0 0 12px}
.fp-foot ul{list-style:none;padding:0;margin:0}
.fp-foot li{margin-bottom:7px}
.fp-foot__dole{border-top:2px solid #2a2a27;margin-top:34px;padding-top:20px;font-size:.78rem}

/* animácie */
@keyframes fpUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.fp-up{animation:fpUp .4s ease both}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
}

/* tlač */
@media print{
  .fp-head,.fp-foot,.fp-btn,.fp-timer{display:none!important}
  body.fitplan{background:#fff}
}


/* ============================================================ ŽIVOT V TÝŽDŇOCH */
.fp-zivot{padding:clamp(34px,6vw,72px) 0 clamp(30px,5vw,56px);position:relative}
.fp-zivot .fp-wrap{display:grid;gap:clamp(24px,4vw,34px)}
.fp-zivot__hl h1{margin:0 0 12px}
.fp-zivot__pod{font-size:clamp(1.02rem,2.3vw,1.22rem);max-width:36ch;margin:0}
.fp-zivot__mriezka{border:var(--line);background:var(--surface);
  padding:clamp(10px,1.6vw,16px);box-shadow:var(--shadow)}
.fp-zivot__mriezka canvas{display:block;width:100%}
.fp-zivot__label{display:block;font-family:var(--display);font-weight:700;
  font-size:clamp(1.1rem,2.6vw,1.45rem);margin-bottom:12px}
.fp-zivot__vstup{display:flex;gap:10px;flex-wrap:wrap}
.fp-zivot__vstup input,.fp-zivot__vstup select{
  font-family:var(--display);font-weight:700;font-size:1.15rem;padding:15px 16px;
  border:var(--line);background:var(--surface);color:var(--ink);min-height:60px}
.fp-zivot__vstup input{width:110px}
.fp-zivot__mikro{font-size:.8rem;color:var(--muted);margin:10px 0 0}
.fp-zivot__vysledok{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;margin-bottom:18px}
.fp-zivot__cislo{font-family:var(--display);font-weight:700;line-height:.85;
  font-size:clamp(3.4rem,12vw,6rem);letter-spacing:-.04em;font-variant-numeric:tabular-nums;
  text-shadow:6px 6px 0 var(--accent)}
.fp-zivot__jed{font-family:var(--display);font-weight:700;font-size:1.1rem;margin:0}
.fp-zivot__hotovo{font-size:.92rem;color:var(--muted);margin:6px 0 0;max-width:42ch}
.fp-zivot__cta{margin-top:22px}
.fp-zivot__cta p{font-family:var(--display);font-weight:700;
  font-size:clamp(1.1rem,2.6vw,1.4rem);line-height:1.25;max-width:26ch}
.fp-zivot__cta .fp-btn{width:auto}
.fp-fakt--velky{font-size:1.02rem;line-height:1.55}
.fp-fakt--velky strong{font-family:var(--display)}
.fp-fakt.je-stop{background:#FFE3DC;border-color:var(--danger)}

@media(min-width:920px){
  .fp-zivot .fp-wrap{grid-template-columns:minmax(300px,420px) 1fr;
    column-gap:clamp(36px,5vw,64px);align-items:start}
  .fp-zivot__mriezka{grid-column:1;grid-row:1 / span 3;position:sticky;top:92px}
  .fp-zivot__hl,.fp-zivot [data-fp-zivot-pred],.fp-zivot [data-fp-zivot-po]{grid-column:2}
}

/* ============================================================ HLAVIČKA DŇA */
.fp-den{display:flex;align-items:center;gap:18px;margin-bottom:10px}
.fp-den__c{font-family:var(--display);font-weight:700;line-height:.8;
  font-size:clamp(3.4rem,11vw,5.4rem);letter-spacing:-.05em;color:var(--bg);
  -webkit-text-stroke:3px var(--ink)}
.fp-den__t{margin:4px 0 0;font-size:clamp(1.9rem,6vw,3.2rem)}
.fp-den__pod{font-size:clamp(1rem,2.2vw,1.15rem);max-width:52ch}

/* ============================================================ POČÍTADLO v2 */
.fp-pocitadlo__t{font-family:var(--display);font-weight:700;font-size:1.15rem;margin:6px 0 0}
.fp-pocitadlo__p{margin:2px 0 0;font-size:.92rem;color:#B9B6AE}
.fp-kraj.je-prazdny{opacity:.45}

/* ============================================================ TEST */
.fp-test__pruh{height:6px;background:#E2DFD7;border:2px solid var(--ink);margin:0 0 20px}
.fp-test__pruh i{display:block;height:100%;background:var(--accent);transition:width .3s ease}
.fp-btn--odp{justify-content:flex-start;text-align:left;font-size:.98rem;line-height:1.25;
  padding:16px 18px;min-height:64px}
.fp-btn__kl{flex:0 0 26px;height:26px;border:2px solid var(--ink);display:inline-flex;
  align-items:center;justify-content:center;font-size:.78rem;margin-right:10px;opacity:.55}
.fp-btn--odp:hover .fp-btn__kl{opacity:1;background:var(--ink);color:var(--accent)}

/* ============================================================ VERDIKT */
.fp-kalk__verdikt.je-0::after,.fp-kalk__verdikt.je-1::after{content:" \2713";color:#1f7a1f}
.fp-kalk__verdikt.je-3::after,.fp-kalk__verdikt.je-4::after{content:" !";color:var(--danger)}

/* ============================================================ KARTA AKO ODKAZ */
.fp-card--odkaz{text-decoration:none;display:block;transition:transform .14s ease,box-shadow .14s ease}
.fp-card--odkaz:hover{background:var(--accent);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink)}

/* ============================================================ ODHAĽOVANIE */
.fp-skryte{opacity:0;transform:translateY(22px)}
.fp-vidno{opacity:1;transform:none;transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.3,1)}

/* ============================================================ ZRNO */
body.fitplan::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body.fitplan>header,body.fitplan>main,body.fitplan>footer{position:relative;z-index:2}
