/* =====================================================================
   Kvíčalka - verejný web „Lesný denník"
   CSS portnuté VERBATIM z konceptu (artifact). Za ním pomocné triedy
   pre podstránky. Načítava sa len vo verejnom layoute (layouts/site).
   ===================================================================== */

:root{
    --paper:#F4EFE3;
    --paper-2:#EBE3D2;
    --card:#FBF8F1;
    --forest-deep:#173D2A;
    --forest:#1E4D34;
    --forest-2:#2F6F4E;
    --moss:#6B8F5E;
    --sun:#F2A93B;
    --sun-deep:#C9770A;
    --ink:#1A2E1F;
    --bark:#4A5B4E;
    --line:#D8CFBB;
    --on-forest:#F3EEDF;
    --on-forest-dim:#B7C8B6;
    --shadow-sm:0 2px 8px rgba(23,61,42,.08);
    --shadow-md:0 14px 40px -18px rgba(23,61,42,.35);
    --radius:18px;
    --font-display:"Baloo 2","Baloo 2 fallback","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
    --font-body:"Rubik","Rubik fallback","Segoe UI",system-ui,-apple-system,sans-serif;
    --maxw:1120px;
}
@media (prefers-color-scheme:dark){
    :root{
        --paper:#12211A; --paper-2:#16281E; --card:#1B2E22;
        --forest-deep:#0E1B14; --forest:#12271B; --forest-2:#3C8560;
        --moss:#7FA671; --sun:#F4B04B; --sun-deep:#E8941A;
        --ink:#ECF2E7; --bark:#A9BCA9; --line:#2C4133;
        --on-forest:#EEF3E6; --on-forest-dim:#A9BCA9;
        --shadow-md:0 16px 44px -20px rgba(0,0,0,.6);
    }
}
:root[data-theme="dark"]{
    --paper:#12211A; --paper-2:#16281E; --card:#1B2E22;
    --forest-deep:#0E1B14; --forest:#12271B; --forest-2:#3C8560;
    --moss:#7FA671; --sun:#F4B04B; --sun-deep:#E8941A;
    --ink:#ECF2E7; --bark:#A9BCA9; --line:#2C4133;
    --on-forest:#EEF3E6; --on-forest-dim:#A9BCA9;
    --shadow-md:0 16px 44px -20px rgba(0,0,0,.6);
}
:root[data-theme="light"]{
    --paper:#F4EFE3; --paper-2:#EBE3D2; --card:#FBF8F1;
    --forest-deep:#173D2A; --forest:#1E4D34; --forest-2:#2F6F4E;
    --moss:#6B8F5E; --sun:#F2A93B; --sun-deep:#C9770A;
    --ink:#1A2E1F; --bark:#4A5B4E; --line:#D8CFBB;
    --on-forest:#F3EEDF; --on-forest-dim:#B7C8B6;
    --shadow-md:0 14px 40px -18px rgba(23,61,42,.35);
}

/* Doplnkové tokeny (dark-aware): zelený TEXT, odkazy a chyby - čitateľné v oboch režimoch */
:root{--forest-ink:#173D2A;--link:#2F6F4E;--danger:#C0392B;--danger-ink:#A3291F;--on-sun:#241503}
@media (prefers-color-scheme:dark){:root{--forest-ink:#9FD3B4;--link:#8FC79C;--danger:#E8897C;--danger-ink:#F0B3AB}}
:root[data-theme="dark"]{--forest-ink:#9FD3B4;--link:#8FC79C;--danger:#E8897C;--danger-ink:#F0B3AB}
:root[data-theme="light"]{--forest-ink:#173D2A;--link:#2F6F4E;--danger:#C0392B;--danger-ink:#A3291F}

*{box-sizing:border-box}
.kv{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    margin:0;
}
.kv img{max-width:100%;display:block}
picture{display:contents}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.kv h1,.kv h2,.kv h3{font-family:var(--font-display);text-wrap:balance;line-height:1.08;margin:0}
.kv p{margin:0}
.eyebrow{
    display:inline-flex;align-items:center;gap:.5em;
    font-family:var(--font-display);font-weight:700;
    font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
    color:var(--sun-deep);
}
/* Kicker (malý nadpis nad sekciou) - 4 varianty na výber, bez pomlčky.
   Základ .kick, modifikátor v-* určuje štýl. Hero používa .eyebrow (bez pomlčky). */
.kick{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-display);font-weight:700;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sun-deep)}
.kick.v-chip{background:color-mix(in srgb,var(--sun) 16%,transparent);padding:.45em .95em;border-radius:999px;letter-spacing:.12em}
.kick.v-line{flex-direction:column;align-items:flex-start;gap:.55em}
.kick.v-line::after{content:"";width:40px;height:3px;background:var(--sun);border-radius:3px}
.kick.v-script{font-family:"Amatic SC","Segoe UI",cursive;font-weight:700;font-size:clamp(1.5rem,5vw,1.85rem);letter-spacing:.01em;text-transform:none;color:var(--sun-deep);line-height:1}
.kick.v-dot::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sun);flex:0 0 auto}

/* ---------- Header ---------- */
.hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 82%,transparent);
    backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:var(--link);letter-spacing:-.01em;text-decoration:none}
.mark{width:34px;height:34px;flex:0 0 auto}
.nav{display:flex;gap:4px;align-items:center}
.nav a{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--bark);text-decoration:none;padding:.5em .8em;border-radius:999px;transition:.18s}
.nav a:hover{color:var(--link);background:color-mix(in srgb,var(--forest-2) 10%,transparent)}
.nav a[aria-current]{color:var(--link)}
.nav .has-sub{position:relative;display:inline-flex}
.nav .has-sub>.navtop{display:inline-flex;align-items:center;gap:.3em}
.nav .caret{width:.7em;height:.7em;transition:transform .18s}
.nav .has-sub:hover .caret,.nav .has-sub:focus-within .caret{transform:rotate(180deg)}
.nav .sub{position:absolute;top:calc(100% - 2px);left:0;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);padding:8px;display:none;flex-direction:column;gap:2px;z-index:50}
.nav .has-sub:hover .sub,.nav .has-sub:focus-within .sub{display:flex}
.nav .sub a{font-size:.92rem;color:var(--bark);padding:.5em .7em}
.nav .sub a:hover{color:var(--link);background:color-mix(in srgb,var(--forest-2) 10%,transparent)}
@media(max-width:820px){.nav{display:none}}
.drawer-panel .sublabel{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sun-deep);padding:.9em .6em .2em;font-weight:700}
.drawer-panel .sub-link{padding-left:1.3em}

.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-display);font-weight:700;
    border-radius:999px;padding:.7em 1.25em;text-decoration:none;font-size:.95rem;cursor:pointer;border:0;transition:.18s;white-space:nowrap}
