/* ==========================================================================
   PRESTIGE FYZIO — Design system
   Brand: green #8EC63E · black · graphite #474747
   Type:  Rubik (display / headings) + Roboto (body)
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  /* brand */
  --green:        #8EC63E;
  --green-600:    #7BB22F;
  --green-300:    #B7E06F;
  --green-soft:   rgba(142,198,62,.14);
  --green-glow:   rgba(142,198,62,.35);

  /* neutrals */
  --ink:          #0B0B0C;
  --ink-2:        #141517;
  --ink-3:        #1D1F22;
  --graphite:     #474747;
  --slate:        #5B5F63;
  --mute:         #6E7378;
  --line:         #E4E6E3;
  --line-dark:    rgba(255,255,255,.10);
  --mist:         #F3F4F1;
  --mist-2:       #E8EAE5;
  --paper:        #FFFFFF;

  /* type */
  --font-display: "Rubik", "Helvetica Neue", Arial, sans-serif;
  --font-body:    "Roboto", "Helvetica Neue", Arial, sans-serif;

  --fs-hero:  clamp(2.6rem, 6.4vw, 5.6rem);
  --fs-h1:    clamp(2.1rem, 4.6vw, 3.9rem);
  --fs-h2:    clamp(1.7rem, 3.1vw, 2.7rem);
  --fs-h3:    clamp(1.25rem, 1.9vw, 1.6rem);
  --fs-lead:  clamp(1.02rem, 1.15vw, 1.16rem);
  --fs-body:  1rem;
  --fs-sm:    .875rem;
  --fs-xs:    .76rem;

  /* space */
  --shell:      1220px;
  --shell-nar:  920px;
  --gutter:     clamp(18px, 4vw, 40px);
  --section-y:  clamp(70px, 8.5vw, 132px);

  /* shape */
  --r-xs: 8px;
  --r-sm: 12px;
  --r:    18px;
  --r-lg: 26px;
  --r-xl: 36px;
  --r-pill: 999px;

  /* elevation */
  --sh-1: 0 1px 2px rgba(11,11,12,.05), 0 4px 14px rgba(11,11,12,.05);
  --sh-2: 0 2px 6px rgba(11,11,12,.06), 0 14px 40px rgba(11,11,12,.09);
  --sh-3: 0 8px 20px rgba(11,11,12,.10), 0 34px 80px rgba(11,11,12,.18);

  /* motion */
  --ease: cubic-bezier(.22,.68,.28,1);
  --dur:  .45s;

  --header-h: 84px;
}

/* ---------- 2. Reset & base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.is-locked{ overflow:hidden; }
img,video{ max-width:100%; display:block; }
figure{ margin:0; }
a{ color:inherit; text-decoration:none; }
button,input,textarea,select{ font:inherit; color:inherit; }
h1,h2,h3,h4,h5{ font-family:var(--font-display); font-weight:800; line-height:1.06; letter-spacing:-.022em; margin:0; }
p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }
strong,b{ font-weight:700; color:inherit; }
::selection{ background:var(--green); color:#0B0B0C; }
:focus-visible{ outline:2px solid var(--green); outline-offset:3px; border-radius:4px; }

/* ---------- 3. Layout primitives ---------- */
.shell{ width:100%; max-width:var(--shell); margin-inline:auto; padding-inline:var(--gutter); }
.shell--narrow{ max-width:var(--shell-nar); }
.section{ padding-block:var(--section-y); position:relative; }
.section--tight{ padding-block:clamp(48px,6vw,84px); }
.section--dark{ background:var(--ink); color:#fff; }
.section--graphite{ background:var(--graphite); color:#fff; }
.section--mist{ background:var(--mist); }
.section--green{ background:var(--green); color:var(--ink); }
.stack-sm > * + *{ margin-top:.55rem; }
.center{ text-align:center; }

/* ---------- 4. Type helpers ---------- */
.eyebrow{
  font-family:var(--font-display);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--green-600);
  display:inline-flex; align-items:center; gap:.6rem;
  margin:0 0 1.1rem;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--green); border-radius:2px; }
.section--dark .eyebrow,.section--graphite .eyebrow{ color:var(--green); }
.section--green .eyebrow{ color:rgba(11,11,12,.62); }
.section--green .eyebrow::before{ background:rgba(11,11,12,.5); }

.h-display{ font-size:var(--fs-hero); }
.h1{ font-size:var(--fs-h1); }
.h2{ font-size:var(--fs-h2); }
.h3{ font-size:var(--fs-h3); letter-spacing:-.012em; }
.upper{ text-transform:uppercase; }
.lead{ font-size:var(--fs-lead); color:var(--slate); line-height:1.72; }
.section--dark .lead,.section--graphite .lead{ color:rgba(255,255,255,.72); }
.txt-green{ color:var(--green); }
.muted{ color:var(--mute); }

/* Section title with rule underneath (matches original) */
.title-block{ text-align:center; margin-bottom:clamp(38px,5vw,64px); }
.title-block .rule{
  width:170px; height:2px; margin:26px auto 0;
  background:linear-gradient(90deg,transparent,var(--green),transparent);
  border-radius:2px;
}
.title-block p{ margin-top:18px; }

