/* VALBEX web — §6 dizajn smer E2 „NOC" (Matej 2026-08-11). Self-hosted system fonty (žiadny CDN, §24).
   ⚠️ Do 2026-08-20 tu bežal smer 05 „Taktická tabuľa" (#16242B / #F4C95D), ktorý §5
   vedie ako RETIRED — teda dizajn, ktorý Matej zamietol. §6 hovorí, že zvolený smer
   riadi ikonu, onboarding AJ web a drží sa 1:1 naprieč platformami; web bol devať dní
   jediné miesto, kde ten zamietnutý smer prežil.
   Hodnoty sú PREPÍSANÉ z `ios/Valbex/Theme/Theme.swift`, nie preladené od oka. */
/* ⛔ BEZ `color-scheme` KRESLÍ PREHLIADAČ SVOJE PRVKY VO SVETLOM (Rule 8, nález 2026-09-03).
   Pravidlo menuje „predvolené farby prehliadača" doslovne. Stránka má #0B0E13 podklad, ale
   scrollbar, zaškrtávacie polia, dátumové výbery, `::selection` aj autofill si UA vyberá podľa
   TOHTO kľúča — a bez neho vždy svetlé. Appka je zámerne jednoschémová (§6 SINGLE-SCHEME),
   takže web hovorí to isté: `dark`, nie `light dark`. */
:root{
  color-scheme: dark;
  --bg:#0B0E13; --bg2:#11151B; --card:#161B22; --card2:#11151B;
  --accent:#4ADE80; --on-accent:#08130C; --chalk:#F2F6FA; --muted:#94A3B4;
  --line:#242C36; --neg:#FF6B81;
  --rad:16px; --wrap:1080px; --nav-h:62px;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--chalk);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.wrap.narrow{max-width:720px}
.center{text-align:center}
.mut{color:var(--muted)}
.small{font-size:13px}
.skip{position:absolute;left:-999px}
.skip:focus{left:8px;top:8px;background:var(--accent);color:var(--bg);padding:8px;border-radius:8px;z-index:200}

/* NAV */
/* §24 — nad hero splýva len POZADIE hlavičky; položky menu ostávajú vidieť.
   Sklo sa objaví až po prvom skutočnom scrolle (.scrolled). Bez borderu v pokoji,
   inak by hlavička merala nav-h+1 a deck by stránku posunul o 1 px z nuly. */
.nav{position:sticky;top:0;z-index:100;background:transparent;
  transition:background .2s,box-shadow .2s,backdrop-filter .2s}
/* Linka je INSET tieň, nie border: border by zaberal 1 px layoutu, hlavička by merala
   nav-h+1 a deck by stránku posunul o 1 px z nuly (§24 — musí stáť presne na scrollY 0). */
.nav.scrolled{background:rgba(11,14,19,.85);backdrop-filter:blur(12px);
  box-shadow:inset 0 -1px 0 var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.14em;font-size:16px}