.btn-sun{background:var(--sun);color:var(--on-sun);box-shadow:0 6px 18px -6px color-mix(in srgb,var(--sun) 70%,transparent)}
.btn-sun:hover{background:var(--sun-deep);color:#fff;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--link);border:2px solid color-mix(in srgb,var(--forest-2) 45%,transparent)}
.btn-ghost:hover{background:color-mix(in srgb,var(--forest-2) 10%,transparent)}
.btn-onforest{background:var(--sun);color:var(--on-sun)}
.btn-onforest:hover{background:#fff}

/* ---------- Hero ---------- */
.hero{position:relative;background:linear-gradient(180deg,var(--forest-deep),var(--forest));color:var(--on-forest);overflow:hidden;isolation:isolate}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9}
.hero .scene{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero-in{position:relative;z-index:2;padding:clamp(56px,9vw,120px) 0 clamp(120px,14vw,170px)}
.hero .eyebrow{color:var(--sun)}
.hero h1{font-size:clamp(2.6rem,7vw,5rem);font-weight:800;letter-spacing:-.01em;line-height:1.1;margin:.35em 0 .3em;color:#fff}
.hero h1 em{font-style:normal;color:var(--sun)}
.hero .lead{max-width:34ch;font-size:clamp(1.05rem,1.6vw,1.28rem);color:var(--on-forest-dim)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.stats{display:flex;gap:clamp(20px,4vw,48px);margin-top:38px;flex-wrap:wrap}
.stat b{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,6vw,1.9rem);color:#fff;display:block;font-variant-numeric:tabular-nums}
.stat span{font-size:.82rem;letter-spacing:.04em;color:var(--on-forest-dim)}

/* Hero - polaroidová koláž (variant 4) */
.hero-pol{background:linear-gradient(155deg,var(--forest),var(--forest-deep))}
.hero-pol .hero-in{padding:clamp(48px,7vw,88px) clamp(18px,4vw,40px)}
@media(min-width:900px){
    .hero-pol .hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,60px);align-items:center}
}
.hero-copy{min-width:0}
.hero-shots{position:relative;margin-top:42px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-shots .pol{position:relative;background:#fff;padding:11px 11px 13px;border-radius:8px;box-shadow:0 22px 48px -22px rgba(0,0,0,.6);width:134px}
.hero-shots .pol img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px;display:block}
.hero-shots .pol .cap{font-family:var(--font-display);font-weight:700;color:#3a2c17;text-align:center;font-size:.92rem;line-height:1.1;padding:8px 4px 2px;margin:0}
.hero-shots .pol:nth-child(1){transform:rotate(-5deg)}
.hero-shots .pol:nth-child(2){transform:rotate(3deg);margin-top:18px}
.hero-shots .pol:nth-child(3){transform:rotate(-2deg)}
@media(min-width:900px){
    .hero-shots{margin-top:0;display:block;min-height:366px}
    .hero-shots .pol{position:absolute;width:248px;padding:13px 13px 16px}
    .hero-shots .pol{transition:transform .1s linear}
    .hero-shots .pol:nth-child(1){top:8px;left:0;transform:translateY(var(--py,0)) rotate(-6deg);z-index:2;margin-top:0}
    .hero-shots .pol:nth-child(2){top:66px;right:6px;transform:translateY(var(--py,0)) rotate(5deg);z-index:1;width:224px;margin-top:0}
    .hero-shots .pol:nth-child(3){bottom:4px;left:120px;transform:translateY(var(--py,0)) rotate(-2deg);z-index:3;width:212px}
}

/* forest silhouette divider */
.ridge{display:block;width:100%;height:auto;position:relative;z-index:1;margin-bottom:-2px}
.ridge.top{margin-top:-2px;transform:scaleY(-1)}

/* ---------- Sections ---------- */
section{padding:clamp(54px,8vw,96px) 0}
.sec-head{max-width:60ch}
.sec-head h2{font-size:clamp(1.9rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;margin:.28em 0 .2em}
.sec-head p{color:var(--bark);font-size:1.08rem}

/* ethos scrapbook */
.ethos{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px}
@media(max-width:820px){.ethos{grid-template-columns:1fr;gap:34px}}
.polaroid{background:#fff;padding:12px 12px 0;border-radius:8px;box-shadow:var(--shadow-md);transform:rotate(var(--r,-2deg));position:relative}
.polaroid .ph,.polaroid img{aspect-ratio:4/3;width:100%;border-radius:4px;object-fit:cover;display:block}
.polaroid .ph{background:
     radial-gradient(120% 90% at 30% 10%,color-mix(in srgb,var(--sun) 55%,transparent),transparent 55%),
     linear-gradient(160deg,var(--forest-2),var(--forest-deep));position:relative;overflow:hidden;display:grid;place-items:center}
.polaroid .ph::after{content:"";position:absolute;inset:0;background:
     radial-gradient(60% 40% at 70% 80%,rgba(255,255,255,.14),transparent 60%)}
.polaroid .cap{font-family:var(--font-display);font-weight:700;color:#3a2c17;text-align:center;padding:14px 6px 16px;font-size:1.05rem}
.tape{position:absolute;top:-11px;left:50%;transform:translateX(-50%) rotate(-3deg);width:96px;height:24px;background:color-mix(in srgb,var(--sun) 60%,#fff);opacity:.75;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.12);z-index:2}
.ethos .item:nth-child(1) .polaroid{--r:-3deg}
.ethos .item:nth-child(2) .polaroid{--r:1.5deg}
.ethos .item:nth-child(3) .polaroid{--r:-1.5deg}
.ethos h3{font-size:1.28rem;font-weight:800;margin:20px 0 6px;display:flex;align-items:center;gap:.5em}
.ethos p{color:var(--bark)}

/* Phosphor duotone ikony (x-icon => <span class="pi"><svg>…</svg></span>) */
.pi{display:inline-flex;width:1em;height:1em;line-height:0;flex:0 0 auto}
.pi svg{width:100%;height:100%;display:block;fill:currentColor}
.pi svg path[opacity]{fill:var(--sun);opacity:.36}
.ethos h3 .pi{font-size:27px;color:var(--link)}

.band-paper2{background:var(--paper-2)}

/* camps grid */
.camps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
@media(max-width:900px){.camps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.camps{grid-template-columns:1fr}}
.camp{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:.2s;display:block}
.camp:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--forest-2) 40%,var(--line))}
.camp .img{aspect-ratio:16/10;position:relative;background:linear-gradient(155deg,var(--moss),var(--forest-deep));overflow:visible;border-radius:var(--radius) var(--radius) 0 0}
.camp .img img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.camp .img::before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(80% 60% at 25% 20%,color-mix(in srgb,var(--sun) 45%,transparent),transparent 60%);pointer-events:none}
/* kategórie (tábory a spol.) – bez žltého glow v rohu; galérie (.stacked) si ho nechajú */
.camps.polaroids:not(.stacked) .camp .img::before{content:none}
.year-badge{position:absolute;left:14px;bottom:-16px;z-index:3;background:var(--sun);color:var(--on-sun);font-family:var(--font-display);font-weight:800;font-size:.95rem;padding:.35em .8em;border-radius:999px;box-shadow:var(--shadow-sm);font-variant-numeric:tabular-nums}
.camp .body{padding:26px 18px 20px}
.camp h3{font-size:1.18rem;font-weight:800}
.camp p{color:var(--bark);font-size:.95rem;margin-top:6px}
.camp .go{font-family:var(--font-display);font-weight:700;color:var(--link);font-size:.9rem;margin-top:12px;display:inline-flex;gap:.35em;align-items:center}

/* bobríky */
.bobriky{display:flex;flex-wrap:wrap;gap:26px;margin-top:40px;justify-content:center}
.bobrik{width:150px;text-align:center}
.stamp{width:112px;height:112px;margin:0 auto 12px;border-radius:50%;
    background:radial-gradient(circle at 50% 38%,var(--forest-2),var(--forest-deep));
    color:var(--on-forest);display:grid;place-items:center;position:relative;
    box-shadow:var(--shadow-md);border:3px solid var(--card)}
.stamp::before{content:"";position:absolute;inset:8px;border:2px dashed color-mix(in srgb,var(--sun) 75%,transparent);border-radius:50%}
.stamp .pi{font-size:48px;color:var(--on-forest)}
.bobrik b{font-family:var(--font-display);font-weight:700;font-size:.95rem;display:block}
.bobrik span{font-size:.8rem;color:var(--bark)}

/* kronika timeline */
.kronika{background:var(--paper-2)}
.trail{position:relative;margin-top:44px;padding-left:34px}
.trail::before{content:"";position:absolute;left:1px;top:6px;bottom:6px;width:18px;
    background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 36' fill='%234A5B4E'><g opacity='0.5'><ellipse cx='12' cy='9' rx='3' ry='2.4'/><circle cx='9' cy='13' r='1.1'/><circle cx='12' cy='14.6' r='1.1'/><circle cx='15' cy='13' r='1.1'/><ellipse cx='6' cy='27' rx='3' ry='2.4'/><circle cx='3' cy='31' r='1.1'/><circle cx='6' cy='32.6' r='1.1'/><circle cx='9' cy='31' r='1.1'/></g></svg>") repeat-y center;background-size:18px 36px}
.day{position:relative;margin-bottom:40px}
.day:last-child{margin-bottom:0}
.day::before{content:"";position:absolute;left:-33px;top:4px;width:20px;height:20px;border-radius:50%;background:var(--sun);border:4px solid var(--paper-2);box-shadow:0 0 0 2px var(--sun)}
.day .dl{font-family:var(--font-display);font-weight:800;color:var(--sun-deep);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.day h3{font-size:1.4rem;font-weight:800;margin:.2em 0 .4em}
.day p{color:var(--bark);max-width:64ch}
.day .shots{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.day .shots .sh,.day .shots img{width:132px;aspect-ratio:1;border-radius:10px;object-fit:cover;background:linear-gradient(150deg,var(--moss),var(--forest-deep));box-shadow:var(--shadow-sm)}
/* kronika - fotky dňa ako polaroidy (2 na deň) */
.day .pol-shots{display:flex;gap:24px;flex-wrap:wrap;margin-top:20px}
.day .pol-shots .polaroid{width:min(230px,44%);border:0;cursor:pointer;text-align:center;transition:transform .28s ease,box-shadow .28s ease}
.day .pol-shots .polaroid img{width:100%;aspect-ratio:4/3;background:none}
.day .pol-shots .polaroid .cap{padding:12px 6px 15px;font-size:1rem;color:#3a2c17}
/* polaroid bez popisu: doplň spodný biely okraj (inak vyzerá dole useknutý) */
.day .pol-shots .polaroid:not(:has(.cap)){padding-bottom:16px}
.day .pol-shots .polaroid:hover{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 26px 50px -22px rgba(23,61,42,.55);z-index:3}

/* two percent band */
.support{background:linear-gradient(160deg,var(--forest),var(--forest-deep));color:var(--on-forest);text-align:center}
.support .big{font-family:var(--font-display);font-weight:800;font-size:clamp(3.4rem,10vw,6rem);color:var(--sun);line-height:.9;letter-spacing:-.02em}
.support h2{font-size:clamp(1.7rem,3.5vw,2.6rem);color:#fff;margin:.1em 0 .3em}
.support p{max-width:52ch;margin:0 auto;color:var(--on-forest-dim)}

/* footer */
.ft{background:var(--forest-deep);color:var(--on-forest)}
.ft-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px;padding:clamp(46px,7vw,76px) 0 34px}
@media(max-width:760px){.ft-in{grid-template-columns:1fr;gap:26px}}
.ft .ft-h{font-family:var(--font-display);font-weight:700;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sun);margin:0 0 14px}
.ft a{color:var(--on-forest-dim);text-decoration:none;display:block;padding:3px 0}
.ft a:hover{color:#fff}
.ft .cr{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;color:var(--on-forest-dim);font-size:.85rem}
.callout{margin-top:16px;padding:14px 16px;border-left:4px solid var(--sun);background:color-mix(in srgb,var(--sun) 10%,transparent);border-radius:0 10px 10px 0;color:var(--ink);font-size:.95rem}

/* =========================================================
   Pomocné triedy pre podstránky (nadstavba nad konceptom)
   ========================================================= */
.centered{text-align:center;margin-left:auto;margin-right:auto}
.btn-forest{background:var(--forest-2);color:#fff;box-shadow:var(--shadow-sm)}
.btn-forest:hover{background:var(--forest-deep);transform:translateY(-1px)}
.h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:-.02em;color:var(--ink);line-height:1.05}
.h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.02em;color:var(--ink);line-height:1.06}
.lead{color:var(--bark);font-size:1.1rem;line-height:1.7}
.page-head{margin-bottom:clamp(28px,4vw,44px)}
.page-head .h1{margin-top:.35em}
.page-head .lead{margin-top:.6em;max-width:62ch}
.crumb{font-size:.9rem;color:var(--bark);margin-bottom:1rem}
.crumb a{color:var(--bark);text-decoration:none}
.crumb a:hover{color:var(--link)}
.crumb .sep{margin:0 .5em;color:var(--line)}
.empty{color:var(--bark)}

.prose{max-width:70ch;color:var(--ink);font-size:1.05rem;line-height:1.75}
.prose>*+*{margin-top:1.1em}
.prose h2{font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--ink);margin-top:1.8em}
.prose h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--ink);margin-top:1.4em}
.prose a{color:var(--link);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--forest-2) 35%,transparent)}
.prose a:hover{color:var(--forest-ink)}
.prose ul,.prose ol{padding-left:1.4em}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li{margin-top:.4em}
.prose strong{font-weight:700;color:var(--ink)}
.prose .lead{font-size:1.2rem;color:var(--bark)}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,3vw,28px);box-shadow:var(--shadow-sm)}
.grid-2{display:grid;gap:26px}
@media(min-width:900px){.grid-2{grid-template-columns:2fr 3fr;align-items:start}}
.stack{display:flex;flex-direction:column;gap:16px}
.label{display:block;font-weight:600;font-size:.9rem;color:var(--ink);margin-bottom:.35em}
.field{width:100%;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:.7em 1em;color:var(--ink);font-family:var(--font-body);font-size:1rem;transition:.18s}
.field::placeholder{color:color-mix(in srgb,var(--bark) 60%,transparent)}
.stack .field{width:100%;font-size:1rem}
.field:focus{outline:none;border-color:var(--link);box-shadow:0 0 0 3px color-mix(in srgb,var(--forest-2) 18%,transparent)}
.field.err{border-color:var(--danger)}
.form-err{color:var(--danger-ink);font-size:.85rem;margin-top:.3em}
.form-ok{background:color-mix(in srgb,var(--forest-2) 10%,transparent);border:1px solid color-mix(in srgb,var(--forest-2) 25%,transparent);color:var(--forest-ink);border-radius:12px;padding:.7em 1em;font-size:.95rem}

.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 26px;margin-top:8px}
@media(max-width:820px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.team-grid{grid-template-columns:1fr;max-width:300px;margin-left:auto;margin-right:auto}}
.team-card{text-align:center}
.team-grid .team-card:nth-child(3n+2) .polaroid{--r:1.6deg}
.team-grid .team-card:nth-child(3n) .polaroid{--r:-1.4deg}
.team-card .name{font-family:var(--font-display);font-weight:800;font-size:1.1rem;margin-top:16px;color:var(--ink)}
.team-card .role{font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--link);margin-top:2px}

