/* ITCAMP – veřejný web (prototyp fáze B). Tokeny → základ → komponenty → sekce → formuláře → pohyb. */

@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/montserrat-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:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/montserrat-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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/inter-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:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/inter-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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --violet:#8E43F0; --violet-ink:#6B2CC6; --violet-deep:#2A1262; --violet-soft:#EFE6FD;
  --ink:#17122B; --muted:#554F6B; --paper:#FBFAFF; --paper-2:#F3EEFC; --white:#fff; --line:#DCD4EF;
  --sun:#FFD84D; --ok:#17744A; --warn:#8A5200; --err:#B3261E;
  --font-display:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-text:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(16px,4vw,40px); --wrap:1180px; --radius:14px;
  --step--1:clamp(.8rem,.78rem + .1vw,.875rem);
  --step-0:clamp(1rem,.97rem + .15vw,1.0625rem);
  --step-1:clamp(1.15rem,1.08rem + .35vw,1.35rem);
  --step-2:clamp(1.4rem,1.2rem + 1vw,1.95rem);
  --step-3:clamp(1.8rem,1.4rem + 2vw,3rem);
  --step-4:clamp(2.1rem,1.4rem + 3vw,4.3rem);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--step-0)/1.6 var(--font-text);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,picture{display:block;max-width:100%;height:auto}
a{color:var(--violet-ink);text-underline-offset:.18em;text-decoration-thickness:1.5px}
a:hover{text-decoration-thickness:2.5px}
h1,h2,h3{font-family:var(--font-display);line-height:1.08;margin:0;letter-spacing:-.02em;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 3px var(--sun);border-radius:4px}
.skip{position:absolute;left:var(--gutter);top:-80px;background:var(--ink);color:#fff;padding:12px 18px;border-radius:0 0 10px 10px;z-index:100;font-weight:600}
.skip:focus{top:0}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}