/* ---------- 5. Buttons ---------- */
.btn{
  --btn-bg:var(--green); --btn-fg:#0B0B0C; --btn-bd:var(--green);
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.9rem; min-height:52px;
  font-family:var(--font-display); font-size:.79rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase; text-align:center;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1.5px solid var(--btn-bd); border-radius:var(--r-pill);
  cursor:pointer; overflow:hidden; isolation:isolate;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
             background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.btn::after{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:radial-gradient(120% 160% at 50% 120%, rgba(255,255,255,.45), transparent 60%);
  opacity:0; transition:opacity .35s var(--ease);
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 12px 30px var(--green-glow); }
.btn:hover::after{ opacity:1; }
.btn:active{ transform:translateY(0); }
.btn .ico{ width:16px; height:16px; flex:none; transition:transform .35s var(--ease); }
.btn:hover .ico{ transform:translateX(3px); }

.btn--ghost{ --btn-bg:transparent; --btn-fg:#0B0B0C; --btn-bd:rgba(11,11,12,.28); }
.btn--ghost:hover{ --btn-bg:#0B0B0C; --btn-fg:#fff; --btn-bd:#0B0B0C; box-shadow:0 12px 30px rgba(11,11,12,.22); }
.btn--ghost-light{ --btn-bg:transparent; --btn-fg:#fff; --btn-bd:rgba(255,255,255,.4); }
.btn--ghost-light:hover{ --btn-bg:#fff; --btn-fg:#0B0B0C; --btn-bd:#fff; box-shadow:0 12px 30px rgba(0,0,0,.3); }
.btn--dark{ --btn-bg:#0B0B0C; --btn-fg:#fff; --btn-bd:#0B0B0C; }
.btn--dark:hover{ box-shadow:0 12px 30px rgba(11,11,12,.3); }
.btn--light{ --btn-bg:#fff; --btn-fg:#0B0B0C; --btn-bd:#fff; }
.btn--light:hover{ box-shadow:0 12px 30px rgba(0,0,0,.25); }
.btn--sm{ padding:.7rem 1.3rem; min-height:42px; font-size:.72rem; }
.btn--wide{ width:100%; }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
.btn-row--center{ justify-content:center; }

/* skip link */
.skip{
  position:absolute; left:-9999px; top:0; z-index:300;
  padding:.85rem 1.4rem; background:var(--green); color:var(--ink);
  font-family:var(--font-display); font-weight:700; font-size:.8rem;
  border-radius:0 0 var(--r-sm) 0;
}
.skip:focus{ left:0; }

/* ---------- 6. Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:120;
  height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(20,21,23,.72);
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:height .35s var(--ease), background-color .35s var(--ease), box-shadow .35s var(--ease);
}
.site-header.is-stuck{ height:70px; background:rgba(11,11,12,.9); box-shadow:0 10px 40px rgba(0,0,0,.28); }
.site-header .shell{ display:flex; align-items:center; justify-content:space-between; gap:24px; }

.brand{ display:flex; align-items:center; flex:none; }
.brand-logo{
  height:clamp(34px,3.2vw,42px); width:auto; display:block;
  transition:height .35s var(--ease), transform .35s var(--ease), filter .35s var(--ease);
}
.brand:hover .brand-logo{ transform:translateY(-1px); }
.site-header.is-stuck .brand-logo{ height:clamp(30px,2.6vw,34px); }
/* na svetlom/zelenom pozadí drží logo čitateľnosť vďaka jemnému tieňu */
.brand-logo{ filter:drop-shadow(0 1px 2px rgba(0,0,0,.35)); }

.nav{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.nav a{
  position:relative; font-family:var(--font-display); font-weight:500;
  font-size:.9rem; color:rgba(255,255,255,.82); padding:.4rem 0;
  transition:color .28s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--green); border-radius:2px;
  transform:scaleX(0); transform-origin:right; transition:transform .38s var(--ease);
}
.nav a:hover{ color:#fff; }
.nav a:hover::after{ transform:scaleX(1); transform-origin:left; }
.nav a[aria-current="page"]{ color:#fff; font-weight:600; }
.nav a[aria-current="page"]::after{ transform:scaleX(1); }

.nav-cta{ display:flex; align-items:center; gap:12px; flex:none; }

.burger{
  display:none; width:44px; height:44px; flex:none; place-items:center;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r-sm); cursor:pointer;
}
.burger span{ display:block; width:19px; height:1.8px; background:#fff; border-radius:2px; transition:transform .35s var(--ease), opacity .2s; }
.burger span + span{ margin-top:5px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.8px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.8px) rotate(-45deg); }

/* mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:115;
  background:rgba(11,11,12,.97);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:calc(var(--header-h) + 24px) var(--gutter) 40px;
  display:flex; flex-direction:column; gap:6px;
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
  overflow-y:auto;
}
.drawer.is-open{ opacity:1; visibility:visible; transform:none; }
.drawer a{
  font-family:var(--font-display); font-weight:600; font-size:1.55rem;
  color:#fff; padding:.62rem 0; border-bottom:1px solid rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:space-between;
}
.drawer a[aria-current="page"]{ color:var(--green); }
.drawer .btn{ margin-top:26px; }
.drawer-foot{ margin-top:auto; padding-top:32px; color:rgba(255,255,255,.55); font-size:var(--fs-sm); }
.drawer-foot a{ font-size:inherit; font-family:var(--font-body); border:0; padding:.15rem 0; display:block; color:rgba(255,255,255,.7); }

/* ---------- 7. Hero ---------- */
.hero{
  position:relative; min-height:min(94vh,860px);
  display:flex; align-items:flex-end;
  padding-top:calc(var(--header-h) + 60px); padding-bottom:clamp(56px,8vw,110px);
  background:var(--ink); color:#fff; overflow:hidden; isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__media img{ width:100%; height:100%; object-fit:cover; }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,11,12,.62) 0%, rgba(11,11,12,.34) 42%, rgba(11,11,12,.9) 100%),
    linear-gradient(96deg, rgba(11,11,12,.82) 0%, rgba(11,11,12,.18) 70%);
}
.hero__glow{
  position:absolute; z-index:-1; width:min(720px,80vw); aspect-ratio:1;
  right:-14%; top:2%; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, var(--green-glow) 0%, transparent 62%);
  filter:blur(30px); opacity:.32; mix-blend-mode:screen;
}
.hero__inner{ position:relative; max-width:960px; }
.hero h1{ font-size:var(--fs-hero); text-transform:uppercase; letter-spacing:-.03em; }
.hero h1 .accent{ color:var(--green); }
.hero__inner > *{ margin-bottom:0; }
.hero__inner .eyebrow{ color:var(--green); }
.hero .btn-row{ margin-top:clamp(28px,3.4vw,44px); }

.hero--page{ min-height:auto; padding-top:calc(var(--header-h) + clamp(64px,9vw,120px)); padding-bottom:clamp(64px,9vw,120px); align-items:center; }
.hero--page h1{ font-size:var(--fs-h1); text-transform:uppercase; }
.hero--page .lead{ margin-top:22px; max-width:64ch; }

.scroll-cue{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-family:var(--font-display); font-size:.62rem; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(255,255,255,.5);
}
.scroll-cue i{ display:block; width:1px; height:38px; background:linear-gradient(180deg,var(--green),transparent); animation:cue 2.1s var(--ease) infinite; }
@keyframes cue{ 0%{transform:scaleY(.2);transform-origin:top;opacity:0}40%{opacity:1}100%{transform:scaleY(1);transform-origin:top;opacity:0} }

/* ---------- 8. Statement band ---------- */
.statement{
  background:var(--ink); color:#fff; text-align:center;
  padding-block:clamp(56px,7vw,104px); position:relative; overflow:hidden;
}
.statement::before{
  content:""; position:absolute; left:50%; top:-40%; translate:-50% 0;
  width:min(900px,110vw); aspect-ratio:2/1; border-radius:50%;
  background:radial-gradient(ellipse, var(--green-soft), transparent 65%);
}
.statement h2{
  position:relative; font-size:var(--fs-h2); color:var(--green);
  text-transform:uppercase; max-width:34ch; margin-inline:auto; line-height:1.14;
  text-wrap:balance;
}
.statement p{
  position:relative; margin:22px auto 0; max-width:56ch;
  font-family:var(--font-display); font-weight:600; font-size:.86rem;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.9);
}

/* ---------- 9. Choice cards (aká služba) ---------- */
.choice-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(18px,2.4vw,28px); }
.choice{
  position:relative; background:var(--paper); border:1px solid rgba(11,11,12,.07);
  border-radius:var(--r-lg); padding:clamp(28px,3.4vw,44px); text-align:center;
  box-shadow:0 2px 4px rgba(11,11,12,.04), 0 10px 28px rgba(11,11,12,.07);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
  overflow:hidden;
}
.choice::before{
  content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(90deg,var(--green),var(--green-300));
  transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease);
}
.choice:hover{ transform:translateY(-6px); box-shadow:0 6px 12px rgba(11,11,12,.07), 0 26px 60px rgba(11,11,12,.15); border-color:transparent; }
.choice:hover::before{ transform:scaleX(1); }
.choice__num{
  font-family:var(--font-display); font-weight:800; font-size:.72rem; letter-spacing:.2em;
  color:var(--green-600); display:block; margin-bottom:14px;
}
.choice h3{ font-size:var(--fs-h3); text-transform:uppercase; }
.choice__cond{ margin-top:16px; font-weight:700; color:var(--ink); }
.choice__list{ list-style:none; margin:22px 0 0; padding:20px 0 0; border-top:1px solid var(--line); color:var(--slate); }
.choice__list li{ padding:.3rem 0; }

/* ---------- 10. Philosophy split ---------- */
.split{
  display:grid; gap:clamp(30px,4.5vw,72px);
  grid-template-columns:minmax(0,1fr) minmax(0,.92fr); align-items:center;
}
.split--reverse .split__media{ order:-1; }
.split__body h2{ font-size:var(--fs-h1); text-transform:uppercase; margin-bottom:26px; }
.split__body p{ color:var(--slate); }
.split__body strong{ color:var(--ink); }
.split__media figure{ margin:0; }
.split__media .btn{ margin-top:22px; }

/* ---------- 11. Media frame + placeholder ---------- */
.frame{
  position:relative; overflow:hidden; border-radius:var(--r-lg);
  background:var(--mist-2); box-shadow:var(--sh-2);
}
.frame img,.frame video{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.frame--4x3{ aspect-ratio:4/3; }
.frame--3x2{ aspect-ratio:3/2; }
.frame--1x1{ aspect-ratio:1/1; }
.frame--4x5{ aspect-ratio:4/5; }
.frame--16x9{ aspect-ratio:16/9; }
.frame--zoom:hover img{ transform:scale(1.05); }

/* Placeholder: elegant branded slot until a real photo is dropped in */
.ph{
  position:relative; display:grid; place-items:center; overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(11,11,12,.035) 0 1px, transparent 1px 11px),
    linear-gradient(150deg,var(--mist) 0%, var(--mist-2) 100%);
  border:1px dashed rgba(11,11,12,.16); border-radius:var(--r-lg);
  color:var(--mute); text-align:center; padding:22px;
}
.ph--dark{
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 1px, transparent 1px 11px),
    linear-gradient(150deg,#1B1D20 0%, #0E0F11 100%);
  border-color:rgba(255,255,255,.14); color:rgba(255,255,255,.5);
}
.ph__mark{
  font-family:var(--font-display); font-weight:800; font-size:.68rem; letter-spacing:.26em;
  text-transform:uppercase; color:var(--green-600); display:block; margin-bottom:8px;
}
.ph--dark .ph__mark{ color:var(--green); }
.ph__name{ font-family:var(--font-body); font-size:var(--fs-xs); letter-spacing:.04em; word-break:break-all; opacity:.75; }
.ph--hero{ position:absolute; inset:0; border:0; border-radius:0; }

/* ---------- 12. Procedure list ---------- */
.proc{
  display:grid; grid-template-columns:clamp(150px,18vw,230px) minmax(0,1fr);
  gap:clamp(20px,3vw,44px); align-items:start;
  padding-block:clamp(28px,3.4vw,46px);
  border-top:1px solid var(--line-dark);
}
.proc:first-of-type{ border-top:0; padding-top:0; }
.proc__media{ border-radius:var(--r); overflow:hidden; aspect-ratio:1/1; }
.proc__head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.4rem .9rem; margin-bottom:14px; }
.proc h3{ font-size:clamp(1.2rem,2.1vw,1.72rem); text-transform:uppercase; }
.proc__price{
  font-family:var(--font-display); font-weight:700; font-size:clamp(1rem,1.6vw,1.28rem);
  color:var(--green); white-space:nowrap;
}
.proc__price::before{ content:"| "; color:rgba(255,255,255,.35); font-weight:400; }
.proc p{ color:rgba(255,255,255,.72); max-width:72ch; }
.proc strong{ color:#fff; }

/* ---------- 13. Price list ---------- */
.pricelist{ max-width:760px; margin-inline:auto; }
.pricelist__head{ text-align:center; margin-bottom:clamp(32px,4vw,54px); }
.pricelist__head h2{ font-size:var(--fs-h1); text-transform:uppercase; color:#fff; }
.pricelist__head p{
  margin-top:.4rem; font-family:var(--font-display); font-weight:700;
  font-size:clamp(1.05rem,1.9vw,1.5rem); color:#fff; letter-spacing:-.01em;
}
.price-row{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:.95rem 0; border-bottom:1px solid rgba(11,11,12,.14);
  transition:padding-inline .35s var(--ease), background-color .35s var(--ease);
}
.price-row:first-child{ border-top:1px solid rgba(11,11,12,.14); }
.price-row:hover{ background:rgba(255,255,255,.24); padding-inline:14px; border-radius:var(--r-xs); }
.price-row__name{ font-family:var(--font-display); font-weight:700; letter-spacing:-.005em; }
.price-row__dots{ flex:1 1 auto; height:1px; margin-bottom:4px; border-bottom:1px dotted rgba(11,11,12,.32); min-width:20px; }
.price-row__val{ font-family:var(--font-body); font-size:var(--fs-sm); color:rgba(11,11,12,.66); white-space:nowrap; }

/* ---------- 14. Team ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(20px,2.6vw,34px); }
.member{
  display:flex; flex-direction:column; text-align:center;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  overflow:hidden; transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.member:hover{ transform:translateY(-6px); box-shadow:var(--sh-3); border-color:transparent; }
.member.is-clickable{ cursor:pointer; }
.member.is-clickable:hover .btn{ background:var(--green); color:var(--ink); border-color:var(--green); }
.member__media{ position:relative; aspect-ratio:4/5; background:var(--ink); overflow:hidden; }
.member__media img{ width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform .8s var(--ease); }
.member:hover .member__media img{ transform:scale(1.04); }
.member__media::after{
  content:""; position:absolute; inset:auto 0 0 0; height:42%;
  background:linear-gradient(180deg,transparent,rgba(11,11,12,.75));
  opacity:.85;
}
.member__role{
  position:absolute; left:16px; bottom:14px; z-index:2;
  font-family:var(--font-display); font-weight:700; font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--green);
}
.member__body{ padding:clamp(20px,2.4vw,28px); display:flex; flex-direction:column; flex:1; }
.member__name{ font-size:1.15rem; color:var(--green-600); letter-spacing:-.01em; }
.member__tag{ margin-top:12px; color:var(--slate); font-size:var(--fs-sm); line-height:1.62; flex:1; }
.member__body .btn{ margin-top:22px; align-self:center; }

/* ---------- 15. Modal (viac info) ---------- */
.modal{
  position:fixed; inset:0; z-index:200; display:grid; place-items:center;
  padding:clamp(12px,3vw,40px);
  opacity:0; visibility:hidden; transition:opacity .32s var(--ease), visibility .32s;
}
.modal.is-open{ opacity:1; visibility:visible; }
.modal__backdrop{ position:absolute; inset:0; background:rgba(6,6,7,.78); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border:0; padding:0; cursor:pointer; }
.modal__panel{
  position:relative; width:min(1080px,100%); max-height:min(90vh,940px);
  background:var(--ink-2); color:#fff; border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-xl); overflow:hidden auto; overscroll-behavior:contain;
  box-shadow:0 40px 120px rgba(0,0,0,.6);
  transform:translateY(16px) scale(.985); opacity:0;
  transition:transform .42s var(--ease), opacity .42s var(--ease);
}
.modal.is-open .modal__panel{ transform:none; opacity:1; }
.modal__close{
  position:sticky; float:right; top:16px; right:16px; z-index:5; margin-right:16px;
  width:42px; height:42px; display:grid; place-items:center;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16);
  border-radius:50%; color:#fff; cursor:pointer;
  transition:background-color .3s var(--ease), transform .3s var(--ease);
}
.modal__close:hover{ background:var(--green); color:var(--ink); transform:rotate(90deg); }
.modal__head{ padding:clamp(30px,4vw,52px) clamp(24px,4vw,58px) clamp(22px,3vw,34px); text-align:center; border-bottom:1px solid rgba(255,255,255,.09); }
.modal__photo{
  width:clamp(128px,17vw,168px); aspect-ratio:1; margin:0 auto 22px;
  border-radius:50%; overflow:hidden; background:#000;
  border:2px solid rgba(142,198,62,.5); box-shadow:0 0 0 8px rgba(142,198,62,.08);
}
.modal__photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.modal__name{ font-size:clamp(1.4rem,2.6vw,2rem); }
.modal__role{
  margin-top:10px; font-family:var(--font-display); font-weight:700; font-size:.7rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--green);
}
.modal__contact{ margin-top:18px; display:flex; flex-wrap:wrap; gap:10px 26px; justify-content:center; font-size:var(--fs-sm); color:rgba(255,255,255,.78); }
.modal__contact a{ display:inline-flex; align-items:center; gap:.5rem; transition:color .28s var(--ease); }
.modal__contact a:hover{ color:var(--green); }
.modal__contact svg{ width:15px; height:15px; color:var(--green); flex:none; }
.modal__cols{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:clamp(26px,3.6vw,54px); padding:clamp(28px,4vw,52px) clamp(24px,4vw,58px) clamp(34px,4.5vw,58px);
}
.modal h4{
  font-family:var(--font-display); font-weight:700; font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--green); margin:0 0 18px; padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.modal__cols p{ color:rgba(255,255,255,.74); font-size:.95rem; line-height:1.75; }
.modal__cols strong{ color:#fff; }
.modal__cols ul{ list-style:none; margin:0 0 1.15em; padding:0; }
.modal__cols ul li{ position:relative; padding:.24rem 0 .24rem 1.1rem; color:rgba(255,255,255,.74); font-size:.95rem; line-height:1.7; }
.modal__cols ul li::before{ content:""; position:absolute; left:0; top:.86em; width:5px; height:5px; border-radius:50%; background:var(--green); }
.modal__cols ul.plain li{ padding-left:0; }
.modal__cols ul.plain li::before{ display:none; }
.modal__cols .sub{ margin-top:1.1em; }

/* ---------- 16. Gallery ---------- */
.gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:clamp(12px,1.6vw,20px); }
.gallery__item{
  position:relative; aspect-ratio:4/3; border-radius:var(--r); overflow:hidden;
  background:var(--mist-2); border:0; padding:0; cursor:zoom-in; display:block;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gallery__item::after{
  content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(11,11,12,.55));
  opacity:0; transition:opacity .4s var(--ease);
}
.gallery__item:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__item:hover::after{ opacity:1; }
.gallery__zoom{
  position:absolute; right:14px; bottom:14px; z-index:2;
  width:36px; height:36px; display:grid; place-items:center;
  border-radius:50%; background:var(--green); color:var(--ink);
  opacity:0; transform:translateY(8px); transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.gallery__item:hover .gallery__zoom{ opacity:1; transform:none; }
.gallery__item.is-ph{ cursor:default; }
.gallery__item.is-ph::after,.gallery__item.is-ph .gallery__zoom{ display:none; }

.lightbox{
  position:fixed; inset:0; z-index:210; display:grid; place-items:center; padding:clamp(14px,4vw,50px);
  background:rgba(6,6,7,.94); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{ max-width:100%; max-height:86vh; border-radius:var(--r); box-shadow:0 30px 100px rgba(0,0,0,.7); }
.lightbox__btn{
  position:absolute; width:52px; height:52px; display:grid; place-items:center;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  border-radius:50%; color:#fff; cursor:pointer; transition:background-color .3s var(--ease);
}
.lightbox__btn:hover{ background:var(--green); color:var(--ink); }
.lightbox__close{ top:clamp(14px,3vw,32px); right:clamp(14px,3vw,32px); }
.lightbox__prev{ left:clamp(10px,2.4vw,32px); top:50%; translate:0 -50%; }
.lightbox__next{ right:clamp(10px,2.4vw,32px); top:50%; translate:0 -50%; }
.lightbox__count{
  position:absolute; bottom:clamp(14px,3vw,30px); left:50%; translate:-50% 0;
  font-family:var(--font-display); font-size:.75rem; letter-spacing:.18em; color:rgba(255,255,255,.6);
}

/* ---------- 17. CTA band ---------- */
.cta-band{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--ink); color:#fff; text-align:center;
  padding-block:clamp(80px,10vw,168px);
}
.cta-band__media{ position:absolute; inset:0; z-index:-2; }
.cta-band__media img{ width:100%; height:100%; object-fit:cover; }
.cta-band__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(11,11,12,.78),rgba(11,11,12,.62)),
             radial-gradient(80% 100% at 50% 100%, var(--green-soft), transparent 70%);
}
.cta-band h2{ font-size:var(--fs-h1); text-transform:uppercase; }
.cta-band p{ margin:20px auto 0; max-width:52ch; color:rgba(255,255,255,.75); }
.cta-band .btn-row{ margin-top:clamp(28px,3.4vw,42px); }

/* ---------- 18. Contact info cards ---------- */
.info-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:clamp(16px,2.2vw,26px); }
.info-card{
  background:rgba(255,255,255,.42); border:1px solid rgba(11,11,12,.1);
  border-radius:var(--r-lg); padding:clamp(26px,3vw,38px); text-align:center;
  transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.info-card:hover{ transform:translateY(-4px); background:rgba(255,255,255,.72); box-shadow:0 20px 50px rgba(11,11,12,.12); }
.info-card__ico{
  width:52px; height:52px; margin:0 auto 18px; display:grid; place-items:center;
  background:var(--ink); color:var(--green); border-radius:50%;
}
.info-card__ico svg{ width:21px; height:21px; }
.info-card__label{
  font-family:var(--font-display); font-weight:700; font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase; color:rgba(11,11,12,.55); margin-bottom:8px;
}
.info-card__value{ font-family:var(--font-display); font-weight:600; font-size:1.05rem; letter-spacing:-.01em; }
.info-card a.info-card__value{ transition:opacity .28s var(--ease); }
.info-card a.info-card__value:hover{ opacity:.65; }

.hours{ max-width:640px; margin:clamp(40px,5vw,64px) auto 0; text-align:center; padding-top:clamp(36px,4.4vw,56px); border-top:1px solid rgba(11,11,12,.16); }
.hours h2{ font-size:var(--fs-h2); text-transform:uppercase; margin-bottom:20px; }
.hours__row{ font-family:var(--font-display); font-weight:700; font-size:clamp(1rem,1.7vw,1.24rem); }
.hours__note{ margin-top:12px; color:rgba(11,11,12,.66); }

/* ---------- 19. Form ---------- */
.form-wrap{ max-width:720px; margin-inline:auto; }
.form{ display:grid; gap:18px; margin-top:clamp(28px,3.4vw,42px); }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-family:var(--font-display); font-weight:600; font-size:.82rem; letter-spacing:.01em; }
.field .req{ color:var(--green-600); margin-left:.2rem; }
.field input,.field textarea{
  width:100%; padding:.95rem 1.15rem;
  background:var(--paper); border:1.5px solid var(--line); border-radius:var(--r-sm);
  font-size:.98rem; transition:border-color .3s var(--ease), box-shadow .3s var(--ease), background-color .3s var(--ease);
}
.field textarea{ min-height:150px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:#A7ABAE; }
.field input:focus,.field textarea:focus{ outline:0; border-color:var(--green); box-shadow:0 0 0 4px var(--green-soft); }
.form__note{ font-size:var(--fs-xs); color:var(--mute); }
.form .btn{ justify-self:start; }
.captcha-slot{
  display:flex; align-items:center; gap:14px; padding:16px 18px;
  border:1px dashed rgba(11,11,12,.2); border-radius:var(--r-sm);
  background:var(--mist); color:var(--mute); font-size:var(--fs-sm);
}
.captcha-slot .box{ width:24px; height:24px; border:2px solid #C3C7C9; border-radius:4px; background:#fff; flex:none; }
.hp{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.form__status{
  margin:0; padding:.9rem 1.15rem; border-radius:var(--r-sm);
  background:var(--green-soft); border:1px solid rgba(142,198,62,.4);
  color:var(--ink); font-size:var(--fs-sm);
  display:none;
}
.form__status.is-on{ display:block; }
.form__status.is-error{ background:rgba(200,60,60,.08); border-color:rgba(200,60,60,.35); }

/* ---------- 20. INDIBA page ---------- */
.article{ max-width:840px; margin-inline:auto; }
.article > * + *{ margin-top:1.15em; }
.article p{ color:var(--slate); font-size:var(--fs-lead); }
.article strong{ color:var(--ink); }
.pull{
  border-left:3px solid var(--green); padding:clamp(20px,2.6vw,30px) clamp(20px,2.6vw,34px);
  background:var(--mist); border-radius:0 var(--r) var(--r) 0;
}
.pull h2{ font-size:var(--fs-h2); }
.device{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(18px,2.6vw,30px);
}
.device figure{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(18px,2.4vw,30px); box-shadow:var(--sh-1); text-align:center;
}
.device figure img{ width:100%; aspect-ratio:4/3; object-fit:contain; }
.device figcaption{
  margin-top:16px; font-family:var(--font-display); font-weight:700;
  font-size:clamp(.95rem,1.4vw,1.1rem); letter-spacing:-.01em; color:var(--ink);
}
.chart{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(20px,2.6vw,32px); box-shadow:var(--sh-1); }
.chart + .chart{ margin-top:clamp(20px,2.6vw,30px); }
.chart h3{ font-family:var(--font-body); font-weight:400; font-size:1.02rem; line-height:1.5; letter-spacing:0; color:var(--ink); }
.chart .respondents{ margin-top:6px; font-size:var(--fs-xs); color:var(--mute); }
.chart figure{ margin:20px 0 0; }
.video-wrap{ max-width:460px; margin:clamp(34px,4.5vw,56px) auto 0; }
.video-wrap video{ width:100%; max-height:78vh; border-radius:var(--r-lg); box-shadow:var(--sh-3); background:#000; }
.phone-line{ text-align:center; font-family:var(--font-display); font-weight:700; font-size:clamp(1rem,1.7vw,1.2rem); }
.phone-line a{ color:var(--green-600); transition:opacity .28s var(--ease); }
.phone-line a:hover{ opacity:.7; }

/* ---------- 20b. Právna stránka (GDPR) ---------- */
.legal{ max-width:800px; margin-inline:auto; }
.legal h2{
  font-size:clamp(1.15rem,1.9vw,1.5rem); text-transform:uppercase; letter-spacing:-.012em;
  margin:clamp(38px,4.4vw,58px) 0 16px; padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.legal h2:first-of-type{ margin-top:clamp(28px,3.4vw,40px); }
.legal p{ color:var(--slate); }
.legal strong{ color:var(--ink); }
.legal a{ color:var(--green-600); text-decoration:underline; text-underline-offset:3px; transition:opacity .28s var(--ease); }
.legal a:hover{ opacity:.68; }
.legal ul{ list-style:none; margin:0 0 1.15em; padding:0; }
.legal ul li{ position:relative; padding:.32rem 0 .32rem 1.35rem; color:var(--slate); }
.legal ul li::before{ content:""; position:absolute; left:0; top:.95em; width:6px; height:6px; border-radius:50%; background:var(--green); }
.legal__note{
  padding:clamp(18px,2.2vw,26px) clamp(20px,2.4vw,28px);
  background:var(--mist); border-left:3px solid var(--green);
  border-radius:0 var(--r) var(--r) 0; font-size:var(--fs-sm);
}
.legal__ident{ margin:0 0 1.3em; display:grid; gap:0; }
.legal__ident > div{
  display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; align-items:baseline;
  padding:.7rem 0; border-bottom:1px solid var(--line);
}
.legal__ident dt{
  flex:0 0 130px; font-family:var(--font-display); font-weight:700; font-size:.68rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--mute);
}
.legal__ident dd{ margin:0; font-family:var(--font-display); font-weight:600; letter-spacing:-.005em; }
.legal__box{
  padding:clamp(18px,2.2vw,24px) clamp(20px,2.4vw,26px); background:var(--mist);
  border-radius:var(--r); font-family:var(--font-display); font-weight:600;
  line-height:1.8; color:var(--ink);
}
.legal__updated{ margin-top:clamp(34px,4vw,48px); padding-top:22px; border-top:1px solid var(--line); font-size:var(--fs-sm); color:var(--mute); }

/* ---------- 20c. Stránka kurzu (predajný layout) ---------- */

/* pracovná lišta — po naplnení textami zmazať */
.draft-bar{
  position:relative; z-index:5;
  margin-top:var(--header-h);
  background:repeating-linear-gradient(135deg,#1B1D20 0 14px,#16181A 14px 28px);
  color:#fff; border-bottom:2px solid var(--green);
}
.draft-bar .shell{ display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; padding-block:14px; }
.draft-bar b{ font-family:var(--font-display); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--green); }
.draft-bar span{ font-size:var(--fs-sm); color:rgba(255,255,255,.72); }
.draft-bar span b{ color:var(--green); }

/* číslo sekcie ako vodoznak */
.numbered{ position:relative; overflow:hidden; }
.numbered__wm{
  position:absolute; right:clamp(12px,3vw,54px); top:clamp(10px,3vw,40px);
  font-family:var(--font-display); font-weight:700; line-height:.8;
  font-size:clamp(7rem,15vw,15rem); letter-spacing:-.04em;
  color:currentColor; opacity:.055; pointer-events:none; user-select:none;
}
.section--dark .numbered__wm,.section--green .numbered__wm{ opacity:.09; }

/* nadpis so zmiešanou váhou (ako v referenčnom layoute) */
.mixed{ font-weight:400; }
.mixed b{ font-weight:800; }

/* ---- brief: inštrukcia pre autora textu ---- */
.brief{
  position:relative;
  margin:14px 0 0;
  padding:16px 18px 16px 44px;
  border:1px dashed rgba(142,198,62,.55);
  border-radius:var(--r-sm);
  background:rgba(142,198,62,.07);
  font-size:.88rem; line-height:1.62; color:var(--slate);
}
.brief::before{
  content:"✎"; position:absolute; left:15px; top:14px;
  font-size:1rem; line-height:1.3; color:var(--green-600);
}
.brief{ text-align:left; }
.brief b{ color:var(--ink); font-weight:700; }
.brief em{ color:var(--green-600); font-style:normal; font-weight:600; }
.brief ul{ list-style:none; margin:.5rem 0 0; padding:0; }
.brief ul li{ position:relative; padding:.16rem 0 .16rem .95rem; }
.brief ul li::before{ content:"–"; position:absolute; left:0; color:var(--green-600); }
.brief .hint{
  display:block; margin-top:.6rem; padding-top:.6rem;
  border-top:1px solid rgba(142,198,62,.28);
  font-size:.8rem; color:var(--mute);
}
.section--dark .brief,.brief--dark{
  background:rgba(142,198,62,.09); border-color:rgba(142,198,62,.4); color:rgba(255,255,255,.72);
}
.section--dark .brief b,.brief--dark b{ color:#fff; }
.section--dark .brief em,.brief--dark em{ color:var(--green); }
.section--dark .brief::before,.brief--dark::before{ color:var(--green); }
.section--dark .brief .hint,.brief--dark .hint{ color:rgba(255,255,255,.5); }

/* ---- slot: miesto pre text ----
   Ostrá verzia: obyčajný text bez ozdôb.
   Až v režime úprav (?kod=…) sa z neho stane zelené pole s ceruzkou. */
.slot{ display:block; font-weight:inherit; }
.slot:empty{ display:none; }

/* interné veci, ktoré verejnosť nemá vidieť */
.iba-uprava{ display:none; }
body.is-editing .iba-uprava{ display:block; }

/* v režime úprav je pri nevyplnenom voliteľnom bloku vidieť, že sa zatiaľ nezobrazuje */
body.is-editing .volitelne{ position:relative; }
body.is-editing .volitelne::after{
  content:"nevyplnené — na webe sa zatiaľ nezobrazuje";
  position:absolute; right:14px; top:10px; z-index:3;
  font-family:var(--font-body); font-size:.68rem; letter-spacing:.02em;
  padding:3px 9px; border-radius:99px;
  background:rgba(224,180,80,.16); color:#8A6A08;
  border:1px solid rgba(224,180,80,.4);
}
body.is-editing .section--dark .volitelne::after{ color:#E0B450; }

/* voliteľný blok sa zobrazí, až keď doň niekto niečo napíše */
.volitelne.je-prazdny{ display:none; }
body.is-editing .volitelne.je-prazdny{ display:revert; }

/* viacriadkové pole (extra poznámky) */
.slot--area{
  min-height:190px; padding:clamp(16px,2vw,22px);
  border:1px dashed rgba(255,255,255,.24); border-radius:var(--r);
  background:rgba(255,255,255,.03); white-space:pre-wrap; line-height:1.75;
}
body.is-editing .slot--area:empty{ display:block; }

/* režim úprav — pole má vyzerať ako pole, aby bolo jasné, že sa doň dá písať */
body.is-editing .slot{
  cursor:text; position:relative;
  background:rgba(142,198,62,.10);
  border:1px solid rgba(142,198,62,.45);
  border-radius:6px;
  padding:.18em .5em;
  box-decoration-break:clone; -webkit-box-decoration-break:clone;
}
body.is-editing .slot:empty{ display:block; }
body.is-editing .slot:empty::before{ content:attr(data-ph); color:var(--green-600); opacity:1; font-weight:400; }
body.is-editing .section--dark .slot:empty::before,
body.is-editing .hero .slot:empty::before{ color:var(--green); }
body.is-editing .section--dark .slot,
body.is-editing .statement .slot,
body.is-editing .hero .slot{
  background:rgba(142,198,62,.14);
  border-color:rgba(142,198,62,.5);
}
body.is-editing .section--dark .slot:empty::before,
body.is-editing .statement .slot:empty::before,
body.is-editing .hero .slot:empty::before{ color:var(--green); }

/* ceruzka napravo od poľa */
body.is-editing .slot::after{
  content:"✎";
  position:absolute; right:.4em; top:50%; translate:0 -50%;
  font-size:.72em; line-height:1; color:var(--green-600);
  opacity:.45; pointer-events:none;
  font-family:var(--font-body); font-weight:400; letter-spacing:0;
  transition:opacity .2s var(--ease);
}
body.is-editing .slot{ padding-right:1.7em; }
body.is-editing .section--dark .slot::after,
body.is-editing .statement .slot::after,
body.is-editing .hero .slot::after{ color:var(--green); opacity:.6; }

body.is-editing .slot:hover{
  background:rgba(142,198,62,.2);
  border-color:var(--green);
}
body.is-editing .slot:hover::after{ opacity:1; }
body.is-editing .slot:focus{
  outline:0;
  background:rgba(142,198,62,.16);
  border-color:var(--green);
  box-shadow:0 0 0 4px rgba(142,198,62,.22);
}
body.is-editing .slot:focus::after{ content:none; }
body.is-editing .slot:focus{ padding-right:.5em; }
body.is-editing .slot--area{
  padding:clamp(16px,2vw,22px); padding-right:clamp(16px,2vw,22px);
  border-width:2px; border-style:dashed;
}
body.is-editing .slot--area::after{ top:14px; translate:0 0; right:14px; font-size:1rem; }
.slot[data-autor]{ position:relative; }
body.is-editing .slot[data-autor]:hover::after{
  content:"píše " attr(data-autor);
  position:absolute; left:0; bottom:calc(100% + 6px); z-index:5;
  padding:.28rem .6rem; border-radius:var(--r-xs);
  background:var(--ink); color:#fff; white-space:nowrap;
  font-family:var(--font-body); font-size:.7rem; font-weight:400; letter-spacing:0;
  text-transform:none; pointer-events:none;
}
.slot-block p:last-child{ margin-bottom:0; }

/* šesť otázok pri fáze — otázka je štítok, pod ňou sa píše */
.checklist__q{
  display:block; font-family:var(--font-display); font-weight:600;
  font-size:.82rem; color:var(--ink); margin-bottom:5px;
}
.checklist li{ padding-bottom:.7rem; }

/* ---- lišta editora ---- */
.editbar{ position:fixed; left:0; right:0; bottom:0; z-index:150; padding:0 clamp(10px,2vw,18px) clamp(10px,2vw,18px); }
.editbar__inner{
  max-width:var(--shell); margin-inline:auto;
  display:flex; flex-wrap:wrap; gap:12px clamp(16px,2.4vw,28px); align-items:center;
  padding:12px clamp(16px,2.2vw,22px);
  background:rgba(16,17,19,.95); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg);
  box-shadow:0 16px 46px rgba(0,0,0,.4);
}
.editbar__who{ display:flex; align-items:center; gap:8px; flex:none; }
.editbar__who span{
  font-family:var(--font-display); font-weight:700; font-size:.64rem;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5);
}
.editbar__who input{
  width:130px; padding:.42rem .7rem; font-size:.85rem;
  background:rgba(255,255,255,.07); color:#fff;
  border:1px solid rgba(255,255,255,.16); border-radius:var(--r-xs);
}
.editbar__who input::placeholder{ color:rgba(255,255,255,.35); }
.editbar__who input:focus{ outline:0; border-color:var(--green); }
.editbar__status{
  flex:1 1 200px; min-width:0; font-size:var(--fs-sm); color:rgba(255,255,255,.6);
  display:flex; align-items:center; gap:8px;
}
.editbar__status::before{
  content:""; width:8px; height:8px; border-radius:50%; flex:none;
  background:rgba(255,255,255,.3);
}
.editbar__status.is-ok::before{ background:var(--green); }
.editbar__status.is-pending::before{ background:#E8B23A; animation:pulse 1.1s ease-in-out infinite; }
.editbar__status.is-error{ color:#F0918B; }
.editbar__status.is-error::before{ background:#E0655C; }
@keyframes pulse{ 50%{ opacity:.25 } }
.editbar__actions{ flex:none; }

body.is-editing{ padding-bottom:96px; }
@media (max-width:620px){
  .editbar__status{ flex:1 1 100%; order:3; }
  .editbar__who input{ width:100%; }
  .editbar__who{ flex:1 1 auto; }
}



/* ---- dvojica kariet pre/proti ---- */
.pair{ display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:clamp(18px,2.4vw,28px); }
.pcard{
  background:var(--paper); border:1px solid rgba(11,11,12,.08); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px);
  box-shadow:0 2px 4px rgba(11,11,12,.04), 0 10px 28px rgba(11,11,12,.07);
  border-top:3px solid var(--green);
}
.pcard--muted{ border-top-color:rgba(11,11,12,.28); }
.pcard__label{
  font-family:var(--font-display); font-weight:700; font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--mute); margin:0 0 10px;
}
.pcard h3{ font-size:clamp(1.35rem,2.3vw,1.8rem); letter-spacing:-.02em; margin-bottom:22px;
           padding-bottom:18px; border-bottom:1px solid var(--line); }
.ticks{ list-style:none; margin:0; padding:0; }
.ticks li{ position:relative; padding:.5rem 0 .5rem 2.4rem; color:var(--slate); font-size:.97rem; line-height:1.6; }
.ticks li::before{
  content:"✓"; position:absolute; left:0; top:.34rem;
  width:1.7rem; height:1.7rem; display:grid; place-items:center;
  border-radius:50%; background:var(--green); color:#0B0B0C;
  font-size:1rem; font-weight:800; line-height:1;
  box-shadow:0 0 0 3px var(--green-soft);
}
/* krížiky sú červené a hranaté — odlišné tvarom, nielen farbou */
.ticks--x li::before{
  content:"✕"; background:#C0392B; color:#fff;
  border-radius:8px; font-size:.9rem; font-weight:700;
  box-shadow:0 0 0 3px rgba(192,57,43,.16);
}
/* odrážka s prázdnym políčkom sa nezobrazí (platí len v editovateľnej verzii) */
.ticks li:has(> .slot:empty){ display:none; }
body.is-editing .ticks li:has(> .slot:empty){ display:block; }

/* ---- 4 boxy ---- */
.quad{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(14px,1.8vw,22px); }
.qbox{
  background:var(--paper); border:1px solid rgba(11,11,12,.08); border-radius:var(--r-lg);
  padding:clamp(22px,2.6vw,30px);
  display:flex; flex-direction:column; align-content:start;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.qbox:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); }
.section--dark .qbox{ background:var(--ink-3); border-color:rgba(255,255,255,.09); }
.qbox__num{
  font-family:var(--font-display); font-weight:700; font-size:2rem; line-height:1;
  color:var(--green); opacity:.55; display:block; margin-bottom:14px;
}
.qbox__label{
  font-family:var(--font-display); font-weight:700; font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--green-600);
  margin:0 0 14px; padding-bottom:12px;
  border-bottom:1px solid rgba(11,11,12,.1);
}
.section--dark .qbox__label{ color:var(--green); border-bottom-color:rgba(255,255,255,.12); }

/* nadpis musí zniesť aj celú vetu — preto nižšia váha a normálne riadkovanie */
.qbox h3{
  font-size:1rem; font-weight:700; line-height:1.45; letter-spacing:-.005em;
  margin:0; color:var(--ink);
}
.section--dark .qbox h3{ color:#fff; }

/* text pod nadpisom je zreteľne tichší, aby bolo jasné, čo je čo */
.qbox .slot-block{ margin-top:12px; }
.qbox .slot-block p{
  font-size:.9rem; line-height:1.68; font-weight:400;
  color:var(--slate); margin:0;
}
.section--dark .qbox .slot-block p{ color:rgba(255,255,255,.6); }
.qbox .brief{ margin-top:12px; padding:12px 14px 12px 36px; font-size:.82rem; }
.qbox .brief::before{ left:13px; top:11px; }

/* ---- program: kroky ---- */
.steps{ display:grid; gap:14px; }
.step{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(16px,2.2vw,28px);
  background:var(--paper); border:1px solid rgba(11,11,12,.08); border-radius:var(--r);
  padding:clamp(20px,2.4vw,28px);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.step:hover{ transform:translateX(3px); box-shadow:var(--sh-1); }
.step__no{
  font-family:var(--font-display); font-weight:800; font-size:1.05rem;
  width:46px; height:46px; flex:none; display:grid; place-items:center;
  border-radius:var(--r-xs); background:var(--ink); color:var(--green);
}
.step__label{
  font-family:var(--font-display); font-weight:700; font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--mute); margin:0 0 6px;
}
.step h3{ font-size:1.12rem; letter-spacing:-.012em; }
.step p{ margin-top:8px; color:var(--slate); font-size:.94rem; }

/* fázová matica */
.phases{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(16px,2.2vw,24px); }
.phase{
  background:var(--paper); border:1px solid rgba(11,11,12,.08); border-radius:var(--r-lg);
  padding:clamp(22px,2.6vw,30px); border-top:3px solid var(--green);
}
.phase__no{
  font-family:var(--font-display); font-weight:700; font-size:.64rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--green-600); display:block; margin-bottom:8px;
}
.phase h3{ font-size:1.1rem; margin-bottom:6px; }
.phase__for{ font-size:.82rem; color:var(--mute); margin-bottom:16px; }
.checklist{ list-style:none; margin:0; padding:0; counter-reset:cl; }
.checklist li{
  position:relative; padding:.5rem 0 .5rem 2rem; font-size:.92rem; color:var(--slate);
  border-top:1px solid var(--line);
}
.checklist li:first-child{ border-top:0; }
.checklist li::before{
  counter-increment:cl; content:counter(cl);
  position:absolute; left:0; top:.55rem;
  width:1.35rem; height:1.35rem; display:grid; place-items:center;
  border-radius:50%; background:var(--green-soft); color:var(--green-600);
  font-family:var(--font-display); font-weight:700; font-size:.66rem;
}

/* ---- cena ---- */
.price-pair{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(18px,2.4vw,28px); align-items:stretch; }
.price-card{
  background:var(--paper); border:1px solid rgba(11,11,12,.08); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px);
  box-shadow:0 2px 4px rgba(11,11,12,.04), 0 10px 28px rgba(11,11,12,.07);
}
.price-card--dark{
  background:linear-gradient(160deg,var(--ink-3),var(--ink)); color:#fff;
  border-color:rgba(255,255,255,.1); display:flex; flex-direction:column;
}
.price-card--dark .pcard__label{ color:var(--green); }
.price-card__amount{
  font-family:var(--font-display); font-weight:800; font-size:clamp(2.2rem,4.5vw,3.2rem);
  line-height:1; letter-spacing:-.03em; margin:12px 0 4px;
}
.price-card--dark .ticks li{ color:rgba(255,255,255,.75); }
.price-card--dark .ticks li::before{ background:var(--green); color:#0B0B0C;
                                     box-shadow:0 0 0 4px rgba(142,198,62,.16); }
.price-card--dark .btn{ margin-top:auto; align-self:flex-start; }
.price-card--dark hr{ border:0; border-top:1px solid rgba(255,255,255,.12); margin:22px 0; }

/* ---- FAQ ---- */
.faq{ display:grid; gap:10px; max-width:820px; margin-inline:auto; }
.faq details{
  background:var(--paper); border:1px solid rgba(11,11,12,.08); border-radius:var(--r-sm);
  overflow:hidden; transition:box-shadow var(--dur) var(--ease);
}
.faq details[open]{ box-shadow:var(--sh-1); }
.faq summary{
  list-style:none; cursor:pointer; padding:1.05rem 3.2rem 1.05rem 1.3rem; position:relative;
  font-family:var(--font-display); font-weight:600; font-size:.98rem; letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:1.25rem; top:50%; translate:0 -50%;
  width:22px; height:22px; border-radius:50%;
  background:var(--green-soft) center/9px 9px no-repeat;
  background-image:linear-gradient(var(--green-600),var(--green-600)),linear-gradient(var(--green-600),var(--green-600));
  background-size:9px 1.6px, 1.6px 9px; background-position:center, center;
  background-repeat:no-repeat, no-repeat;
  transition:rotate .35s var(--ease);
}
.faq details[open] summary::after{ rotate:45deg; }
.faq summary:hover{ color:var(--green-600); }
.faq .faq__body{ padding:0 1.3rem 1.2rem; }
.faq .brief{ margin-top:0; }

@media (max-width:600px){
  .step{ grid-template-columns:1fr; }
  .step__no{ width:40px; height:40px; }
}

/* ---------- 20c-0. Odznak a termín v hlavičke kurzu ---------- */
.hero__odznak{
  display:inline-block; margin:0 0 26px;
  padding:.5rem 1.1rem; border-radius:var(--r-pill);
  background:var(--green); color:#0B0B0C;
  font-family:var(--font-display); font-weight:800; font-size:.74rem;
  letter-spacing:.18em; text-transform:uppercase;
  box-shadow:0 6px 20px rgba(142,198,62,.28);
}

/* text v hlavičke je plnohodnotný obsah, nie doplnok — preto biely */
.hero .ticks li{ color:#fff; font-size:1rem; }
.hero .lead{ color:#fff; }

/* miesto a termín pod tlačidlom na prihlásenie */
.kde-kedy{
  margin:16px 0 0; text-align:center;
  font-family:var(--font-display); font-weight:600; font-size:.86rem;
  letter-spacing:.01em; color:rgba(255,255,255,.72);
}
.kde-kedy span{ margin:0 .5rem; color:var(--green); }
.kde-kedy--vlavo{ text-align:left; margin-top:18px; }
.section--mist .kde-kedy{ color:var(--slate); }

/* poznámky pri cene */
.cena-pozn{ margin:.35rem 0 0; font-size:var(--fs-sm); color:rgba(255,255,255,.6); }
.cena-dvojica{
  margin:14px 0 0; padding:.65rem .9rem; border-radius:var(--r-xs);
  background:rgba(142,198,62,.12); border:1px solid rgba(142,198,62,.3);
  font-size:.86rem; color:rgba(255,255,255,.82);
}
.cena-dvojica b{ color:var(--green); font-family:var(--font-display); }

/* fotka v hlavičke má rovnaký odstup zhora ako text vedľa nej */
@media (min-width:1025px){ .hero__foto{ margin-top:12px; } }

/* ---------- 20c-1. Fotka v hlavičke kurzu ---------- */
.hero__foto{
  margin:0; border-radius:var(--r-lg); overflow:hidden;
  aspect-ratio:3/2; background:var(--ink-3);
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.1);
}
.hero__foto img{
  width:100%; height:100%; object-fit:cover; object-position:center 42%;
  transition:transform .8s var(--ease);
}
.hero__foto:hover img{ transform:scale(1.03); }
@media (min-width:1025px){
  .hero__foto{ aspect-ratio:4/5; }
}

/* ---------- 20c-2. Lektori ----------
   Portréty na svetlom betónovom pozadí. Na tmavej sekcii ich rámujeme —
   zaoblený roh, jemný okraj a tieň, aby svetlá plocha pôsobila zámerne. */
.lektori{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(28px,4vw,64px);
  max-width:1000px; margin-inline:auto;
}
/* jeden lektor → nerozťahuj ho na celú šírku
   (trieda .lektori--sam je záloha pre prehliadače bez :has) */
.lektori:has(.lektor.je-prazdny),
.lektori.lektori--sam{ max-width:470px; }

.lektor{ display:flex; flex-direction:column; }
.lektor__foto{
  position:relative; margin:0 0 clamp(18px,2.4vw,26px);
  aspect-ratio:4/5; overflow:hidden;
  border-radius:var(--r-lg);
  background:var(--ink-3);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 50px rgba(0,0,0,.4);
}
.lektor__foto img{
  width:100%; height:100%; object-fit:cover; object-position:center 18%;
  transition:transform .6s var(--ease);
}
.lektor:hover .lektor__foto img{ transform:scale(1.04); }

.lektor__telo{ display:flex; flex-direction:column; }
.lektor__rola{
  font-family:var(--font-display); font-weight:700; font-size:.64rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--green);
  margin:0 0 8px;
}
.lektor__meno{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.25rem,2.1vw,1.6rem); letter-spacing:-.02em;
  color:#fff; margin:0 0 14px;
}
.lektor__veta{
  font-size:var(--fs-lead); line-height:1.65; color:rgba(255,255,255,.82);
  padding-bottom:18px; margin-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.lektor__bio p{ color:rgba(255,255,255,.62); font-size:.92rem; line-height:1.72; }
.lektor__bio p + p{ margin-top:.9em; }
.lektor .slot{ border-color:rgba(255,255,255,.22); }

/* zvislá deliaca linka medzi dvoma lektormi */
@media (min-width:761px){
  .lektori{ position:relative; }
  .lektor--b:not(.je-prazdny)::before{
    content:""; position:absolute; top:6%; bottom:6%;
    left:calc(50% - .5px); width:1px;
    background:linear-gradient(180deg,transparent,rgba(255,255,255,.14) 22%,rgba(255,255,255,.14) 78%,transparent);
  }
}
@media (max-width:760px){
  .lektor__foto{ max-width:320px; }
  .lektor + .lektor{ padding-top:clamp(26px,6vw,40px); border-top:1px solid rgba(255,255,255,.12); }
}

/* ---------- 20d. Prihláška na seminár ---------- */
.reg{ max-width:760px; margin-inline:auto; }
.reg__miesta{
  margin-top:16px; font-family:var(--font-display); font-weight:600; font-size:.92rem;
  color:var(--slate);
}
.reg__miesta.is-low{ color:var(--green-600); }
.reg__miesta.is-full{ color:#C0392B; }

.reg__form{ display:grid; gap:18px; margin-top:clamp(28px,3.4vw,42px); }
.reg__legend{
  font-family:var(--font-display); font-weight:700; font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--mute);
  margin:0; padding-bottom:12px; border-bottom:1px solid var(--line);
}
.field-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.field__err{
  display:none; margin-top:6px; font-size:.82rem; color:#C0392B;
}
.field__err.is-on{ display:block; }
.field input.is-invalid, .field textarea.is-invalid{
  border-color:#C0392B; background:rgba(192,57,43,.03);
}
.field input.is-invalid:focus{ box-shadow:0 0 0 4px rgba(192,57,43,.14); }
.field .muted{ font-weight:400; color:var(--mute); }

/* zaškrtávacie pole */
.check{
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
  font-size:.95rem; line-height:1.55; color:var(--slate);
}
.check input{ position:absolute; opacity:0; width:0; height:0; }
.check__mark{
  flex:none; width:22px; height:22px; margin-top:1px; border-radius:6px;
  border:1.5px solid var(--line); background:var(--paper);
  display:grid; place-items:center;
  transition:background-color .22s var(--ease), border-color .22s var(--ease);
}
.check__mark::after{
  content:""; width:11px; height:6px; margin-top:-3px;
  border-left:2px solid #fff; border-bottom:2px solid #fff;
  rotate:-45deg; opacity:0; transition:opacity .18s var(--ease);
}
.check input:checked + .check__mark{ background:var(--green); border-color:var(--green); }
.check input:checked + .check__mark::after{ opacity:1; }
.check input:focus-visible + .check__mark{ box-shadow:0 0 0 4px var(--green-soft); }
.check:hover .check__mark{ border-color:var(--green); }
.check__text{ padding-top:1px; }

.check--switch{
  padding:16px 18px; border:1.5px solid var(--line); border-radius:var(--r-sm);
  background:var(--paper); transition:border-color .22s var(--ease), background-color .22s var(--ease);
}
.check--switch:has(input:checked){ border-color:var(--green); background:var(--green-soft); }

.reg__firma{
  padding:20px; border-radius:var(--r-sm);
  border:1px dashed rgba(142,198,62,.5); background:rgba(142,198,62,.06);
  animation:regIn .3s var(--ease);
}
.reg__pozn{
  margin:14px 0 0; padding-top:12px; border-top:1px solid rgba(142,198,62,.28);
  font-size:.85rem; line-height:1.6; color:var(--slate);
}
@keyframes regIn{ from{ opacity:0; transform:translateY(-6px) } to{ opacity:1; transform:none } }

/* storno podmienky */
.storno{
  padding:clamp(20px,2.6vw,28px); border-radius:var(--r);
  background:var(--mist); border-left:3px solid var(--green);
}
.storno__nadpis{
  font-family:var(--font-display); font-weight:700; font-size:.68rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--mute); margin:0 0 14px;
}
.storno__list{ list-style:none; margin:0 0 14px; padding:0; }
.storno__list li{
  position:relative; padding:.42rem 0 .42rem 1.5rem;
  color:var(--slate); font-size:.93rem; border-top:1px solid rgba(11,11,12,.07);
}
.storno__list li:first-child{ border-top:0; }
.storno__list li::before{
  content:""; position:absolute; left:0; top:.95em;
  width:6px; height:6px; border-radius:50%; background:var(--green);
}
.storno__list b{ color:var(--ink); }
.storno__pozn{ font-size:.9rem; color:var(--slate); margin-bottom:18px; }
.storno__pozn b{ color:var(--ink); }
.storno .check{ padding-top:16px; border-top:1px solid rgba(11,11,12,.1); }

/* potvrdenie po odoslaní */
.reg__hotovo{
  text-align:center; padding:clamp(38px,5vw,60px) clamp(24px,3vw,40px);
  background:var(--paper); border:1px solid rgba(142,198,62,.4);
  border-radius:var(--r-lg); box-shadow:var(--sh-2);
  margin-top:clamp(28px,3.4vw,42px);
}
.reg__ok{
  width:64px; height:64px; margin:0 auto 22px; border-radius:50%;
  background:var(--green); color:var(--ink);
  display:grid; place-items:center; font-size:1.9rem; font-weight:700;
  box-shadow:0 10px 30px var(--green-glow);
}
.reg__hotovo h3{ font-size:clamp(1.3rem,2.4vw,1.7rem); margin-bottom:12px; }
.reg__hotovo p{ color:var(--slate); max-width:44ch; margin-inline:auto; }

@media (max-width:520px){
  .field-row{ grid-template-columns:1fr; }
}

/* ---------- 21. Footer ---------- */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.7); padding-block:clamp(46px,5.5vw,72px) clamp(26px,3vw,34px); }
.footer-top{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,4vw,40px); align-items:center; }
.footer-col--mid{ text-align:center; }
.footer-col--end{ display:flex; justify-content:flex-end; gap:10px; }
.footer-addr{ font-style:normal; font-size:var(--fs-sm); line-height:1.9; }
.footer-addr a{ transition:color .28s var(--ease); }
.footer-addr a:hover{ color:var(--green); }
.footer-hours{ font-family:var(--font-display); font-weight:700; color:var(--green); font-size:clamp(.9rem,1.4vw,1.02rem); }
.footer-hours span{ display:block; margin-top:.5rem; }
.social{
  width:42px; height:42px; display:grid; place-items:center; border-radius:50%;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); color:#fff;
  transition:background-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.social:hover{ background:var(--green); color:var(--ink); transform:translateY(-2px); }