.nav-links{display:flex;align-items:center;gap:22px}
.nav-links a{font-size:14px;color:var(--muted);transition:color .15s}
.nav-links a:hover{color:var(--chalk)}
.cta-sm{background:var(--accent);color:var(--bg)!important;padding:8px 14px;border-radius:10px;font-weight:700}
.langbtn{background:none;border:1px solid var(--line);color:var(--muted);padding:7px 11px;border-radius:10px;font-size:13px;cursor:pointer;font-family:inherit}
.langbtn:hover{border-color:var(--accent);color:var(--chalk)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:2px;background:var(--chalk);transition:.25s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* HERO */
.hero{position:relative;padding:78px 0 64px;overflow:hidden}
/* §6 SMER A — text vlavo, zivy tiket vpravo. Na mobile pod sebou, TEN ISTY tiket, len
   preskladany: §24 ziada tu istu znackovu vizual na oboch sirkach, nie iny obrazok. */
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.hero .htxt{text-align:left}
.hero-cta{justify-content:flex-start}
.htik{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;
      box-shadow:0 24px 60px rgba(0,0,0,.45)}
.htik-h{display:flex;justify-content:space-between;margin-bottom:10px}
.htik-k{font-family:var(--mono);font-weight:700;font-size:15px}
.hnoha{border-top:1px solid var(--line);padding:11px 0;opacity:0;transform:translateY(10px);
       animation:hvstup .55s ease forwards}
/* ⚠️ PORADIE NESMIE ZÁVISIEŤ OD POZÍCIE V DOM. `:nth-of-type` počíta ELEMENTY
   daného typu, nie triedy — a prvý <div> v tikete je hlavička, takže pravidlá
   sedeli o jeden vedľa a TRETIA noha nedostala žiadne oneskorenie a nabehla
   prvá: „spodný, vrchný, stredný" (Matej 2026-08-20). Index teraz emituje PHP
   a oneskorenie sa z neho počíta, takže zmena značky ho už nemôže rozhodiť. */
.hnoha{animation-delay:calc(.25s + var(--i, 0) * .8s)}
@keyframes hvstup{to{opacity:1;transform:none}}
.hliga{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.hzap{font-weight:600;margin:3px 0;font-size:15px}
.htip{display:flex;justify-content:space-between;color:var(--accent);font-weight:600;font-size:14px;gap:10px}
.hodz{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.hb{font-family:var(--mono);font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;
    background:var(--accent);color:var(--on-accent);opacity:0;animation:hpuk .4s ease forwards}
.hb{animation-delay:calc(.55s + var(--i, 0) * .8s + var(--j, 0) * .13s)}
/* §24 — poradie animácie nesie TRIEDA, nie `style=`. CSP `style-src 'self'` inline
   atribút zahodí (nonce platí len pre `<style>`), takže `--i` padalo na 0 a stagger
   zmizol. Rozsahy sú malé a pevné: tri nohy, štyri odznaky. */
.i0{--i:0}.i1{--i:1}.i2{--i:2}.i3{--i:3}
.j0{--j:0}.j1{--j:1}.j2{--j:2}.j3{--j:3}
@keyframes hpuk{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
@media(max-width:860px){.hero-in{grid-template-columns:1fr;gap:28px}}
.hero-in{position:relative;z-index:1}
.badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.30);padding:6px 13px;border-radius:999px}
.hero h1{font-size:clamp(34px,6vw,58px);font-weight:800;letter-spacing:-.02em;margin:18px 0 14px;line-height:1.05}
.hero .sub{font-size:clamp(16px,2.4vw,19px);color:var(--muted);max-width:640px;margin:0 auto 26px}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
/* §24 — CTA dvojica ma ROVNAKU sirku aj vysku, deklarovanu RAZ tu. Do 2026-08-20
   sirku urcoval obsah, takze „Get the App" a „See How It Works" boli rozne siroke. */
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:15.5rem;
     min-height:3.25rem;padding:14px 26px;border-radius:12px;font-weight:700;font-size:16px;
     text-align:center;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-2px)}
.btn-pri{background:var(--accent);color:var(--on-accent)}
.btn-ghost{border:1px solid var(--line);color:var(--chalk)}
.note{color:var(--muted);font-size:13px;margin-top:18px}

/* SECTIONS */
.sec{padding:70px 0}
.sec.alt{background:var(--bg2)}
.sec h2{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.01em;text-align:center;margin-bottom:36px}

/* FEATURES */
.features{display:flex;flex-direction:column;gap:46px}
.feature{display:grid;grid-template-columns:1fr 280px;gap:40px;align-items:center}
.feature.rev{grid-template-columns:280px 1fr}
.feature.rev .ftxt{order:2}
.feature h3,.feature h2{text-align:left;font-size:24px;font-weight:800;margin-bottom:10px}
.feature p{color:var(--muted);font-size:16px}
.phone{padding:9px;background:#000;border-radius:34px;box-shadow:0 24px 50px -20px rgba(0,0,0,.6),0 0 0 2px #242c36;width:280px;margin:0 auto}
.phone img{border-radius:26px}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:24px}
.step h3,.step h2{text-align:left;color:var(--accent);font-size:17px;margin-bottom:8px}
.step p{color:var(--muted);font-size:15px}
.devices{text-align:center;background:var(--card2);border:1px solid var(--line);border-radius:var(--rad);padding:22px}
.devices h3,.devices h2{text-align:center;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.dev-list{font-size:16px}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;text-align:center}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:28px}
.stat b{display:block;font-family:var(--mono);font-size:34px;color:var(--accent)}
.stat span{color:var(--muted);font-size:14px}
/* §24 track record — päť buniek, rovnaká geometria ako `.stat`, len užšie.
   `auto-fit` + `minmax`, takže na mobile sa zalomí samo a nič sa neoreže (§21). */