/* detail galérie – polaroidy */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px 16px;margin-top:12px}
@media(max-width:640px){.gal-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:18px 12px}}
.gal-grid>button{border:0;padding:9px 9px 15px;cursor:pointer;border-radius:6px;overflow:visible;transform:rotate(var(--r,-1.5deg));transition:transform .28s ease,box-shadow .28s ease}
.gal-grid>button>img{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:3px;display:block}
.gal-grid>button:nth-child(4n+1){--r:-2.4deg}
.gal-grid>button:nth-child(4n+2){--r:1.8deg}
.gal-grid>button:nth-child(4n+3){--r:-.8deg}
.gal-grid>button:nth-child(4n){--r:2.2deg}
.gal-grid>button:hover{transform:rotate(0) translateY(-5px) scale(1.03);z-index:3}
/* krátky popis + odkaz na článok (hore v detaile galérie) */
.gal-article{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;justify-content:space-between;margin:0 0 1.8rem;padding:1.1rem 1.35rem;background:color-mix(in srgb,var(--forest-2) 8%,transparent);border:1px solid color-mix(in srgb,var(--forest-2) 22%,transparent);border-radius:14px}
.gal-article-desc{margin:0;color:var(--bark);max-width:64ch;line-height:1.55}
.gal-article .btn{flex:none}
.lightbox{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(8,16,10,.92);padding:1rem}
.lightbox img{max-height:80vh;max-width:100%;object-fit:contain;border-radius:8px}
.lightbox .lb-btn{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:999px;cursor:pointer;font-size:1.6rem;line-height:1;width:48px;height:48px}
.lightbox .lb-close{top:1rem;right:1rem;font-size:1.4rem}
.lightbox .lb-prev{left:1rem;top:50%;transform:translateY(-50%)}
.lightbox .lb-next{right:1rem;top:50%;transform:translateY(-50%)}

/* mobil header */
.burger{display:none;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px;color:var(--ink);cursor:pointer;line-height:0}
.hdr-cta{display:flex;align-items:center;gap:10px}
@media(max-width:820px){.hdr-cta .btn-sun{display:none}.burger{display:inline-flex}}
.drawer{position:fixed;inset:0;z-index:50}
.drawer-bg{position:absolute;inset:0;background:rgba(26,46,31,.35);backdrop-filter:blur(3px)}
.drawer-panel{position:absolute;inset:0 0 0 auto;width:min(100%,22rem);background:var(--paper);border-left:1px solid var(--line);box-shadow:-20px 0 50px -20px rgba(0,0,0,.4);display:flex;flex-direction:column;padding:20px;gap:2px}
.drawer-panel a{font-family:var(--font-display);font-weight:600;color:var(--ink);text-decoration:none;padding:.7em .6em;border-radius:12px}
.drawer-panel a:hover{background:color-mix(in srgb,var(--forest-2) 8%,transparent);color:var(--link)}

