/* =====================================================
   INFINITY ACADEMY v2 - site.css · „Apple clean“
   Svetlý minimalizmus v štýle apple.com: biela + #f5f5f7,
   oválne (pill) tlačidlá vo farbách loga (#3aaa37 až #76b82a),
   veľká typografia Bebas Neue + Poppins, jemné animácie.
   Pohybové moduly žijú v css/fx/*.css - tu sú iba základy
   (baseline), ktoré moduly nesmú duplikovať.
   ===================================================== */
:root{
  --bg:#ffffff; --bg-2:#f5f5f7; --bg-3:#ececee; --card:#ffffff;
  --ink:#1d1f1d; --muted:#6b706c; --line:#e6e6e3;
  --green:#3aaa37; --green-2:#76b82a; --green-ink:#25732a; --green-soft:#e9f5e4;
  --grad:linear-gradient(110deg, #3aaa37 10%, #76b82a 90%);
  /* tmavý prechod pod popisom dlaždice (.tile::after); route-morph ho kreslí aj na letiacej fotke */
  --tile-grad:linear-gradient(to top, rgba(12,16,12,.92) 0%, rgba(12,16,12,.62) 36%, rgba(12,16,12,.2) 66%, transparent);
  /* iba dva fonty: Bebas Neue (display) + Poppins (text a UI) */
  --serif:"Bebas Neue", "Arial Narrow", Impact, sans-serif;
  --display:"Bebas Neue", "Arial Narrow", Impact, sans-serif;
  --sans:"Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --r:26px; --r-s:16px;
  --shadow:0 30px 70px -34px rgba(29,31,29,.28);
  --shadow-soft:0 16px 44px -26px rgba(29,31,29,.22);
  --wrap:1280px; --gutter:clamp(1rem, 4vw, 3rem);
  /* jediný easing na celom webe (--e-out je alias), --e-io iba pre clony/závesy */
  --ease:cubic-bezier(.2,.7,.2,1);
  --e-out:cubic-bezier(.2,.7,.2,1);
  --e-io:cubic-bezier(.65,0,.35,1);
  --top-h:92px;
}
@media (max-width:900px){ :root{ --top-h:76px; } }
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html.is-locked{ overflow:hidden; }
body{
  font-family:var(--sans); color:var(--ink); background:var(--bg);
  line-height:1.6; font-size:16px; -webkit-font-smoothing:antialiased;
  overflow-x:hidden; overflow-x:clip;
  /* pätička drží na spodku aj pri krátkych podstránkach */
  display:flex; flex-direction:column; min-height:100svh;
}
main{ flex:1; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
a,button,label,summary{ -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
ul{ list-style:none; }
[hidden]{ display:none !important; }
/* bez JS: odkazy #stoma / #akademia odkryjú svoju podstránku ako kotvu (so skriptami ich prepína router) */
html:not(.js) noscript:has(> .nojs-target:target) + [hidden].view-sub{ display:block !important; }
.nojs-target{ display:block; height:1px; margin-bottom:-1px; scroll-margin-top:var(--top-h); }
:where(a,button,input,select,textarea):focus-visible{ outline:2px solid var(--green); outline-offset:3px; border-radius:8px; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:-999px; top:0; z-index:500; background:#fff; padding:.6rem 1rem; }
.skip:focus{ left:1rem; top:1rem; }
section[id],[id].about-block,.course__sec{ scroll-margin-top:calc(var(--top-h) + 12px); }

.wrap{ width:min(var(--wrap), 100% - 2*max(var(--gutter), env(safe-area-inset-left), env(safe-area-inset-right))); margin-inline:auto; }
/* „hands-on“ sa nedelí na spojovníku (span.nw z typografie jadra) */
.nw{ white-space:nowrap; }
/* .nw je iba nezalomiteľný úsek textu - nepreberá štýly rodičovských „span“ pravidiel (napr. .fact span na telefóne) */
.fact .nw, .lecturer .nw, .chips .nw, .program .nw, .contact__list .nw, .timeline .nw, .stoma__facts .nw, .buybox__meta .nw{
  display:inline; font:inherit; color:inherit; letter-spacing:inherit; text-transform:inherit;
  padding:0; border:0; background:none; min-width:0; max-width:none; text-align:inherit;
}
p, li{ text-wrap:pretty; }

/* ---------- inline SVG glyfy (žiadne textové šípky ani fajky) ---------- */
.ico-check{ width:1em; height:1em; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.ico-chev{ width:10px; height:12px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.drawer__close svg,.modal__close svg{ width:14px; height:14px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; fill:none; }

/* ---------- typografia ---------- */
h1,h2,h3,.serif{ font-family:var(--display); font-weight:400; line-height:.94; letter-spacing:.012em; text-transform:uppercase; text-wrap:balance; }
h1{ font-size:clamp(3.2rem, 7.2vw, 6.8rem); }
h2{ font-size:clamp(2.3rem, 4.4vw, 3.8rem); }
h3{ font-size:clamp(1.4rem, 2.1vw, 1.8rem); letter-spacing:.03em; }
em{ font-style:italic; }
.eyebrow{
  font-family:var(--display); font-size:.98rem; letter-spacing:.22em; text-transform:uppercase; color:var(--green-ink); line-height:1.2;
}
.lead{ font-size:clamp(1.05rem, 1.5vw, 1.25rem); color:var(--muted); max-width:56ch; font-weight:300; }
.muted{ color:var(--muted); }
.section{ padding-block:clamp(3.5rem, 7vw, 6.5rem); }
.section__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
  margin-bottom:clamp(2rem, 4vw, 3.5rem);
}
.section__head .eyebrow{ margin-bottom:.6rem; }
.section__head p{ max-width:40ch; }
.section__head--center{ flex-direction:column; align-items:center; text-align:center; gap:0; }
.section__head--center h2{ font-size:clamp(3rem, 6vw, 5.6rem); line-height:.9; letter-spacing:.02em; }
/* eyebrow POD nadpisom (napr. „Ponuka 2026 / 2027“ pod KURZY) */
.eyebrow--sub{ margin-top:.9rem; margin-bottom:0 !important; color:var(--muted); }
@media (max-width:760px){ .section__head:not(.section__head--center){ flex-direction:column; align-items:flex-start; gap:.8rem; } }

/* ---------- tlačidlá: oválne pilulky ako na apple.at,
   plné vo farbách loga (gradient), obrysové zelené ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.68rem 1.35rem; border-radius:999px; font-weight:500; font-size:.9rem; line-height:1;
  border:1px solid var(--ink); background:var(--ink); color:#fff;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease);
  white-space:nowrap;
}
.btn--lime{
  background:var(--grad); border-color:transparent; color:#fff; font-weight:600;
  box-shadow:0 8px 20px -12px rgba(58,170,55,.5);
}
.btn--green{
  background:var(--grad); border-color:transparent; color:#fff; font-weight:600;
  box-shadow:0 8px 20px -12px rgba(58,170,55,.45);
}
.btn--outline{ background:transparent; color:var(--green-ink); border:1.5px solid var(--green); }
.btn--ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--line); }
.btn--light{ background:#fff; color:var(--ink); border-color:#fff; }
.btn--sm{ padding:.62rem 1.15rem; font-size:.85rem; }
.btn--block{ width:100%; }
.btn[disabled]{ opacity:.5; pointer-events:none; }
.link{ font-weight:600; border-bottom:1px solid currentColor; padding-bottom:1px; }

/* =====================================================
   TOP BAR - svetlá, priesvitná (ako Apple)
   ===================================================== */
.top{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.82); color:var(--ink);
  -webkit-backdrop-filter:blur(16px) saturate(1.6); backdrop-filter:blur(16px) saturate(1.6);
  border-bottom:1px solid rgba(29,31,29,.08); transition:box-shadow .3s ease;
}
.top.is-scrolled{ box-shadow:0 10px 34px -24px rgba(29,31,29,.35); }
/* menu vľavo · logo v strede · menu + výber vpravo */
.top__in{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1.5rem; height:var(--top-h); }
.top__logo{ justify-self:center; }
.top__logo img{ height:56px; width:auto; }
.top__nav{ display:flex; align-items:center; gap:2.4rem; }
.top__nav--l{ justify-self:start; }
.top__right{ justify-self:end; display:flex; align-items:center; gap:1.8rem; }
.top__nav a{
  font-family:var(--display); font-size:1.1rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  padding:.35rem 0; position:relative; transition:color .2s; line-height:1;
}
.top__nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--grad); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);
}
/* aktívna položka: malá zelená bodka pod slovom */
.top__nav a.is-active{ color:var(--ink); }
.top__nav a.is-active::before{
  content:""; position:absolute; left:50%; bottom:-10px; width:5px; height:5px; border-radius:50%;
  background:var(--green); transform:translateX(-50%);
}
.cartbtn{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.62rem 1.15rem .62rem .85rem; border-radius:999px; border:1.5px solid var(--green); color:var(--green-ink);
  font-family:var(--display); font-size:1rem; letter-spacing:.1em; text-transform:uppercase; background:#fff; line-height:1;
  transition:background .2s, color .2s, border-color .2s;
}
.cartbtn__n{
  min-width:22px; height:22px; padding:0 .4rem; border-radius:999px; background:var(--grad); color:#fff;
  font-family:var(--sans); font-size:.72rem; font-weight:700; display:inline-flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.cartbtn.bump{ animation:cartIn .3s var(--ease); }
.cartbtn__ico{ display:none; width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
@keyframes cartIn{ from{ transform:scale(.85); opacity:0; } to{ transform:none; opacity:1; } }
.burger{ display:none; width:44px; height:44px; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.burger span{ width:22px; height:2px; background:var(--ink); border-radius:2px; transition:.3s; }
/* mobilné menu (mimo <header>; položky <a><span>…</span></a> s --i pre stagger modulu) */
.mnav{
  position:fixed; inset:var(--top-h) 0 0; z-index:98; background:#fff;
  display:flex; flex-direction:column; align-items:stretch;
  padding:.5rem max(var(--gutter), env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));
  gap:0; overflow-y:auto; overscroll-behavior:contain;
}
/* baseline otvorenia: core prepína hidden -> .is-open (ďalší snímok) a pri zatváraní
   .is-open -> hidden po IA.menuCloseDelay; scénu (clip, stagger) dopĺňa menu-header */
.mnav:not(.is-open){ opacity:0; pointer-events:none; }
.motion .mnav{ transition:opacity .24s var(--ease); }
/* položky cez celú šírku, veľká dotyková plocha, jemné oddeľovače */
.mnav a{
  display:flex; align-items:center; min-height:60px; padding:.4rem .2rem;
  font-family:var(--serif); font-size:1.9rem; letter-spacing:.05em; color:var(--ink); line-height:1;
  border-bottom:1px solid var(--line);
}
.mnav a:active{ color:var(--green-ink); }
.mnav a.is-active{ color:var(--green-ink); }
/* najbližší termín - tichý sivý riadok (baseline; modul rieši iba pohyb) */
.mnav__next{
  display:grid; grid-template-columns:72px 1fr; gap:.9rem; align-items:center;
  background:var(--bg-2); border-radius:var(--r-s); padding:.7rem; margin-top:auto; border:0 !important;
  min-height:0 !important; font-family:var(--sans) !important; letter-spacing:0 !important; font-size:1rem !important;
}
.mnav__next img{ width:72px; height:72px; object-fit:cover; border-radius:12px; }
.mnav__next > span{ display:grid; gap:.2rem; justify-items:start; }
.mnav__next .eyebrow{ font-size:.8rem; }
.mnav__next b{ font-weight:600; font-size:.95rem; line-height:1.25; color:var(--ink); }
.mnav__next em{ font-style:normal; font-size:.8rem; background:var(--bg-3); }
.mnav__phone{
  font-family:var(--sans) !important; font-size:.95rem !important; font-weight:600; letter-spacing:0 !important;
  color:#fff !important; background:var(--grad); border:0 !important;
  justify-content:center; min-height:52px !important; border-radius:999px; margin-top:1.4rem; padding:.9rem 1.2rem !important;
}
@media (min-width:901px){ .mnav{ display:none !important; } }
@media (max-width:900px){
  .top__in{ gap:.8rem; }
  .top__logo img{ height:42px; }
  .top__nav{ display:none; }
  .top__right{ display:contents; }
  .cartbtn{ grid-column:1; grid-row:1; justify-self:start; }
  .top__logo{ grid-column:2; grid-row:1; }
  .burger{ display:flex; grid-column:3; grid-row:1; justify-self:end; }
  .top.menu-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .top.menu-open .burger span:nth-child(2){ opacity:0; }
  .top.menu-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .cartbtn__label{ display:none; }
  /* mobil: taška s počtom (bez obrysovej kapsuly), 44 px dotyková plocha */
  .cartbtn{ position:relative; width:44px; height:44px; padding:0; gap:0; justify-content:center; border:0; background:none; color:var(--ink); }
  .cartbtn__ico{ display:block; }
  .cartbtn__n{ position:absolute; top:4px; right:1px; min-width:18px; height:18px; padding:0 .28rem; font-size:.64rem; box-shadow:0 0 0 2px #fff; }
}

/* =====================================================
   HERO - svetlý, vycentrovaný ako apple.at
   .hero__stage > .hero__photo.media > .hero__scale > img
   (vstup, rast pri rolovaní a paralaxu rieši modul hero-stage)
   ===================================================== */
.hero-band{
  position:relative; color:var(--ink); overflow-x:clip;
  background:linear-gradient(180deg, #ffffff 0%, #fbfbfa 60%, #f5f5f7 100%);
}
.hero{ position:relative; padding:clamp(3.5rem, 7vw, 6.5rem) 0 0; text-align:center; }
.hero__grid{ display:block; }
.hero h1{
  margin:0 auto; color:var(--ink); max-width:16ch;
  font-size:clamp(3.4rem, 8vw, 8rem); line-height:.9;
}
/* akcent v nadpise: gradient vo farbách loga */
.hero h1 .lime{
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero__actions{ display:flex; gap:.8rem; flex-wrap:wrap; justify-content:center; margin-top:2rem; }
.hero__actions .btn{
  font-family:var(--sans); font-weight:600; font-size:.92rem; letter-spacing:0; text-transform:none;
  padding:.72rem 1.4rem;
}
.hero__stage{ position:relative; margin-top:clamp(2.6rem, 5vw, 4.5rem); }
.hero__photo{
  position:relative; z-index:2;
  border-radius:var(--r); overflow:hidden; aspect-ratio:21/9; background:var(--bg-2);
  box-shadow:var(--shadow);
}
.hero__scale{ position:relative; height:100%; }
.hero__photo img{ width:100%; height:100%; object-fit:cover; object-position:center 35%; }
@media (max-width:900px){
  .hero__photo{ aspect-ratio:4/3; }
}
.hero-band::after{ content:""; display:block; height:clamp(2rem, 4vw, 3.5rem); }
/* priestor pod fotkou, do ktorého hero-stage nechá rám narásť na plnú šírku (iba pri pohybe):
   rast nadol = výška * k = 1,5 x gutter pri 4:3 (<=900 px), na 21:9 najviac ~69 px.
   hero-stage číta túto výšku v measure() a rast ňou obmedzí - hodnotu mení iba core. */
.motion #viewHome .hero-band::after{ height:max(clamp(2rem, 4vw, 3.5rem), calc(1.5 * var(--gutter) + .5rem)); }
@media (min-width:901px){
  .motion #viewHome .hero-band::after{ height:max(clamp(2rem, 4vw, 3.5rem), 5rem); }
}
/* vstupná sekvencia hero pri načítaní: iba tlačidlá; h1 rieši motion-reveal, fotku hero-stage */
@keyframes riseIn{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }
.motion .hero__actions{ animation:riseIn .85s .55s var(--ease) both; }

/* ---------- mediálne sloty (video dopĺňa media-engine ako potomka .media) ---------- */
.media{ position:relative; }
.pill-play{
  position:absolute; left:14px; bottom:14px; z-index:2; display:inline-flex; align-items:center; gap:.55rem;
  padding:.6rem 1rem; border-radius:999px; background:rgba(255,255,255,.86);
  font:600 .88rem var(--sans); color:var(--ink); line-height:1; pointer-events:none;
}
.pill-play svg{ width:10px; height:12px; fill:var(--green); flex:none; }
.pill-play__t{ color:var(--muted); font-weight:400; }
.person__play{
  position:absolute; right:8px; bottom:8px; z-index:2; width:28px; height:28px; border-radius:50%;
  background:rgba(255,255,255,.72); display:flex; align-items:center; justify-content:center; pointer-events:none;
}
.person__play svg{ width:10px; height:12px; fill:var(--green); }

/* =====================================================
   KURZY - vycentrovaný nadpis, záložky, štvorcové dlaždice
   ===================================================== */
.section--courses{ padding-top:clamp(3.5rem, 7vw, 6rem); }
.section--courses .section__head{ margin-bottom:0; }
/* lišta s filtrami je priamy potomok sekcie (sticky na mobile rieši chip-rail) */
.chipbar{ position:relative; margin-bottom:clamp(2rem, 4vw, 3.5rem); }
.filters{
  position:relative; display:flex; flex-wrap:wrap; justify-content:center; gap:0 2.2rem;
  margin-top:clamp(1.4rem, 2.6vw, 2.2rem); border-bottom:1px solid var(--line);
}
.filter{
  position:relative; font-family:var(--display); font-size:1.2rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  padding:.6rem .1rem .8rem; line-height:1; transition:color .25s;
}
.filter + .filter::before{
  content:""; position:absolute; left:-1.1rem; top:.75rem; bottom:.95rem; width:1px; background:var(--line);
}
.filter.is-active{ color:var(--ink); }
.filters__ind{
  position:absolute; left:0; top:0; height:3px; width:0; border-radius:3px 3px 0 0; background:var(--grad);
  transition:transform .45s var(--ease), width .45s var(--ease); opacity:0; pointer-events:none;
}
.filters__ind.is-ready{ opacity:1; }

/* flex namiesto gridu - neúplný posledný riadok dlaždíc je vycentrovaný */
.grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.1rem; }
.grid > *{ width:calc((100% - 3 * 1.1rem) / 4); }
@media (max-width:1100px){ .grid > *{ width:calc((100% - 2 * 1.1rem) / 3); } }
@media (max-width:760px){ .grid{ gap:.8rem; } .grid > *{ width:calc((100% - .8rem) / 2); } }
@media (max-width:460px){ .grid > *{ width:100%; } }

.tile{
  position:relative; display:block; aspect-ratio:1/1; border-radius:var(--r); overflow:hidden;
  background:var(--bg-3); color:#fff; isolation:isolate;
  box-shadow:0 0 0 1px rgba(29,31,29,.05), 0 18px 40px -30px rgba(29,31,29,.35);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), opacity .5s var(--ease);
}
.tile.is-hidden{ display:none; }
/* statická záloha bez JS v #tiles / #people: keď skripty bežia, nezobrazí sa ani na okamih
   (app.js ju pri štarte prepíše; poistka v <head> zloží .js, ak app.js zlyhá) */
.js [data-static]{ display:none; }
/* vstupná animácia dlaždice po prepnutí kategórie (už sa nepoužíva, FLIP rieši chip-rail) */
.tile--enter{ opacity:0 !important; transform:translateY(18px) scale(.97) !important; }
.tile__media{ position:absolute; inset:0; }
.tile__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.tile::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:var(--tile-grad);
}
.tile__top{ position:absolute; z-index:2; top:.9rem; left:.9rem; right:.9rem; display:flex; justify-content:space-between; gap:.5rem; }
.pill{
  font-family:var(--display); font-size:.92rem; letter-spacing:.08em; text-transform:uppercase; line-height:1;
  padding:.45rem .8rem .35rem; border-radius:999px;
  background:rgba(255,255,255,.94); color:var(--ink); white-space:nowrap;
}
.pill--dark{ background:rgba(20,26,20,.62); color:#fff; border:1px solid rgba(255,255,255,.16); }
.pill--sold{ background:rgba(20,26,20,.62); color:#fff; border:1px solid rgba(255,255,255,.16); }
.tile__body{ position:absolute; z-index:2; left:1.1rem; right:1.1rem; bottom:1.1rem; }
.tile__cat{ font-family:var(--display); font-size:.86rem; letter-spacing:.2em; text-transform:uppercase; color:#b9e38b; margin-bottom:.35rem; line-height:1; text-shadow:0 1px 10px rgba(0,0,0,.6); }
.tile__title{ font-family:var(--serif); font-size:clamp(1.4rem, 1.9vw, 1.85rem); line-height:1.02; letter-spacing:.015em; text-wrap:balance; text-shadow:0 2px 14px rgba(0,0,0,.45); }
.tile__meta{ margin-top:.55rem; font-size:.82rem; color:rgba(255,255,255,.85); display:flex; gap:.9rem; }
.tile--sold .tile__img{ filter:grayscale(1) brightness(.88); }
.tile--sold .tile__cat{ color:rgba(255,255,255,.7); }
/* detail vypredaného kurzu: sivý neaktívny stav, žiadna červená */
.buybox__sold{ background:var(--bg-2); color:var(--muted); border-color:var(--line); cursor:default; pointer-events:none; box-shadow:none; }
.buybox__soldnote{ font-size:.85rem; color:var(--muted); margin-top:.9rem; line-height:1.5; }
@media (max-width:760px){
  .tile__top .pill--dark{ display:none; }   /* kredity sú v detaile */
  .tile__title{ font-size:1.3rem; }
}

/* =====================================================
   O AKADÉMII - svetlosivá karta (ako Apple dlaždice)
   ===================================================== */
.about{
  position:relative; overflow:hidden; isolation:isolate; color:var(--ink);
  background:var(--bg-2);
  border-radius:calc(var(--r) * 1.2); padding:clamp(2.5rem, 6vw, 5rem);
}
.about__mark{
  position:absolute; z-index:-1; right:-10%; bottom:-26%; width:min(46vw, 560px); aspect-ratio:480/473;
  background:url("../assets/mark.png") center/contain no-repeat; opacity:.06; transform:rotate(12deg); pointer-events:none;
}
.about__grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:3rem; align-items:center; }
.about h2{ margin:.9rem 0 1.3rem; }
.about p{ color:var(--muted); max-width:52ch; }
.about__cta{ margin-top:1.6rem; }
.facts{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.fact{ background:#fff; border-radius:var(--r-s); padding:1.4rem 1.3rem 1.25rem; box-shadow:var(--shadow-soft); transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.fact b{
  display:block; font-family:var(--serif); font-weight:400; font-size:2.9rem; line-height:.9; margin-bottom:.55rem; letter-spacing:.02em;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.fact span{ font-size:.86rem; color:var(--muted); }
@media (max-width:900px){ .about__grid{ grid-template-columns:1fr; gap:2rem; } }
@media (max-width:460px){ .facts{ grid-template-columns:1fr; } }

/* =====================================================
   Z NAŠICH KURZOV - pás fotiek (baseline; pohyb = moments-strip)
   ===================================================== */
.moments{ overflow:clip; padding-block:clamp(2.5rem, 6vw, 5rem); }
/* mriežka fotiek v šírke obsahu: 3 stĺpce, na mobile 2 stĺpce a iba prvá polovica */
.moments__rows{ width:min(var(--wrap), 100% - 2*var(--gutter)); margin:clamp(1.6rem, 3vw, 2.6rem) auto 0; display:grid; gap:12px; }
.moments__row{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.moment{
  position:relative; width:auto; aspect-ratio:3/2; border-radius:var(--r); overflow:hidden;
  background:var(--bg-2); box-shadow:var(--shadow-soft);
}
.moment img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:760px){
  .moments__rows{ gap:10px; } .moments__row{ grid-template-columns:repeat(2, 1fr); gap:10px; }
  .moments__row:nth-child(2){ display:none; }
}
.moments__static{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.moments__static .moment{ width:auto; }
@media (max-width:760px){ .moments__static{ grid-template-columns:repeat(2, 1fr); gap:10px; } }

/* =====================================================
   LEKTORI
   ===================================================== */
.people{ display:grid; grid-template-columns:repeat(6, 1fr); gap:1rem; }
@media (max-width:1100px){ .people{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .people{ grid-template-columns:repeat(2,1fr); gap:.8rem; } }
.person{ text-align:center; display:block; width:100%; }
.person__photo{
  display:block; aspect-ratio:4/5; border-radius:var(--r-s); overflow:hidden; background:var(--bg-2); margin-bottom:.85rem;
  position:relative; box-shadow:0 0 0 1px rgba(29,31,29,.05), 0 14px 30px -24px rgba(29,31,29,.35);
  transition:box-shadow .4s var(--ease), transform .4s var(--ease);
}
.person__photo img{ width:100%; height:100%; object-fit:cover; object-position:top; filter:saturate(.92); transition:transform .8s var(--ease); }
.person__mono{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, #eef4ea, #dfeada); color:var(--green-ink);
  font-family:var(--serif); font-size:2.8rem; letter-spacing:.06em;
}
/* block (nie flex!) - flex by zahodil medzery medzi časťami mena */
.person__name{
  display:block; text-align:center; min-height:2.6em;
  font-size:.92rem; line-height:1.3; text-wrap:balance; padding-inline:.2rem;
}
.person__role{ display:block; font-size:.78rem; color:var(--muted); margin-top:.1rem; text-wrap:balance; }
.person__mono--xl{ font-size:5.4rem; }

/* =====================================================
   KONTAKT
   ===================================================== */
#kontakt{ position:relative; isolation:isolate; }
.contact__mark{
  position:absolute; z-index:-1; left:-14%; bottom:-30%; width:min(42vw, 520px); aspect-ratio:480/473;
  background:url("../assets/mark.png") center/contain no-repeat; opacity:.05; transform:rotate(14deg); pointer-events:none;
}
.contact__grid{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.contact__grid h2{ margin-top:.6rem; }
.contact__list{ display:grid; gap:1.2rem; margin-top:1.6rem; }
.contact__list div{ border-top:1px solid var(--line); padding-top:.9rem; }
.contact__list b{ display:block; font-family:var(--display); font-weight:400; font-size:.9rem; letter-spacing:.2em; text-transform:uppercase; color:var(--green-ink); margin-bottom:.3rem; line-height:1; }
.contact__list a, .contact__list span{ font-size:1.05rem; font-weight:500; }
.contact__photo{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3; background:var(--bg-2); box-shadow:var(--shadow-soft); }
.contact__photo img{ width:100%; height:100%; object-fit:cover; }
.contact__photo figcaption{
  position:absolute; left:1rem; bottom:1rem; background:rgba(255,255,255,.92); color:var(--ink);
  font-size:.78rem; font-weight:600; padding:.5rem .95rem; border-radius:999px;
}
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; gap:2rem; } }

/* =====================================================
   FOOTER - svetlý ako Apple
   ===================================================== */
.footer{
  background:var(--bg-2); color:var(--muted);
  padding:3rem 0 calc(1.6rem + env(safe-area-inset-bottom)); margin-top:2rem; border-top:1px solid var(--line);
}
.footer__in{ display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.footer__in img{ height:42px; width:auto; }
.footer__nav{ display:flex; gap:2rem; flex-wrap:wrap; font-family:var(--display); font-size:1.05rem; letter-spacing:.16em; text-transform:uppercase; }
.footer__nav a{ color:var(--muted); transition:color .2s; }
/* spodná lišta: čisté ikony sietí (štýl ako dominikbesler.com) + copyright v strede */
.footer__legal{
  border-top:1px solid var(--line); margin-top:2rem; padding-top:1.5rem;
  display:flex; flex-direction:column; align-items:center; gap:.7rem; color:var(--muted); text-align:center;
}
.footer__social{ display:flex; justify-content:center; gap:22px; }
.footer__social a{
  display:flex; align-items:center; justify-content:center; width:38px; height:38px;
  color:var(--muted); transition:color .3s, transform .3s var(--ease);
}
.footer__social a:focus-visible{ color:var(--green-ink); transform:translateY(-2px); }
.footer__social svg{ width:21px; height:21px; fill:currentColor; }
.footer__copy{ font-size:1.05rem; }
/* mobil: menšie ikony sietí (-25 %) aj copyright */
@media (max-width:760px){
  .footer__social{ gap:20px; }
  .footer__social a{ width:33px; height:33px; }
  .footer__social svg{ width:19px; height:19px; }
  .footer__copy{ font-size:.92rem; }
  .footer__legal{ padding-top:1.2rem; gap:.5rem; }
  .footer__nav{ display:grid; grid-template-columns:repeat(3, auto); justify-content:start; gap:.4rem 1.6rem; font-size:1rem; }
}

/* =====================================================
   DETAIL KURZU
   ===================================================== */
.course{ padding-block:clamp(2rem, 4vw, 3.5rem) clamp(4rem, 8vw, 7rem); }
.back{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--display); font-size:1.02rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:999px; padding:.55rem 1.1rem .45rem;
  margin-bottom:2rem; transition:color .2s, border-color .2s, transform .3s var(--ease);
}
.course__hero{ display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; margin-bottom:clamp(2rem, 4vw, 3rem); }
.course__hero h1{ font-size:clamp(2.6rem, 5.2vw, 4.8rem); margin:.9rem 0 1.1rem; }
.course__hero .lead{ max-width:52ch; }
.course__photo{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3; background:var(--bg-2); box-shadow:var(--shadow-soft); }
/* autor ilustračnej fotky (licencia CC BY) - drobne v rohu */
.course__credit{ position:absolute; right:12px; bottom:9px; z-index:3; font-size:.62rem; letter-spacing:.01em; color:rgba(255,255,255,.88); text-shadow:0 1px 6px rgba(0,0,0,.55); pointer-events:none; }
.course__photo img{ width:100%; height:100%; object-fit:cover; }
.course__layout{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.course__main > section{ padding:2.3rem 0; border-top:1px solid var(--line); }
.course__main h2{ font-size:clamp(1.7rem, 2.6vw, 2.3rem); margin-bottom:1.2rem; }
.course__main h3{ font-size:1.02rem; font-family:var(--sans); font-weight:600; margin:1.4rem 0 .6rem; text-transform:none; letter-spacing:0; line-height:1.3; }
.checklist li{ position:relative; padding-left:1.7rem; margin-bottom:.55rem; color:var(--muted); }
.checklist li::before{ content:""; position:absolute; left:0; top:.5em; width:9px; height:9px; border-radius:50%; background:var(--green); }
.checklist--no li::before{ background:#c9c9c4; }
.benefits{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.benefit{ background:var(--bg-2); border-radius:var(--r-s); padding:1.2rem 1.3rem; transition:transform .35s var(--ease); }
.benefit b{ display:block; margin-bottom:.3rem; font-weight:600; }
.benefit p{ font-size:.9rem; color:var(--muted); }
@media (max-width:640px){ .benefits{ grid-template-columns:1fr; } }
.program li{ display:flex; gap:1rem; padding:.7rem 0; border-bottom:1px dashed var(--line); color:var(--ink); font-size:.95rem; }
.program li > span:first-child{ font-family:var(--serif); font-size:1.1rem; color:var(--green-ink); min-width:1.6rem; line-height:1.4; }
.lecturers{ display:grid; gap:.9rem; }
.lecturer{
  display:grid; grid-template-columns:76px 1fr auto; gap:1.1rem; align-items:center;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-s); padding:.9rem; text-align:left; width:100%;
  transition:border-color .2s, transform .3s var(--ease), box-shadow .3s var(--ease);
}
.lecturer__photo{ display:block; width:76px; aspect-ratio:1; border-radius:12px; overflow:hidden; background:var(--bg-2); position:relative; }
.lecturer__photo img{ width:100%; height:100%; object-fit:cover; object-position:top; }
.lecturer .lecturer__photo .person__mono{ position:absolute; inset:0; display:flex; font-size:1.7rem; }
.lecturer b{ display:block; font-weight:600; }
.lecturer span{ display:block; font-size:.85rem; color:var(--muted); }
/* meno lektora: tituly regular sivé, meno bold čierne, slová v jednom riadku */
.lecturer .lect-name{ display:block; color:var(--ink); font-size:.95rem; }
.lecturer .lect-name span{ display:inline; font-size:inherit; }
.lecturer .lect-name .nm{ font-weight:700; color:var(--ink); }
.lecturer .lect-name .nm-deg{ font-weight:400; color:var(--muted); }
.lecturer i{ font-style:normal; font-family:var(--display); font-size:1rem; letter-spacing:.1em; text-transform:uppercase; color:var(--green-ink); }
@media (max-width:520px){ .lecturer{ grid-template-columns:60px 1fr; } .lecturer__photo{ width:60px; } .lecturer i{ display:none; } }
/* FAQ: <details><summary><span>otázka</span><i class="faq__ico"></i></summary><div class="faq__a"><p>…</p></div></details> */
.faq details{ border-top:1px solid var(--line); padding:.9rem 0; }
.faq summary{ cursor:pointer; font-weight:600; list-style:none; display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq__ico{ position:relative; flex:none; width:12px; height:12px; margin-top:.5em; }
.faq__ico::before,.faq__ico::after{ content:""; position:absolute; left:0; top:5px; width:12px; height:2px; border-radius:2px; background:var(--green-ink); }
.faq__ico::after{ transform:rotate(90deg); }
.faq details[open] .faq__ico::after{ opacity:0; }
.faq__a{ overflow:hidden; }
.faq p{ color:var(--muted); margin-top:.6rem; font-size:.95rem; }

/* bočná karta s cenou - biela, so zeleným gradientovým akcentom */
.buybox{ position:sticky; top:112px; display:grid; gap:1rem; }
.buybox__pin{ display:block; min-width:0; }
.buybox__card{
  position:relative; overflow:hidden; isolation:isolate; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:1.9rem 1.9rem 1.7rem;
  box-shadow:var(--shadow-soft);
}
.buybox__card::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--grad); }
.buybox__meta{ display:grid; gap:0; margin-bottom:1.4rem; }
.buybox__meta div{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; font-size:.9rem; border-bottom:1px solid var(--line); padding:.75rem 0; }
.buybox__meta div:first-child{ padding-top:.3rem; }
.buybox__meta span:first-child{ font-family:var(--display); font-size:.9rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.buybox__meta span:last-child{ font-weight:500; text-align:right; }
.buybox__meta .muted{ color:var(--muted); font-weight:400; font-size:.8rem; }
.buybox__soon{ color:var(--green-ink) !important; font-weight:500 !important; }
.buybox__tools{ display:flex; flex-wrap:wrap; gap:.5rem; margin:-.6rem 0 1.2rem; }
.buybox__tools:empty{ display:none; }
.buybox__price{ display:flex; align-items:baseline; gap:.6rem; margin:.2rem 0 1.2rem; }
.buybox__price b{ font-family:var(--serif); font-weight:400; font-size:3.3rem; line-height:1; color:var(--ink); letter-spacing:.02em; font-variant-numeric:tabular-nums; }
.buybox__price small{ color:var(--muted); font-size:.8rem; }
.buybox__card .btn{ border-radius:999px; font-family:var(--sans); font-weight:600; font-size:1.02rem; letter-spacing:0; text-transform:none; padding:1.05rem 1.4rem; }
.buybox__hint{ margin-top:1rem; font-size:.82rem; line-height:1.5; color:var(--muted); }
.buybox__hint b{ font-weight:500; color:var(--ink); }
.variants{ position:relative; display:grid; gap:.5rem; margin-bottom:1.1rem; }
.variant{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:.7rem; background:var(--bg-2); border:1px solid var(--line); border-radius:var(--r-s);
  padding:.75rem .9rem; cursor:pointer; transition:border-color .2s, background .2s;
}
.variant:has(input:checked){ border-color:var(--green); background:var(--green-soft); }
.variant input{ accent-color:var(--green); }
.variant b{ font-size:.9rem; display:block; font-weight:500; }
.variant small{ color:var(--muted); font-size:.75rem; }
.variant em{ margin-left:auto; font-style:normal; font-family:var(--serif); font-size:1.15rem; white-space:nowrap; letter-spacing:.02em; }
.buybox__note{ font-size:.8rem; color:var(--muted); margin-top:.9rem; }
.buybox__added{ display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--green-ink); font-weight:500; margin-top:.8rem; }
.also{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:1.3rem 1.4rem; }
.also h3{ font-size:.9rem; font-family:var(--display); letter-spacing:.2em; text-transform:uppercase; color:var(--green-ink); margin-bottom:.9rem; line-height:1; }
.also__item{ display:grid; grid-template-columns:54px 1fr; gap:.8rem; align-items:center; padding:.6rem 0; border-top:1px solid var(--line); }
.also__item:first-of-type{ border-top:0; }
.also__item img{ width:54px; height:54px; object-fit:cover; border-radius:10px; }
.also__item b{ display:block; font-size:.9rem; line-height:1.25; font-weight:600; }
.also__item small{ color:var(--muted); font-size:.78rem; display:block; }
.also__item .tag{ color:var(--green-ink); font-weight:600; }
@media (max-width:960px){
  .course__hero{ grid-template-columns:1fr; gap:1.5rem; }
  .course__layout{ grid-template-columns:1fr; }
  .buybox{ position:static; }
}

/* mobilná spodná lišta na detaile (baseline: nikdy nie je závislá od modulu)
   .stickybar > .stickybar__info[data-open-buybox] (#sbPrice, #sbSub) + button.stickybar__cta[data-state] > .lbl */
.stickybar{
  position:fixed; left:0; right:0; bottom:0; z-index:90; background:#fff; color:var(--ink);
  border-top:1px solid var(--line);
  padding:.7rem max(var(--gutter), env(safe-area-inset-right)) calc(.7rem + env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));
  display:none; align-items:center; justify-content:space-between; gap:1rem;
  transform:translateY(110%); opacity:0; pointer-events:none;
  transition:transform .52s var(--e-out), opacity .3s;
}
.stickybar__info{ display:flex; flex-direction:column; min-width:0; cursor:pointer; }
.stickybar b{ font-family:var(--serif); font-weight:400; font-size:1.6rem; color:var(--ink); line-height:1; font-variant-numeric:tabular-nums; }
.stickybar small{ display:block; font-size:.72rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stickybar__cta{ flex:none; }
.stickybar__cta .lbl{ display:none; }
.stickybar__cta[data-state="add"] .lbl--add,
.stickybar__cta[data-state="in"] .lbl--in,
.stickybar__cta[data-state="sold"] .lbl--sold{ display:inline-flex; align-items:center; gap:.4rem; }
.stickybar.is-on.is-shown:not(.is-tucked){ transform:none; opacity:1; pointer-events:auto; }
@media (max-width:960px){
  .stickybar{ display:flex; }
  body.has-stickybar .footer{ padding-bottom:calc(1.6rem + 78px + env(safe-area-inset-bottom)); }
}

/* =====================================================
   MÔJ VÝBER - zásuvka
   ===================================================== */
.scrim{ position:fixed; inset:0; z-index:200; background:rgba(29,31,29,.4); opacity:0; pointer-events:none; transition:opacity .3s ease; touch-action:none; }
.scrim.is-on{ opacity:1; pointer-events:auto; }
.drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:210; width:min(460px, 100%);
  background:#fff; display:flex; flex-direction:column;
  transform:translateX(100%); visibility:hidden; box-shadow:none;
  transition:transform .45s var(--ease), visibility 0s .45s;
}
.drawer.is-on{ transform:none; visibility:visible; transition-delay:0s; box-shadow:-30px 0 60px -30px rgba(0,0,0,.3); }
.drawer{ padding-right:env(safe-area-inset-right); }
.drawer__head{
  display:flex; align-items:center; justify-content:space-between; padding:1.3rem 1.5rem;
  background:#fff; border-bottom:1px solid var(--line); color:var(--ink);
}
.drawer__head h2{ font-size:1.9rem; letter-spacing:.03em; }
.drawer__close{ width:44px; height:44px; margin-right:-2px; border-radius:999px; line-height:1; display:flex; align-items:center; justify-content:center; color:var(--ink); }
.drawer__body{ flex:1; overflow-y:auto; padding:1.2rem 1.5rem; overscroll-behavior:contain; }
.drawer__empty{ text-align:center; padding:3rem 1rem; color:var(--muted); }
.drawer__empty .serif{ font-size:1.7rem; color:var(--ink); margin-bottom:.5rem; }
.citem{ display:grid; grid-template-columns:64px 1fr auto; gap:.9rem; align-items:center; padding:.9rem 0; border-bottom:1px solid var(--line); }
.citem img{ width:64px; height:64px; object-fit:cover; border-radius:12px; }
.citem b{ display:block; font-size:.95rem; line-height:1.25; font-weight:600; }
.citem small{ display:block; color:var(--muted); font-size:.78rem; margin-top:.2rem; }
.citem__price{ text-align:right; }
.citem__price b{ font-family:var(--serif); font-weight:400; font-size:1.3rem; }
.citem__price s{ display:block; color:var(--muted); font-size:.72rem; }
.citem .citem__disc{ display:table; white-space:nowrap; }
.citem__disc{ display:inline-block; margin-top:.25rem; font-size:.7rem !important; font-weight:600; color:var(--green-ink) !important; background:var(--green-soft); border-radius:999px; padding:.15rem .5rem; }
.disc-tag{ white-space:nowrap; font-style:normal; font-size:.72rem; font-weight:600; color:var(--green-ink); background:var(--green-soft); border-radius:999px; padding:.1rem .45rem; margin-left:.3rem; }
.citem__rm{ font-size:.75rem; color:var(--muted); text-decoration:underline; margin-top:.2rem; }
.upsell{ margin-top:1.6rem; background:var(--bg-2); border-radius:var(--r-s); padding:1.2rem 1.3rem; }
.upsell h3{ font-size:1.3rem; margin-bottom:.2rem; }
.upsell > p{ font-size:.85rem; color:var(--muted); margin-bottom:.9rem; }
.uitem{ display:grid; grid-template-columns:48px 1fr auto; gap:.8rem; align-items:center; padding:.6rem 0; border-top:1px solid var(--line); }
.uitem img{ width:48px; height:48px; object-fit:cover; border-radius:10px; }
.uitem b{ display:block; font-size:.88rem; line-height:1.25; font-weight:600; }
.uitem small{ display:block; color:var(--muted); font-size:.75rem; }
.uitem .tag{ display:inline-block; color:var(--green-ink); font-weight:600; font-size:.72rem; }
.uitem .btn{ padding:.5rem .9rem; font-size:.78rem; }
.drawer__foot{ border-top:1px solid var(--line); padding:1.2rem 1.5rem calc(1.4rem + env(safe-area-inset-bottom)); background:#fff; }
.total__row{ display:flex; justify-content:space-between; gap:1rem; font-size:.88rem; color:var(--muted); padding:.25rem 0; }
.total__row--disc{ color:var(--green-ink); font-weight:600; }
.total{ display:flex; justify-content:space-between; align-items:baseline; margin:.4rem 0 .9rem; padding-top:.6rem; border-top:1px solid var(--line); }
.total b{ font-family:var(--serif); font-weight:400; font-size:2.2rem; color:var(--ink); }
.total small{ display:block; color:var(--muted); font-size:.75rem; }
.nudge{ font-size:.82rem; color:var(--ink); background:var(--green-soft); border-radius:var(--r-s); padding:.6rem .8rem; margin-bottom:.9rem; }
.nudge b{ font-weight:600; color:var(--green-ink); }
.summary li.disc-row{ color:var(--green-ink); font-weight:600; }

/* =====================================================
   PRIHLÁŠKA - dialóg (hidden=false, potom .is-open v ďalšom snímku)
   ===================================================== */
.modal{
  position:fixed; inset:0; z-index:300; background:rgba(29,31,29,.5); display:flex; align-items:center; justify-content:center;
  padding:clamp(.8rem, 3vw, 2rem); opacity:0; transition:opacity .24s;
}
.modal.is-open{ opacity:1; }
.modal__card{ position:relative; background:#fff; border-radius:var(--r); width:min(760px, 100%); max-height:92svh; overflow-y:auto; overscroll-behavior:contain; }
.modal__close{ position:absolute; top:.8rem; right:.9rem; width:40px; height:40px; border-radius:999px; line-height:1; display:flex; align-items:center; justify-content:center; background:#fff; z-index:2; }
.modal__body{ padding:2.2rem; }
.modal__body h2{ font-size:2.2rem; margin:.4rem 0 .5rem; }
.form{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1rem; margin-top:1.4rem; }
.form label{ display:grid; gap:.3rem; font-size:.8rem; font-weight:500; color:var(--muted); }
.form label.full{ grid-column:1 / -1; }
.form input, .form textarea, .form select{
  font:inherit; font-size:.95rem; padding:.7rem .95rem; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink);
  transition:border-color .2s;
}
.form input:focus, .form textarea:focus{ border-color:var(--green); outline:none; }
.form textarea{ min-height:90px; resize:vertical; }
.form .check{ grid-column:1 / -1; display:flex; gap:.6rem; align-items:flex-start; font-weight:400; }
.form .check input{ margin-top:.25rem; accent-color:var(--green); }
.form__actions{ grid-column:1 / -1; display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; margin-top:.4rem; }
/* objednávku sa nepodarilo odoslať: pokojné hlásenie pod tlačidlom */
/* scroll-margin: hlásenie sa pri scrollIntoView nezastaví tesne na spodnom okraji karty (desktop) */
.form__fail{ flex:0 0 100%; margin:0; font-size:.84rem; line-height:1.45; font-weight:500; color:#b9432f; scroll-margin-bottom:2.2rem; }
.form__fail:empty{ display:none; }
.form__fail a{ color:inherit; white-space:nowrap; }
/* skryté pole proti robotom - pre človeka neexistuje */
.form__hp{ position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; opacity:0; pointer-events:none; }
.summary{ background:var(--bg-2); border-radius:var(--r-s); padding:1rem 1.2rem; font-size:.9rem; }
.summary li{ display:flex; justify-content:space-between; gap:1rem; padding:.3rem 0; }
.summary li.total-row{ border-top:1px solid var(--line); margin-top:.4rem; padding-top:.6rem; font-weight:600; }
.done{ text-align:center; padding:2rem 1rem; }
.done .serif{ font-size:2.3rem; margin:.8rem 0 .6rem; }
.done p{ color:var(--muted); max-width:44ch; margin:0 auto 1.4rem; }
.done__ok{ width:64px; height:64px; border-radius:50%; background:var(--green-soft); color:var(--green-ink); display:inline-flex; align-items:center; justify-content:center; }
.done__svg{ width:64px; height:64px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:600px){
  .form{ grid-template-columns:1fr; } .modal__body{ padding:1.6rem 1.2rem; }
  .form input, .form textarea, .form select{ font-size:16px; }  /* iOS: žiadny zoom pri fokuse */
}

/* =====================================================
   PROFIL LEKTORA - podstránka
   ===================================================== */
.person-page{ padding-block:clamp(2rem, 4vw, 3.5rem) clamp(4rem, 8vw, 7rem); }
.person-page__grid{ display:grid; grid-template-columns:minmax(280px, 420px) 1fr; gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.person-page__photo{
  position:relative; aspect-ratio:4/5; border-radius:var(--r); overflow:hidden; background:var(--bg-2);
  box-shadow:var(--shadow-soft);
}
.person-page__photo img{ width:100%; height:100%; object-fit:cover; object-position:top; }
.person-page__photo .person__mono{ position:absolute; inset:0; }
.person-page__body h1{ font-size:clamp(2.4rem, 4.6vw, 4.2rem); margin:.8rem 0 .8rem; }
/* krstné meno decentne, priezvisko boldom (každé v .ln > .ln__in, medzera medzi nimi ostáva) */
.h1-given{ font-weight:400; color:var(--muted); }
/* meno v h1 prichádza z core už rozdelené: <span class="ln"><span class="ln__in">…</span></span> */
.person-page__body h1 .ln{ display:inline-block; vertical-align:top; }
.person-page__body h1 .ln__in{ display:inline-block; }
.h1-sur{ font-weight:700; letter-spacing:.02em; }
.person-page__tag{ font-family:var(--sans); font-weight:400; font-style:normal; font-size:1.3rem; line-height:1.4; color:var(--green-ink); margin-bottom:1.5rem; max-width:40ch; }
.person-page__p{ color:var(--muted); font-size:1.02rem; max-width:62ch; margin-bottom:.9rem; }
.facts-list{ margin-top:1.6rem; border-top:1px solid var(--line); max-width:62ch; }
.facts-list div{ display:grid; grid-template-columns:150px 1fr; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--line); font-size:.9rem; }
.facts-list dt{ font-family:var(--display); font-size:.95rem; letter-spacing:.14em; text-transform:uppercase; color:var(--green-ink); padding-top:.15em; }
.facts-list dd{ color:var(--muted); }
.chips{ margin-top:1.4rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.chips a, .chips span{ font-size:.85rem; font-weight:500; background:#fff; border:1px solid var(--line); border-radius:999px; padding:.5rem 1rem; }
/* videovizitka: poster + pilulka, prehráva Kino (media-engine); bez modulu sa otvorí v novej karte */
.vcard{
  position:relative; display:block; width:100%; max-width:62ch; margin:0 0 1.6rem; border-radius:14px; overflow:hidden;
  background:var(--bg-2); cursor:pointer; aspect-ratio:16/9;
}
.vcard img{ width:100%; height:100%; object-fit:cover; object-position:top; }
.vcard[data-ratio="9/16"]{ max-width:340px; }
.person-page__courses{ margin-top:clamp(3rem, 6vw, 5rem); }
@media (max-width:820px){
  .person-page__grid{ grid-template-columns:1fr; }
  .person-page__photo{ position:static; max-width:420px; }
  .facts-list div{ grid-template-columns:1fr; gap:.15rem; }
}

/* =====================================================
   PODSTRÁNKY (Stoma, O akadémii)
   ===================================================== */
.subpage{ padding-block:clamp(2rem, 4vw, 3.5rem) clamp(4rem, 8vw, 7rem); }
.page-title{ font-size:clamp(3rem, 6.4vw, 6rem); line-height:.9; }

/* zakladateľka */
.founder{ display:grid; grid-template-columns:minmax(280px, 400px) 1fr; gap:clamp(2rem, 5vw, 5rem); align-items:start; margin-top:clamp(1rem, 3vw, 2.5rem); }
.founder__photo{ position:relative; aspect-ratio:4/5; border-radius:var(--r); overflow:hidden; background:var(--bg-2); box-shadow:var(--shadow-soft); }
.founder__photo img{ width:100%; height:100%; object-fit:cover; object-position:top; }
.founder__photo figcaption{
  position:absolute; left:.9rem; right:.9rem; bottom:.9rem; background:rgba(255,255,255,.92); color:var(--ink);
  font-size:.78rem; font-weight:600; padding:.5rem .8rem; border-radius:999px; text-align:center;
}
.founder__body h2{ font-size:clamp(1.9rem, 3.4vw, 2.9rem); margin:.7rem 0 1.1rem; }
.founder__body p{ color:var(--muted); max-width:62ch; margin-bottom:.9rem; }
@media (max-width:820px){ .founder{ grid-template-columns:1fr; } .founder__photo{ max-width:420px; } }

/* bloky na podstránke O akadémii */
.about-block{ margin-top:clamp(3rem, 6vw, 5rem); }
.about-block .section__head{ margin-bottom:clamp(1.4rem, 3vw, 2.2rem); }
.timeline{ border-top:1px solid var(--line); }
.timeline li{ display:grid; grid-template-columns:110px 1fr; gap:1.5rem; padding:1.1rem 0; border-bottom:1px solid var(--line); align-items:baseline; }
.timeline b{ font-family:var(--display); font-weight:400; font-size:1.7rem; line-height:1; color:var(--green-ink); letter-spacing:.03em; }
.timeline span{ color:var(--muted); max-width:70ch; }
@media (max-width:560px){ .timeline li{ grid-template-columns:1fr; gap:.3rem; } }
.benefits--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .benefits--3{ grid-template-columns:1fr; } }
.about-venue{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem, 4vw, 3rem); align-items:start; }
/* fotka priestorov je v <span class="frame"> (rámik nesie pomer, radius aj tieň - záves modulu ho nemusí obaľovať) */
.about-venue .frame{ position:relative; display:block; width:100%; aspect-ratio:4/3; overflow:hidden; border-radius:var(--r); box-shadow:var(--shadow-soft); background:var(--bg-2); }
.about-venue .frame img{ width:100%; height:100%; object-fit:cover; }
.about-venue p{ color:var(--muted); margin-bottom:1.2rem; }
.facts--light{ margin-bottom:1.4rem; }
.facts--light .fact{ background:var(--bg-2); box-shadow:none; }
.facts--light .fact b{ font-size:2.1rem; }
@media (max-width:820px){ .about-venue{ grid-template-columns:1fr; } }

/* =====================================================
   STOMA - výhradné zastúpenie nástrojov
   ===================================================== */
.stoma{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem, 5vw, 5rem); align-items:center;
  background:var(--bg-2); border-radius:calc(var(--r) * 1.2); padding:clamp(1.6rem, 4vw, 3.5rem);
}
.stoma__visual{ display:grid; gap:1rem; }
.stoma__logo{ background:#fff; border-radius:var(--r-s); padding:clamp(1.4rem, 3vw, 2.4rem) clamp(1.6rem, 4vw, 3rem); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-soft); }
.stoma__logo img{ width:100%; max-width:320px; height:auto; }
.stoma__photo{ width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:var(--r-s); }
.stoma__text h2{ margin:.8rem 0 1.2rem; font-size:clamp(2rem, 3.6vw, 3rem); }
.stoma__text p{ color:var(--muted); max-width:58ch; margin-bottom:.9rem; }
.stoma__text em{ font-style:italic; color:var(--ink); }
.stoma__facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.6rem 0; }
.stoma__facts li{ background:#fff; border-radius:var(--r-s); padding:.9rem 1rem .8rem; box-shadow:var(--shadow-soft); }
.stoma__facts b{ display:block; font-family:var(--serif); font-weight:400; font-size:2.1rem; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stoma__facts span{ font-size:.8rem; color:var(--muted); }
.stoma__actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.stoma__contact{ margin-top:1.1rem; font-size:.85rem; }
.stoma__contact a{ font-weight:600; color:var(--green-ink); }
@media (max-width:900px){
  .stoma{ grid-template-columns:1fr; }
}
@media (max-width:520px){ .stoma__facts{ grid-template-columns:1fr 1fr; } }

/* =====================================================
   TYPOGRAFIA MIEN - tituly regular, meno bold
   ===================================================== */
.nm{ font-weight:700; }
.nm-deg{ font-weight:400; color:var(--muted); }
.person-page__deg{
  font-family:var(--sans); font-weight:400; font-size:1.05rem; letter-spacing:.02em; text-transform:none;
  color:var(--muted); margin-top:.9rem;
}
.lect-name{ display:block; font-weight:400; }
.founder__photo figcaption b{ font-weight:700; }
.contact__list strong{ font-weight:700; }

/* =====================================================
   KINO (galéria) - koreň; vnútro a vzhľad rieši media-engine
   ===================================================== */
.kino{ position:fixed; inset:0; z-index:320; }
.kino[hidden]{ display:none; }
.kino__track{ overscroll-behavior:contain; touch-action:pan-x pinch-zoom; }

/* =====================================================
   HOVER - iba presné ukazovadlá (na dotyku sa nič „nelepí“)
   ===================================================== */
@media (hover:hover) and (pointer:fine){
  .btn:hover{ transform:translateY(-2px); background:#000; }
  .btn--lime:hover{ filter:brightness(1.07); box-shadow:0 12px 26px -12px rgba(58,170,55,.55); }
  .btn--green:hover{ filter:brightness(1.07); }
  .btn--outline:hover{ background:var(--grad); border-color:transparent; color:#fff; }
  .btn--ghost:hover{ border-color:var(--ink); background:var(--ink); color:#fff; }
  .btn--light:hover{ background:var(--bg-2); }
  .link:hover{ color:var(--green-ink); }
  .top__nav a:hover{ color:var(--ink); }
  .top__nav a:hover::after{ transform:scaleX(1); }
  .cartbtn:hover{ background:var(--grad); color:#fff; border-color:transparent; }
  .cartbtn:hover .cartbtn__n{ background:#fff; color:var(--green-ink); }
  .filter:hover{ color:var(--green-ink); }
  .tile:hover{ transform:translateY(-6px) scale(1.01); box-shadow:0 0 0 1.5px var(--green), 0 0 0 6px rgba(58,170,55,.12), var(--shadow); }
  .tile:hover .tile__media img{ transform:scale(1.05); }
  .fact:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
  .person:hover .person__photo{ box-shadow:0 0 0 1.5px var(--green), 0 0 0 6px rgba(58,170,55,.12), var(--shadow-soft); transform:translateY(-4px); }
  .person:hover .person__photo img{ transform:scale(1.05); }
  .contact__list a:hover{ color:var(--green-ink); }
  .footer__nav a:hover{ color:var(--green-ink); }
  .footer__social a:hover{ color:var(--green-ink); transform:translateY(-2px); }
  .back:hover{ color:var(--green-ink); border-color:var(--green); transform:translateX(-2px); }
  .benefit:hover{ transform:translateY(-3px); }
  .lecturer:hover{ border-color:var(--green); transform:translateY(-2px); box-shadow:0 0 0 4px rgba(58,170,55,.1); }
  .variant:hover{ background:#eef1ec; }
  .drawer__close:hover{ background:var(--bg-2); }
  .citem__rm:hover{ color:#a33; }
  .modal__close:hover{ background:var(--bg-2); }
  .chips a:hover{ border-color:var(--green); color:var(--green-ink); }
}
@media (hover:hover) and (pointer:fine) and (max-width:900px){
  .cartbtn:hover{ background:var(--bg-2); color:var(--ink); }
  .cartbtn:hover .cartbtn__n{ background:var(--grad); color:#fff; }
}

/* =====================================================
   ANIMÁCIE - všetky skryté štartové stavy iba pod html.motion
   (.reveal: is-in = odkryté; is-done pridá core 900 ms po odkrytí,
   potom platia vlastné prechody komponentu, napr. hover dlaždice)
   ===================================================== */
@keyframes viewIn{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
.view-in{ animation:viewIn .55s var(--ease) both; }
.motion .reveal:not(.is-done){ transition:opacity .8s var(--ease), transform .8s var(--ease); }
.motion .reveal:not(.is-in){ opacity:0; transform:translateY(22px); }
.d1{ transition-delay:.08s; } .d2{ transition-delay:.16s; } .d3{ transition-delay:.24s; }
.toast{
  position:fixed; left:50%; bottom:calc(1.5rem + env(safe-area-inset-bottom)); transform:translate(-50%, 20px); z-index:400;
  background:var(--ink); color:#fff; padding:.8rem 1.4rem; border-radius:999px; font-size:.9rem; font-weight:500;
  box-shadow:var(--shadow-soft);
  opacity:0; pointer-events:none; transition:opacity .3s ease, transform .3s var(--ease);
}
.toast.is-on{ opacity:1; transform:translate(-50%, 0); }
body.has-stickybar .toast{ bottom:calc(92px + env(safe-area-inset-bottom)); }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  .motion .reveal{ opacity:1 !important; transform:none !important; }
  .ln__in, [data-curtain] *{ transform:none !important; }
  .tile--enter{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}

.buybox__soldnote b{ color:var(--ink); font-weight:600; }