.social svg{ width:17px; height:17px; }
.footer-legal{
  margin:clamp(32px,4vw,48px) 0 0; padding-top:26px;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex; flex-wrap:wrap; gap:10px clamp(24px,4vw,52px); justify-content:center;
  font-family:var(--font-display); color:var(--green);
}
.footer-legal > div{ display:flex; align-items:baseline; gap:.55rem; }
.footer-legal dt{ font-weight:700; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; opacity:.72; }
.footer-legal dd{ margin:0; font-weight:600; font-size:.92rem; letter-spacing:-.005em; }
.footer-legal__wide dd{ font-weight:500; }

.footer-bottom{
  margin-top:clamp(22px,2.6vw,30px); padding-top:22px; border-top:1px solid rgba(255,255,255,.1);
  display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between;
  font-size:var(--fs-xs); color:rgba(255,255,255,.42);
}
.footer-bottom a:hover{ color:var(--green); }
.footer-bottom nav{ display:flex; flex-wrap:wrap; gap:8px 20px; }

/* ---------- 21b. Lišta súhlasu s cookies ---------- */
.cookiebar{
  position:fixed; left:0; right:0; bottom:0; z-index:220;
  padding:clamp(12px,2vw,20px);
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.cookiebar.is-on{ opacity:1; transform:none; pointer-events:auto; }
.cookiebar__inner{
  max-width:var(--shell); margin-inline:auto;
  display:flex; flex-wrap:wrap; gap:16px clamp(20px,3vw,40px); align-items:center; justify-content:space-between;
  padding:clamp(18px,2.2vw,24px) clamp(20px,2.6vw,30px);
  background:rgba(16,17,19,.96);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg);
  box-shadow:0 20px 60px rgba(0,0,0,.45);
  color:rgba(255,255,255,.74);
}
.cookiebar__text{ flex:1 1 380px; min-width:0; }
.cookiebar__text p{ margin:0; font-size:var(--fs-sm); line-height:1.6; }
.cookiebar__text p + p{ margin-top:6px; }
.cookiebar__text strong{ color:#fff; font-family:var(--font-display); font-size:.95rem; }
.cookiebar__text a{ color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.cookiebar__actions{ display:flex; flex-wrap:wrap; gap:10px; flex:none; }
@media (max-width:620px){
  .cookiebar__actions{ width:100%; }
  .cookiebar__actions .btn{ flex:1 1 auto; }
}

/* ---------- 22. Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }
.reveal[data-d="5"]{ transition-delay:.4s; }

/* ---------- 23. Back to top ---------- */
.to-top{
  position:fixed; right:clamp(16px,2.4vw,30px); bottom:clamp(16px,2.4vw,30px); z-index:100;
  width:46px; height:46px; display:grid; place-items:center;
  background:var(--green); color:var(--ink); border:0; border-radius:50%;
  cursor:pointer; box-shadow:0 10px 30px var(--green-glow);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.to-top.is-on{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ transform:translateY(-3px); }

/* ---------- 24. Responsive ---------- */
@media (max-width:1024px){
  .nav{ display:none; }
  .nav-cta .btn{ display:none; }
  .burger{ display:grid; }
  .split{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
  .device{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  /* na telefóne udržíme podnadpis na jednom riadku */
  .statement p{ font-size:.76rem; letter-spacing:.06em; max-width:none; }
}
@media (max-width:760px){
  :root{ --header-h:70px; }
  .site-header.is-stuck{ height:64px; }
  .proc{ grid-template-columns:1fr; }
  .proc__media{ max-width:200px; }
  .site-footer .shell{ grid-template-columns:1fr; text-align:center; }
  .footer-col--end{ justify-content:center; }
  .footer-bottom{ justify-content:center; text-align:center; }
  .price-row{ flex-direction:column; align-items:center; text-align:center; gap:4px; }
  .price-row__dots{ display:none; }
  .modal__panel{ border-radius:var(--r-lg); max-height:92vh; }
  .lightbox__prev{ left:8px; }
  .lightbox__next{ right:8px; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