[x-cloak]{display:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ============================================================
   Jednotná hlavička podstránok: .page-head eyebrow = Amatic kicker
   ============================================================ */
.page-head .eyebrow{font-family:"Amatic SC","Segoe UI",cursive;font-weight:700;font-size:clamp(1.5rem,5vw,1.85rem);letter-spacing:.01em;text-transform:none;color:var(--sun-deep);line-height:1}

/* ============================================================
   Kompatibilita: staré web-* triedy (registrácia / livestream /
   chybové stránky) → koncept tokeny, dark-mode aware.
   site.css sa načítava po app.css, preto majú tieto prednosť.
   ============================================================ */
.web-h1,.web-h2,.web-h3{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;text-wrap:balance;line-height:1.06}
.web-h1{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800}
.web-h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800}
.web-h3{font-size:1.25rem;font-weight:700}
.web-lead{color:var(--bark);font-size:1.1rem;line-height:1.7}
.web-link{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.web-link:hover{color:var(--forest-ink)}
.web-link-muted{color:var(--bark);text-decoration:none;font-weight:600}
.web-link-muted:hover{color:var(--link)}
.web-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font-display);font-weight:700;border-radius:999px;padding:.7em 1.25em;font-size:.95rem;border:0;cursor:pointer;background:var(--sun);color:var(--on-sun);box-shadow:0 6px 18px -6px color-mix(in srgb,var(--sun) 70%,transparent);transition:.18s;text-decoration:none}
.web-btn:hover{background:var(--sun-deep);color:#fff;transform:translateY(-1px)}
.web-btn-accent{background:var(--sun);color:var(--on-sun)}
.web-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font-display);font-weight:700;border-radius:999px;padding:.7em 1.25em;font-size:.95rem;background:transparent;color:var(--link);border:2px solid color-mix(in srgb,var(--forest-2) 45%,transparent);cursor:pointer;transition:.18s;text-decoration:none;backdrop-filter:none}
.web-btn-secondary:hover{background:color-mix(in srgb,var(--forest-2) 10%,transparent)}
.web-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,3vw,28px);box-shadow:var(--shadow-sm);backdrop-filter:none}
.web-card-muted{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,3vw,28px);box-shadow:none;backdrop-filter:none}
/* kontakt: karta s údajmi */
.contact-info-h{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--link);margin:0 0 .1rem}
.contact-info-org{font-family:var(--font-display);font-weight:800;font-size:1.2rem;margin:.1rem 0 .7rem}
.contact-info dl{margin:0}
.contact-info dt{font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65;margin-top:.85rem}
.contact-info dd{margin:.1rem 0 0}
.contact-info a{color:var(--link);text-decoration:none}
.contact-info a:hover{text-decoration:underline}
.contact-info .web-btn-secondary{margin-top:1.4rem}
.web-input{width:100%;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:.7em 1em;color:var(--ink);font-family:var(--font-body);font-size:1rem;box-shadow:none;transition:.18s}
.web-input::placeholder{color:color-mix(in srgb,var(--bark) 60%,transparent)}
.web-input:focus{outline:none;border-color:var(--link);box-shadow:0 0 0 3px color-mix(in srgb,var(--forest-2) 18%,transparent)}
.web-input-error{border-color:var(--danger)!important}
.web-label{display:block;font-weight:600;font-size:.9rem;color:var(--ink);margin-bottom:.35em;font-family:var(--font-body)}
.web-error{margin-top:.3em;color:var(--danger-ink);font-size:.85rem;font-weight:500}
.web-checkbox{accent-color:var(--link);border-radius:5px}
.web-alert-success{background:color-mix(in srgb,var(--forest-2) 12%,transparent);border:1px solid color-mix(in srgb,var(--forest-2) 28%,transparent);color:var(--forest-ink);border-radius:12px;box-shadow:none}
.web-alert-error{background:color-mix(in srgb,#c0392b 12%,transparent);border:1px solid color-mix(in srgb,#c0392b 32%,transparent);color:var(--danger-ink);border-radius:12px;box-shadow:none}
.web-prose{max-width:70ch;color:var(--ink);font-size:1.05rem;line-height:1.75}
.web-prose>*+*{margin-top:1.1em}
.web-prose h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,4.5vw,3rem);color:var(--ink);margin:0 0 .4em;letter-spacing:-.02em}
.web-prose h2{font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--ink);margin-top:1.8em}
.web-prose h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--ink);margin-top:1.4em}
.web-prose a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.web-prose ul{list-style:disc;padding-left:1.4em}
.web-prose ol{list-style:decimal;padding-left:1.4em}
.web-prose li{margin-top:.4em}
.web-badge{display:inline-flex;align-items:center;background:var(--sun);color:var(--on-sun);border-radius:999px;padding:.3em .75em;font-family:var(--font-display);font-weight:700;font-size:.75rem}
.web-divider{border-top:1px solid var(--line)}
.web-section{padding:clamp(40px,6vw,72px) 0}
.web-container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.web-main-surface{background:var(--paper);background-image:none;color:var(--ink)}
/* farebné utility (dark-aware) */
.text-web-ink{color:var(--ink)!important}
.text-web-ink-muted{color:var(--bark)!important}
.text-web-ink-subtle{color:color-mix(in srgb,var(--bark) 65%,transparent)!important}
.text-web-primary{color:var(--link)!important}
.text-web-primary-hover{color:var(--forest-ink)!important}
.text-web-primary-foreground{color:#fff!important}
.bg-web-primary{background-color:var(--link)!important}
.bg-web-primary-soft{background-color:color-mix(in srgb,var(--forest-2) 15%,transparent)!important}
.bg-web-surface-subtle{background-color:var(--paper-2)!important}
.border-web-border{border-color:var(--line)!important}

/* ============================================================
   Subhero - jemný lesný header podstránok (iskry + Amatic kicker)
   ============================================================ */
.subhero{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(160deg,var(--forest),var(--forest-deep));color:var(--on-forest)}
.subhero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(120% 85% at 85% -15%,rgba(246,227,169,.14),transparent 55%)}
.subhero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.85}
.subhero-in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:clamp(38px,5.5vw,66px) clamp(18px,4vw,40px) clamp(74px,8vw,108px)}
.subhero .ridge{position:absolute;left:0;bottom:-1px;width:100%;height:clamp(46px,5vw,74px);z-index:1;margin:0}
.subhero .kick.v-script{color:var(--sun)}
.subhero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.02em;color:#fff;margin:.12em 0 0;line-height:1.05;text-wrap:balance}
.subhero .lead{color:var(--on-forest-dim);font-size:clamp(1.02rem,1.5vw,1.2rem);max-width:60ch;margin-top:.7em;line-height:1.7}
.subhero .crumb{color:var(--on-forest-dim);margin-bottom:14px;font-size:.9rem}
.subhero .crumb a{color:var(--on-forest-dim);text-decoration:none}
.subhero .crumb a:hover{color:#fff}
.subhero .crumb .sep{margin:0 .5em;color:rgba(255,255,255,.3)}

/* ============================================================
   Polaroidový variant kariet (/tabory, /galéria)
   ============================================================ */
.camps.polaroids{gap:clamp(50px,5vw,72px) clamp(40px,4.5vw,60px)}
.camps.polaroids .camp{background:#fff;border:0;border-radius:8px;padding:12px 12px 0;box-shadow:var(--shadow-md);overflow:visible;transform:rotate(var(--r,-2deg));transition:transform .2s,box-shadow .2s}
.camps.polaroids .camp:hover{transform:rotate(0) translateY(-5px);box-shadow:0 26px 52px -22px rgba(23,61,42,.5);border-color:transparent}
.camps.polaroids .camp .img{aspect-ratio:4/3;border-radius:4px;overflow:hidden}
.camps.polaroids .camp .body{padding:14px 6px 18px;text-align:center}
.camps.polaroids .camp h3{font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:#3a2c17}
.camps.polaroids .camp p{display:none}
.camps.polaroids .camp .go{color:var(--link);margin-top:8px;font-size:.82rem;justify-content:center}
.camps.polaroids .camp:nth-child(4n+1){--r:-3deg}
.camps.polaroids .camp:nth-child(4n+2){--r:2deg}
.camps.polaroids .camp:nth-child(4n+3){--r:-1.5deg}
.camps.polaroids .camp:nth-child(4n){--r:2.5deg}

/* ============================================================
   Oživenie textového obsahu (.prose)
   ============================================================ */
.prose>p:first-of-type{font-size:1.12rem;color:var(--ink)}
/* kronika - dni: všetky odseky rovnako (bez zvýrazneného prvého „lead" odseku) */
.day .prose>p:first-of-type{font-size:1.05rem;color:var(--bark)}
.prose blockquote{margin:1.5em 0;padding:.5em 0 .5em 1.15em;border-left:4px solid var(--sun);font-family:var(--font-display);font-weight:600;font-size:1.18rem;line-height:1.5;color:var(--forest-ink);font-style:normal}
.prose blockquote p{margin:0;font-size:inherit;color:inherit}
.prose hr{border:0;height:3px;margin:2.2em 0;background:repeating-linear-gradient(90deg,var(--moss) 0 12px,transparent 12px 22px);border-radius:3px;opacity:.85}
.prose ul{list-style:none;padding-left:1.5em}
.prose ul li{position:relative}
.prose ul li::before{content:"";position:absolute;left:-1.25em;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--sun)}
.prose ol li::marker{color:var(--sun-deep);font-weight:700}

/* ============================================================
   Obsahové bloky (repeater: text / nadpis / citát / obrázok / predel)
   ============================================================ */
.content-blocks{max-width:860px}
.content-blocks>*+*{margin-top:1.5rem}
.content-blocks .blk-text,.content-blocks .blk-h,.content-blocks .blk-quote{max-width:68ch}
.content-blocks .blk-text>*+*{margin-top:1.05em}
.content-blocks .blk-text>p,.content-blocks .blk-split-text>p{font-size:1.12rem}
.content-blocks .blk-h{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;color:var(--ink);margin-top:2.6rem;line-height:1.12}
.content-blocks .blk-quote{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,2.4vw,1.7rem);line-height:1.32;color:var(--forest-ink);border-left:4px solid var(--sun);padding:.25em 0 .25em 1em;margin:2.4rem 0;font-style:normal}
.content-blocks .blk-divider{border:0;height:3px;width:180px;background:repeating-linear-gradient(90deg,var(--moss) 0 12px,transparent 12px 22px);border-radius:3px;opacity:.85;margin:2.6rem 0}
.content-blocks .blk-image{width:min(360px,82%);margin:2.6rem auto}
.content-blocks .blk-image:nth-of-type(even){--r:2.5deg}
/* dvojstĺpec text + obrázok */
.content-blocks .blk-split{display:grid;gap:clamp(22px,4vw,44px);align-items:center;margin:2.8rem 0}
@media(min-width:720px){
    .content-blocks .blk-split{grid-template-columns:1fr 1fr}
    .content-blocks .blk-split.is-reverse .blk-split-text{order:2}
}
.content-blocks .blk-split .blk-split-text{max-width:none}
.content-blocks .blk-split .blk-split-img{width:100%;margin:0;--r:-1.5deg}

/* nové typy blokov: kicker, H3, zoznam, tlačidlo (CTA), medzera */
.content-blocks .blk-kicker{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--forest-2);margin-top:2.4rem;margin-bottom:-.9rem;text-align:center}
.content-blocks .blk-h3{font-family:var(--font-display);font-weight:800;font-size:clamp(1.15rem,2.2vw,1.45rem);letter-spacing:-.01em;color:var(--ink);margin-top:1.9rem;line-height:1.18}
.content-blocks .blk-list{max-width:68ch}
.content-blocks .blk-btn-wrap{margin:2.2rem 0}
.content-blocks .blk-btn{display:inline-block;background:var(--sun);color:#3a2c17;font-family:var(--font-display);font-weight:800;font-size:1rem;padding:.72em 1.5em;border-radius:999px;text-decoration:none;box-shadow:var(--shadow-md);transition:transform .2s,box-shadow .2s}
.content-blocks .blk-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -16px rgba(23,61,42,.5)}
.content-blocks .blk-spacer{width:100%}
.content-blocks .blk-spacer-sm{height:1rem}
.content-blocks .blk-spacer-md{height:2.75rem}
.content-blocks .blk-spacer-lg{height:5.5rem}
/* náhľad priradenej galérie na konci článku – polaroidy + veľké CTA */
.article-gallery .pol-shots{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;margin-top:.5rem}
.article-gallery .pol-shots .polaroid{width:min(230px,44%);display:block;text-decoration:none;padding-bottom:16px;transition:transform .28s ease,box-shadow .28s ease}
.article-gallery .pol-shots .polaroid:hover{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 26px 50px -22px rgba(23,61,42,.55);z-index:3}
.article-gallery .gal-cta{text-align:center;margin-top:2.2rem}
.article-gallery .gal-cta .btn{font-size:1.1rem;padding:.95em 2.4em}
/* sponzori / poďakovanie (články + galérie) */
.sponsors-intro{max-width:60ch;color:var(--bark);margin:.4rem 0 1.4rem;line-height:1.6}
.sponsors-logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,3vw,32px)}
.sponsor{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;background:transparent;border-radius:12px;transition:transform .2s ease}
.sponsor img{max-height:72px;max-width:200px;width:auto;height:auto;object-fit:contain;display:block}
.sponsor span{font-family:var(--font-display);font-weight:700;color:var(--ink)}
a.sponsor:hover{transform:translateY(-2px)}

/* ============================================================
   Vlna 1 - doladenia z auditu
   ============================================================ */
/* zruš fantómový béžový pruh zo starého app.css .polaroid::after */
.polaroid::after{content:none!important}
/* jednotný viditeľný focus stav */
:where(a,button,[tabindex]:not([tabindex="-1"]),input,select,textarea):focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:3px}
/* ghost tlačidlo na tmavom pozadí (hero/subhero) - viditeľný hover */
.hero .btn-ghost:hover,.subhero .btn-ghost:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55)}
/* rok-badge na polaroidových kartách dovnútra fotky (nie orezaný) */
.camps.polaroids .year-badge{top:14px;left:14px;bottom:auto}
/* responzívny CMS obsah - embedy/tabuľky sa nezoreznú na mobile */
.prose img,.prose video,.web-prose img,.web-prose video{max-width:100%;height:auto}
.prose iframe,.web-prose iframe{width:100%;aspect-ratio:16/9;height:auto;border:0}
.prose table,.web-prose table{display:block;max-width:100%;overflow-x:auto}

/* ============================================================
   Vylepšenia (výber 1-7)
   ============================================================ */
/* 1 - bohatý prázdny stav (polaroid placeholder) */
.empty-state{text-align:center;padding:clamp(24px,5vw,52px) 1rem;color:var(--bark)}
.empty-state .es-pol{display:inline-block;background:#fff;padding:11px 11px 0;border-radius:8px;box-shadow:var(--shadow-md);transform:rotate(-3deg);margin-bottom:20px}
.empty-state .es-ph{width:118px;aspect-ratio:4/3;border-radius:4px;background:radial-gradient(120% 90% at 30% 10%,color-mix(in srgb,var(--sun) 45%,transparent),transparent 55%),linear-gradient(160deg,var(--forest-2),var(--forest-deep));display:grid;place-items:center;color:rgba(255,255,255,.9);font-size:2.3rem}
.empty-state .es-cap{font-family:var(--font-display);font-weight:800;color:#3a2c17;padding:9px 4px 12px;font-size:.9rem}
.empty-state h3{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--ink)}
.empty-state p{margin:.4em auto 0;max-width:42ch}

/* 3 - wizard krokov prihlášky */
.wizard{display:flex;align-items:center;justify-content:flex-start;margin:0 0 28px;flex-wrap:wrap;gap:0}
.wizard .wc{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:.95rem;flex:none;transition:.2s;background:var(--paper-2);color:var(--bark)}
.wizard .wc.is-done{background:var(--forest-2);color:#fff}
.wizard .wc.is-now{background:var(--sun);color:var(--on-sun);box-shadow:0 0 0 4px color-mix(in srgb,var(--sun) 28%,transparent)}
.wizard .wlbl{font-family:var(--font-display);font-weight:600;font-size:.82rem;margin:0 14px 0 8px;color:var(--bark)}
.wizard .wc.is-now+.wlbl,.wizard .wc.is-done+.wlbl{color:var(--ink)}
.wizard .wline{height:3px;width:24px;border-radius:3px;background:var(--line);flex:none;margin-right:8px}
.wizard .wline.is-on{background:var(--forest-2)}
@media(max-width:600px){.wizard .wlbl{display:none}.wizard .wline{width:16px}}

/* 4 - galéria hover zoom + lightbox popisky/kontrast */
.gal-grid>button>img{transition:transform .35s ease,opacity .2s}
.lightbox{flex-direction:column;gap:12px}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:100%}
.lightbox figcaption{color:var(--on-forest-dim);font-size:.9rem;text-align:center;max-width:60ch;padding:0 1rem}
.lightbox .lb-btn{background:rgba(255,255,255,.16);backdrop-filter:blur(4px)}
.lightbox .lb-btn:hover{background:rgba(255,255,255,.3)}

/* 6 - mikro-interakcie */
.btn-sun:hover,.web-btn:hover{box-shadow:0 10px 26px -8px color-mix(in srgb,var(--sun) 65%,transparent)}
.camp,.team-card .polaroid,.bobrik .stamp{transition:transform .25s ease,box-shadow .25s ease}
.team-card .polaroid:hover{transform:rotate(0) translateY(-5px)}
.bobrik:hover .stamp{transform:translateY(-5px) rotate(-4deg)}

/* 7 - ozdobný lesný predel */
.leaf-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:clamp(26px,5vw,46px) 0}
.leaf-divider::before,.leaf-divider::after{content:"";height:3px;width:min(120px,22vw);border-radius:3px;background:repeating-linear-gradient(90deg,var(--moss) 0 10px,transparent 10px 18px);opacity:.8}
.leaf-divider .pi{font-size:22px;color:var(--forest-2)}