/* proužek s odpočtem */
.topbar{background:var(--violet);color:#fff;font-size:var(--step--1);line-height:1.4}
.topbar .wrap{display:flex;align-items:center;justify-content:center;gap:.6em 1.2em;flex-wrap:wrap;padding-block:9px;text-align:center}
.topbar strong{color:#fff;font-weight:800}
.topbar a{color:#fff;font-weight:600}
.cd{font-variant-numeric:tabular-nums;display:inline-flex;gap:.35em;font-weight:700;color:#fff}
.cd span{background:var(--ink);padding:3px 8px;border-radius:6px}
.cd span small{font-weight:500;color:#d9ccf7;margin-left:.1em}

/* hlavička */
.header{position:sticky;top:0;z-index:50;background:rgba(251,250,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.header .wrap{display:flex;align-items:center;gap:16px;min-height:68px;flex-wrap:wrap;padding-block:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:800 1.25rem/1 var(--font-display);letter-spacing:-.03em}
.brand img{width:40px;height:40px;border-radius:50%}
.brand b{color:var(--violet)}
.nav{display:flex;gap:6px 22px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;padding:6px 2px;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current]{border-color:var(--violet)}
.nav .btn{border:0}
.menu-btn{display:none}
.js .menu-btn{display:inline-flex;margin-left:auto}
@media (max-width:860px){
  .nav{width:100%;margin-left:0;gap:2px 16px;justify-content:space-between}
  .nav a{font-size:.88rem}
  .nav .btn{order:-1;width:100%}
  .js .nav{display:none;flex-direction:column;align-items:stretch;gap:0;padding-bottom:10px}
  .js .nav.open{display:flex}
  .js .nav a{padding:13px 2px;border-bottom:1px solid var(--line);font-size:1.05rem}
  .js .nav .btn{order:9;margin-top:12px;text-align:center;justify-content:center;border-bottom:0}
  .js .header .wrap{flex-wrap:wrap}
}
@media (min-width:861px){.js .menu-btn{display:none}}

/* tlačítka */
.btn{display:inline-flex;align-items:center;gap:.6em;background:var(--violet);color:#fff;font:700 1rem/1 var(--font-display);text-decoration:none;padding:15px 24px;border-radius:12px;border:2px solid var(--violet);cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s;box-shadow:0 1px 0 rgba(23,18,43,.2)}
.btn:hover{background:var(--violet-ink);border-color:var(--violet-ink);transform:translateY(-1px);text-decoration:none}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(4px)}
.btn.sm{padding:11px 18px;font-size:.9rem;border-radius:10px}
.btn.ghost{background:transparent;color:var(--violet-ink);border-color:var(--violet)}
.btn.ghost:hover{background:var(--violet-soft)}
.btn.sun{background:var(--sun);color:var(--ink);border-color:var(--sun)}
.btn.sun:hover{background:#ffe27a;border-color:#ffe27a}
.link-arrow{font-weight:600;text-decoration:none;border-bottom:2px solid var(--violet);padding-bottom:1px;color:var(--ink)}
.link-arrow:hover{background:var(--violet-soft)}

/* hero */
.hero{padding-block:clamp(36px,6vw,84px) clamp(28px,4vw,56px);position:relative;overflow:clip}
.hero-grid{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:1fr;align-items:center}
@media (min-width:960px){.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}
.eyebrow{display:block;font:600 var(--step--1)/1.35 var(--font-text);letter-spacing:.06em;text-transform:uppercase;color:var(--violet-ink);margin-bottom:18px}
.eyebrow::before{content:"";display:inline-block;width:28px;height:2px;background:var(--violet);vertical-align:middle;margin-right:10px}
.display{display:block;font:800 var(--step-4)/.98 var(--font-display);letter-spacing:-.035em;color:var(--ink)}
.display mark{background:linear-gradient(transparent 62%,var(--sun) 62% 92%,transparent 92%);color:inherit;padding:0 .06em}
.cursor{display:inline-block;width:.09em;height:.82em;background:var(--violet);margin-left:.08em;vertical-align:-.04em;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.hero .lead{font-size:var(--step-1);color:var(--muted);max-width:34em;margin:26px 0 30px;line-height:1.55}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}
.hero-photo{position:relative}
.hero-photo picture,.hero-photo img{width:100%}
.hero-photo .frame{aspect-ratio:4/4.3;overflow:hidden;border-radius:var(--radius);clip-path:polygon(0 0,calc(100% - 56px) 0,100% 56px,100% 100%,0 100%);background:var(--violet-soft)}
.hero-photo .frame picture{height:100%}
.hero-photo img{height:100%;object-fit:cover}
.sticker{position:absolute;left:-18px;bottom:48px;width:136px;height:136px;border-radius:50%;background:var(--violet);color:#fff;display:grid;place-content:center;text-align:center;font:800 1.55rem/1 var(--font-display);transform:rotate(-8deg);box-shadow:0 10px 24px rgba(107,44,198,.35);border:3px solid var(--paper)}
.sticker small{display:block;font:600 .66rem/1.25 var(--font-text);letter-spacing:.04em;text-transform:uppercase;margin-top:6px;opacity:.95;max-width:84px;margin-inline:auto}
.photo-cap{font-size:var(--step--1);color:var(--muted);margin-top:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.facts{margin-top:clamp(32px,5vw,64px);display:grid;gap:0;grid-template-columns:1fr;border-top:2px solid var(--ink)}
@media (min-width:700px){.facts{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.facts{grid-template-columns:repeat(3,1fr)}}
.facts div{padding:18px 20px 20px 0;border-bottom:1px solid var(--line)}
@media (min-width:1040px){.facts div{border-bottom:0;border-right:1px solid var(--line);padding:20px 22px 22px}.facts div:first-child{padding-left:0}.facts div:last-child{border-right:0}}
.facts dt{font:700 var(--step--1)/1 var(--font-text);letter-spacing:.07em;text-transform:uppercase;color:var(--violet-ink);margin-bottom:9px}
.facts dd{margin:0;font:700 1.06rem/1.35 var(--font-display);letter-spacing:-.01em}
.facts dd span{display:block;font:400 .9rem/1.45 var(--font-text);color:var(--muted);margin-top:3px;letter-spacing:0}

/* sekce */
.section{padding-block:clamp(56px,9vw,120px)}
.section.alt{background:var(--paper-2)}
.section.dark{background:var(--violet-deep);color:#fff}
.section.dark a{color:#fff}
.sec-grid{display:grid;gap:clamp(20px,4vw,64px);grid-template-columns:1fr}
@media (min-width:960px){.sec-grid{grid-template-columns:minmax(0,.8fr) minmax(0,2fr)}.sec-grid>.sec-head{position:sticky;top:96px;align-self:start}}
.tag{font:600 var(--step--1)/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--violet-ink);letter-spacing:.02em;margin-bottom:14px;display:block}
.dark .tag{color:var(--sun)}
.sec-head h2{font-size:var(--step-3)}
.sec-head p{color:var(--muted);margin-top:14px;font-size:var(--step-0);max-width:22em}
.dark .sec-head p{color:#cfc6ea}
.prose p{font-size:var(--step-1);line-height:1.6;max-width:36em}
.prose p+p{margin-top:.3em}
.prose strong{font-weight:700}

/* výstupy */
.outcomes{margin-top:34px;border-top:2px solid var(--ink)}
.outcomes h3{font:700 var(--step--1)/1 var(--font-text);letter-spacing:.07em;text-transform:uppercase;color:var(--violet-ink);padding-top:18px;margin-bottom:6px}
.outcomes li{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:1.03rem;align-items:baseline}
.outcomes li::before{content:"→";color:var(--violet);font-weight:800}

/* program */
.prog li{display:grid;grid-template-columns:auto 1fr;gap:6px clamp(16px,3vw,36px);padding:clamp(22px,3vw,34px) 0;border-top:1px solid var(--line);align-items:start}
.prog li:first-child{border-top:2px solid var(--ink)}
.prog .n{font:800 clamp(2.2rem,5vw,3.6rem)/1 var(--font-display);color:var(--violet);min-width:1.6em;letter-spacing:-.04em}
.prog h3{font-size:var(--step-2);margin-bottom:8px}
.prog p{color:var(--muted);max-width:38em;margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{display:block;border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:.88rem;background:#fff;font-weight:500}
.prog .chips li{border-top:1px solid var(--line);padding:5px 13px}
.prog li.rowbody{display:block;border:0;padding:0}

/* rovnováha */
.balance{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:1fr;align-items:center}
@media (min-width:900px){.balance{grid-template-columns:1fr 1fr}}
.rhythm{display:grid;gap:10px}
.rhythm .row{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;height:56px}
.rhythm .row i{border-radius:8px;display:block;background:var(--violet)}
.rhythm .row i.m{background:var(--sun)}
.rhythm .legend{display:flex;gap:20px;font-size:.9rem;color:#e0d8f5;flex-wrap:wrap;align-items:center}
.rhythm .legend span::before{content:"";display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--violet);margin-right:8px;vertical-align:-2px}
.rhythm .legend span.m::before{background:var(--sun)}
.rhythm .note{font-size:.82rem;color:#bfb4e0;font-family:ui-monospace,Menlo,monospace}
.big-q{font:800 var(--step-3)/1.05 var(--font-display);letter-spacing:-.03em}
.big-q em{font-style:normal;color:var(--sun)}

/* místo a den */
.place{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:1fr}
@media (min-width:960px){.place{grid-template-columns:1fr 1fr;align-items:start}}
.place figure{margin:0}
.place figure img{border-radius:var(--radius);width:100%;aspect-ratio:16/10;object-fit:cover}
.place figcaption{font-size:var(--step--1);color:var(--muted);margin-top:10px}
.addr{font:700 var(--step-1)/1.3 var(--font-display);margin-bottom:6px}
.day{margin-top:28px;position:relative;border-left:2px solid var(--violet);padding-left:0}
.day li{position:relative;padding:0 0 22px 28px}
.day li::before{content:"";position:absolute;left:-8px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--violet)}
.day li:last-child{padding-bottom:0}
.day b{display:block;font:700 1.08rem/1.3 var(--font-display)}
.day span{color:var(--muted);font-size:.95rem}
.day time{font:600 .85rem/1 ui-monospace,Menlo,monospace;color:var(--violet-ink);display:block;margin-bottom:4px}
.bring{margin-top:30px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.bring h3{font-size:1.05rem;margin-bottom:8px}
.bring p{margin:0;font-size:.97rem;color:var(--muted)}

/* tým */
.team{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:1fr;align-items:center}
@media (min-width:860px){.team{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}}
.team img{border-radius:var(--radius);width:100%;aspect-ratio:1/1;object-fit:cover;max-width:380px}
.team h3{font-size:var(--step-2);margin-bottom:2px}
.team .role{color:var(--violet-ink);font-weight:600;margin-bottom:14px}
.proto-note{display:inline-block;margin-top:12px;font:500 .78rem/1.3 ui-monospace,Menlo,monospace;color:var(--warn);background:#FFF4D6;border:1px dashed #E3B54B;border-radius:8px;padding:6px 10px}

/* termíny a cena */
.turnus-list{border-top:2px solid var(--ink)}
.turnus{display:grid;grid-template-columns:1fr;gap:6px 24px;padding:26px 0;border-bottom:1px solid var(--line);align-items:center}
@media (min-width:760px){.turnus{grid-template-columns:auto 1fr auto}}
.turnus .d{font:800 clamp(2rem,5vw,3.4rem)/1 var(--font-display);letter-spacing:-.04em}
.turnus .d small{font:600 .9rem/1.3 var(--font-text);letter-spacing:0;color:var(--muted);display:block;margin-top:6px}
.turnus .meta{color:var(--muted);font-size:.97rem}
.turnus .meta strong{color:var(--ink)}
.occ{display:inline-block;font:600 .8rem/1 ui-monospace,Menlo,monospace;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 9px;margin-top:8px;color:var(--ink)}
.price{margin-top:38px;display:grid;gap:14px}
.price h3{font-size:var(--step-2)}
.tiers{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:700px){.tiers{grid-template-columns:1fr 1fr}}
.tier{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:22px 24px;position:relative}
.tier.now{border-color:var(--violet);box-shadow:0 0 0 4px var(--violet-soft)}
.tier .when{font:600 var(--step--1)/1.3 var(--font-text);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.tier .amt{font:800 clamp(2rem,4vw,2.8rem)/1.1 var(--font-display);letter-spacing:-.03em;margin:8px 0 4px}
.tier .amt small{font:600 1rem var(--font-text);color:var(--muted);letter-spacing:0}
.tier .badge{position:absolute;top:-12px;right:18px;background:var(--violet);color:#fff;font:700 .72rem/1 var(--font-text);letter-spacing:.05em;text-transform:uppercase;padding:6px 10px;border-radius:6px}
.tier p{margin:0;font-size:.94rem;color:var(--muted)}
.incl{margin-top:4px;font-size:.98rem}
.steps{margin-top:44px;counter-reset:s;display:grid;gap:0;grid-template-columns:1fr;border-top:2px solid var(--ink)}
@media (min-width:860px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:s;padding:22px 22px 24px 0;border-bottom:1px solid var(--line)}
@media (min-width:860px){.steps li{border-bottom:0;border-right:1px solid var(--line);padding:22px 24px 8px}.steps li:first-child{padding-left:0}.steps li:last-child{border-right:0}}
.steps li::before{content:"0" counter(s);font:800 1.6rem/1 var(--font-display);color:var(--violet)}
.steps h3{font-size:1.1rem;margin:10px 0 6px}
.steps p{font-size:.96rem;color:var(--muted);margin:0}
.steps .warn{color:var(--ink);font-weight:600}
.after{margin-top:26px;display:flex;gap:12px 28px;flex-wrap:wrap;align-items:center}

/* galerie */
.gal{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){.gal{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,13vw)}
  .gal li:nth-child(1){grid-column:span 2;grid-row:span 2}.gal li:nth-child(6){grid-column:span 2}}
.gal li{position:relative;border-radius:12px;overflow:hidden;background:var(--violet-soft);aspect-ratio:4/3}
@media (min-width:760px){.gal li{aspect-ratio:auto}}
.gal a{display:block;height:100%}
.gal picture{height:100%}
.gal img{width:100%;height:100%;object-fit:cover;object-position:50% 62%;transition:transform .5s}
.gal a:hover img{transform:scale(1.04)}
.gal .cap{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;color:#fff;font-size:.85rem;background:linear-gradient(transparent,rgba(23,18,43,.78));pointer-events:none}
dialog.lb{border:0;padding:0;background:transparent;max-width:min(96vw,1280px);width:100%;max-height:96vh;margin:auto;overflow:visible}
dialog.lb::backdrop{background:rgba(23,18,43,.9)}
.lb figure{margin:0;display:grid;gap:10px;color:#fff}
.lb img{max-height:78vh;width:auto;max-width:100%;margin:auto;border-radius:10px;object-fit:contain}
.lb figcaption{text-align:center;font-size:.95rem}
.lb .ctrl{display:flex;justify-content:center;gap:10px}
.lb button{background:#fff;color:var(--ink);border:0;border-radius:10px;padding:11px 16px;font:700 .95rem var(--font-display);cursor:pointer}

/* vánoční dárek */
.xmas{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:1fr;align-items:center}
@media (min-width:960px){.xmas{grid-template-columns:1fr 1fr}}
.xmas ul{margin:20px 0 0}
.xmas li{padding:11px 0;border-top:1px solid rgba(255,255,255,.2);display:grid;grid-template-columns:24px 1fr;gap:8px}
.xmas li::before{content:"✓";color:var(--sun);font-weight:800}
.voucher{background:var(--violet);border-radius:18px;aspect-ratio:1.414/1;max-width:520px;margin-inline:auto;padding:clamp(18px,4vw,34px);display:flex;flex-direction:column;justify-content:space-between;color:#fff;position:relative;overflow:hidden;box-shadow:0 24px 50px rgba(0,0,0,.35);transform:rotate(-2.5deg);width:100%}
.voucher::after{content:"";position:absolute;right:-30px;bottom:-30px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12)}
.voucher h3{font:900 clamp(1.5rem,4.2vw,2.5rem)/1 var(--font-display);text-transform:uppercase;text-align:center;letter-spacing:.01em}
.voucher p{text-align:center;font-size:clamp(.62rem,1.5vw,.8rem);margin:0;line-height:1.5;opacity:.95}
.voucher .pro{font:800 clamp(.9rem,2.4vw,1.25rem) var(--font-display);text-align:center;border-bottom:2px dotted #fff;padding-bottom:4px}
.voucher .pro small{display:block;font:500 .75rem var(--font-text);margin-top:4px}
.xmas-note{font-size:.88rem;color:#cfc6ea;margin-top:16px;font-family:ui-monospace,Menlo,monospace}

/* faq */
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:20px 0;font:700 1.08rem/1.35 var(--font-display);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.8rem/1 var(--font-text);color:var(--violet);flex:none;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--violet-ink)}
.faq .a{padding:0 0 22px;max-width:44em;color:var(--muted)}
.faq .a p:last-child{margin-bottom:0}

/* formuláře */
.form-wrap{background:#fff;border:2px solid var(--ink);border-radius:20px;padding:clamp(20px,4vw,44px);box-shadow:8px 8px 0 var(--violet)}
.form-grid{display:grid;gap:22px;grid-template-columns:1fr}
@media (min-width:760px){.form-grid.two{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:7px;align-content:start}
.field label,.field .lbl,legend{font:700 .95rem/1.3 var(--font-display);letter-spacing:-.01em}
.opt{font:400 .85rem var(--font-text);color:var(--muted);margin-left:6px}
.hint{font-size:.88rem;color:var(--muted);margin:0}
.req{color:var(--violet-ink)}
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{width:100%;font:400 1rem var(--font-text);padding:13px 14px;border:2px solid #B8AED3;border-radius:10px;background:#fff;color:var(--ink);min-height:50px}
textarea{min-height:100px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:var(--violet)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-color:var(--ink)}
.has-error input,.has-error select{border-color:var(--err);background:#FFF6F5}
.err-msg{color:var(--err);font-weight:600;font-size:.92rem;display:flex;gap:6px}
.err-msg::before{content:"⚠"}
fieldset{border:0;margin:0;padding:0;min-inline-size:0}
.choice{display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:640px){.choice.two{grid-template-columns:1fr 1fr}}
.choice label{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;font:600 1rem/1.35 var(--font-text);background:#fff}
.choice label small{display:block;font-weight:400;color:var(--muted);margin-top:2px}
.choice input{margin-top:3px;width:20px;height:20px;accent-color:var(--violet);flex:none}
.choice label:has(input:checked){border-color:var(--violet);background:var(--violet-soft)}
.choice label:hover{border-color:var(--violet)}
.child{border:2px dashed #B8AED3;border-radius:14px;padding:20px;margin-top:6px;background:var(--paper)}
.child legend{padding:0 8px;font-size:1.05rem}
.child .rm{margin-top:12px}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.notice{display:flex;gap:12px;background:var(--violet-soft);border-left:5px solid var(--violet);border-radius:0 10px 10px 0;padding:16px 18px;font-size:.97rem}
.notice.warn{background:#FFF4D6;border-color:#E3B54B}
.notice.err{background:#FDECEA;border-color:var(--err)}
.notice b{font-weight:700}
.inline-btn{background:none;border:0;padding:0;font:600 1rem var(--font-text);color:var(--violet-ink);text-decoration:underline;cursor:pointer}
.form-actions{display:flex;gap:16px 24px;flex-wrap:wrap;align-items:center;margin-top:8px}
.fine{font-size:.88rem;color:var(--muted)}
.err-sum{background:#FDECEA;border:2px solid var(--err);border-radius:12px;padding:16px 20px;margin-bottom:24px}
.err-sum h3{font-size:1rem;color:var(--err);margin-bottom:8px}
.err-sum a{color:var(--err);font-weight:600}
.checks label{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line);font-size:.97rem;cursor:pointer}
.checks input{width:20px;height:20px;margin-top:2px;accent-color:var(--violet);flex:none}
.checks .pending{display:inline-block;font:500 .75rem ui-monospace,Menlo,monospace;color:var(--warn);background:#FFF4D6;border:1px dashed #E3B54B;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:1px}
.sum-table{width:100%;border-collapse:collapse;font-size:.97rem}
.sum-table caption{text-align:left;font:700 1rem var(--font-display);padding-bottom:10px}
.sum-table th,.sum-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.sum-table th{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.sum-table td.num,.sum-table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.sum-table tfoot td{font:800 1.2rem var(--font-display);border-bottom:0;border-top:2px solid var(--ink)}
.stepper{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 26px;font-size:.9rem;font-weight:600}
.stepper li{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-2);color:var(--muted)}
.stepper li.on{background:var(--ink);color:#fff}
.stepper li.done{background:var(--violet-soft);color:var(--violet-ink)}
.page-title{font-size:var(--step-3);margin:10px 0 14px}
.sec-sub{font-size:var(--step-2);margin:44px 0 6px;padding-top:20px;border-top:2px solid var(--ink)}
.sec-sub:first-of-type{margin-top:10px;border-top:0;padding-top:0}
.slim-head .wrap{min-height:64px}
.thanks{max-width:720px}
.thanks .big-ok{width:64px;height:64px;border-radius:50%;background:var(--sun);display:grid;place-content:center;font-size:2rem;margin-bottom:18px}

/* patička */
.footer{background:var(--ink);color:#d9d2ee;padding-block:56px 36px;font-size:.95rem}
.footer a{color:#fff}
.footer .cols{display:grid;gap:32px;grid-template-columns:1fr}
@media (min-width:800px){.footer .cols{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.footer h2{font:700 .78rem/1 var(--font-text);letter-spacing:.09em;text-transform:uppercase;color:var(--sun);margin-bottom:14px}
.footer li{margin-bottom:8px}
.footer .brand{color:#fff;margin-bottom:12px}
.footer .legal{margin-top:36px;padding-top:20px;border-top:1px solid #3b3358;display:flex;gap:10px 28px;justify-content:space-between;flex-wrap:wrap;font-size:.85rem;color:#a9a0c9}
.partner{display:flex;align-items:center;gap:10px;margin-top:6px}
.partner img{width:44px;height:44px;border-radius:50%;background:var(--violet)}

/* pohyb – obsah je viditelný i bez JS; skrývá se jen při .js a běžném pohybu */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
  .js .rv.in{opacity:1;transform:none}
  .js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cursor{animation:none}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
@media print{.topbar,.header,.footer,.btn{display:none}}

/* ---- úpravy po revizi: tlačítka, hero, obsazenost, vánoce ---- */
a.btn,button.btn,.nav a.btn,.footer a.btn{color:#fff}
a.btn.ghost,button.btn.ghost{color:var(--violet-ink)}
a.btn.sun,button.btn.sun{color:var(--ink)}
a.btn:hover,button.btn:hover{color:#fff}
a.btn.ghost:hover,button.btn.ghost:hover{color:var(--violet-ink)}

.eyebrow-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin:0 0 clamp(22px,3vw,38px);font:inherit;letter-spacing:0}
.eyebrow-row::after{content:"";flex:1 1 40px;height:2px;background:linear-gradient(90deg,var(--line),transparent);min-width:40px}
.pill{display:inline-flex;align-items:center;gap:10px;background:var(--violet);color:#fff;font:800 clamp(.95rem,.9rem + .3vw,1.15rem)/1 var(--font-display);letter-spacing:-.01em;padding:11px 18px;border-radius:999px;box-shadow:0 6px 18px rgba(142,67,240,.28)}
.pill::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px rgba(255,255,255,.28)}
.tags{display:inline-flex;flex-wrap:wrap;gap:8px}
.tags>span:not(.vh){font:700 .82rem/1 var(--font-text);letter-spacing:.06em;text-transform:uppercase;color:var(--violet-ink);background:var(--violet-soft);padding:8px 12px;border-radius:8px}
.display{font:800 var(--step-4)/1.02 var(--font-display);letter-spacing:-.035em;margin:0}
.rot-wrap{display:block;margin-top:.08em}
.rot-wrap mark{background:linear-gradient(transparent 60%,var(--sun) 60% 92%,transparent 92%);color:inherit;padding:0 .06em;display:inline-block;min-height:1.05em}
.rot{display:inline}
.hero .lead{margin-top:22px}

/* obsazenost – oba turnusy rovnocenně */
.tiles{margin-top:clamp(28px,4vw,52px);display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:700px){.tiles{grid-template-columns:1fr 1fr}}
.tile{display:grid;gap:4px;background:#fff;border:2px solid var(--ink);border-radius:var(--radius);padding:20px 22px 22px;box-shadow:6px 6px 0 var(--violet-soft)}
.tile-k{font:700 var(--step--1)/1 var(--font-text);letter-spacing:.07em;text-transform:uppercase;color:var(--violet-ink)}
.tile-d{font:800 clamp(1.4rem,1.1rem + 1.4vw,2.1rem)/1.1 var(--font-display);letter-spacing:-.03em;margin:6px 0 10px}
.tile-o{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:2px 14px}
.occ-num{font:800 clamp(2.6rem,2rem + 3vw,4.2rem)/.9 var(--font-display);letter-spacing:-.05em;color:var(--violet);grid-row:1/3}
.occ-num span{font-size:.5em;color:var(--muted);letter-spacing:-.02em;margin-left:.04em}
.occ-lab{font:700 .8rem/1 var(--font-text);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-self:end}
.bar{display:block;height:10px;border-radius:99px;background:var(--violet-soft);overflow:hidden;align-self:start;margin-top:6px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--violet),#B07BFF);border-radius:99px}
.turnus{grid-template-columns:1fr}
@media (min-width:760px){.turnus{grid-template-columns:auto 1fr 240px}}
.turnus-occ{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:end}
.turnus-occ .occ-num{font-size:clamp(2.4rem,2rem + 2vw,3.4rem)}

/* employer pole ve kroku 2 */
.js .emp:not(.on){display:none}
.emp{margin-top:6px;border:2px dashed #B8AED3;border-radius:14px;padding:6px 20px 20px;background:var(--paper)}

/* vánoční sekce a voucher */
.xmas-sec{position:relative;overflow:hidden;padding-top:clamp(90px,10vw,130px)}
.garland{position:absolute;left:0;top:0;width:100%;height:70px;z-index:1}
.snow{position:absolute;inset:0;pointer-events:none;z-index:0}
.snow i{position:absolute;top:-10px;border-radius:50%;background:#fff;opacity:.7}
@media (prefers-reduced-motion:no-preference){.snow i{animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite}}
@media (prefers-reduced-motion:reduce){.snow{display:none}}
@keyframes fall{to{transform:translate3d(30px,110vh,0)}}
.xmas-sec .wrap{position:relative;z-index:2}
.voucher{background:none;padding:0;display:block;aspect-ratio:520/368;border-radius:20px;overflow:hidden;position:relative;transform:rotate(-2.5deg);box-shadow:0 28px 60px rgba(0,0,0,.45);max-width:540px;margin-inline:auto;width:100%;color:#fff}
.voucher::after{display:none}
.vsvg{position:absolute;inset:0;width:100%;height:100%;display:block}
.vtxt{position:absolute;left:19%;right:19%;top:12%;bottom:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3.5%}
.vtxt h3{font:900 clamp(1.25rem,4.2vw,2.35rem)/1.02 var(--font-display);text-transform:uppercase;letter-spacing:.01em;text-shadow:0 2px 0 rgba(42,18,98,.35);margin-top:5%}
.vtxt p{font-size:clamp(.55rem,1.55vw,.8rem);line-height:1.5;margin:0;opacity:.97}
.vtxt .pro{margin-top:2%;font:800 clamp(.8rem,2.3vw,1.2rem) var(--font-display);border-bottom:2px dotted #fff;padding:0 6% 3px;white-space:nowrap}
.vtxt .pro small{display:block;font:500 .6em var(--font-text);margin-top:3px}
.xmas li::before{content:"★"}

/* recenze – carousel (scroll-snap, bez autoplay) */
.rec-head{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:end;justify-content:space-between;margin-bottom:26px}
.stars{display:inline-flex;gap:2px;vertical-align:middle}
.st{width:20px;height:20px;fill:#D9D1EB}
.st.on{fill:var(--violet)}
.carousel{position:relative}
.slides{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 14px;margin:0;scrollbar-width:thin;scrollbar-color:var(--violet) var(--violet-soft);overscroll-behavior-x:contain}
.slides:focus-visible{outline-offset:6px}
.slide{flex:0 0 min(88%,440px);scroll-snap-align:start;list-style:none}
@media (min-width:900px){.slide{flex-basis:calc((100% - 32px)/3)}}
.slide figure{margin:0;height:100%;display:flex;flex-direction:column;gap:14px;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:22px 24px 24px;position:relative}
.slide figure::before{content:"“";position:absolute;right:18px;top:2px;font:800 4.6rem/1 var(--font-display);color:var(--violet-soft)}
.slide-top{display:flex;align-items:center;gap:10px}
.slide-score{font:700 .85rem var(--font-text);color:var(--muted)}
.slide blockquote{margin:0;flex:1}
.slide blockquote p{margin:0;font-size:1.02rem;line-height:1.6}
.slide figcaption{font:700 .95rem var(--font-display);color:var(--ink);border-top:1px solid var(--line);padding-top:12px}
.car-ctrl{display:none;align-items:center;justify-content:flex-end;gap:14px;margin-top:6px;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}
.js .car-ctrl{display:flex}
.car-ctrl button{width:46px;height:46px;border-radius:12px;border:2px solid var(--violet);background:#fff;color:var(--violet-ink);font:700 1.2rem var(--font-display);cursor:pointer}
.car-ctrl button:hover:not(:disabled){background:var(--violet-soft)}
.car-ctrl button:disabled{opacity:.35;cursor:default}
@media (prefers-reduced-motion:reduce){.slides{scroll-behavior:auto}}

.rot-wrap mark{display:inline;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.rot::after{content:"";display:inline-block;width:.09em;height:.8em;background:var(--violet);margin-left:.08em;vertical-align:-.03em;animation:blink 1.1s steps(1) infinite}
@media (prefers-reduced-motion:reduce){.rot::after{animation:none}}

/* cookie lišta */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:3px solid var(--violet);box-shadow:0 -10px 30px rgba(23,18,43,.18);padding:16px 0}
.cookie-bar[hidden]{display:none}
.cookie-bar .wrap{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.cookie-bar p{margin:4px 0 8px;font-size:.92rem;color:var(--muted);max-width:52em}
.cookie-bar label{font-size:.9rem;margin-right:14px;font-weight:600}
.ck-actions{display:flex;flex-wrap:wrap;gap:8px}
.legal-body h1{font-size:var(--step-3);margin-bottom:.6em}.legal-body h2{font-size:var(--step-2);margin:1.6em 0 .5em}.legal-body p,.legal-body li{font-size:1.02rem;line-height:1.65;max-width:none}.legal-body ul,.legal-body ol{padding-left:1.3em;margin:0 0 1em}.legal-body ul{list-style:disc}.legal-body ol{list-style:decimal}
.prose p,.prose ul{max-width:36em}

/* adresa dítěte se skrývá, je-li stejná jako u zástupce (bez JS zůstává vidět) */
.js .child-addr.addr-off{display:none}
.js .ins-other.off,.js .confirm-none.off{display:none}
.confirm-none.has-error label span{color:var(--err,#B3261E)}

/* poznámka pod recenzemi, formuláře ke stažení, partner jako odkaz */
.rec-note{max-width:46em;margin:22px 0 0;font-size:var(--step-0);line-height:1.65;color:var(--muted);border-left:4px solid var(--violet);padding-left:18px}
.forms-dl{margin-top:26px}
.forms-dl h3{font:700 1rem var(--font-display);margin:0 0 10px}
.forms-dl ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 14px}
.forms-dl a{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:2px solid var(--line);border-radius:12px;background:#fff;font-weight:600;text-decoration:none;color:var(--ink)}
.forms-dl a:hover{border-color:var(--violet)}
.forms-dl a span{font:700 .72rem var(--font-text);background:var(--violet-soft);color:var(--violet-ink);padding:2px 7px;border-radius:6px}
a.partner{text-decoration:none;color:inherit}
a.partner:hover span{text-decoration:underline}

/* 404 */
.nf{max-width:760px;margin:0 auto;text-align:center}
.nf svg{width:min(360px,80%);height:auto;margin:0 auto 6px;display:block}
.nf .code{font:900 clamp(4rem,14vw,8rem)/1 var(--font-display);letter-spacing:-.05em;color:var(--violet);margin:0}
.nf h1{font-size:var(--step-3);margin:6px 0 10px}
.nf .term{display:inline-block;text-align:left;background:var(--violet-deep);color:#e7e0f8;border-radius:12px;padding:14px 20px;font:500 .92rem/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;margin:14px 0 24px;max-width:100%;overflow-wrap:anywhere}
.nf .term b{color:var(--sun)}
.nf .nf-links{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:center;align-items:center}

/* alergie / zdravotní omezení: nejdřív potvrzení, pak popis */
.hpair-lg{display:block;font-weight:700;margin-bottom:6px}
.hpair .hpair-text{margin-top:10px}
.js .hpair-text.off{display:none}
.hpair.has-error .checks label span{color:var(--err,#B3261E)}
/* faktura na zaměstnavatele: „kontaktujte mě“ */
.js .emp-fields.later{display:none}