.track-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;text-align:center;margin:20px 0}
.track-cell{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:18px 10px}
.track-cell b{display:block;font-family:var(--mono);font-size:26px;color:var(--chalk)}
.track-cell.ok b{color:var(--accent)}
.track-cell.bad b{color:var(--neg)}
.track-cell span{color:var(--muted);font-size:13px}
.track-note{color:var(--muted);font-size:14px;max-width:70ch}

/* PRICING */
/* ⚠️ POČET STĹPCOV SA NEPÍŠE NATVRDO. Bolo tu `repeat(4,1fr)` z čias štyroch
   plánov; po prechode na dve karty (§15, 2026-08-20) obsadili prvé dva stĺpce
   zo štyroch, takže sedeli vľavo v štvrtinovej šírke a cena sa lámala na dva
   riadky. `auto-fit` počíta stĺpce z toho, čo tam naozaj je. */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,280px));
       justify-content:center;gap:16px;margin:24px 0}
.plan{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:26px 20px;text-align:center}
.plan.best{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.plan .pill{position:absolute;top:-11px;left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--accent);color:var(--bg);font-size:10px;font-weight:800;padding:4px 10px;border-radius:999px}
.plan h3,.plan h2{text-align:center;font-size:18px;margin-bottom:8px}
.plan .price{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--accent);
             margin-bottom:6px;text-wrap:balance}

/* FAQ */
.faq{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px 18px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:600;padding:14px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--accent);font-weight:800}
.faq[open] summary::after{content:"–"}
.faq p{color:var(--muted);padding:0 0 16px}

/* GET */
.get{background:linear-gradient(180deg,var(--bg),var(--bg2))}
.badges{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:22px 0}
.store-badge{display:inline-block;line-height:0;border-radius:9px;overflow:hidden;opacity:.95;transition:transform .15s,opacity .15s}
.store-badge img{height:52px;width:auto;display:block}
.store-badge:hover{transform:translateY(-2px);opacity:1}

/* FOOTER */
.footer{border-top:1px solid var(--line);padding:40px 0 20px;background:var(--bg2)}
.foot-in{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start}
.brand-sm{font-weight:800;letter-spacing:.14em}
.foot-links{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.foot-links a{color:var(--muted);font-size:14px}
.foot-links a:hover{color:var(--accent)}
.copy{text-align:center;color:var(--muted);font-size:12px;margin-top:26px;letter-spacing:.12em;font-weight:700}
.copy a,.gretify{color:var(--muted);text-decoration:none;transition:color .15s ease}
.copy a:hover,.copy a:focus-visible,.gretify:hover,.gretify:focus-visible{color:var(--accent)}

/* LANGUAGE OVERLAY */
.langoverlay{position:fixed;inset:0;z-index:300;background:rgba(11,14,19,.97);backdrop-filter:blur(10px);overflow-y:auto;padding:30px 0}
.langoverlay[hidden]{display:none}
.lang-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.lang-head h2{font-size:24px}
.lang-head button{background:var(--card);border:1px solid var(--line);color:var(--chalk);width:40px;height:40px;border-radius:50%;font-size:16px;cursor:pointer}
.lang-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.lang-tile{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;transition:border-color .15s}
.lang-tile:hover{border-color:var(--accent)}
.lang-tile.cur{border-color:var(--accent);background:rgba(74,222,128,.10)}
.lang-tile .flag{font-size:20px}

/* TO TOP */
.totop{position:fixed;right:20px;bottom:20px;z-index:90;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--accent);font-size:20px;cursor:pointer;transition:opacity .2s}
.totop[hidden]{display:none}

[dir=rtl] .nav-in,[dir=rtl] .foot-in{direction:rtl}