/* 5 - (prepínač témy odstránený; web sleduje tému OS cez prefers-color-scheme) */

/* ============================================================
   Vylepšenia (výber 1,3,4,5,10,11,12,13,15,20)
   ============================================================ */
/* 3 - nočná obloha v pätičke */
.ft{position:relative;overflow:hidden}
.ft>*{position:relative;z-index:1}
.ft::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.85;background:
    radial-gradient(1.5px 1.5px at 12% 22%,rgba(255,255,255,.7),transparent),
    radial-gradient(1.5px 1.5px at 28% 60%,rgba(255,255,255,.5),transparent),
    radial-gradient(2px 2px at 46% 30%,rgba(255,255,255,.6),transparent),
    radial-gradient(1.5px 1.5px at 63% 68%,rgba(255,255,255,.45),transparent),
    radial-gradient(2px 2px at 78% 24%,rgba(255,255,255,.55),transparent),
    radial-gradient(1.5px 1.5px at 90% 54%,rgba(255,255,255,.5),transparent),
    radial-gradient(140% 70% at 88% -10%,rgba(246,227,169,.12),transparent 55%)}

/* 4 - scroll-reveal (len ak je JS a používateľ nemá reduced-motion) */
@media (prefers-reduced-motion:no-preference){
    .has-js .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
    .has-js .reveal.is-in{opacity:1;transform:none}
}

/* 5 - rukou kreslený doodle akcent */
.doodle-note{position:relative;display:inline-block;font-family:"Amatic SC","Segoe UI",cursive;font-weight:700;font-size:1.5rem;line-height:1;color:var(--sun-deep);transform:rotate(-4deg)}
.doodle-note::after{content:"";position:absolute;inset:-6px -12px;border:2px solid var(--sun);border-radius:50%;transform:rotate(-3deg);opacity:.75}

/* 10 - polaroidová stena (masonry) */
.pol-wall{columns:3;column-gap:18px}
@media(max-width:820px){.pol-wall{columns:2}}
@media(max-width:480px){.pol-wall{columns:1;max-width:320px;margin-inline:auto}}
.pol-wall .item{break-inside:avoid;margin-bottom:18px}
.pol-wall .polaroid{--r:-2deg}
.pol-wall .item:nth-child(3n+2) .polaroid{--r:2.2deg}
.pol-wall .item:nth-child(3n) .polaroid{--r:-1.4deg}
.pol-wall .item:nth-child(4n+1) .polaroid{--r:1.4deg}

/* 11 - shimmer placeholder (beží pod obrázkom, po načítaní ho fotka prekryje) */
@media (prefers-reduced-motion:no-preference){@keyframes kvShimmer{0%{background-position:-150% 0}100%{background-position:150% 0}}}
.camp .img{background-color:var(--paper-2)}
.camp .img::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--card) 70%,transparent) 50%,transparent 70%);background-size:220% 100%;animation:kvShimmer 1.5s linear infinite;pointer-events:none}
.gal-grid>button{position:relative;background:#fff;box-shadow:var(--shadow-md)}
.gal-grid>button:hover{box-shadow:0 24px 44px -20px rgba(23,61,42,.5)}
.gal-grid>button>img,.camp .img img{position:relative;z-index:1}

/* 12 - rôznorodé pásky na polaroidoch */
.ethos .item:nth-child(2) .tape{left:42%;transform:translateX(-50%) rotate(5deg)}
.ethos .item:nth-child(3) .tape{left:58%;transform:translateX(-50%) rotate(-6deg)}
.team-grid .team-card:nth-child(even) .tape{left:44%;transform:translateX(-50%) rotate(4deg)}
.team-grid .team-card:nth-child(3n) .tape{left:56%;transform:translateX(-50%) rotate(-5deg)}
.pol-wall .item:nth-child(even) .tape{left:40%;transform:translateX(-50%) rotate(6deg)}
.pol-wall .item:nth-child(3n) .tape{left:60%;transform:translateX(-50%) rotate(-7deg);background:color-mix(in srgb,var(--moss) 55%,#fff)}

/* 13 - lightbox: počítadlo + pás náhľadov */
.lb-count{position:absolute;top:1rem;left:50%;transform:translateX(-50%);color:var(--on-forest-dim);font-family:var(--font-display);font-weight:700;font-size:.85rem;background:rgba(0,0,0,.3);padding:.3em .8em;border-radius:999px;backdrop-filter:blur(4px)}
.lb-thumbs{display:flex;gap:8px;flex-wrap:nowrap;justify-content:center;max-width:min(94vw,760px);padding:.15rem .3rem .5rem}
.lb-thumbs button{border:0;padding:0;background:none;cursor:pointer;border-radius:6px;overflow:hidden;opacity:.55;transition:.18s;flex:none}
.lb-thumbs button.is-active,.lb-thumbs button:hover{opacity:1;outline:2px solid var(--sun);outline-offset:1px}
.lb-thumbs img{width:56px;height:42px;object-fit:cover;display:block}

/* 20 - cookie „drevená tabuľka" */
.cookie-sign{margin:0 auto;max-width:46rem;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 64px -22px rgba(0,0,0,.55);padding:1.4rem 1.6rem 1.5rem;position:relative}
.cookie-sign::before{content:"";position:absolute;top:0;left:1.6rem;right:1.6rem;height:5px;border-radius:0 0 5px 5px;background:linear-gradient(90deg,var(--sun),var(--sun-deep))}
.cookie-sign::after{content:"";position:absolute;top:9px;left:calc(1.6rem - 3px);width:8px;height:8px;border-radius:50%;background:var(--sun-deep);box-shadow:calc(100% - 8px + 6px) 0 0 var(--sun-deep)}
.ck-head{display:flex;gap:14px;align-items:flex-start}
.ck-ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:color-mix(in srgb,var(--sun) 22%,transparent);font-size:23px;line-height:1}
.ck-title{font-family:var(--font-display);font-weight:800;font-size:1.18rem;color:var(--ink);margin:0}
.ck-sub{color:var(--bark);font-size:.9rem;margin:.25em 0 0;line-height:1.55;max-width:52ch}
.ck-list{margin:16px 0 18px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--paper) 45%,transparent)}
.ck-row{display:flex;align-items:center;gap:16px;padding:13px 16px}
.ck-row+.ck-row{border-top:1px solid var(--line)}
.ck-row-txt{min-width:0}
.ck-row-txt b{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--ink)}
.ck-row-txt>span{display:block;color:var(--bark);font-size:.82rem;line-height:1.5;margin-top:3px}
.ck-tag{font-family:var(--font-body);font-weight:600;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:var(--forest-2);background:color-mix(in srgb,var(--forest-2) 15%,transparent);padding:.25em .6em;border-radius:999px}
.ck-switch{flex:none;position:relative;display:inline-block;width:46px;height:26px;cursor:pointer}
.ck-switch input{position:absolute;opacity:0;width:0;height:0}
.ck-track{position:absolute;inset:0;border-radius:999px;background:color-mix(in srgb,var(--bark) 45%,transparent);transition:background .2s}
.ck-track::before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .2s}
.ck-switch input:checked+.ck-track{background:var(--forest-2)}
.ck-switch input:checked+.ck-track::before{transform:translateX(20px)}
.ck-switch input:focus-visible+.ck-track{outline:2px solid var(--sun);outline-offset:2px}
.ck-switch.is-locked{cursor:default}
.ck-switch.is-locked .ck-track{opacity:.5}
.ck-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.ck-links{display:inline-flex;gap:16px;margin-left:auto}
.ck-links a{color:var(--link);text-decoration:underline;font-size:.85rem}
.ck-links a:hover{color:var(--forest-deep)}
@media(max-width:520px){.ck-links{margin-left:0;width:100%}}

/* ============================================================
   Vylepšenia - 2. sada (1,2,3,4,5,8,9,12,13,14,15,16,17,20,25,26,27,30)
   ============================================================ */
/* 1 - sticky shrink header */
.hdr{transition:padding .2s ease,background .2s ease,box-shadow .2s ease}
.hdr.is-shrunk .hdr-in{padding-top:8px;padding-bottom:8px}
.hdr.is-shrunk{box-shadow:0 6px 20px -14px rgba(23,61,42,.5);background:color-mix(in srgb,var(--paper) 92%,transparent)}
.hdr.is-shrunk .mark{width:28px;height:28px}

/* 2 - animované podčiarknutie navigácie */
.nav>a,.nav .has-sub>.navtop{position:relative}
.nav>a::after,.nav .has-sub>.navtop::after{content:"";position:absolute;left:.8em;right:.8em;bottom:.22em;height:2px;border-radius:2px;background:var(--sun);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.nav>a:hover::after,.nav>a[aria-current]::after,.nav .has-sub:hover>.navtop::after{transform:scaleX(1)}

/* 3 - mega-menu (bohatšia rozbaľovačka) */
.nav .sub.mega{min-width:270px;padding:10px}
.nav .sub.mega a{display:flex;gap:11px;align-items:flex-start;padding:.6em .7em;border-radius:10px}
.nav .sub.mega .mi-ic{color:var(--forest-2);font-size:20px;margin-top:1px;flex:none}
.nav .sub.mega .mi-t{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:.95rem;line-height:1.1;display:block}
.nav .sub.mega .mi-d{display:block;color:var(--bark);font-size:.78rem;margin-top:2px;font-weight:400}
.nav .sub.mega a:hover .mi-t{color:var(--forest-2)}

/* 4 - čítací progres bar */
.readbar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--sun),var(--sun-deep));z-index:60;transition:width .08s linear;pointer-events:none}

/* 5 - späť hore */
.to-top{position:fixed;right:clamp(14px,3vw,26px);bottom:clamp(14px,3vw,26px);z-index:45;width:46px;height:46px;border-radius:50%;border:0;background:var(--forest-2);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:.25s;display:flex;align-items:center;justify-content:center}
.to-top.is-on{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--forest-deep);transform:translateY(-2px)}
.to-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2}

/* 8 - scroll-down nápoveda */
.scroll-hint{display:flex;justify-content:center;margin-top:26px;color:var(--on-forest-dim)}
.hero .scroll-hint{position:absolute;left:0;right:0;bottom:clamp(18px,2.6vw,34px);z-index:2;margin-top:0}
.hero .scroll-hint:hover{color:var(--sun)}
.scroll-hint svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2}
@media (prefers-reduced-motion:no-preference){.scroll-hint svg{animation:kvBounce 1.8s ease-in-out infinite}@keyframes kvBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}}

/* 9 - svetlušky */
.hero .fireflies{position:absolute;inset:0;z-index:1;pointer-events:none}

/* 12 - ikonový odznak sekcie */
.sec-ic{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--forest-2) 12%,transparent);color:var(--forest-2);margin-bottom:14px}
.sec-ic .pi{font-size:24px}
.sec-head.centered .sec-ic{margin-inline:auto}

/* 13 - jemná papierová textúra */
.kronika{background-image:radial-gradient(color-mix(in srgb,var(--ink) 5%,transparent) 1px,transparent 1px);background-size:7px 7px}

/* 14 - peek polaroid (popisok vždy, hover narovná + nadvihne) */
.ethos .item .polaroid,.pol-wall .polaroid{transition:transform .28s ease,box-shadow .28s ease}
.ethos .item:hover .polaroid,.pol-wall .item:hover .polaroid{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 26px 50px -22px rgba(23,61,42,.55);z-index:3}