@media(max-width:860px){
  .nav-links{position:fixed;inset:62px 0 auto 0;flex-direction:column;background:var(--bg2);border-bottom:1px solid var(--line);padding:18px;gap:16px;transform:translateY(-130%);transition:transform .3s;align-items:stretch;text-align:center}
  .nav-links.open{transform:none}
  .burger{display:flex}
  .feature,.feature.rev{grid-template-columns:1fr}
  .feature .ftxt,.feature.rev .ftxt{order:0;text-align:center}
  .feature .fimg{order:1}
  .steps,.stats{grid-template-columns:1fr}
  .plans{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
}
@media(max-width:520px){.plans{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn:hover{transform:none}
  .hnoha,.hb{animation:none!important;opacity:1!important;transform:none!important}}

/* --- §24.0 multi-page: zhrnutia na domove + hlavička sub-stránky --------------- */
.sums{padding:44px 0}
.sum{padding:8px 0;max-width:760px}
.sum h2{text-align:left;font-size:clamp(22px,3vw,30px);margin-bottom:10px}
.sum .sub{color:var(--muted);font-size:16px;max-width:720px;margin-bottom:12px}
.learn{display:inline-block;color:var(--accent);font-weight:700;font-size:15px;
  padding:8px 0;border-bottom:1px solid transparent;transition:border-color .15s,transform .15s}
.learn:hover,.learn:focus-visible{border-bottom-color:var(--accent);transform:translateX(3px)}
.page-head{padding:56px 0 8px}
.page-head h1{font-size:clamp(30px,5vw,46px);font-weight:800;letter-spacing:-.02em;margin-bottom:14px}
.page-head .sub{color:var(--muted);font-size:clamp(15px,2vw,18px)}
.answer{padding:8px 0 0}
.answer p{color:var(--chalk);font-size:17px;line-height:1.7;
  border-left:3px solid var(--accent);padding-left:16px}
[dir="rtl"] .answer p{border-left:0;border-right:3px solid var(--accent);padding-left:0;padding-right:16px}
[dir="rtl"] .learn:hover,[dir="rtl"] .learn:focus-visible{transform:translateX(-3px)}

/* ===== §24 front-page full-screen deck — port z airrec/web (referenčná implementácia).
   DOMOV je na desktope zvislý deck sekcií na celú výšku: jedno gesto = jedna sekcia.
   Sub-stránky ostávajú normálne rolovacie dokumenty (nesú hĺbku, tú nesmie uväzniť viewport).

   Feel robí JS controller v app.js; CSS len drží zarovnanie. Ani `proximity` (treba už byť
   pri hranici → ~5 flickov), ani `mandatory` (jeden momentum burst preletí cez viac panelov)
   to samo nezvládne — preto `proximity` + presné goTo() v JS.

   Snap je podmienený triedou `html.fullpage`, ktorú pridáva JS → bez JS / pri reduced-motion
   je stránka obyčajné rolovanie (progressive enhancement).

   MOUSE ONLY: `(hover:hover) and (pointer:fine)`. Každé dotykové zariadenie — telefón AJ
   tablet, v OBOCH orientáciách — hlási coarse/no-hover, takže deck nikdy nedostane.
   Táto query a query v app.js sú ROVNAKÝ reťazec a menia sa spolu. ===== */
@media (min-width: 768px) and (hover: hover) and (pointer: fine)
   and (prefers-reduced-motion: no-preference) {
  html.fullpage:has(main.snap-sections){scroll-snap-type:y proximity;scroll-padding-top:0}
  /* Sticky hlavička zaberá --nav-h nad deckom: bez tohto posunu by prvá sekcia začínala
     na y=nav-h, prehliadač by na ňu pri načítaní sám odscrolloval a nav by hneď prepol do
     „scrolled" stavu. Posun dá snap body na 0 · 1vh · 2vh — stránka naozaj stojí na scrollY 0. */
  main.snap-sections{margin-top:calc(-1 * var(--nav-h))}
  main.snap-sections > section{box-sizing:border-box;min-height:100dvh;display:flex;
    flex-direction:column;justify-content:center;scroll-snap-align:start;scroll-snap-stop:always}
  html.fullpage:has(main.snap-sections) footer.site{scroll-snap-align:start}
}

/* --- §24.0 ďalšie stránky: prose, press, kontaktný formulár -------------------- */
.prose h2{text-align:left;font-size:clamp(19px,2.6vw,24px);margin:26px 0 8px}

/* LICENCIE (Rule 13/26a) — 218 riadkov v štyroch stĺpcoch. Farby idú z palety, nič
   sa nededí od prehliadača: `table` a `th` majú vlastné hodnoty, inak by ich UA kreslil
   svojimi (Rule 8). Šírka sa NEROBÍ zmenšovaním písma — dlhé maven súradnice sa lámu
   a tabuľka roluje VO VLASTNOM kontajneri, aby stránka nerolovala do strán. */
.tablewrap{overflow-x:auto;margin:10px 0 22px;border:1px solid var(--line);border-radius:var(--rad)}
table.lic{width:100%;border-collapse:collapse;font-size:13px;background:var(--card)}
table.lic th{text-align:left;font-weight:700;color:var(--chalk);background:var(--card2);
  padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
table.lic td{padding:8px 12px;border-top:1px solid var(--line);color:var(--muted);vertical-align:top}
table.lic td:first-child{color:var(--chalk)}
table.lic code{font-family:var(--mono);font-size:12px;word-break:break-word}
table.lic a{color:var(--accent);text-decoration:none;word-break:break-all}
table.lic a:hover{text-decoration:underline}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--muted);font-size:16px;margin-bottom:6px}
.prose ul{color:var(--muted);font-size:16px;margin:6px 0 6px 20px}
.prose li{margin-bottom:6px}
.prose strong{color:var(--chalk)}
.press-dl{margin:10px 0 14px}
.press-shots{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.press-shots img{border-radius:10px;border:1px solid var(--line);transition:transform .15s}
.press-shots a:hover img,.press-shots a:focus-visible img{transform:translateY(-3px)}
.notice{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);
  padding:18px;color:var(--chalk);text-align:center}
.ct-pub{margin-top:22px}
.cform{display:flex;flex-direction:column;gap:6px;max-width:560px;margin:0 auto}
.cform label{font-size:14px;font-weight:600;margin-top:12px}
.req{color:var(--accent)}
.req-legend{font-size:13px;color:var(--muted);margin-bottom:4px}
.cform input,.cform textarea{background:var(--card);border:1px solid var(--line);border-radius:12px;
  color:var(--chalk);font:inherit;font-size:16px;padding:12px 14px;width:100%}
.cform input:focus-visible,.cform textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cform .cf-turnstile{margin-top:14px}
.cform button{margin-top:14px;background:var(--accent);color:var(--bg);border:0;border-radius:12px;
  font:inherit;font-weight:700;font-size:16px;padding:14px;cursor:pointer;transition:transform .15s,opacity .15s}
.cform button:hover:not(:disabled){transform:translateY(-2px)}
.cform button:disabled{opacity:.6;cursor:default}
.field-err{color:var(--neg);font-size:13px;margin-top:4px}
.form-ok{color:var(--accent);margin-top:14px;text-align:center}
.form-err{color:var(--neg);margin-top:14px;text-align:center}
.field-err{color:var(--neg);font-size:13px;margin-top:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wlform{max-width:560px;margin:18px auto 0;text-align:left}
.wl-row{display:flex;gap:10px;flex-wrap:wrap}
.wl-row input{flex:1 1 240px;min-width:0;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:14px 16px;color:var(--chalk);font-size:15px}
.wl-row input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.wl-row button{background:var(--accent);color:var(--bg);border:0;border-radius:12px;
  padding:14px 22px;font-weight:700;font-size:15px;cursor:pointer;transition:transform .15s ease,filter .15s ease}
.wl-row button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}
.wl-row button:focus-visible{outline:2px solid var(--chalk);outline-offset:2px}
.wl-row button:disabled{opacity:.6;cursor:default}
.wl-turnstile:not(:empty){margin-top:14px}
.wl-consent{margin-top:10px;text-align:center}

/* §24.0 E — „More from GRETIFY" strip. Monogramové dlaždice (self-hosted, žiadne
   cudzie assety); viditeľný hover/focus a dotykový cieľ ≥44 px (§21/§24). */
.more-gretify{max-width:var(--wrap,1120px);margin:26px auto 0;padding:0 22px;text-align:center}
.mg-label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:12px}
.more-gretify ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;
  margin:0;padding:0}
.more-gretify a{display:flex;align-items:center;gap:9px;min-height:44px;padding:7px 14px 7px 7px;
  border:1px solid var(--line);border-radius:999px;color:var(--chalk);text-decoration:none;
  font-size:13px;font-weight:600;transition:border-color .18s ease,transform .18s ease,background .18s ease}
.more-gretify a:hover{border-color:var(--accent);transform:translateY(-2px);background:var(--card)}
.more-gretify a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mg-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  background:var(--accent);color:var(--bg);font-weight:800;font-size:14px;flex:0 0 auto}

/* §24 — právne stránky mali nadpisy a odstavce cez `style=`; CSP ich zahadzovala,
   takže /privacy a /terms sa vykresľovali bez tejto typografie. */
.lgh1{font-size:34px;font-weight:800;margin-bottom:6px}
.lgsub{margin-bottom:28px}
.lgh2{font-size:19px;margin:22px 0 8px}
.lgb{font-size:15px}