/* 15 - washi páska na kartách táborov (variácie) */
.camps:not(.polaroids) .camp{position:relative}
.camps:not(.polaroids) .camp::before{content:"";position:absolute;top:8px;left:20px;width:66px;height:20px;background:color-mix(in srgb,var(--sun) 55%,#fff);opacity:.72;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.12);transform:rotate(-6deg);z-index:4;pointer-events:none}
.camps:not(.polaroids) .camp:nth-child(3n+2)::before{left:auto;right:20px;transform:rotate(5deg);background:color-mix(in srgb,var(--moss) 55%,#fff)}
.camps:not(.polaroids) .camp:nth-child(3n)::before{left:50%;transform:translateX(-50%) rotate(-2deg)}

/* 16 - blur-up načítanie fotiek */
.img-blur{filter:blur(12px);transform:scale(1.03)}
.js-blur{transition:filter .5s ease,transform .5s ease}
.js-blur.is-loaded{filter:none;transform:none}

/* 17 - album ako stoh polaroidov (galéria) */
.camps.polaroids.stacked .camp{position:relative;background:transparent;padding:0;box-shadow:none}
.camps.polaroids.stacked .camp:hover{box-shadow:none}
.camps.polaroids.stacked .camp-face{display:block;background:#fff;padding:12px 12px 0;border-radius:8px;box-shadow:var(--shadow-md);position:relative;z-index:1;transition:box-shadow .2s}
.camps.polaroids.stacked .camp:hover .camp-face{box-shadow:0 26px 52px -22px rgba(23,61,42,.5)}
.camps.polaroids.stacked .camp-stack{position:absolute;inset:0;z-index:0;pointer-events:none}
.camps.polaroids.stacked .camp-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;box-sizing:border-box;border:4px solid #fff;border-radius:8px;box-shadow:var(--shadow-sm)}
.camps.polaroids.stacked .camp-stack img:nth-child(1){transform:rotate(4deg) translateY(6px)}
.camps.polaroids.stacked .camp-stack img:nth-child(2){transform:rotate(-3deg) translateY(3px)}

/* 20 - kronika: pohyblivá značka na chodníku */
.trail-marker{position:absolute;left:1px;top:0;width:18px;height:18px;border-radius:50%;background:var(--sun);border:3px solid var(--paper-2);box-shadow:0 0 0 2px var(--sun),0 6px 12px -4px rgba(0,0,0,.4);z-index:2;display:none;transition:top .12s linear}
.has-js .trail .trail-marker{display:block}

/* 25 - pull-quote s veľkými úvodzovkami */
.prose blockquote::before,.content-blocks .blk-quote::before{content:"\201C";display:block;font-family:var(--font-display);font-weight:800;font-size:2.6em;line-height:1;color:color-mix(in srgb,var(--sun) 60%,transparent);margin-bottom:-.18em}

/* 26 - inline validácia (zelená fajka) */
.field.is-valid,.web-input.is-valid{border-color:color-mix(in srgb,var(--forest-2) 60%,transparent);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23639922' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 13l4 4L19 7'/></svg>");background-repeat:no-repeat;background-position:right .8em center;background-size:16px;padding-right:2.4em}

/* 27 - oslavný iskrový efekt (thanks) */
.celebrate-canvas{position:fixed;inset:0;z-index:70;pointer-events:none}

/* 30 - priateľský success (kontakt) */
.success-friendly{text-align:center;padding:clamp(20px,4vw,36px) 1rem}
.success-friendly .si{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:color-mix(in srgb,var(--forest-2) 14%,transparent);color:var(--forest-2);margin-bottom:14px}
.success-friendly .si .pi{font-size:32px}
.success-friendly h3{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--ink)}
.success-friendly p{color:var(--bark);max-width:44ch;margin:.5em auto 0}

/* 23/27 - krokový sprievodca */
.steps-guide{display:grid;gap:14px;max-width:520px;margin-inline:auto}
.steps-guide.cols{grid-template-columns:repeat(3,1fr);max-width:none;gap:20px}
@media(max-width:640px){.steps-guide.cols{grid-template-columns:1fr}}
.step{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-sm)}
.steps-guide.cols .step{flex-direction:column;text-align:center;align-items:center}
.step-n{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sun);color:#241503;font-family:var(--font-display);font-weight:800;font-size:1.05rem}
.step b{font-family:var(--font-display);font-weight:700;color:var(--ink);display:block}
.step span{color:var(--bark);font-size:.92rem;margin-top:3px;display:block}

/* ============================================================
   Vylepšenia - 3. sada (1 breadcrumbs-stopa, 35 stopy medzi krokmi,
   42 ohnisko v pätičke, 43 prechody strán)
   ============================================================ */
/* 1 - breadcrumbs ako lesná stopa */
.subhero .crumb.trail-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px}
.subhero .crumb.trail-crumbs a,.subhero .crumb.trail-crumbs .here{display:inline-flex;align-items:center;gap:.32em;padding:.3em .8em;border-radius:999px;font-family:var(--font-display);font-weight:600;font-size:.82rem;line-height:1;text-decoration:none;transition:.18s}
.subhero .crumb.trail-crumbs a{background:rgba(255,255,255,.1);color:var(--on-forest-dim)}
.subhero .crumb.trail-crumbs a:hover{background:rgba(255,255,255,.22);color:#fff}
.subhero .crumb.trail-crumbs .here{background:var(--sun);color:#241503}
.subhero .crumb.trail-crumbs .here .pin{width:.85em;height:.85em;flex:none}
.subhero .crumb.trail-crumbs .sep{width:24px;height:10px;margin:0;background-image:radial-gradient(currentColor 1.3px,transparent 1.4px);background-size:7px 10px;background-position:center;background-repeat:repeat-x;color:rgba(255,255,255,.4)}

/* 35 - „ako to prebieha": stopy zvieratka medzi krokmi */
.steps-guide.cols .step{position:relative}
.steps-guide.cols .step:not(:last-child)::after{content:"";position:absolute;top:16px;right:-16px;width:22px;height:18px;z-index:2;opacity:.6;transform:rotate(14deg);background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233C8560'><ellipse cx='12' cy='17' rx='5' ry='4'/><circle cx='6' cy='11' r='1.9'/><circle cx='11.5' cy='8' r='1.9'/><circle cx='17.5' cy='10' r='1.9'/></svg>")}
@media(max-width:640px){.steps-guide.cols .step:not(:last-child)::after{display:none}}

/* 42 - táborové ohnisko v pätičke */
.ft-fire{position:relative;width:64px;height:56px;margin:4px auto 0}
.ft-fire .logs{position:absolute;bottom:4px;left:0;right:0;height:8px}
.ft-fire .logs::before,.ft-fire .logs::after{content:"";position:absolute;top:0;left:50%;width:34px;height:7px;margin-left:-17px;border-radius:4px;background:linear-gradient(#6b4a2b,#432c17)}
.ft-fire .logs::before{transform:rotate(15deg)}
.ft-fire .logs::after{transform:rotate(-15deg)}
.ft-fire .flame{position:absolute;left:50%;border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.ft-fire .f1{width:24px;height:24px;bottom:10px;margin-left:-12px;background:linear-gradient(315deg,#C9770A,#F2A93B 55%,#F6D66E);box-shadow:0 0 20px 5px rgba(242,169,59,.4)}
.ft-fire .f2{width:13px;height:13px;bottom:13px;margin-left:-6.5px;background:linear-gradient(315deg,#F2A93B,#F6D66E)}
.ft-fire .spark{position:absolute;left:50%;bottom:22px;width:3px;height:3px;margin-left:-1.5px;border-radius:50%;background:#F6D66E;opacity:0}
@media (prefers-reduced-motion:no-preference){
  .ft-fire .f1{animation:kvFlame 1.6s ease-in-out infinite}
  .ft-fire .f2{animation:kvFlame 1.15s ease-in-out infinite reverse}
  .ft-fire .s1{animation:kvSpark 2.2s ease-in infinite}
  .ft-fire .s2{animation:kvSpark 2.8s ease-in .7s infinite}
  .ft-fire .s3{animation:kvSpark 2.4s ease-in 1.3s infinite}
  @keyframes kvFlame{0%,100%{transform:rotate(45deg) scale(1)}50%{transform:rotate(45deg) scale(1.06,.9)}}
  @keyframes kvSpark{0%{opacity:0;transform:translateY(0) scale(1)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx,6px),-30px) scale(.4)}}
}
.ft-fire .s2{--dx:-8px}.ft-fire .s3{--dx:12px}

/* 43 - jemné prechody medzi stránkami (View Transitions API) */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:kvTurnOut .28s ease both}
  ::view-transition-new(root){animation:kvTurnIn .4s cubic-bezier(.2,.7,.2,1) both}
  @keyframes kvTurnOut{to{opacity:0;transform:translateX(-1.5%)}}
  @keyframes kvTurnIn{from{opacity:0;transform:translateX(3%)}}
}
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

/* ============================================================
   Dolaďovačky (výber vylepšení) - overrides, načítané ako posledné
   ============================================================ */
/* 1 - mäkšie zmrštenie hlavičky (blur + jemnejší tieň) */
.hdr.is-shrunk{background:color-mix(in srgb,var(--paper) 80%,transparent);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:0 8px 26px -18px rgba(23,61,42,.6)}

/* 2 - podčiarknutie menu ako vetvička (forest→moss gradient) */
.nav>a::after,.nav .has-sub>.navtop::after{background:linear-gradient(90deg,var(--forest-2),var(--moss));height:2.5px}

/* 3 - späť-hore s prstencom pokroku (JS nastavuje --prog 0..100) */
.to-top::before{content:"";position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(var(--sun) calc(var(--prog,0)*1%),transparent 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));z-index:-1;transition:background .1s linear}


/* 7 + oprava: hero polaroidy - bez preblikávania. Hover NEMENÍ geometriu ani filter
   (to spôsobovalo preblikávanie pri prekrývajúcich sa polaroidoch) - len tieň + navrch. */
@media(min-width:900px){
  .hero-shots .pol{box-shadow:0 28px 56px -22px rgba(0,0,0,.7);transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease}
  .hero-shots .pol:nth-child(1){transform:translateY(var(--py,0)) rotate(-6deg)}
  .hero-shots .pol:nth-child(2){transform:translateY(var(--py,0)) rotate(5deg)}
  .hero-shots .pol:nth-child(3){transform:translateY(var(--py,0)) rotate(-2deg)}
  .hero-shots .pol:hover{z-index:6;box-shadow:0 46px 84px -18px rgba(0,0,0,.85)}
  .hero-shots .pol:nth-child(1):hover{transform:translateY(calc(var(--py,0) - 12px)) rotate(-2deg)}
  .hero-shots .pol:nth-child(2):hover{transform:translateY(calc(var(--py,0) - 12px)) rotate(2deg)}
  .hero-shots .pol:nth-child(3):hover{transform:translateY(calc(var(--py,0) - 12px)) rotate(0deg)}
}
/* každý hero polaroid má pásku - variácie uhla/farby/pozície */
.hero-shots .pol:nth-child(2) .tape{left:46%;transform:translateX(-50%) rotate(5deg);background:color-mix(in srgb,var(--moss) 55%,#fff)}
.hero-shots .pol:nth-child(3) .tape{left:54%;transform:translateX(-50%) rotate(-6deg)}
/* väčšie logo v hlavičke */
.hdr .brand .mark{width:46px;height:46px}
.hdr.is-shrunk .mark{width:34px;height:34px}

/* 10 + oprava: ručne kreslené podčiarknutie, ktoré sedí presne na šírku textu v každom riadku
   (SVG ako background + box-decoration-break:clone) */
.hero h1{font-size:clamp(2.3rem,5.4vw,4rem)}
/* bez podčiarknutia - accent je len farebné slovo */
.hero h1 em{display:inline;background:none;padding:0}

/* 14 - karta tábora: náklon + zdvih */
.camps:not(.polaroids) .camp:hover{transform:translateY(-5px) rotate(-1.2deg);box-shadow:0 22px 44px -22px rgba(23,61,42,.5)}

/* 15 - realistickejšia washi páska */
.camps:not(.polaroids) .camp::before{opacity:.62;background:linear-gradient(160deg,color-mix(in srgb,var(--sun) 62%,#fff),color-mix(in srgb,var(--sun) 38%,#fff));box-shadow:0 1px 5px rgba(0,0,0,.14),inset 0 0 0 1px rgba(255,255,255,.25)}
.camps:not(.polaroids) .camp:nth-child(3n+2)::before{background:linear-gradient(160deg,color-mix(in srgb,var(--moss) 62%,#fff),color-mix(in srgb,var(--moss) 40%,#fff))}

/* 15b - HP kategórie táborov nie sú polaroidy → bez washi pásky aj bez glow */
.camps:not(.polaroids) .camp::before,
.camps:not(.polaroids) .camp .img::before{content:none}

/* predel medzi kronikou a galériou v článku */
.gal-divider{display:flex;align-items:center;gap:1rem;max-width:520px;margin:0 auto 1.5rem;color:var(--forest-2)}
.gal-divider::before,.gal-divider::after{content:"";flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,currentColor 45%,transparent),transparent)}
.gal-divider svg{width:26px;height:26px;flex:none;opacity:.9}

/* 18 - staggerovaný scroll-reveal kariet */
@media (prefers-reduced-motion:no-preference){
  .has-js .reveal .camps>*,.has-js .reveal .bobriky>*,.has-js .reveal .ethos>*,.has-js .reveal .pol-wall>*,.has-js .reveal .team-grid>*{opacity:0;transform:translateY(16px);filter:blur(4px);transition:opacity .5s ease,transform .5s ease,filter .5s ease}
  .has-js .reveal.is-in .camps>*,.has-js .reveal.is-in .bobriky>*,.has-js .reveal.is-in .ethos>*,.has-js .reveal.is-in .pol-wall>*,.has-js .reveal.is-in .team-grid>*{opacity:1;transform:none;filter:none}
  .has-js .reveal.is-in :is(.camps,.bobriky,.ethos,.pol-wall,.team-grid)>*:nth-child(2){transition-delay:.07s}
  .has-js .reveal.is-in :is(.camps,.bobriky,.ethos,.pol-wall,.team-grid)>*:nth-child(3){transition-delay:.14s}
  .has-js .reveal.is-in :is(.camps,.bobriky,.ethos,.pol-wall,.team-grid)>*:nth-child(4){transition-delay:.21s}
  .has-js .reveal.is-in :is(.camps,.bobriky,.ethos,.pol-wall,.team-grid)>*:nth-child(5){transition-delay:.28s}
  .has-js .reveal.is-in :is(.camps,.bobriky,.ethos,.pol-wall,.team-grid)>*:nth-child(n+6){transition-delay:.35s}
}

/* 20 - plynulejší blur-up */
.js-blur{transition:filter .6s ease,transform .6s ease}

/* 21 - vejár albumového stohu na hover */
.camps.polaroids.stacked .camp-stack img{transition:transform .28s ease}
.camps.polaroids.stacked .camp:hover .camp-stack img:nth-child(1){transform:rotate(9deg) translate(9px,9px)}
.camps.polaroids.stacked .camp:hover .camp-stack img:nth-child(2){transform:rotate(-8deg) translate(-9px,7px)}

/* 22 - aktívny náhľad v lightboxe */
.lb-thumbs button{transition:transform .18s ease,opacity .18s ease,outline-color .18s ease}
.lb-thumbs button.is-active{transform:scale(1.14);outline:2px solid var(--sun);outline-offset:2px;opacity:1}

/* 23 - rukopisné figcaption v lightboxe */
.lightbox figcaption{font-family:"Amatic SC","Segoe UI",cursive;font-weight:700;font-size:1.2rem;letter-spacing:.01em}

/* 24 - year-badge ako drevená pečiatka */
.year-badge{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--sun-deep),0 6px 14px -6px rgba(0,0,0,.4);transform:rotate(-4deg)}
.camps.polaroids .year-badge{transform:rotate(-5deg)}

/* 29 - kroky wizardu: jemný prsteň na dokončenom */
.wizard .wc.is-done{box-shadow:0 0 0 3px color-mix(in srgb,var(--forest-2) 22%,transparent)}

/* 30 - mäkký fokus poľa (moss glow) */
.field:focus,.web-input:focus{border-color:var(--forest-2);box-shadow:0 0 0 4px color-mix(in srgb,var(--moss) 32%,transparent)}

/* 32 + 34 - citát/pull-quote: forest pruh, výraznejšia úvodzovka, čitateľnosť */
.prose blockquote,.content-blocks .blk-quote{border-left-color:var(--forest-2);line-height:1.55;color:var(--ink)}
.prose blockquote::before,.content-blocks .blk-quote::before{font-size:2.8em;color:color-mix(in srgb,var(--sun) 80%,transparent)}

/* 36 - tímová mriežka: väčší zdvih na hover */
.team-grid .team-card .polaroid:hover,.team-grid .team-card:hover .polaroid{transform:rotate(0) translateY(-8px);box-shadow:0 26px 50px -22px rgba(23,61,42,.55)}

/* 38 - odstupňované blikanie hviezd (prvky nad statickou oblohou) */
.ft .star{position:absolute;z-index:0;width:3px;height:3px;border-radius:50%;background:#fff;opacity:.4;pointer-events:none}
.ft .star.big{width:4px;height:4px}
.ft .s1{top:16%;left:14%}.ft .s2{top:42%;left:26%}.ft .s3{top:22%;left:47%}
.ft .s4{top:56%;left:64%}.ft .s5{top:18%;left:79%}.ft .s6{top:48%;left:90%}
@media (prefers-reduced-motion:no-preference){
  .ft .star{animation:kvTwinkle 3.4s ease-in-out infinite}
  .ft .s2{animation-duration:2.6s;animation-delay:.5s}
  .ft .s3{animation-duration:4s;animation-delay:1.1s}
  .ft .s4{animation-duration:3s;animation-delay:.3s}
  .ft .s5{animation-duration:3.6s;animation-delay:1.6s}
  .ft .s6{animation-duration:2.9s;animation-delay:.9s}
  @keyframes kvTwinkle{0%,100%{opacity:.22;transform:scale(.8)}50%{opacity:.95;transform:scale(1.25)}}
}

/* 39 - vrstvený plameň ohniska (hlbší + žiara) */
.ft-fire::before{content:"";position:absolute;bottom:6px;left:50%;width:42px;height:42px;margin-left:-21px;border-radius:50%;background:radial-gradient(circle,rgba(242,169,59,.4),transparent 70%);filter:blur(2px);z-index:0}
.ft-fire .f1{background:radial-gradient(120% 120% at 50% 100%,#F6D66E 0%,#F2A93B 42%,#C9770A 78%,#a85c06 100%)}

/* 43 - disabled + loading stav tlačidiel */
.btn:disabled,.btn[disabled],.web-btn:disabled,.web-btn[disabled],.btn-forest:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:grayscale(.2)}
.btn.is-loading,.web-btn.is-loading{color:transparent!important;pointer-events:none;position:relative}
.btn.is-loading::after,.web-btn.is-loading::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:kvSpin .6s linear infinite}
@keyframes kvSpin{to{transform:rotate(360deg)}}

/* 44 - optické ladenie veľkých nadpisov Baloo 2 */
.hero h1,.subhero h1,.support .big,.support h2{letter-spacing:-.025em}
.hero h1,.subhero h1{line-height:1.04}

/* 45 - čitateľnosť odsekov Rubik */
.prose p,.day p{line-height:1.65;max-width:66ch}

/* 46 - autentickejší rukopis (doodle) */
.doodle-note{font-size:1.7rem}

/* 47 - teplejší lesný dark mode (jemný nádych) */
@media (prefers-color-scheme:dark){:root{--paper-2:#182B21;--card:#1D3126}}
:root[data-theme="dark"]{--paper-2:#182B21;--card:#1D3126}

/* 50 - kontrast drobných akcentových textov (AA) */
:root{--on-forest-dim:#C7D6C4}
:root[data-theme="dark"],:root[data-theme="light"]{--on-forest-dim:#C7D6C4}
@media (prefers-color-scheme:dark){:root{--on-forest-dim:#C7D6C4}}
.camp .go{color:var(--forest-deep)}
:root[data-theme="dark"] .camp .go{color:var(--link)}

/* ===== Výber opráv (hero underline, hover, 2% prechod, ohník) ===== */
/* Naše tábory: „Prečítať si viac" ako žlté tlačidlo */
.camps:not(.polaroids) .camp .go{display:inline-flex;align-items:center;gap:.4em;margin-top:14px;background:var(--sun);color:var(--on-sun);font-family:var(--font-display);font-weight:700;font-size:.85rem;padding:.5em 1.05em;border-radius:999px;transition:background .18s,color .18s}
.camps:not(.polaroids) .camp:hover .go{background:var(--sun-deep);color:#fff}

/* 2 % - plynulý gradientový prechod (nahrádza vlnky) */
.support{position:relative}
.support-blend::before,.support-blend::after{content:"";position:absolute;left:0;right:0;height:clamp(56px,8vw,104px);z-index:0;pointer-events:none;display:none}
.support-blend::before{top:0;background:linear-gradient(var(--paper),transparent)}
.support-blend::after{bottom:0;background:linear-gradient(transparent,var(--paper))}
/* blend len v tmavom režime; v light čistý ostrý okraj */
@media (prefers-color-scheme:dark){.support-blend::before,.support-blend::after{display:block}}
:root[data-theme="dark"] .support-blend::before,:root[data-theme="dark"] .support-blend::after{display:block}
:root[data-theme="light"] .support-blend::before,:root[data-theme="light"] .support-blend::after{display:none}
.support .wrap{position:relative;z-index:1}

/* O nás: menší horný padding */
#ethos{padding-top:clamp(24px,3.5vw,44px)}

/* Footer: v light solid (bez krémového prechodu); v dark jemný prechod do paper */
@media (prefers-color-scheme:dark){.ft{background:linear-gradient(var(--paper),var(--forest-deep) 90px)}}
:root[data-theme="dark"] .ft{background:linear-gradient(var(--paper),var(--forest-deep) 90px)}
:root[data-theme="light"] .ft{background:var(--forest-deep)}
.ft-sep{height:1px;background:rgba(255,255,255,.14);margin:14px 0 10px}
.ft-linkbtn{display:block;background:none;border:0;padding:3px 0;margin:0;font:inherit;color:var(--on-forest-dim);text-align:left;cursor:pointer;transition:color .15s}
.ft-linkbtn:hover{color:#fff}

/* ============================================================
   WCAG opravy (kontrast, fokus, prístupnosť)
   ============================================================ */
/* 1 + 8 - prístupný akcentový text (kickery/eyebrow/doodle) na svetlom pozadí (AA) */
:root{--kick-ink:#8F5000}
@media (prefers-color-scheme:dark){:root{--kick-ink:#F4B04B}}
:root[data-theme="dark"]{--kick-ink:#F4B04B}
:root[data-theme="light"]{--kick-ink:#8F5000}
.eyebrow,.kick,.kick.v-script,.day .dl,.doodle-note,.drawer-panel .sublabel{color:var(--kick-ink)}
/* .btn-forest: biely text na --forest-2 bol 4.45:1 (tesne pod AA) → mierne stmaviť pozadie */
.btn-forest{background:color-mix(in srgb,var(--forest-2) 86%,#000)}

/* 2 - „Prečítať si viac" na bielom polaroide vždy tmavé (dark téma malo 1.94:1) */
.camps.polaroids .camp .go{color:var(--forest-deep)}

/* 3 - ck-tag v dark téme dostatočný kontrast */
@media (prefers-color-scheme:dark){.ck-tag{color:#6FC095}}
:root[data-theme="dark"] .ck-tag{color:#6FC095}

/* 11 - .to-top mimo tab poradia keď je skryté */
.to-top{visibility:hidden}
.to-top.is-on{visibility:visible}

/* 20 - prepínač cookies: viditeľná hranica (3:1 non-text) */
.ck-track{background:color-mix(in srgb,var(--bark) 55%,transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ink) 32%,transparent)}
.ck-track::before{box-shadow:0 1px 3px rgba(0,0,0,.4),0 0 0 1px rgba(0,0,0,.12)}

/* 27 - plynulé rolovanie rešpektuje prefers-reduced-motion */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

/* Cookie bar - dvojfázový + scrim + ikony kategórií + trust riadok */
.ck-scrim{position:fixed;inset:0;background:rgba(8,16,11,.5);pointer-events:none}
.ck-cat-ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--forest-2) 12%,transparent);font-size:17px;line-height:1}
/* zrušený horný „drevený" pruh + bodka (pôsobili divne) */
.cookie-sign::before,.cookie-sign::after{content:none}
/* tlačidlá vycentrované + viac priestoru nad nimi */
.ck-actions{justify-content:center;margin-top:22px}
/* hlavičková ikona - Phosphor cookie v kruhu (štýl ako sekčné ikony) */
.ck-ic{width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--forest-2) 14%,transparent);color:var(--forest-2)}
.ck-ic .pi{font-size:24px}
/* trust riadok - odstup (vyššia špecificita, aby neprebil .kv p{margin:0}) */
.cookie-sign .ck-trust{margin:10px 0 2px;font-size:.8rem;color:var(--bark);text-align:center}
.cookie-sign .ck-sub{margin:.25em 0 0}
.ck-trust a{color:var(--link);text-decoration:underline}
.ck-trust a:hover{color:var(--forest-deep)}

/* hlavička: logo + názov „Kvíčalka" biele na tmavej téme (na svetlej ostávajú čitateľné zelené) */
@media (prefers-color-scheme:dark){.hdr .brand{color:#fff}}
:root[data-theme="dark"] .hdr .brand{color:#fff}
:root[data-theme="light"] .hdr .brand{color:var(--link)}

/* ===== Obsahové bloky - centrovanie, nadpisy, skupiny polaroidov, header foto ===== */
/* celý obsah vycentrovaný */
.content-blocks{margin-inline:auto}
.content-blocks .blk-text{margin-inline:auto}
/* zaujímavejšie nadpisy - vycentrované s kresleným sun akcentom */
.content-blocks .blk-h{text-align:center;margin-inline:auto;color:var(--ink);padding-bottom:.3em}
.content-blocks .blk-h::after{content:"";display:block;width:60px;height:4px;margin:.5em auto 0;border-radius:3px;background:linear-gradient(90deg,var(--sun),var(--sun-deep))}
/* skupina polaroidov (stĺpec splitu aj samostatný blok) - správajú sa ako hero polaroidy */
.pol-group{display:flex;flex-wrap:wrap;gap:22px 16px;justify-content:center;align-items:flex-start}
.pol-group .polaroid{transition:transform .28s ease,box-shadow .28s ease;--r:-2deg}
.pol-group .polaroid:nth-child(2n){--r:2.4deg}
.pol-group .polaroid:nth-child(3n){--r:-1.4deg}
.pol-group .polaroid:hover{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 26px 50px -22px rgba(23,61,42,.55);z-index:3}
.pol-group .polaroid .cap{padding:12px 6px 15px;font-size:1rem;color:#3a2c17}
/* polaroid bez popisu: doplň spodný biely okraj (base .polaroid má padding-bottom:0 → inak „oseknutý") */
.pol-group .polaroid:not(:has(.cap)){padding-bottom:16px}
/* split stĺpec: 1 fotka = plná šírka, viac = klaster 2 v riadku */
.blk-split-pols .polaroid{width:min(300px,100%)}
.blk-split-pols[data-n="2"] .polaroid,.blk-split-pols[data-n="3"] .polaroid,.blk-split-pols[data-n="4"] .polaroid{width:min(210px,47%)}
/* samostatný blok fotiek - vycentrovaná stena */
.content-blocks .blk-images{margin:2.8rem auto}
.blk-images .polaroid{width:min(240px,44%)}
.blk-images[data-n="1"] .polaroid{width:min(360px,78%)}

/* Header foto na obsahových stránkach - veľký polaroid namiesto plochého bannera */
.page-hero-pol{position:relative;max-width:760px;margin:0 auto 2.8rem;background:#fff;padding:14px 14px 18px;border-radius:10px;box-shadow:0 26px 60px -26px rgba(23,61,42,.55);transform:rotate(-1.2deg)}
.page-hero-pol img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:5px;display:block}
.page-hero-pol .tape{width:120px;top:-13px}
@media(prefers-reduced-motion:no-preference){.page-hero-pol{transition:transform .3s ease}.page-hero-pol:hover{transform:rotate(0)}}
