/* ==========================================================================
   SONGLAB.cz — THEME V2 · V8 "ŽIVÝ PASTEL"
   --------------------------------------------------------------------------
   ADITIVNÍ vrstva: tento soubor se načítá POUZE když je zapnutý přepínač
   theme_v2_enabled (/admin/settings/general, položka "Design Theme V2").
   S flag OFF se sem browser nikdy nedostane → V1 output 1:1 beze změny.

   Obsahuje 3 vrstvy:
   1) TOKENY V8 — schválený návrh nahled-theme-v8-zivy.html (1:1).
   2) .v2page komponenty — design konvertovaných V2 šablon
      (templates/v2/app/*). Vše scope-ované pod body.theme-v2 .v2page,
      žádné kolize s V1 markapem.
   3) RESKIN vrstva — pod body.theme-v2 přepisuje compiled Tailwind utility
   a V1 komponentní třídy (input.css), aby I NEKONVERTOVANÉ stránky
   (wizard, dashboard, cart, přihlášení, landing, právní, sdílené písně)
   a všechna modální okna vypadaly pastelinově. Barvy v style.css jsou
   literalní rgb() (Tailwind v3), proto se překrývají selektory s vyšší
   specificitou (0-2-1+), nikoliv přes CSS proměnné.
   --------------------------------------------------------------------------
   Typografie: Figtree (nadpisy 700/800) + Inter (text) — Google Fonts link
   načítá layout při flag ON; domény jsou whitelistované v CSP.
   ========================================================================== */

/* ---------- 1) TOKENY V8 (1:1 schválený návrh) ---------- */
:root{
  --bg:#FFFDF9; --white:#FFFFFF;
  --lilac:#F4EFFD; --mint:#E8F7EE; --peach:#FEF1E3; --sky:#EAF3FD; --blush:#FDEDF3; --butter:#FFF6DC;
  --ink:#2B1E55; --ink-2:#4A3D72; --muted:#8A7FA8;
  --line:rgba(43,30,85,.07);
  --violet:#6D48D9; --violet-deep:#5433AE; --v-soft:#EBE4FA; --lilac-line:#DCD2F2;
  --fuchsia:#C026D3; --coral:#FB7185; --sun:#FFC24B;
  --amber:#C77D2B; --mint-deep:#2F7A5C;
  --icon-data:#8E7CD6; /* Pastel lilac — barva datových ikon wizardu (schváleno) */
  --grad:linear-gradient(118deg,#7C3AED 0%,#C026D3 52%,#F59E0B 100%);
  --sh:0 18px 44px rgba(124,58,237,.10); --r:28px; --r-m:20px;
}

/* ---------- 2) V2 SHELL — báze celého frontendu ---------- */
body.theme-v2{
  background:var(--bg);
  color:var(--ink);
  color-scheme:light; /* nativní form controls / scrollbary do světlého režimu */
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
/* V1 :root dark proměnné (--surface, --text…) kaskádují do fallbacků
   input.css (:where(input), ::placeholder, autofill, optgroup). Přepnutím
   na těle se všechny přebarví do pastelu bez zásahu do V1 CSS. */
body.theme-v2{
  --background:#FFFDF9; --surface:#FFFFFF; --surface-light:#F4EFFD;
  --primary:#6D48D9; --primary-900:#5433AE; --secondary:#C026D3; --accent:#6D48D9;
  --text:#2B1E55; --text-muted:#8A7FA8;
}
/* POUZE max-width — height:auto zde nesmí: jako `body.theme-v2 img` (0-1-2) by
   přebil Tailwind utility h-8/sm:h-10 (0-1-0) a logo v hlavičce by na mobilu
   narostlo na nativní šířku 1024px škálovanou na 100% kontejneru. Preflight
   style.css drží stejné pravidlo s nižší specificitou, utility vyhrávají. */
body.theme-v2 img{max-width:100%}
body.theme-v2 h1,body.theme-v2 h2,body.theme-v2 h3,body.theme-v2 h4{
  font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:700;letter-spacing:-.028em;line-height:1.12;color:var(--ink);
}
body.theme-v2 :focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:12px}
/* PITFALL: compiled Tailwind preflight v style.css má `svg,video{display:block}`;
   bez explicitního inline-block by se každá inline ikona (.ico) v textovém toku
   zlomila na vlastní řádek (preflight má nižší specificitu, Display se v .ico
   dosud nepřepisoval). */
body.theme-v2 .ico{display:inline-block;width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.28em}
body.theme-v2 .ico.f{fill:currentColor;stroke:currentColor;stroke-width:.8}
/* PITFALL: i-cz je plnobarevná vlajka — používá JEN class="flag" (.ico by ji udělala neviditelnou) */
body.theme-v2 .flag{width:17px;height:12px;flex:none;border-radius:3px;box-shadow:0 0 0 1px rgba(43,30,85,.12);vertical-align:-.15em}
/* Alpine x-cloak guard — bez něj bloky s x-show bliknou před initem Alpine
   (zdrojový input.css se do style.css nepřekládá, product.php řešil stejné inline). */
[x-cloak]{display:none!important}

/* ---------- 3) .v2page komponenty (konvertované šablony) ----------
   V2 šablony obalí svůj obsah <div class="v2page">. Nic z tohoto bloku
   se nedotkne V1 markapu (wizard, dashboard…), protože tam se .v2page nevyskytuje. */
body.theme-v2 .v2page a{color:inherit;text-decoration:none}
body.theme-v2 .v2page button{font:inherit;cursor:pointer}
body.theme-v2 .v2page .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
/* proudové pásy: uvnitř layout kontejneru max-w-6xl jako zaoblené panely */
body.theme-v2 .v2page>section{padding:clamp(2.6rem,5vw,4.2rem) 0;border-radius:var(--r)}
body.theme-v2 .v2page>section+section{margin-top:18px}
body.theme-v2 .v2page .accent{color:var(--violet-deep)}

body.theme-v2 .v2page .ic-tile{width:44px;height:44px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center}
body.theme-v2 .v2page .ic-tile .ico{width:22px;height:22px}
body.theme-v2 .v2page .kick{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 14px;font-family:'Figtree',sans-serif;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
body.theme-v2 .v2page .kick .ico{width:14px;height:14px;vertical-align:-.18em}
body.theme-v2 .v2page .kick.a{background:var(--butter);color:#8A5A00}
body.theme-v2 .v2page .kick.b{background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .v2page .kick.c{background:#FCE7EF;color:#AE1860}
body.theme-v2 .v2page .stk{position:absolute;z-index:2;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;font-size:22px;animation:v2float 5s ease-in-out infinite}
@keyframes v2float{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-10px) rotate(6deg)}}
@media(max-width:720px){body.theme-v2 .v2page .hero .stk,body.theme-v2 .v2page .finale .stk{display:none}}

body.theme-v2 .v2page .pill{display:inline-flex;align-items:center;gap:7px;border-radius:999px;font-family:'Figtree',sans-serif;font-weight:600;font-size:12.5px;padding:6px 14px}
body.theme-v2 .v2page .vbtn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:'Figtree',sans-serif;font-weight:700;font-size:15.5px;border-radius:999px;padding:15px 30px;border:0;transition:transform .18s,box-shadow .2s}
body.theme-v2 .v2page .vbtn:hover{transform:translateY(-2px)}
body.theme-v2 .v2page .vbtn-g{background:var(--grad);color:#fff;box-shadow:0 12px 26px rgba(192,38,211,.32)}
body.theme-v2 .v2page .vbtn-w{background:var(--white);color:var(--ink);border:1px solid var(--line)}
body.theme-v2 .v2page .vbtn-w:hover{box-shadow:var(--sh)}
body.theme-v2 .v2page .vbtn-lg{padding:16px 32px;font-size:16.5px}
body.theme-v2 .v2page .vbtn-sm{padding:9px 18px;font-size:13px}

/* announcement — teplý máslový pás */
body.theme-v2 .v2page .ann{background:var(--butter);color:#7A4E00;text-align:center;padding:9px 16px;font-family:'Figtree',sans-serif;font-size:13.5px;font-weight:600;border-radius:var(--r-m)}
body.theme-v2 .v2page .ann .ico{width:14px;height:14px;vertical-align:-.2em}
body.theme-v2 .v2page .ann button{background:var(--white);border:0;color:#7A4E00;border-radius:999px;font-size:12px;font-weight:700;padding:4px 14px;margin-left:10px}
body.theme-v2 .v2page .ann a{color:#7A4E00}
body.theme-v2 .v2page .ann a.play{display:inline-flex;align-items:center;gap:6px;background:var(--white);color:#7A4E00;border-radius:999px;font-size:12px;font-weight:700;padding:4px 14px;margin-left:10px;text-decoration:none}
body.theme-v2 .v2page .ann a.play .ico{width:12px;height:12px}

/* hero — pastelový sunset gradient (Varianta E: violet → rose → apricot) */
body.theme-v2 .v2page .hero{position:relative;overflow:hidden;background:linear-gradient(158deg,#8B7BD6 0%,#B07CC8 30%,#E8A0B8 62%,#F5B88A 100%);border-radius:var(--r);padding-top:clamp(3rem,6vw,4.6rem)}
body.theme-v2 .v2page .hero::before{content:"";position:absolute;width:720px;height:560px;left:-14%;top:-40%;border-radius:50%;background:radial-gradient(circle,rgba(167,139,250,.28),transparent 65%)}
body.theme-v2 .v2page .hero::after{content:"";position:absolute;width:680px;height:560px;right:-10%;bottom:-46%;border-radius:50%;background:radial-gradient(circle,rgba(251,191,36,.18),transparent 62%)}
body.theme-v2 .v2page .hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
@media(max-width:960px){body.theme-v2 .v2page .hero-grid{grid-template-columns:1fr;gap:36px}}
body.theme-v2 .v2page .hero .badge{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28)}
body.theme-v2 .v2page .hero h1{font-size:clamp(2.6rem,5.6vw,4.1rem);font-weight:800;margin:20px 0 18px;color:#fff}
body.theme-v2 .v2page .hero .lead{color:rgba(255,255,255,.86);font-size:clamp(1rem,1.5vw,1.14rem);max-width:48ch;margin-bottom:22px}
body.theme-v2 .v2page .hero .accent{color:#FDE68A;position:relative;white-space:nowrap}
/* Lang hero_title_html obsahuje <span class="text-gradient"> — v hero
   sekci V8 ho nezobrazuje gradientem, ale máslovou žlutou. */
body.theme-v2 .v2page .hero .text-gradient{background:none;-webkit-background-clip:initial;background-clip:initial;color:#FDE68A}
body.theme-v2 .v2page .squig{position:absolute;left:-2%;bottom:-.18em;width:104%;height:.22em}
body.theme-v2 .v2page .squig path{stroke:var(--sun);stroke-width:7;fill:none;stroke-linecap:round}
body.theme-v2 .v2page .promo{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:22px}
body.theme-v2 .v2page .promo .tag{background:var(--sun);border:0;color:#5B3200;border-radius:999px;padding:6px 14px;font-family:'Figtree',sans-serif;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;transform:rotate(-2deg);box-shadow:0 6px 16px rgba(255,194,75,.4)}
body.theme-v2 .v2page .promo .tag .ico{width:13px;height:13px;vertical-align:-.12em}
body.theme-v2 .v2page .promo .now{font-family:'Figtree',sans-serif;font-weight:800;font-size:2rem;letter-spacing:-.035em;color:#fff}
body.theme-v2 .v2page .promo .was{font-family:'Figtree',sans-serif;font-weight:600;font-size:15px;color:rgba(255,255,255,.55);text-decoration:line-through}
body.theme-v2 .v2page .promo .save{background:#A7F3D0;color:#065F46;border-radius:999px;padding:5px 13px;font-family:'Figtree',sans-serif;font-size:12px;font-weight:700}
body.theme-v2 .v2page .hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
body.theme-v2 .v2page .hero .vbtn-g{background:#fff;color:var(--violet-deep);box-shadow:0 8px 24px rgba(99,60,180,.18)}
body.theme-v2 .v2page .hero .vbtn-w{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35)}
body.theme-v2 .v2page .hero .vbtn-w:hover{background:rgba(255,255,255,.18);box-shadow:none}
body.theme-v2 .v2page .trust{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
body.theme-v2 .v2page .trust span{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:6px 13px;font-size:12px;font-weight:600;color:rgba(255,255,255,.92);font-family:'Figtree',sans-serif}
body.theme-v2 .v2page .trust .ico{width:15px;height:15px;vertical-align:-.2em}
body.theme-v2 .v2page .hero .ben{font-size:13px;color:rgba(255,255,255,.72);max-width:52ch}
body.theme-v2 .v2page .hero .giftlink{font-size:13px;margin-top:10px;color:rgba(255,255,255,.72)}
body.theme-v2 .v2page .hero .giftlink a{color:#E9D5FF;font-weight:600}
/* hero player */
body.theme-v2 .v2page .hplayer{background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.34);box-shadow:0 14px 34px rgba(60,30,120,.20);border-radius:20px;padding:11px 14px;display:flex;flex-direction:column;gap:7px;color:#fff}
body.theme-v2 .v2page .hplayer .lab{font-family:'Figtree',sans-serif;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
body.theme-v2 .v2page .hplayer .song{display:flex;gap:16px;align-items:center}
body.theme-v2 .v2page .hplayer .song img{width:76px;height:76px;border-radius:18px;object-fit:cover}
body.theme-v2 .v2page .hplayer .song b{font-family:'Figtree',sans-serif;font-weight:700;font-size:16px;display:block;letter-spacing:-.02em}
body.theme-v2 .v2page .hplayer .song small{font-size:12px;color:var(--muted)}
body.theme-v2 .v2page .wave{display:flex;align-items:center;gap:3px;height:56px}
body.theme-v2 .v2page .wave i{flex:1;min-width:3px;border-radius:3px;background:var(--lilac-line);transition:background .2s}
body.theme-v2 .v2page .hplayer.playing .wave i{background:linear-gradient(180deg,var(--violet),var(--v-soft));animation:v2bounce 1s ease-in-out infinite alternate}
body.theme-v2 .v2page .hplayer.playing .wave i:nth-child(2n){animation-delay:.12s}
body.theme-v2 .v2page .hplayer.playing .wave i:nth-child(3n){animation-delay:.24s}
body.theme-v2 .v2page .hplayer.playing .wave i:nth-child(5n){animation-delay:.36s}
body.theme-v2 .v2page .hplayer.playing .wave i:nth-child(4n){animation-duration:1.35s}
body.theme-v2 .v2page .hplayer.playing .wave i:nth-child(7n){animation-duration:.7s}
/* analyzátor aktivní: výšku sloupců řídí JS (Web Audio), CSS bounce je vypnuto */
body.theme-v2 .v2page .hplayer.audiovis .wave i{animation:none;transition:height .09s linear}
@keyframes v2bounce{from{transform:scaleY(.55)}to{transform:scaleY(1.15)}}
body.theme-v2 .v2page .hplayer .row{display:flex;align-items:center;gap:14px}
/* flex centre: bez něj by block-level svg (preflight) skončil v rohu tlačítka */
body.theme-v2 .v2page .pbtn{width:52px;height:52px;flex:none;border-radius:50%;background:var(--violet-deep);color:#fff;border:0;font-size:15px;box-shadow:0 10px 22px rgba(84,51,174,.3);transition:transform .15s;display:inline-flex;align-items:center;justify-content:center}
body.theme-v2 .v2page .pbtn:hover{transform:scale(1.07)}
body.theme-v2 .v2page .pbtn .ico{width:17px;height:17px;margin-left:2px}
body.theme-v2 .v2page .hplayer .hint{font-size:11.5px;color:var(--muted)}
/* ==== Hero player combo — A layout (zrcadlová vlna, kurzor, časy, hlasitost)
        + C výškové barvení (schváleno nahled-theme-v11-hero-combo.html) ====
   Struktura: .a-wave > .a-cols (.col > i.up,i.down) + .a-cursor (absolutní).
   .col drží oba polozprávané pruhy; JS řídí výšku (amplituda) a triedu
   .done.t1..t4 pro již odehrané sloupce; bez analyzéra → CSS bounce fallback. */
body.theme-v2 .v2page .hplayer .a-wave{position:relative;height:48px;margin:2px 2px 6px;display:flex;align-items:stretch;cursor:pointer;touch-action:none}
body.theme-v2 .v2page .hplayer .a-cols{display:flex;align-items:center;gap:3px;height:100%;flex:1;min-width:0}
body.theme-v2 .v2page .hplayer .a-wave .col{flex:1;position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:0;min-width:0}
body.theme-v2 .v2page .hplayer .a-wave .col i{display:block;border-radius:99px;background:var(--lilac-line);transition:background .18s}
/* výšková barevná škála — jen odehrané sloupce (před kurzorem) */
body.theme-v2 .v2page .hplayer .a-wave .col.done.t1 i{background:linear-gradient(180deg,#C9B8EF,#B7A2E8)}
body.theme-v2 .v2page .hplayer .a-wave .col.done.t2 i{background:linear-gradient(180deg,var(--violet),#8B5CF6)}
body.theme-v2 .v2page .hplayer .a-wave .col.done.t3 i{background:linear-gradient(180deg,var(--fuchsia),#E879F9)}
body.theme-v2 .v2page .hplayer .a-wave .col.done.t4 i{background:linear-gradient(180deg,var(--sun),var(--coral))}
body.theme-v2 .v2page .hplayer .a-cursor{position:absolute;top:-2px;bottom:-2px;left:0;width:2px;border-radius:2px;background:var(--grad);box-shadow:0 0 12px rgba(192,38,211,.7);opacity:0;transition:opacity .2s;pointer-events:none}
body.theme-v2 .v2page .hplayer.playing .a-cursor{opacity:1}
body.theme-v2 .v2page .hplayer .a-times{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;margin:0 2px 14px}
body.theme-v2 .v2page .hplayer .a-times b{color:var(--violet-deep);font-weight:700}
body.theme-v2 .v2page .hplayer .a-ctrl{display:flex;align-items:center;gap:16px}
body.theme-v2 .v2page .hplayer .a-hint{font-size:11px;color:var(--muted);text-align:center;margin-top:2px}
body.theme-v2 .v2page .hplayer .vol{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted)}
body.theme-v2 .v2page .hplayer .vol .vico{width:16px;height:16px;fill:currentColor;stroke:none;flex:none}
body.theme-v2 .v2page .hplayer .vol .track{width:74px;height:5px;border-radius:99px;background:var(--v-soft);position:relative;cursor:pointer}
body.theme-v2 .v2page .hplayer .vol .fill{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:99px;background:var(--grad)}
body.theme-v2 .v2page .hplayer .vol .knob{position:absolute;top:50%;left:100%;width:12px;height:12px;border-radius:50%;background:#fff;border:2.5px solid var(--violet);transform:translate(-50%,-50%);box-shadow:0 2px 6px rgba(84,51,174,.3)}
/* bez analyzéra (cross-origin / bez AudioContextu): zrcadlové sloupce alespoň CSS bounce */
body.theme-v2 .v2page .hplayer.playing:not(.audiovis) .a-wave .col i{animation:v2bounce 1s ease-in-out infinite alternate}
body.theme-v2 .v2page .hplayer.playing:not(.audiovis) .a-wave .col:nth-child(2n) i{animation-delay:.12s}
body.theme-v2 .v2page .hplayer.playing:not(.audiovis) .a-wave .col:nth-child(3n) i{animation-delay:.24s}
body.theme-v2 .v2page .hplayer.playing:not(.audiovis) .a-wave .col:nth-child(5n) i{animation-delay:.36s}
body.theme-v2 .v2page .hplayer.audiovis .a-wave .col i{transition:height .09s linear}

/* ==== Hero player V2 — GLASS (sklenena pila) + SKYLINE ekvalizer ====
   Pastelova paleta (violet/fuchsia/sun), zadna tmava modr. Tenky linearni
   progress (.linprog) vedle Play + viditelny uchop na kurzoru (tahem seek). */
body.theme-v2 .v2page .hplayer .lab,
body.theme-v2 .v2page .hplayer .a-hint,
body.theme-v2 .v2page .hplayer .vol{display:none}
body.theme-v2 .v2page .hplayer .song{gap:12px}
body.theme-v2 .v2page .hplayer .song img{width:42px;height:42px;border-radius:11px}
body.theme-v2 .v2page .hplayer .song b{color:#fff;font-size:14px}
body.theme-v2 .v2page .hplayer .song small{display:inline-block;margin-top:5px;color:#fff;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}
body.theme-v2 .v2page .hplayer .a-times{color:rgba(255,255,255,.85);font-size:11px;margin:0 2px 2px}
body.theme-v2 .v2page .hplayer .a-times b{color:#fff}
body.theme-v2 .v2page .hplayer .a-ctrl{gap:12px;margin-top:1px}
body.theme-v2 .v2page .hplayer .pbtn{width:40px;height:40px;background:var(--grad);color:#fff;box-shadow:0 6px 16px rgba(124,58,237,.28)}
body.theme-v2 .v2page .hplayer .pbtn .ico{width:15px;height:15px;color:#fff}
/* tenky linearni progress vedle Play */
body.theme-v2 .v2page .hplayer .linprog{position:relative;flex:1 1 auto;height:5px;border-radius:999px;background:rgba(255,255,255,.30);cursor:pointer;touch-action:none}
body.theme-v2 .v2page .hplayer .linprog .lp-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;background:var(--grad)}
body.theme-v2 .v2page .hplayer .linprog .lp-knob{position:absolute;top:50%;left:0;width:13px;height:13px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 0 3px rgba(192,38,211,.28),0 2px 8px rgba(0,0,0,.25);pointer-events:none}
body.theme-v2 .v2page .hplayer .linprog:focus-visible{outline:2px solid #fff;outline-offset:3px}
/* kurzor = viditelny uchop (knob) i v klidu */
body.theme-v2 .v2page .hplayer .a-cursor{opacity:1;width:2px}
body.theme-v2 .v2page .hplayer .a-cursor::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(192,38,211,.28),0 3px 10px rgba(124,58,237,.4)}
body.theme-v2 .v2page .hplayer .a-wave{cursor:grab}
body.theme-v2 .v2page .hplayer .a-wave:active{cursor:grabbing}
/* SKYLINE: prouzky ode dna, spodni polovina skryta, pastelove barvy */
body.theme-v2 .v2page .hplayer .a-wave .col i:last-child{display:none}
body.theme-v2 .v2page .hplayer .a-wave .col i:first-child{background:linear-gradient(180deg,var(--violet),var(--fuchsia));border-radius:6px 6px 3px 3px}
body.theme-v2 .v2page .hplayer .a-wave .col.done.t1 i:first-child,
body.theme-v2 .v2page .hplayer .a-wave .col.done.t2 i:first-child,
body.theme-v2 .v2page .hplayer .a-wave .col.done.t3 i:first-child,
body.theme-v2 .v2page .hplayer .a-wave .col.done.t4 i:first-child{background:linear-gradient(180deg,var(--fuchsia),var(--sun))}

/* živý rytmus sekcí — střídání pastelových výplní */
body.theme-v2 .v2page section.band-sky{background:var(--sky)}
body.theme-v2 .v2page section.band-blush{background:var(--blush)}
body.theme-v2 .v2page section.band-mint{background:var(--mint)}
body.theme-v2 .v2page section.band-lilac{background:var(--lilac)}
body.theme-v2 .v2page section.band-peach{background:var(--peach)}

/* obecné hlavičky sekcí */
body.theme-v2 .v2page .sec-head{max-width:640px;margin:0 auto 42px;text-align:center}
body.theme-v2 .v2page .sec-head h2{font-size:clamp(1.85rem,3.6vw,2.5rem);font-weight:800;margin-bottom:10px}
body.theme-v2 .v2page .sec-head p{color:var(--muted)}
body.theme-v2 .v2page .bars{display:flex;justify-content:center;gap:4px;margin-top:16px}
body.theme-v2 .v2page .bars i{width:4px;border-radius:4px;background:var(--violet)}
body.theme-v2 .v2page .bars i:nth-child(1){height:8px;background:var(--violet);opacity:.55}
body.theme-v2 .v2page .bars i:nth-child(2){height:16px;background:var(--fuchsia);opacity:.6}
body.theme-v2 .v2page .bars i:nth-child(3){height:24px;background:var(--violet)}
body.theme-v2 .v2page .bars i:nth-child(4){height:12px;background:var(--sun)}
body.theme-v2 .v2page .bars i:nth-child(5){height:20px;background:var(--coral);opacity:.75}
body.theme-v2 .v2page .bars i:nth-child(6){height:8px;background:var(--mint-deep);opacity:.45}

/* steps — glassmorphism ilustrace + centrované číslování */
body.theme-v2 .v2page .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;position:relative}
body.theme-v2 .v2page .steps::before{content:"";position:absolute;top:38px;left:7%;right:7%;border-top:2.5px dashed var(--lilac-line);z-index:0}
@media(max-width:920px){body.theme-v2 .v2page .steps{grid-template-columns:repeat(2,1fr)}body.theme-v2 .v2page .steps::before{display:none}}
@media(max-width:540px){body.theme-v2 .v2page .steps{grid-template-columns:1fr}}
body.theme-v2 .v2page .st{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:28px 20px 24px;position:relative;z-index:1;box-shadow:0 10px 26px rgba(124,58,237,.06);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
body.theme-v2 .v2page .st .n{font-family:'Figtree',sans-serif;font-weight:800;font-size:13px;width:32px;height:32px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;box-shadow:0 6px 14px rgba(192,38,211,.3)}
body.theme-v2 .v2page .st .simg{width:120px;height:120px;object-fit:contain;margin:0 auto 16px;display:block}
@media(max-width:920px){body.theme-v2 .v2page .st .simg{width:100px;height:100px}}
@media(max-width:540px){body.theme-v2 .v2page .st .simg{width:110px;height:110px}}
body.theme-v2 .v2page .st h4{font-size:14.5px;margin-bottom:8px;line-height:1.3}
body.theme-v2 .v2page .st p{font-size:12.5px;color:var(--muted);line-height:1.6;max-width:220px;margin:0 auto}
body.theme-v2 .v2page .st .f,body.theme-v2 .v2page .st .pd{font-family:'Figtree',sans-serif;display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 10px}
body.theme-v2 .v2page .st .f .ico,body.theme-v2 .v2page .st .pd .ico{width:11px;height:11px}
body.theme-v2 .v2page .st .f{background:var(--mint);color:var(--mint-deep)}
body.theme-v2 .v2page .st .pd{background:var(--v-soft);color:var(--violet-deep)}

/* value */
body.theme-v2 .v2page .value{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:820px){body.theme-v2 .v2page .value{grid-template-columns:1fr}}
body.theme-v2 .v2page .val{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
body.theme-v2 .v2page .val .ph{height:210px;background:var(--lilac);overflow:hidden}
body.theme-v2 .v2page .val .ph img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
body.theme-v2 .v2page .val:hover .ph img{transform:scale(1.03)}
body.theme-v2 .v2page .val .tx{padding:20px 22px}
body.theme-v2 .v2page .val h3{font-size:15.5px;margin-bottom:6px}
body.theme-v2 .v2page .val p{font-size:12.5px;color:var(--muted)}
body.theme-v2 .v2page .cert-h{display:flex;align-items:center;justify-content:center;padding:14px;background:var(--peach)}
body.theme-v2 .v2page .cert-h img{max-height:196px;width:auto;object-fit:contain;border-radius:10px;box-shadow:var(--sh);cursor:zoom-in}
body.theme-v2 .v2page .mp3-h{display:flex;align-items:center;justify-content:center}
body.theme-v2 .v2page .mp3-h .ic{width:56px;height:56px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 10px 24px rgba(192,38,211,.3)}
body.theme-v2 .v2page .mp3-h .ic .ico{width:24px;height:24px}

/* occasions */
body.theme-v2 .v2page .occ{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:920px){body.theme-v2 .v2page .occ{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){body.theme-v2 .v2page .occ{grid-template-columns:1fr}}
body.theme-v2 .v2page .ocard{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/11;box-shadow:var(--sh)}
body.theme-v2 .v2page .ocard img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
body.theme-v2 .v2page .ocard:hover img{transform:scale(1.05)}
body.theme-v2 .v2page .ocard figcaption{position:absolute;inset:auto 0 0;padding:34px 18px 14px;background:linear-gradient(180deg,transparent,rgba(43,30,85,.78));color:#fff}
body.theme-v2 .v2page .ocard figcaption b{font-family:'Figtree',sans-serif;font-weight:700;font-size:15px;display:block;letter-spacing:-.01em}
body.theme-v2 .v2page .ocard figcaption span{font-size:11.5px;opacity:.85}

/* testimonials */
body.theme-v2 .v2page .testis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
@media(max-width:920px){body.theme-v2 .v2page .testis{grid-template-columns:1fr}}
body.theme-v2 .v2page .tcard{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
body.theme-v2 .v2page .tcard:hover{box-shadow:var(--sh);transform:translateY(-3px)}
body.theme-v2 .v2page .tcard .cov img{width:100%;aspect-ratio:1;object-fit:cover}
body.theme-v2 .v2page .tcard .in{padding:18px 20px;display:flex;flex-direction:column;flex:1;gap:10px}
body.theme-v2 .v2page .tcard h3{font-size:16px;letter-spacing:-.02em}
body.theme-v2 .v2page .tcard .ded{font-size:12.5px;color:var(--muted);font-style:italic;margin-top:-4px}
body.theme-v2 .v2page .tbadges{display:flex;flex-wrap:wrap;gap:6px}
body.theme-v2 .v2page .tbadges span{font-family:'Figtree',sans-serif;font-size:10.5px;font-weight:600;border-radius:999px;padding:3px 10px;background:var(--lilac);color:var(--ink-2);display:inline-flex;align-items:center;gap:5px}
body.theme-v2 .v2page .tbadges .flag{width:14px;height:10px;vertical-align:0}
body.theme-v2 .v2page .tbadges span.on{background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .v2page .tplay{margin-top:auto;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:11px;background:var(--v-soft);color:var(--violet-deep);font-family:'Figtree',sans-serif;font-weight:700;font-size:13.5px;transition:all .15s;cursor:pointer}
body.theme-v2 .v2page .tplay:hover{background:var(--grad);color:#fff}
body.theme-v2 .v2page .tplay .ico{width:14px;height:14px;vertical-align:-.2em}
body.theme-v2 .v2page .testi-more{text-align:center;margin-top:26px}

/* offer */
body.theme-v2 .v2page .offer{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:900px;margin:0 auto}
@media(max-width:720px){body.theme-v2 .v2page .offer{grid-template-columns:1fr}}
body.theme-v2 .v2page .ofa{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px;display:block;transition:box-shadow .2s,transform .2s}
body.theme-v2 .v2page .ofa:hover{box-shadow:var(--sh);transform:translateY(-3px)}
body.theme-v2 .v2page .ofa .em{width:56px;height:56px;border-radius:19px;background:var(--butter);color:#B07A00;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
body.theme-v2 .v2page .ofa .em.v{background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .v2page .ofa .em .ico{width:24px;height:24px}
body.theme-v2 .v2page .ofa h3{font-size:17px;margin-bottom:6px}
body.theme-v2 .v2page .ofa p{font-size:13px;color:var(--muted);margin-bottom:12px}
body.theme-v2 .v2page .ofa .go{font-family:'Figtree',sans-serif;font-size:13px;font-weight:700;color:var(--violet-deep)}

/* --- Varianta C „Ohlas finale" — světlý panel s jemnou violetovou září z rohů,
       mračená skla karet, gradientní ikony dlaždice (--grad) a centrovaný text.
       Scope tridy .offer-band → aditivní, V1 a ostatní pásy nedotčeny. --- */
body.theme-v2 .v2page section.offer-band{background:radial-gradient(58% 78% at 10% -6%,rgba(124,58,237,.12),transparent 60%),radial-gradient(54% 74% at 90% -6%,rgba(192,38,211,.12),transparent 62%),#fff;border:1px solid var(--lilac-line)}
body.theme-v2 .v2page .offer-band .ofa{text-align:center;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border:1px solid rgba(255,255,255,.75);box-shadow:0 14px 34px rgba(124,58,237,.10)}
body.theme-v2 .v2page .offer-band .ofa:hover{box-shadow:0 22px 46px rgba(124,58,237,.18);transform:translateY(-3px)}
body.theme-v2 .v2page .offer-band .ofa .em,body.theme-v2 .v2page .offer-band .ofa .em.v{margin:0 auto 14px;background:var(--grad);color:#fff;box-shadow:0 10px 22px rgba(124,58,237,.28)}
body.theme-v2 .v2page .offer-band .ofa .em .ico{width:26px;height:26px}
body.theme-v2 .v2page .offer-band .ofa .go{display:inline-block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}

/* FAQ — 2-sloupcový grid + gradient badges (vzor besong.cz) */
body.theme-v2 .v2page .faq{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:860px){body.theme-v2 .v2page .faq{grid-template-columns:1fr}}
body.theme-v2 .v2page .faq summary .fq{display:flex;align-items:center;gap:12px}
body.theme-v2 .v2page .faq .fib{width:40px;height:40px;flex:none;border-radius:10px;background:var(--grad);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(142,124,214,.25)}
body.theme-v2 .v2page .faq .fib .dico{width:20px;height:20px;color:#fff}
body.theme-v2 .v2page details{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 4px rgba(43,30,85,.04)}
body.theme-v2 .v2page details[open]{border-color:var(--lilac-line);box-shadow:0 2px 12px rgba(142,124,214,.10)}
body.theme-v2 .v2page summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;font-family:'Figtree',sans-serif;font-weight:700;font-size:14.5px;cursor:pointer}
body.theme-v2 .v2page summary::-webkit-details-marker{display:none}
body.theme-v2 .v2page summary .x{width:28px;height:28px;flex:none;border-radius:50%;background:var(--butter);color:#8A5A00;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;transition:transform .2s,background .2s}
body.theme-v2 .v2page details[open] summary .x{transform:rotate(45deg);background:var(--grad);color:#fff}
body.theme-v2 .v2page details .a{padding:0 20px 17px;font-size:13.5px;color:var(--muted)}

/* reviews */
body.theme-v2 .v2page .msgs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:920px){body.theme-v2 .v2page .msgs{grid-template-columns:1fr}}
body.theme-v2 .v2page .msg{background:var(--white);border-radius:var(--r);box-shadow:var(--sh);padding:24px;display:flex;flex-direction:column;gap:10px}
body.theme-v2 .v2page .msg .body{font-size:13.5px;color:var(--ink-2);line-height:1.6;flex:1}
body.theme-v2 .v2page .msg .head{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding-top:12px}
body.theme-v2 .v2page .msg .av{width:38px;height:38px;border-radius:50%;background:var(--grad);color:#fff;font-family:'Figtree',sans-serif;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}
body.theme-v2 .v2page .msg .who b{font-family:'Figtree',sans-serif;font-weight:700;font-size:13.5px;display:block}
body.theme-v2 .v2page .msg .who span{font-size:11px;color:var(--muted)}
body.theme-v2 .v2page .msg .who span .ico{width:12px;height:12px;vertical-align:-.15em}
body.theme-v2 .v2page .rate-strip{display:flex;align-items:center;gap:14px;justify-content:center;margin-top:30px;font-family:'Figtree',sans-serif;font-size:13.5px;color:var(--ink-2);flex-wrap:wrap}
body.theme-v2 .v2page .rate-strip b{font-weight:800;color:var(--ink);font-size:1.25rem}
body.theme-v2 .v2page .rate-strip .stars{color:#F59E0B;letter-spacing:2px;font-size:1.1rem}
body.theme-v2 .v2page .rate-strip .ico{width:17px;height:17px;color:#F59E0B;vertical-align:-.22em}

/* CTA — závěrečný energetický gradientní pás */
body.theme-v2 .v2page .finale{background:var(--grad);text-align:center;position:relative;overflow:hidden;border-radius:var(--r)}
body.theme-v2 .v2page .finale h2{font-size:clamp(2.1rem,5vw,3.4rem);font-weight:800;margin-bottom:14px;color:#fff}
body.theme-v2 .v2page .finale .accent{color:#FDE68A}
body.theme-v2 .v2page .finale p{color:rgba(255,255,255,.92);font-size:clamp(1.05rem,1.8vw,1.3rem);max-width:46ch;margin:0 auto 28px}
body.theme-v2 .v2page .finale .vbtn-g{background:#fff;color:var(--violet-deep);box-shadow:0 14px 30px rgba(0,0,0,.22)}
body.theme-v2 .v2page .finale .fine{margin-top:16px;font-size:12.5px;color:rgba(255,255,255,.75)}

/* mobilní sticky CTA (position:fixed funguje i uvnitř .v2page) */
body.theme-v2 .v2page .mbar{display:none;position:fixed;left:12px;right:12px;bottom:calc(12px + var(--v2-playlift,0px));transition:bottom .25s ease;z-index:70;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid var(--lilac-line);border-radius:999px;padding:8px 8px 8px 18px;align-items:center;gap:12px;box-shadow:var(--sh)}
body.theme-v2 .v2page .mbar .tx{font-size:11.5px;color:var(--muted);line-height:1.3}
body.theme-v2 .v2page .mbar .tx span{display:block}
body.theme-v2 .v2page .mbar .tx b{display:block;color:var(--ink);font-size:13.5px;white-space:nowrap}
body.theme-v2 .v2page .mbar .vbtn{margin-left:auto}
@media(max-width:768px){body.theme-v2 .v2page .mbar{display:flex}}
/* mobilní sticky lišta zvedne i spodek BODY (1:1 mockup L302) — jinak překrývá footer;
   JS dynamicky zvětšuje mezeru, když je otevřený i Unified Player (--v2-footpad) */
@media(max-width:768px){body.theme-v2.v2-mbar{padding-bottom:var(--v2-footpad,96px)}}

/* ---------- stránková rozšíření (reference / hodnocení / blog) ---------- */
body.theme-v2 .v2page .pagehead{background:linear-gradient(180deg,var(--lilac),var(--bg));padding:clamp(2.6rem,5vw,4rem) 24px clamp(1.6rem,3vw,2.4rem);text-align:center;border-radius:var(--r)}
body.theme-v2 .v2page .pagehead h1{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:800;letter-spacing:-.03em;margin-bottom:10px}
body.theme-v2 .v2page .pagehead p{color:var(--muted);font-size:clamp(1rem,1.5vw,1.12rem);max-width:58ch;margin:0 auto}
/* reference — Verze C „Editorial Flow" (finální schválená varianta, náhled nahled-reference.html):
   hero → carousel doporučených (rf-*) → editoriální list (ri-*) →
   load-more s nakukujícím maskotem → trust → full-bleed CTA. Unified Player
   se nemění (open-player SSOT); karty zrcadlí stav přes .playing (js v references.php).
   SROVNÁNÍ S JINÝMI STRÁNKAMI: hero i main obsah stojí ve stejném centrovaném
   sloupci .wrap (max 1120px) jako homepage / Produkty / /nabidka — gradient,
   radius i svislý padding hero dodává sdílené pravidlo .hero. */
body.theme-v2 .v2page .ref-hero .stk .ico{color:#fff;width:20px;height:20px}
body.theme-v2 .v2page .ref-hero-in{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:clamp(24px,4vw,56px);align-items:center}
body.theme-v2 .v2page .ref-hero h1{font-size:clamp(2.2rem,5.2vw,3.6rem);font-weight:800;letter-spacing:-.03em;color:#fff;margin-bottom:12px}
body.theme-v2 .v2page .ref-hero p{color:rgba(255,255,255,.88);font-size:clamp(1.02rem,1.6vw,1.2rem);max-width:52ch;margin:0}
body.theme-v2 .v2page .ref-stats{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
body.theme-v2 .v2page .ref-stat{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);border-radius:999px;padding:8px 18px;font-family:'Figtree',sans-serif;font-weight:700;font-size:13px;color:#fff}
body.theme-v2 .v2page .ref-stat .ico{width:14px;height:14px;color:#FFD87A}
body.theme-v2 .v2page .ref-hero-msc{width:clamp(200px,22vw,300px)}
body.theme-v2 .v2page .ref-hero-msc img{width:100%;height:auto;filter:drop-shadow(0 22px 36px rgba(10,4,40,.35))}
@media(max-width:900px){body.theme-v2 .v2page .ref-hero-in{grid-template-columns:1fr;text-align:center}body.theme-v2 .v2page .ref-stats{justify-content:center}body.theme-v2 .v2page .ref-hero-msc{margin:0 auto;width:clamp(160px,40vw,220px)}}
/* main obsahovy blok — vodorovne odsazeni drzi .wrap (24px); svisly odstup od hero
   odpovida nahledu (velkorysa mezera, dotahuje ji i .c-label margin-top 42px) */
body.theme-v2 .v2page .ref-main{padding-top:clamp(2.6rem,5vw,4rem);padding-bottom:clamp(2.6rem,5vw,4rem)}
body.theme-v2 .v2page .c-label{font-family:'Figtree',sans-serif;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:42px 0 18px;display:flex;align-items:center;gap:14px}
body.theme-v2 .v2page .c-label::after{content:"";flex:1;height:1px;background:var(--lilac-line)}
/* carousel doporučených — zarovnaný do sloupce .wrap (stejná osa jako zbytek stránek) */
body.theme-v2 .v2page .ref-rail{position:relative;padding-bottom:18px}
body.theme-v2 .v2page .ref-carousel{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
body.theme-v2 .v2page .ref-carousel::-webkit-scrollbar{display:none}
/* navigace karuselu — bile kruzhatka s fialovou sipkou (jako play-overlay na kartach),
   zobrazi je az Alpine pri preteceni; na mobilu zustavaji (44px = dostatecny tap target) */
body.theme-v2 .v2page .ref-nav{position:absolute;top:38%;transform:translateY(-50%);z-index:4;width:44px;height:44px;padding:0;border-radius:50%;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 6px 18px rgba(43,30,85,.14);color:var(--violet-deep);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
body.theme-v2 .v2page .ref-nav.prev{left:10px}
body.theme-v2 .v2page .ref-nav.next{right:10px}
body.theme-v2 .v2page .ref-nav .ico{width:20px;height:20px}
body.theme-v2 .v2page .ref-nav.prev .ico{transform:rotate(90deg)}
body.theme-v2 .v2page .ref-nav.next .ico{transform:rotate(-90deg)}
body.theme-v2 .v2page .ref-nav:hover{background:var(--violet);color:#fff}
body.theme-v2 .v2page .ref-nav[disabled]{opacity:.35;pointer-events:none}
body.theme-v2 .v2page .ref-dots{display:flex;gap:6px;justify-content:center;margin-top:12px}
body.theme-v2 .v2page .ref-dots .dot{width:7px;height:7px;border-radius:50%;background:var(--lilac);transition:background .2s,transform .2s}
body.theme-v2 .v2page .ref-dots .dot.on{background:var(--violet);transform:scale(1.4)}
body.theme-v2 .v2page .v2story{font-size:13px;color:var(--ink-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body.theme-v2 .v2page .v2story::before{content:"\201C"}
body.theme-v2 .v2page .v2story::after{content:"\201D"}
body.theme-v2 .v2page .rf-card{scroll-snap-align:start;flex:0 0 min(78vw,300px);position:relative;border-radius:var(--r);overflow:hidden;background:var(--white);border:1px solid var(--line);transition:box-shadow .2s,transform .2s}
/* velikost karet: mob 1 + nakuk, tablet 2, desktop presne 4 vedle sebe (bez useknuti) */
@media(min-width:700px){body.theme-v2 .v2page .rf-card{flex-basis:calc((100% - 18px)/2)}}
@media(min-width:1024px){body.theme-v2 .v2page .rf-card{flex-basis:calc((100% - 54px)/4)}}
body.theme-v2 .v2page .rf-card:hover{box-shadow:var(--sh);transform:translateY(-3px)}
body.theme-v2 .v2page .rf-cov{position:relative;aspect-ratio:16/10;overflow:hidden}
body.theme-v2 .v2page .rf-cov img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
body.theme-v2 .v2page .rf-card:hover .rf-cov img{transform:scale(1.045)}
body.theme-v2 .v2page .rf-nocov{position:absolute;inset:0;background:linear-gradient(135deg,var(--lilac),var(--v-soft));display:flex;align-items:center;justify-content:center}
body.theme-v2 .v2page .rf-nocov .ico{width:34px;height:34px;color:var(--violet)}
body.theme-v2 .v2page .rf-tag{position:absolute;left:14px;bottom:14px;background:rgba(20,10,45,.55);backdrop-filter:blur(6px);color:#fff;font-family:'Figtree',sans-serif;font-weight:700;font-size:11px;padding:4px 12px;border-radius:999px;letter-spacing:.02em}
body.theme-v2 .v2page .rf-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.92);width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(20,8,50,.4);opacity:0;transition:all .22s;border:0;cursor:pointer}
body.theme-v2 .v2page .rf-card:hover .rf-play,body.theme-v2 .v2page .rf-card.playing .rf-play{opacity:1;transform:translate(-50%,-50%) scale(1)}
body.theme-v2 .v2page .rf-play .ico{width:20px;height:20px;color:var(--violet-deep);fill:currentColor;stroke:none;margin-left:2px}
body.theme-v2 .v2page .rf-card.playing .rf-play .ico{margin-left:0}
body.theme-v2 .v2page .rf-bd{padding:14px 16px 16px;display:flex;align-items:center;gap:10px}
body.theme-v2 .v2page .rf-tx{flex:1;min-width:0}
body.theme-v2 .v2page .rf-bd h2,body.theme-v2 .v2page .rf-bd h3{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.theme-v2 .v2page .rf-bd h2 a,body.theme-v2 .v2page .rf-bd h3 a{color:var(--ink)}
body.theme-v2 .v2page .rf-bd h2 a:hover,body.theme-v2 .v2page .rf-bd h3 a:hover{color:var(--violet-deep)}
body.theme-v2 .v2page .rf-bd .who{font-size:11.5px;color:var(--muted);display:block;margin-top:1px}
body.theme-v2 .v2page .rf-mini{flex:none;width:38px;height:38px;border-radius:50%;border:0;background:var(--violet);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s;box-shadow:0 6px 14px rgba(109,72,217,.3)}
body.theme-v2 .v2page .rf-mini:hover,body.theme-v2 .v2page .rf-card.playing .rf-mini{background:var(--grad);transform:scale(1.07)}
body.theme-v2 .v2page .rf-mini .ico{width:15px;height:15px;fill:currentColor;stroke:none;margin-left:1.5px}
body.theme-v2 .v2page .rf-card.playing .rf-mini .ico{margin-left:0}
/* editoriální list */
body.theme-v2 .v2page .ref-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(min-width:1440px){body.theme-v2 .v2page .ref-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){body.theme-v2 .v2page .ref-list{grid-template-columns:1fr}}
body.theme-v2 .v2page .ri-item{display:flex;gap:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;align-items:flex-start;transition:box-shadow .2s,transform .2s;container-type:inline-size}
body.theme-v2 .v2page .ri-item:hover{box-shadow:var(--sh);transform:translateY(-2px)}
body.theme-v2 .v2page .ri-av{position:relative;width:84px;height:84px;border-radius:50%;overflow:hidden;flex:none;border:3px solid var(--lilac);transition:border-color .2s,box-shadow .2s}
body.theme-v2 .v2page .ri-item:hover .ri-av{border-color:var(--violet)}
body.theme-v2 .v2page .ri-item.playing .ri-av{border-color:var(--violet);box-shadow:0 0 0 4px var(--v-soft)}
body.theme-v2 .v2page .ri-av img{width:100%;height:100%;object-fit:cover;display:block}
body.theme-v2 .v2page .ri-av .rf-nocov{border-radius:50%}
body.theme-v2 .v2page .ri-av .rf-nocov .ico{width:26px;height:26px}
body.theme-v2 .v2page .ri-play{position:absolute;inset:0;background:rgba(20,10,45,.5);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .18s;padding:0}
body.theme-v2 .v2page .ri-item:hover .ri-play{opacity:1}
body.theme-v2 .v2page .ri-play .ico{width:22px;height:22px;color:#fff;fill:currentColor;stroke:none;margin-left:2px}
body.theme-v2 .v2page .ri-item .req{position:absolute;inset:auto 0 0 0;background:rgba(255,255,255,.92);justify-content:center;padding:3px 0;height:auto}
body.theme-v2 .v2page .ri-m{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
body.theme-v2 .v2page .ri-m h2,body.theme-v2 .v2page .ri-m h3{font-size:15px;font-weight:700}
body.theme-v2 .v2page .ri-m h2 a,body.theme-v2 .v2page .ri-m h3 a{color:var(--ink)}
body.theme-v2 .v2page .ri-m h2 a:hover,body.theme-v2 .v2page .ri-m h3 a:hover{color:var(--violet-deep)}
body.theme-v2 .v2page .ri-m .ded{font-size:12px;font-style:italic;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
body.theme-v2 .v2page .ri-m .who{font-size:11.5px;color:var(--muted)}
body.theme-v2 .v2page .ri-m .v2story{font-size:12.5px;-webkit-line-clamp:2;line-clamp:2}
body.theme-v2 .v2page .ri-acts{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;margin-top:2px}
body.theme-v2 .v2page .ri-acts .tplay{margin-top:0;width:auto;padding:10px 18px;flex:none}
body.theme-v2 .v2page .ri-acts .srow{margin-top:0;flex:1;min-width:0;flex-wrap:nowrap}
body.theme-v2 .v2page .ri-acts .sbtn{padding:10px 12px;font-size:11.5px;gap:5px;white-space:nowrap}
body.theme-v2 .v2page .ri-acts .sbtn .ico{width:14px;height:14px}
/* uzky kontejner karty (list 2 i 3 sloupce, mobil) — jedna radka, texty pry,
   zustavaji 3 cista ikonova tlacitka (aria-label + title zachovany v markupu) */
@container(max-width:560px){
body.theme-v2 .v2page .ri-acts .lb{display:none}
body.theme-v2 .v2page .ri-acts .tplay{padding:10px 13px}
body.theme-v2 .v2page .ri-acts .tplay .ico{margin:0}
body.theme-v2 .v2page .ri-acts .sbtn{flex:0 0 auto;padding:10px 13px;gap:0}
}
/* equalizer — stavová indikace hrající karty (čistě CSS, bez ikon) */
body.theme-v2 .v2page .req{display:none;gap:2.5px;align-items:flex-end;height:14px;flex:none}
body.theme-v2 .v2page .playing .req{display:flex}
body.theme-v2 .v2page .req i{width:3px;border-radius:2px;background:var(--grad);animation:v2eq .8s ease-in-out infinite}
body.theme-v2 .v2page .req i:nth-child(1){height:6px;animation-delay:0s}
body.theme-v2 .v2page .req i:nth-child(2){height:12px;animation-delay:.15s}
body.theme-v2 .v2page .req i:nth-child(3){height:8px;animation-delay:.3s}
body.theme-v2 .v2page .req i:nth-child(4){height:11px;animation-delay:.45s}
@keyframes v2eq{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){body.theme-v2 .v2page .req i{animation:none}}
/* load-more s nakukujícím maskotem */
body.theme-v2 .v2page .ref-more{display:flex;align-items:center;justify-content:center;gap:14px;margin:40px 0 8px}
body.theme-v2 .v2page .ref-more-msc img{height:54px;width:auto;filter:drop-shadow(0 6px 12px rgba(124,58,237,.16))}
@media(max-width:640px){body.theme-v2 .v2page .ref-more-msc{display:none}}
/* CTA — nahrazeno sekci .finale (sdileny styl homepage), vlastni .ref-cta rules odstraneny */
body.theme-v2 .v2page .srow{display:flex;gap:8px;margin-top:auto}
body.theme-v2 .v2page .sbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:14px;padding:10px;font-family:'Figtree',sans-serif;font-size:12.5px;font-weight:600;border:1px solid var(--lilac-line);background:var(--bg);color:var(--ink-2);transition:all .15s;cursor:pointer}
body.theme-v2 .v2page .sbtn:hover{background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .v2page .sbtn.fb{background:#EAF2FF;border-color:#CFE0FA;color:#1B5FC7}
body.theme-v2 .v2page .sbtn.fb:hover{background:#DBEAFE}
body.theme-v2 .v2page .sbtn .ico{width:15px;height:15px}
body.theme-v2 .v2page .rbanner{margin-top:44px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:22px 26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;text-align:center}
@media(max-width:720px){body.theme-v2 .v2page .rbanner{flex-direction:column}}
body.theme-v2 .v2page .rbanner .sc{display:flex;align-items:center;gap:8px;font-family:'Figtree',sans-serif;font-weight:800;font-size:15px}
body.theme-v2 .v2page .rbanner .sc .ico{width:17px;height:17px;color:#F59E0B}
body.theme-v2 .v2page .rbanner p{font-size:13.5px;color:var(--muted);margin:0}
body.theme-v2 .v2page .ghost{display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1.5px solid var(--lilac-line);border-radius:999px;padding:12px 26px;font-family:'Figtree',sans-serif;font-weight:700;font-size:13.5px;color:var(--ink-2);transition:all .15s;cursor:pointer}
body.theme-v2 .v2page .ghost:hover{border-color:var(--violet);color:var(--violet-deep);box-shadow:var(--sh)}
body.theme-v2 .v2page .ctacard{background:var(--mint);border:1px solid #CDE9DA;border-radius:var(--r);max-width:640px;margin:0 auto;padding:38px 34px;text-align:center}
body.theme-v2 .v2page .ctacard h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin-bottom:8px}
body.theme-v2 .v2page .ctacard p{color:var(--ink-2);margin-bottom:20px}
/* hodnocení */
body.theme-v2 .v2page .rsummary{background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);max-width:560px;margin:0 auto 44px;padding:30px 26px;text-align:center}
body.theme-v2 .v2page .rsummary .stars{display:flex;justify-content:center;gap:4px;margin-bottom:10px}
body.theme-v2 .v2page .rsummary .stars .ico{width:26px;height:26px;color:#F59E0B}
body.theme-v2 .v2page .rsummary .avg{font-family:'Figtree',sans-serif;font-weight:800;font-size:2.6rem;letter-spacing:-.04em}
body.theme-v2 .v2page .rsummary .avg small{font-size:1.1rem;color:var(--muted);font-weight:600}
body.theme-v2 .v2page .rsummary .sub{font-size:13.5px;color:var(--muted);margin-top:4px}
body.theme-v2 .v2page .gcards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(min-width:1440px){body.theme-v2 .v2page .gcards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){body.theme-v2 .v2page .gcards{grid-template-columns:1fr}}
/* Varianta A (nahled-qcard.html) — bílá karta, viditelny levandulovy obrys + mekky fialovy stin,
   aby karty nezmizely v kremovem podkladu (stranka /hodnoceni) */
body.theme-v2 .v2page .qcard{background:var(--white);border:1px solid var(--lilac-line);border-radius:var(--r);padding:24px 26px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--sh);transition:box-shadow .2s,transform .2s}
body.theme-v2 .v2page .qcard:hover{box-shadow:0 22px 52px rgba(124,58,237,.16);transform:translateY(-3px)}
body.theme-v2 .v2page .qcard .top{display:flex;align-items:center;justify-content:space-between;gap:10px}
body.theme-v2 .v2page .qcard .top .stars{display:flex;gap:3px}
body.theme-v2 .v2page .qcard .top .stars .ico{width:16px;height:16px;color:#F59E0B}
body.theme-v2 .v2page .vbadge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--lilac-line);border-radius:999px;padding:4px 12px;font-family:'Figtree',sans-serif;font-size:11px;font-weight:700;color:var(--mint-deep);background:var(--mint)}
body.theme-v2 .v2page .vbadge .ico{width:13px;height:13px}
body.theme-v2 .v2page .qcard .qbody{font-size:14px;color:var(--ink-2);line-height:1.65;flex:1}
body.theme-v2 .v2page .qcard .foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px}
body.theme-v2 .v2page .qcard .who b{font-family:'Figtree',sans-serif;font-weight:700;font-size:13.5px;display:block}
body.theme-v2 .v2page .qcard .who span{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted)}
body.theme-v2 .v2page .qcard .who span .ico{width:12px;height:12px}
body.theme-v2 .v2page .qcard .date{font-size:11.5px;color:var(--muted);white-space:nowrap}
/* blog hub — varianta B (katalog s filtrem + pravý rail), náhled nahled-blog.html.
   Kontrakty:
   - Třídění dělá Alpine x-show na kartách (sáhá na inline display), proto je
     NA KARTÁCH ZAKÁZANÉ používat utility .hidden — dvakrát to roztrhlo layout.
   - Barva tématu je SSOT tady; šablona jen dosadí modifier
     .is-gifts / .is-occasions / .is-words / .is-stories / .is-n.
   - Počty (.b-num) odpovídají počtu vykreslených karet, nikoli DB číslům. */
body.theme-v2 .v2page .b-split{display:grid;gap:clamp(20px,3vw,34px);align-items:start}
@media(min-width:901px){body.theme-v2 .v2page .b-split{grid-template-columns:minmax(0,1fr) 300px}}
body.theme-v2 .v2page .b-main{min-width:0}
/* filtr témat */
body.theme-v2 .v2page .b-chips{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 20px}
body.theme-v2 .v2page .b-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--lilac-line);border-radius:999px;padding:7px 14px;background:var(--white);font-family:'Figtree',sans-serif;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer;transition:border-color .18s,color .18s,transform .18s,box-shadow .18s}
body.theme-v2 .v2page .b-chip:hover{border-color:var(--violet);color:var(--violet-deep);transform:translateY(-1px)}
body.theme-v2 .v2page .b-chip .dico{width:14px;height:14px}
body.theme-v2 .v2page .b-num{font-family:'Figtree',sans-serif;font-size:11px;font-weight:800;line-height:1;padding:4px 8px;border-radius:999px;background:var(--lilac);color:var(--violet-deep)}
/* aktivní filtr = gradient (jediné místo na blogu, kde text sedí na gradientu) */
body.theme-v2 .v2page .b-chip.is-on{background-image:var(--grad);border-color:transparent;color:#fff;box-shadow:0 8px 20px rgba(109,72,217,.26)}
body.theme-v2 .v2page .b-chip.is-on .b-num{background:rgba(255,255,255,.22);color:#fff}
/* karta článku */
body.theme-v2 .v2page .b-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:640px){body.theme-v2 .v2page .b-grid{grid-template-columns:1fr}}
body.theme-v2 .v2page .bk{display:flex;gap:18px;background:var(--white);border:1px solid var(--lilac-line);border-radius:var(--r);box-shadow:var(--sh);padding:20px;transition:box-shadow .2s,transform .2s}
body.theme-v2 .v2page .bk:hover{box-shadow:0 22px 52px rgba(124,58,237,.16);transform:translateY(-3px)}
body.theme-v2 .v2page .bk .txt{display:flex;flex-direction:column;gap:9px;min-width:0}
body.theme-v2 .v2page .bk h3{font-size:16px;letter-spacing:-.02em;line-height:1.32}
body.theme-v2 .v2page .bk p{font-size:13px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body.theme-v2 .v2page .bk .thumb{align-self:flex-start;flex:none;width:74px;height:74px;border-radius:18px;display:grid;place-items:center;background:var(--lilac);color:var(--violet-deep)}
body.theme-v2 .v2page .bk .thumb .dico{width:30px;height:30px}
/* featured karta: přetéká přes oba sloupce, cover bez vnitřního paddingu */
body.theme-v2 .v2page .bk.is-lead{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px;padding:0;overflow:hidden}
body.theme-v2 .v2page .bk.is-lead .txt{padding:26px 28px 26px 0}
body.theme-v2 .v2page .bk.is-lead .cover{overflow:hidden}
body.theme-v2 .v2page .bk.is-lead .cover img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block}
body.theme-v2 .v2page .bk.is-lead .thumb{width:100%;height:auto;aspect-ratio:4/3;border-radius:0}
body.theme-v2 .v2page .bk.is-lead h3{font-size:clamp(1.25rem,2.3vw,1.7rem)}
body.theme-v2 .v2page .bk.is-lead p{font-size:14.5px;color:var(--ink-2);max-width:72ch;-webkit-line-clamp:4;line-clamp:4}
@media(max-width:640px){body.theme-v2 .v2page .bk.is-lead{grid-template-columns:1fr;padding:20px}body.theme-v2 .v2page .bk.is-lead .txt{padding:0}body.theme-v2 .v2page .bk.is-lead .thumb{width:74px;height:74px;aspect-ratio:auto;border-radius:18px}}
/* chip tématu + pastelové mapování clusteru (SSOT barev) */
body.theme-v2 .v2page .b-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
body.theme-v2 .v2page .chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 12px;font-family:'Figtree',sans-serif;font-size:11.5px;font-weight:800}
body.theme-v2 .v2page .chip .dico{width:13px;height:13px}
body.theme-v2 .v2page .chip.is-gifts,body.theme-v2 .v2page .thumb.is-gifts,body.theme-v2 .v2page .ico-box.is-gifts{background:var(--blush);color:#A33062}
body.theme-v2 .v2page .chip.is-occasions,body.theme-v2 .v2page .thumb.is-occasions,body.theme-v2 .v2page .ico-box.is-occasions{background:var(--butter);color:#8A5A00}
body.theme-v2 .v2page .chip.is-words,body.theme-v2 .v2page .thumb.is-words,body.theme-v2 .v2page .ico-box.is-words{background:var(--sky);color:#2A5A88}
body.theme-v2 .v2page .chip.is-stories,body.theme-v2 .v2page .thumb.is-stories,body.theme-v2 .v2page .ico-box.is-stories{background:var(--mint);color:#256B50}
body.theme-v2 .v2page .chip.is-n,body.theme-v2 .v2page .ico-box.is-n{background:var(--lilac);color:var(--violet-deep)}
body.theme-v2 .v2page .b-fresh{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 11px;background:var(--v-soft);color:var(--violet-deep);font-family:'Figtree',sans-serif;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
body.theme-v2 .v2page .b-fresh .dico{width:12px;height:12px}
body.theme-v2 .v2page .b-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:6px}
body.theme-v2 .v2page .dt{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
body.theme-v2 .v2page .dt .ico{width:13px;height:13px}
body.theme-v2 .v2page .bk-go{display:inline-flex;align-items:center;gap:5px;font-family:'Figtree',sans-serif;font-size:13px;font-weight:800;color:var(--violet-deep)}
/* i-chev ukazuje dolů → -90° = šipka doprava (žádná holá ASCII šipka v textu) */
body.theme-v2 .v2page .bk-go .ico{width:15px;height:15px;transform:rotate(-90deg);transition:transform .2s}
body.theme-v2 .v2page .bk:hover .bk-go .ico{transform:rotate(-90deg) translateY(-2px)}
/* pravý rail */
body.theme-v2 .v2page .b-rail{display:grid;gap:16px;align-content:start}
@media(min-width:901px){body.theme-v2 .v2page .b-rail{position:sticky;top:84px}}
body.theme-v2 .v2page .b-card{background:var(--white);border:1px solid var(--lilac-line);border-radius:var(--r-m);box-shadow:var(--sh);padding:18px 20px}
body.theme-v2 .v2page .b-card-t{font-family:'Figtree',sans-serif;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}
body.theme-v2 .v2page .b-topic{display:flex;align-items:center;gap:10px;width:100%;padding:9px 0;background:none;border:0;border-bottom:1px solid var(--line);font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);text-align:left;cursor:pointer;transition:color .15s}
body.theme-v2 .v2page .b-topic:last-of-type{border-bottom:0}
body.theme-v2 .v2page .b-topic:hover,body.theme-v2 .v2page .b-topic.is-on{color:var(--violet-deep)}
body.theme-v2 .v2page .b-topic .ico-box{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;flex:none;background:var(--lilac);color:var(--violet-deep)}
body.theme-v2 .v2page .b-topic .ico-box .dico{width:17px;height:17px}
body.theme-v2 .v2page .b-topic .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.theme-v2 .v2page .b-topic .b-num{margin-left:auto}
/* sváteční písně v railu — miniaturní řádek, hráče řídí stejný 'open-player' event */
body.theme-v2 .v2page .b-mini{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
body.theme-v2 .v2page .b-mini-l{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit;text-decoration:none}
body.theme-v2 .v2page .b-mini .th{width:46px;height:46px;border-radius:13px;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .v2page .b-mini .th img{width:100%;height:100%;object-fit:cover;display:block}
body.theme-v2 .v2page .b-mini .th .dico{width:19px;height:19px}
body.theme-v2 .v2page .b-mini .nm{min-width:0}
body.theme-v2 .v2page .b-mini .nm b{display:block;font-family:'Figtree',sans-serif;font-size:13.5px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.theme-v2 .v2page .b-mini .nm span{display:block;font-size:11.5px;color:var(--muted)}
body.theme-v2 .v2page .b-play{width:30px;height:30px;border-radius:999px;border:0;background:var(--violet-deep);color:#fff;display:grid;place-items:center;flex:none;cursor:pointer;transition:transform .15s}
body.theme-v2 .v2page .b-play:hover{transform:scale(1.06)}
body.theme-v2 .v2page .b-play .ico{width:14px;height:14px}
body.theme-v2 .v2page .b-more{display:inline-flex;align-items:center;gap:5px;margin-top:12px;font-family:'Figtree',sans-serif;font-size:13px;font-weight:800;color:var(--violet-deep)}
body.theme-v2 .v2page .b-more .ico{width:14px;height:14px;transform:rotate(-90deg)}
/* Maskot railu: in-flow dojezd pravého sloupce. Měří se přes výšku (ne šířku),
   aby i při sticky railu zůstal sloupec kratší než viewport; animace neruší.
   Pointer-events:none — pod ním nic neklikáme, dekorace (aria-hidden na <picture>). */
body.theme-v2 .v2page .b-msc{display:flex;justify-content:center;pointer-events:none}
body.theme-v2 .v2page .b-msc img{width:auto;height:min(206px,24vh);filter:drop-shadow(0 14px 24px rgba(10,4,40,.16))}
@media(max-width:900px){body.theme-v2 .v2page .b-msc img{height:150px}}
body.theme-v2 .v2page .svcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:620px){body.theme-v2 .v2page .svcards{grid-template-columns:1fr}}
body.theme-v2 .v2page .sv{position:relative;border-radius:var(--r-m);overflow:hidden;aspect-ratio:1/1;box-shadow:var(--sh);display:block}
body.theme-v2 .v2page .sv img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
body.theme-v2 .v2page .sv:hover img{transform:scale(1.04)}

/* ==========================================================================
   4) RESKIN vrstva — překrytí compiled Tailwind utilit pod body.theme-v2.
   Specificity: body.theme-v2 .X (0-2-1) > utility (0-1-0) i V1 komponent (.card…).
   Cíl: NEKONVERTOVÁNÉ stránky (wizard, dashboard, košík, přihlášení, landing,
   právní, sdílené písně) + modální okna vypadají pastelinově.
   ========================================================================== */

/* --- pozadí / povrchy --- */
body.theme-v2 .bg-background,body.theme-v2 .bg-background\/80,body.theme-v2 .bg-background\/50,body.theme-v2 .via-background{background-color:var(--bg)}
body.theme-v2 .bg-surface,body.theme-v2 .bg-surface\/95,body.theme-v2 .bg-surface\/50{background-color:var(--white)}
body.theme-v2 .bg-surface-light,body.theme-v2 .bg-surface-light\/70,body.theme-v2 .bg-surface-light\/60,body.theme-v2 .bg-surface-light\/50,body.theme-v2 .bg-surface-light\/40,body.theme-v2 .bg-surface-light\/30,body.theme-v2 .bg-surface-light\/20{background-color:var(--lilac)}
body.theme-v2 .bg-white{background-color:var(--white)}
body.theme-v2 .bg-white\/5{background-color:rgba(109,72,217,.05)}
body.theme-v2 .bg-white\/10{background-color:rgba(109,72,217,.07)}
body.theme-v2 .bg-white\/15{background-color:rgba(109,72,217,.09)}
body.theme-v2 .bg-white\/20{background-color:rgba(109,72,217,.12)}
body.theme-v2 .bg-\[\#0a0a0f\],body.theme-v2 .bg-\[\#12121a\],body.theme-v2 .bg-\[\#131319\],body.theme-v2 .bg-\[\#14141d\],body.theme-v2 .bg-\[\#181820\]{background-color:var(--white)}
body.theme-v2 .bg-neutral-600{background-color:var(--lilac-line)}

/* --- fialové plochy zůstávají výrazné (CTA, tlačítka) --- */
body.theme-v2 .bg-primary,body.theme-v2 .bg-primary-400,body.theme-v2 .bg-primary-500,body.theme-v2 .bg-primary-600{background-color:var(--violet)}
body.theme-v2 .bg-primary-600\/20,body.theme-v2 .bg-primary-600\/30,body.theme-v2 .bg-primary\/90{background-color:rgba(109,72,217,.35)}
body.theme-v2 .bg-primary\/5,body.theme-v2 .bg-primary\/8,body.theme-v2 .bg-primary\/10,body.theme-v2 .bg-primary\/15,body.theme-v2 .bg-primary\/20{background-color:rgba(109,72,217,.08)}
body.theme-v2 .bg-primary\/40,body.theme-v2 .bg-primary\/60{background-color:rgba(109,72,217,.18)}
body.theme-v2 .bg-secondary\/8,body.theme-v2 .bg-secondary\/10,body.theme-v2 .bg-secondary\/15,body.theme-v2 .bg-secondary\/60,body.theme-v2 .bg-accent\/40{background-color:rgba(192,38,211,.10)}
body.theme-v2 .ring-surface{--tw-ring-color:var(--white)}

/* --- overlays (modal, scrolldown, obrázkové clony) --- */
body.theme-v2 .bg-black\/50,body.theme-v2 .bg-black\/70,body.theme-v2 .bg-black\/75,body.theme-v2 .bg-black\/80,body.theme-v2 .bg-black\/90{background-color:rgba(43,30,85,.55)}

/* --- semantické barvy (čtenelné na pastelu) --- */
body.theme-v2 .bg-green-400,body.theme-v2 .bg-green-500,body.theme-v2 .bg-green-600,body.theme-v2 .bg-emerald-500{background-color:var(--mint-deep)}
body.theme-v2 .bg-green-500\/20,body.theme-v2 .bg-green-900\/20,body.theme-v2 .bg-emerald-400\/10,body.theme-v2 .bg-emerald-500\/5{background-color:rgba(47,122,92,.12)}
body.theme-v2 .bg-red-400,body.theme-v2 .bg-red-500,body.theme-v2 .bg-red-600{background-color:#DC2626}
body.theme-v2 .bg-red-500\/10,body.theme-v2 .bg-red-500\/20{background-color:rgba(192,57,43,.10)}
body.theme-v2 .bg-amber-400,body.theme-v2 .bg-amber-500,body.theme-v2 .bg-amber-600{background-color:var(--sun)}
body.theme-v2 .bg-amber-400\/10,body.theme-v2 .bg-amber-500\/15,body.theme-v2 .bg-orange-500\/10{background-color:var(--butter)}
body.theme-v2 .bg-blue-400,body.theme-v2 .bg-blue-500,body.theme-v2 .bg-indigo-400{background-color:#2563EB}
body.theme-v2 .bg-blue-500\/10,body.theme-v2 .bg-blue-500\/20{background-color:rgba(37,99,235,.10)}

/* --- text --- */
body.theme-v2 .text-text-muted,body.theme-v2 .text-text-muted\/80,body.theme-v2 .text-text-muted\/70,body.theme-v2 .text-text-muted\/60,body.theme-v2 .text-text-muted\/50,body.theme-v2 .text-text-muted\/40,body.theme-v2 .text-text-muted\/30,body.theme-v2 .text-text-muted\/20{color:var(--muted)}
body.theme-v2 .text-text{color:var(--ink)}
body.theme-v2 .text-primary,body.theme-v2 .text-primary\/80,body.theme-v2 .text-primary\/60,body.theme-v2 .text-primary-200,body.theme-v2 .text-primary-300,body.theme-v2 .text-primary-300\/50,body.theme-v2 .text-primary-300\/70,body.theme-v2 .text-primary-400,body.theme-v2 .text-primary-500,body.theme-v2 .text-primary-600,body.theme-v2 .text-secondary,body.theme-v2 .text-accent{color:var(--violet-deep)}
body.theme-v2 .text-green-300,body.theme-v2 .text-green-400,body.theme-v2 .text-emerald-400,body.theme-v2 .text-emerald-400\/80{color:var(--mint-deep)}
body.theme-v2 .text-red-300,body.theme-v2 .text-red-300\/90,body.theme-v2 .text-red-400{color:#B3261E}
body.theme-v2 .text-amber-200,body.theme-v2 .text-amber-200\/70,body.theme-v2 .text-amber-200\/80,body.theme-v2 .text-amber-200\/90,body.theme-v2 .text-amber-300\/90,body.theme-v2 .text-amber-400,body.theme-v2 .text-amber-400\/60,body.theme-v2 .text-amber-400\/80,body.theme-v2 .text-yellow-200,body.theme-v2 .text-yellow-300{color:var(--amber)}
body.theme-v2 .text-orange-300,body.theme-v2 .text-orange-400,body.theme-v2 .text-orange-400\/50,body.theme-v2 .text-orange-400\/70{color:#C2410C}
body.theme-v2 .text-blue-300,body.theme-v2 .text-blue-400,body.theme-v2 .text-indigo-400{color:#2563EB}
body.theme-v2 .text-neutral-200,body.theme-v2 .text-neutral-400,body.theme-v2 .text-neutral-500{color:var(--muted)}
body.theme-v2 .text-neutral-900{color:var(--ink)}
body.theme-v2 .text-white\/15,body.theme-v2 .text-white\/20,body.theme-v2 .text-white\/25,body.theme-v2 .text-white\/50,body.theme-v2 .text-white\/80{color:rgba(43,30,85,.6)}
body.theme-v2 .placeholder-text-muted\/40::placeholder,body.theme-v2 .placeholder-neutral-500::placeholder{color:var(--muted)}

/* --- okraje --- */
body.theme-v2 .border-white,body.theme-v2 .border-white\/30,body.theme-v2 .border-white\/25,body.theme-v2 .border-white\/20,body.theme-v2 .border-white\/15,body.theme-v2 .border-white\/10,body.theme-v2 .border-white\/5,body.theme-v2 .divide-white\/10> :not([hidden])~:not([hidden]){border-color:rgba(43,30,85,.10)}
body.theme-v2 .border-primary,body.theme-v2 .border-primary\/90,body.theme-v2 .border-primary\/60,body.theme-v2 .border-primary\/40,body.theme-v2 .border-primary\/30,body.theme-v2 .border-primary\/25,body.theme-v2 .border-primary\/20,body.theme-v2 .border-primary\/15,body.theme-v2 .border-primary-400\/60,body.theme-v2 .border-primary-400\/40,body.theme-v2 .border-primary-400\/30,body.theme-v2 .border-primary-500,body.theme-v2 .border-primary-500\/30,body.theme-v2 .border-secondary\/30,body.theme-v2 .border-secondary\/20{border-color:var(--lilac-line)}
body.theme-v2 .border-red-500\/20,body.theme-v2 .border-red-500\/40{border-color:rgba(192,57,43,.25)}
body.theme-v2 .border-green-500\/25,body.theme-v2 .border-emerald-400\/20,body.theme-v2 .border-emerald-400\/30,body.theme-v2 .border-emerald-500\/20{border-color:rgba(47,122,92,.30)}
body.theme-v2 .border-amber-400\/30,body.theme-v2 .border-amber-500\/20,body.theme-v2 .border-amber-500\/40{border-color:#EAD9A8}
body.theme-v2 .border-blue-500\/20,body.theme-v2 .border-orange-500\/20{border-color:rgba(37,99,235,.25)}

/* --- gradienty (dekorativní glowy zjemnit; CTA zůstat výrazná) --- */
body.theme-v2 .from-primary,body.theme-v2 .from-primary\/90,body.theme-v2 .from-primary\/25,body.theme-v2 .from-primary\/20,body.theme-v2 .from-primary\/15,body.theme-v2 .from-primary\/10,body.theme-v2 .from-primary-600,body.theme-v2 .from-primary-600\/40{--tw-gradient-from:#EBE4FA;--tw-gradient-to:rgba(109,72,217,.1) 0%;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
body.theme-v2 .via-secondary,body.theme-v2 .via-secondary\/15,body.theme-v2 .via-secondary\/10,body.theme-v2 .via-primary\/25{--tw-gradient-via:rgba(192,38,211,.14)}
body.theme-v2 .to-secondary\/20,body.theme-v2 .to-secondary\/10,body.theme-v2 .to-accent,body.theme-v2 .to-primary,body.theme-v2 .to-primary\/20,body.theme-v2 .to-primary\/5,body.theme-v2 .to-primary-400,body.theme-v2 .to-primary-500,body.theme-v2 .to-primary-500\/90,body.theme-v2 .to-primary-600,body.theme-v2 .to-indigo-600,body.theme-v2 .to-indigo-600\/40{--tw-gradient-to:rgba(109,72,217,.12)}
body.theme-v2 .from-indigo-500,body.theme-v2 .from-indigo-600{--tw-gradient-from:#6D48D9;--tw-gradient-to:rgba(109,72,217,0) 0%;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
/* NEŠAHAT: from-primary-900 / via-indigo-900 / to-primary-900 — tmavý fialový
   promo pás hlavičky (1:1 se schváleným mockupem .pband). Zůstává dark violet. */

/* --- stíny (glowy → pastelové) --- */
body.theme-v2 .shadow-glow,body.theme-v2 .shadow-glow-lg,body.theme-v2 .shadow-glow-sm,body.theme-v2 .shadow-glass{box-shadow:0 10px 26px rgba(124,58,237,.10)}
body.theme-v2 .shadow-card{box-shadow:0 10px 26px rgba(124,58,237,.06)}
body.theme-v2 .shadow-card-hover{box-shadow:var(--sh)}

/* ==========================================================================
   5) RESKIN V1 komponent (input.css) — V1 markap v pastelu
   ========================================================================== */
body.theme-v2 .btn{border-radius:999px;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:700}
body.theme-v2 .btn-primary{background:var(--violet);color:#fff;box-shadow:0 10px 24px rgba(109,72,217,.28)}
body.theme-v2 .btn-primary:hover{background:var(--violet-deep);box-shadow:0 14px 30px rgba(109,72,217,.34)}
body.theme-v2 .btn-outline{border-color:var(--lilac-line);background:var(--white);color:var(--violet-deep);backdrop-filter:none}
body.theme-v2 .btn-outline:hover{border-color:var(--violet);background:var(--v-soft)}
body.theme-v2 .btn-ghost{color:var(--muted)}
body.theme-v2 .btn-ghost:hover{background:var(--lilac);color:var(--ink)}
body.theme-v2 .btn-facebook,body.theme-v2 .btn-facebook:hover{background-color:#1877f2;color:#fff}
body.theme-v2 .btn-seznam,body.theme-v2 .btn-seznam:hover{background-color:#00a784;color:#fff}

body.theme-v2 .form-group label,body.theme-v2 .form-label,body.theme-v2 .form-label-row{color:var(--ink-2)}
body.theme-v2 .form-input,body.theme-v2 .form-textarea,body.theme-v2 .form-input-lg,body.theme-v2 .form-input-sm{background:var(--white);border:1px solid var(--lilac-line);color:var(--ink)}
body.theme-v2 .form-input:focus,body.theme-v2 .form-textarea:focus{background:var(--white);border-color:var(--violet);box-shadow:0 0 0 4px rgba(109,72,217,.12)}
body.theme-v2 .form-hint{color:var(--muted)}
body.theme-v2 .field-error,body.theme-v2 .chip-group-error,body.theme-v2 .field-input-error,body.theme-v2 .field-error-text{color:#B3261E}
body.theme-v2 .field-error .border,body.theme-v2 .field-error svg{stroke:#B3261E}
body.theme-v2 .help-icon-btn{background:var(--lilac);color:var(--violet-deep);border-color:var(--lilac-line)}
body.theme-v2 .help-icon-btn:hover{background:var(--v-soft)}
body.theme-v2 .help-popover{background:var(--white);border-color:var(--lilac-line);color:var(--ink-2);box-shadow:var(--sh)}
body.theme-v2 .help-popover strong,body.theme-v2 .help-popover .help-popover-label{color:var(--violet-deep)}

body.theme-v2 .card,body.theme-v2 .card-glass{background:var(--white);border:1px solid var(--line);color:var(--ink);backdrop-filter:none;box-shadow:0 10px 26px rgba(124,58,237,.05)}
body.theme-v2 .card:hover,body.theme-v2 .card-glass:hover{border-color:var(--lilac-line);box-shadow:var(--sh)}
body.theme-v2 .glass-strong{background:rgba(255,255,255,.8);border-color:var(--lilac-line)}
body.theme-v2 .text-gradient{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

body.theme-v2 .alert{border-width:1px}
body.theme-v2 .alert-success{background:var(--mint);border-color:#CDE9DA;color:var(--mint-deep)}
body.theme-v2 .alert-error{background:#FCEEEE;border-color:#F3CFCF;color:#B3261E}
body.theme-v2 .alert-warning{background:var(--butter);border-color:#EADFB8;color:#7A4E00}

body.theme-v2 .badge-primary{background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .badge-success{background:var(--mint);color:var(--mint-deep)}
body.theme-v2 .badge-warning{background:var(--butter);color:#7A4E00}
body.theme-v2 .badge-danger{background:#FCEEEE;color:#B3261E}
body.theme-v2 .badge-info{background:var(--sky);color:#1D5FBF}
body.theme-v2 .badge-secondary{background:var(--lilac);color:var(--ink-2)}
body.theme-v2 .social-badge{border-color:var(--lilac-line)}

body.theme-v2 .modal-overlay{background:rgba(43,30,85,.5)}
body.theme-v2 .modal-content{background:var(--white);border:1px solid var(--line);color:var(--ink);box-shadow:var(--sh)}
body.theme-v2 .modal-close,body.theme-v2 .modal-close:hover{color:var(--muted)}
body.theme-v2 .modal-close:hover{color:var(--ink)}

/* wizard stepper */
body.theme-v2 .wizard-stepper{color:var(--muted)}
body.theme-v2 .wizard-step-circle-inactive{background:var(--white);border-color:var(--lilac-line);color:var(--muted)}
body.theme-v2 .wizard-step-circle-active{background:var(--violet);border-color:var(--violet);color:#fff;box-shadow:0 8px 20px rgba(109,72,217,.3)}
body.theme-v2 .wizard-step-circle-complete{background:var(--grad);border-color:transparent;color:#fff}
body.theme-v2 .wizard-step-label{color:var(--muted)}
body.theme-v2 .wizard-step-label-active{color:var(--ink)}
body.theme-v2 .wizard-connector{background:var(--lilac-line)}
body.theme-v2 .wizard-connector-active{background:var(--violet)}

/* mood chipy */
body.theme-v2 .mood-chip{background:var(--white);border-color:var(--lilac-line);color:var(--ink-2)}
body.theme-v2 .mood-chip:hover{border-color:var(--violet);color:var(--violet-deep)}
body.theme-v2 .mood-chip-selected{background:var(--v-soft);border-color:var(--violet);color:var(--violet-deep)}
/* data-level ikony (wizard čipy) — Phosphor Duotone fill + Hugeicons line;
   PŘÍSNĚ třída .dico, ne .ico (stroke pravidla by zničila duotone výplně);
   barvu dědí přes currentColor: Pastel lilac → sytá v selected/hover stavu */
body.theme-v2 .dico{display:inline-block;width:22px;height:22px;flex:none;color:var(--icon-data);vertical-align:middle}
body.theme-v2 .mood-chip:hover .dico{color:var(--violet-deep)}
body.theme-v2 .mood-chip-selected .dico{color:var(--violet-deep)}
/* floating decorative icons (hero, finale) — bílá na fialovém pozadí, dědí z .stk */
body.theme-v2 .stk .dico{color:rgba(255,255,255,.85)}

/* textopis písně */
body.theme-v2 .lyric-sheet{background:var(--white);border-color:var(--line);color:var(--ink-2)}
body.theme-v2 .lyric-sheet-label{color:var(--violet-deep)}
body.theme-v2 .lyric-sheet-section{border-bottom-color:var(--line)}
body.theme-v2 .lyric-sheet-instrumental{color:var(--muted)}

/* dashboard */
body.theme-v2 .dash-heading{color:var(--ink)}
body.theme-v2 .dash-card-hover{background:var(--white);border-color:var(--line);color:var(--ink)}
body.theme-v2 .dash-card-hover:hover{border-color:var(--lilac-line);box-shadow:var(--sh)}
body.theme-v2 .dash-stat-card{background:var(--white);border-color:var(--line);color:var(--ink);box-shadow:0 10px 26px rgba(124,58,237,.05)}
body.theme-v2 .dash-stat-card:hover{box-shadow:var(--sh)}
body.theme-v2 .dash-badge{background:var(--v-soft);color:var(--violet-deep)}
body.theme-v2 .dash-action-btn-primary{background:var(--violet);color:#fff}
body.theme-v2 .dash-action-btn-primary:hover{background:var(--violet-deep)}

/* právní stránky */
body.theme-v2 .legal-content,body.theme-v2 .legal-content p,body.theme-v2 .legal-content li{color:var(--ink-2)}
body.theme-v2 .legal-content h2,body.theme-v2 .legal-content h3,body.theme-v2 .legal-content h4,body.theme-v2 .legal-content strong{color:var(--ink)}
body.theme-v2 .legal-content a,body.theme-v2 .legal-toc a{color:var(--violet-deep)}
body.theme-v2 .legal-content a:hover,body.theme-v2 .legal-toc a:hover{color:var(--violet)}
body.theme-v2 .legal-list li::before,body.theme-v2 .legal-toc a::before{background:var(--violet)}
body.theme-v2 .legal-callout{background:var(--peach);border-color:#F0DCC2;color:#7A4E00}
body.theme-v2 .legal-callout-info{background:var(--sky);border-color:#CFE3F8;color:#1D5FBF}
body.theme-v2 .legal-table{background:var(--white)}
body.theme-v2 .legal-table thead th{background:var(--lilac);color:var(--ink)}
body.theme-v2 .legal-table tbody td{border-color:var(--line);color:var(--ink-2)}
body.theme-v2 .legal-table tbody tr:hover{background:var(--bg)}
body.theme-v2 .legal-toc{background:var(--white);border-color:var(--lilac-line)}
body.theme-v2 .legal-section{border-top-color:var(--line)}

/* článek / blog */
body.theme-v2 .article-body{color:var(--ink-2)}
body.theme-v2 .article-body h2,body.theme-v2 .article-body h3{color:var(--ink)}
body.theme-v2 .article-body a{color:var(--violet-deep)}
body.theme-v2 .article-body a:hover{color:var(--violet)}
body.theme-v2 .article-body blockquote{background:var(--lilac);color:var(--ink-2);border-left-color:var(--violet)}
body.theme-v2 .article-body li::marker{color:var(--violet)}
body.theme-v2 .article-body hr{border-color:var(--line)}
body.theme-v2 .blog-excerpt{color:var(--muted)}
body.theme-v2 .blog-featured-cover{border-color:var(--line)}

/* reference story karta (V1 markap stránek reference/sdílení) */
body.theme-v2 .reference-story-container{background:var(--white);border-color:var(--lilac-line);color:var(--ink-2)}
body.theme-v2 .customer-label{color:var(--violet-deep)}
body.theme-v2 .use-cards-container> *{border-color:var(--line)}

/* ==========================================================================
   6) Modální okna / persistentní prvky mimo layout šablony
   ========================================================================== */
/* Cookie lišta má INLINE tmavý styl → musí !important (jediné místo, kde). */
body.theme-v2 #cookie-consent-bar{
  background:rgba(255,255,255,.97) !important;
  backdrop-filter:blur(14px) !important;
  border-top:1px solid var(--lilac-line) !important;
  box-shadow:0 -10px 30px rgba(124,58,237,.10);
  color:var(--ink);
}
body.theme-v2 #cookie-consent-bar p,body.theme-v2 #cookie-consent-bar a,body.theme-v2 #cookie-consent-bar label,body.theme-v2 #cookie-consent-bar span{color:var(--ink-2)}
body.theme-v2 #cookie-consent-bar a{color:var(--violet-deep)}
body.theme-v2 #cookie-consent-bar .text-white{color:var(--ink)}
body.theme-v2 #cookie-consent-bar .text-gray-300,body.theme-v2 #cookie-consent-bar .text-gray-400{color:var(--muted)}
body.theme-v2 #cookie-consent-bar .bg-white\/10,body.theme-v2 #cookie-consent-bar .bg-white\/5{background-color:rgba(109,72,217,.07)}
body.theme-v2 #cookie-consent-bar .border-white\/10,body.theme-v2 #cookie-consent-bar .border-white\/5{border-color:var(--lilac-line)}

/* ==========================================================================
   Unified Player (spodní lišta + expand overlay) ve V2 — tmavé plochy
   bg-[#0a0a0f]/bg-[#12121a] přepíná do bílá pravidlo nahoře (reskin layer),
   ale bílý text utility by zůstal → bílé na bílém (nečitelný název písně).
   Vlastní <audio> hero stopa (.hplayer) to nepostihuje — ta žije v .v2page.
   ========================================================================== */
body.theme-v2 [x-data^="audioPlayerBar"] p.text-white{color:var(--ink)}
body.theme-v2 [x-data^="audioPlayerBar"] h3.text-white{color:var(--ink)}
body.theme-v2 [x-data^="audioPlayerBar"] a.text-white{color:var(--ink)}
body.theme-v2 [x-data^="audioPlayerBar"] .text-neutral-300{color:var(--muted)}
/* zavírací kolečko na coveri: tmavý čip zůstává (rgba 43,30,85) → ikona bíle */
body.theme-v2 [x-data^="audioPlayerBar"] .bg-black\/50{color:#fff}
/* placeholder bílého thumbu slideru na bílém podkladu */
body.theme-v2 [x-data^="audioPlayerBar"] input[type=range]::-webkit-slider-thumb{background:var(--violet-deep)}
body.theme-v2 [x-data^="audioPlayerBar"] input[type=range]::-moz-range-thumb{background:var(--violet-deep)}
/* pastelové oddělení spodní lišty od obsahu */
body.theme-v2 [x-data^="audioPlayerBar"] .fixed.inset-x-0.bottom-0{box-shadow:0 -10px 26px rgba(43,30,85,.12)}

/* songlab-dialog (alert/confirm portál) — panel je bg-surface → už pastel;
   doplnit textové korekty pro případy, kdy má markup text-white uvnitř: */
body.theme-v2 .fixed.z-\[100\] .modal-content,body.theme-v2 .fixed.z-\[100\] .bg-surface{background:var(--white)}

/* ==========================================================================
   6b) Desktop ≥1024px — full-width pásy (vzor besong.cz): sekce jedou od
   okraje k okraji jako souvislé barevné pásy, obsah je kontejnovaný jen
   uvnitř nich. Dřívější dojem „obsah v boxu" způsoboval sdílený layout
   kontejner max-w-6xl + zaoblené panely se 18px mezerami (design mockupu
   pro mobil). Mobilní boxový layout zůstává nedotčený (media query).
   Skopování přes :has(>.v2page): full-bleed dostanou POUZE stránky, které
   reálně renderují V2 šablonu — wizard/dashboard/admin (V1 markup pod
   theme-v2 body třídou v režimu náhledu) si zachovají svůj kontejner.
   ========================================================================== */
@media(min-width:1024px){
  /* layout kontejner mainu: Tailwind max-w-6xl/px/py přebírá V2 (0-1-2 < nás) */
  body.theme-v2 #app-main>div:has(>.v2page){max-width:none;padding:0}
  /* pásy splývají — žádná zaoblení ani mezery mezi sekcemi */
  body.theme-v2 .v2page>section{border-radius:0}
  body.theme-v2 .v2page>section+section{margin-top:0}
  body.theme-v2 .v2page .hero{border-radius:0}
  /* .pagehead (reference/hodnoceni) má vlastní radius (0,3,1) — musí se přepsat taky */
  body.theme-v2 .v2page .pagehead{border-radius:0}
  /* announcement pásy: pod sebe jako souvislé pruhy (margin-bottom má inline styl → !important jediné místo) */
  body.theme-v2 .v2page .ann{border-radius:0;padding:10px 40px;margin-bottom:0 !important}
  body.theme-v2 .v2page .ann+.ann{border-top:1px solid rgba(122,78,0,.16)}
  /* čtenářský kontejner obsahu: výrazně širší, ale rozumně omezený.
     PITFALL: musíme psát LONGHAND (padding-left/right) — shorthand `padding:0 40px`
     by jakožto pozdější pravidlo se stejnou specificitou (0,3,1) přepsalo svislé
     odsazení `.wrap.ref-main` (padding-top/bottom z §5) a na /contact by formulář
     splýnul s CTA pásem do sebe. */
  body.theme-v2 .v2page .wrap{max-width:1400px;padding-left:40px;padding-right:40px}
}

/* ==========================================================================
   7) HEADER — B+D mix (finální schválený mockup nahled-menu-real-v2.html):
   bílý podklad lišty + 3px gradientní "Živý pastel" proužek na horní hraně
   + lilac hover/aktivní stav (identita z D) + ink logo (swap v header.php)
   + fialová CTA. Dřívější tmavě fialový "záchranný" override je odstraněn.
   Tato pravidla MUSÍ být jako poslední, protože utility override výše by
   světlé pozadí hlavičky znovu "ztmavily".
   ========================================================================== */
/* POZOR: cílíme PŘÍSNĚ na `header.sticky` (jediná site navigace v
   templates/components/header.php). Obsahové stránky (/svatek, /blog,
   /clanek …) používají sémantické `<header class="mb-10 …">` uvnitř <main>;
   bez `.sticky` by textové override (specificity 0-3-1) zasáhly i ně. */
body.theme-v2 header.sticky{background:var(--white);border-bottom:1px solid var(--line)}
/* 3px gradientní podpis na horní hraně NAVIGAČNÍ lišty (ne přes oznamovací banner) */
body.theme-v2 header.sticky nav.glass-strong{background:transparent;border-bottom-color:var(--line);position:relative}
body.theme-v2 header.sticky nav.glass-strong::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad);z-index:1}
body.theme-v2 header.sticky .bg-surface\/95,body.theme-v2 header.sticky .bg-background{background-color:var(--white)}
body.theme-v2 header.sticky .glass-strong{background:transparent;border-color:var(--line)}
body.theme-v2 header.sticky .border-white\/5,body.theme-v2 header.sticky .border-white\/10,body.theme-v2 header.sticky .border-white\/20{border-color:var(--line)}
/* text na světlé liště: ink-2 (AAA) pro odkazy, ink pro běžný/aktivní text */
body.theme-v2 header.sticky .text-text-muted{color:var(--ink-2)}
body.theme-v2 header.sticky .text-text{color:var(--ink)}
body.theme-v2 header.sticky .hover\:text-text:hover{color:var(--violet-deep)}
body.theme-v2 header.sticky .hover\:bg-white\/5:hover,body.theme-v2 header.sticky .hover\:bg-white\/10:hover{background-color:var(--lilac)}
body.theme-v2 header.sticky .bg-white\/5,body.theme-v2 header.sticky .bg-white\/10,body.theme-v2 header.sticky .bg-white\/15,body.theme-v2 header.sticky .bg-white\/20{background-color:var(--lilac)}
body.theme-v2 header.sticky .text-white\/15,body.theme-v2 header.sticky .text-white\/20,body.theme-v2 header.sticky .text-white\/25,body.theme-v2 header.sticky .text-white\/50{color:var(--muted)}
body.theme-v2 header.sticky .text-white\/80{color:var(--ink-2)}
body.theme-v2 header.sticky .text-neutral-400,body.theme-v2 header.sticky .text-neutral-500{color:var(--muted)}
body.theme-v2 header.sticky .text-primary{color:var(--violet-deep)}
body.theme-v2 header.sticky .bg-primary-600{background-color:var(--violet)}
body.theme-v2 header.sticky .ring-surface{--tw-ring-color:var(--white)}
body.theme-v2 header.sticky .shadow-glow,body.theme-v2 header.sticky .shadow-glow-lg{box-shadow:var(--sh)}
/* hlavní navigace = ghost tlačítka: ink-2, hover/aktiv lilac pilulka (identita z D) */
body.theme-v2 header.sticky .btn-ghost{color:var(--ink-2)}
body.theme-v2 header.sticky .btn-ghost:hover{background:var(--lilac);color:var(--violet-deep)}
/* badge košíku — fialový podklad + bílý text, čitelný na bílé liště */
body.theme-v2 header.sticky [data-cart-badge]{color:#fff}
/* Přepínač jazyka + měny — jemná bílá pilulka s lilac rámečkem, hover lilac. */
body.theme-v2 header .locale-trigger{background:var(--white);color:var(--ink);border:1px solid var(--lilac-line);box-shadow:none}
body.theme-v2 header .locale-trigger:hover{background:var(--lilac);color:var(--ink)}
body.theme-v2 header .locale-trigger .text-text-muted{color:rgba(43,30,85,.72)}
body.theme-v2 header .locale-trigger .text-white\/25{color:rgba(43,30,85,.35)}
body.theme-v2 header .locale-panel{background:var(--white);border-color:var(--lilac-line);box-shadow:0 18px 44px rgba(43,30,85,.18)}
body.theme-v2 header .locale-panel .text-text-muted{color:var(--ink-2)}
body.theme-v2 header .locale-panel .text-text-muted\/70{color:rgba(43,30,85,.72)}
body.theme-v2 header .locale-panel .text-text{color:var(--ink)}
body.theme-v2 header .locale-panel .hover\:text-text:hover{color:var(--ink)}
body.theme-v2 header .locale-panel .hover\:bg-white\/5:hover{background-color:var(--lilac)}
body.theme-v2 header .locale-panel .text-primary{color:var(--violet-deep)}
body.theme-v2 header .locale-panel .bg-white\/10{background-color:var(--lilac-line)}

/* ==========================================================================
   8) Back-to-top tlačítko (assets/css/back-to-top.css) ve V2 — bílé kolečko
   s ink šipkou a pastelovým stínem; hover přebírá gradient CTA (vbtn-g).
   ========================================================================== */
body.theme-v2 .btt{background:var(--white);border-color:rgba(43,30,85,.10);color:var(--ink);box-shadow:0 10px 26px rgba(43,30,85,.16)}
body.theme-v2 .btt:hover{background:var(--grad);border-color:transparent;color:#fff}
body.theme-v2 .btt:focus-visible{outline-color:var(--violet)}

/* ==========================================================================
   9) FOOTER V2 — dle schváleného mockupu nahled-theme-v7-real.html
   (bílý podklad, 4sloupcová mřížka, uppercase hlavičky, muted odkazy).
   Markup: templates/v2/partials/footer.php — třídy jsou V2-only, proto
   stačí scope na body.theme-v2 (mimo .v2page — footer je sdílený shell).
   ========================================================================== */
body.theme-v2 footer.v2foot{background:var(--white);border-top:1px solid var(--line);padding:40px 0 22px;font-size:14px;margin-top:auto;position:relative;z-index:10}
/* fixed cookie lišta nesmí překrýt spodní řádek — stejná rezervace jako V1 pb-44 */
body.theme-v2 footer.v2foot.cookie-gap{padding-bottom:11rem}
body.theme-v2 footer.v2foot .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
body.theme-v2 footer.v2foot .f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:26px;margin-bottom:26px}
@media(max-width:880px){body.theme-v2 footer.v2foot .f-grid{grid-template-columns:1fr 1fr}body.theme-v2 footer.v2foot .f-soc-col{grid-column:1/-1}}
@media(max-width:560px){body.theme-v2 footer.v2foot .f-grid{grid-template-columns:1fr}}
/* Sociální sítě: ikonový řádkový odkaz (ikon + text vedle sebe); přebíjí blokový styl .f-grid a */
body.theme-v2 footer.v2foot .f-soc{display:inline-flex;align-items:center;gap:8px;color:var(--muted);padding:4px 16px 4px 0}
body.theme-v2 footer.v2foot .f-soc svg{width:16px;height:16px;fill:currentColor;flex:none}
body.theme-v2 footer.v2foot .f-soc:hover{color:var(--violet-deep)}
body.theme-v2 footer.v2foot h5{font-family:'Figtree',ui-sans-serif,sans-serif;font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 11px;color:var(--ink)}
body.theme-v2 footer.v2foot a{color:var(--muted);display:block;padding:3px 0}
body.theme-v2 footer.v2foot a:hover{color:var(--violet-deep)}
body.theme-v2 footer.v2foot .f-brand{display:inline-flex;align-items:center;background:none;padding:0;border-radius:0;box-shadow:none}
body.theme-v2 footer.v2foot .f-brand img{height:26px;width:auto}
body.theme-v2 footer.v2foot .f-id{font-size:13px;color:var(--muted);line-height:1.7}
body.theme-v2 footer.v2foot .f-id b{color:var(--ink)}
/* e-mail a projekty v textu: řádkový odkaz, ne blok */
body.theme-v2 footer.v2foot .f-mail{display:inline;padding:0}
body.theme-v2 footer.v2foot .f-bottom{border-top:1px solid var(--line);padding-top:15px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:12.5px;color:var(--muted)}
body.theme-v2 footer.v2foot .f-bottom a{display:inline;padding:0}
/* desktop plnošířkový režim (stejný kontejner jako vrstva 6b nad .v2page) */
@media(min-width:1024px){body.theme-v2 footer.v2foot .wrap{max-width:1400px;padding:0 40px}}

/* ==========================================================================
   10) LEAD-CAPTURE banner V2 — Varianta A „Dárkový kupón"
   (schválený mockup nahled-theme-v9-newsletter.html).
   Markup: templates/v2/partials/lead-capture-banner.php — texty server-side,
   barvy 1:1 z V2 tokenů. Kontrakt JS: #lc-banner, .lc-form, .lc-msg.
   ========================================================================== */
body.theme-v2 #lc-banner.lc2-band{background:var(--lilac);padding:64px 0}
body.theme-v2 #lc-banner .lc2-wrap{max-width:1120px;margin:0 auto;padding:0 24px}
body.theme-v2 #lc-banner .lc2-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden}
body.theme-v2 #lc-banner .lc2-left{padding:clamp(28px,4vw,48px)}
body.theme-v2 #lc-banner .lc2-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:600;font-size:12.5px;padding:6px 14px;background:var(--butter);color:#8A5A00}
body.theme-v2 #lc-banner .lc2-left h2{font-family:'Figtree',ui-sans-serif,sans-serif;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;margin:16px 0 8px;color:var(--ink);line-height:1.15}
body.theme-v2 #lc-banner .lc2-left h2 em{font-style:normal;color:var(--violet-deep)}
body.theme-v2 #lc-banner .lc2-sub{color:var(--ink-2);font-size:15.5px;max-width:44ch;margin-bottom:22px}
body.theme-v2 #lc-banner .lc2-perks{list-style:none;display:grid;gap:10px;margin:0 0 26px;padding:0}
body.theme-v2 #lc-banner .lc2-perks li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--ink-2)}
body.theme-v2 #lc-banner .lc2-perks b{color:var(--ink)}
body.theme-v2 #lc-banner .lc2-ck{flex:none;width:22px;height:22px;border-radius:50%;background:var(--mint);color:var(--mint-deep);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-top:1px}
body.theme-v2 #lc-banner .lc2-ck .ico{width:12px;height:12px}
body.theme-v2 #lc-banner .lc2-form{display:flex;gap:10px;flex-wrap:wrap}
body.theme-v2 #lc-banner .lc2-field{position:relative;flex:1 1 220px}
body.theme-v2 #lc-banner .lc2-mail{position:absolute;left:17px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted);pointer-events:none}
body.theme-v2 #lc-banner .lc2-input{border:1.5px solid var(--lilac-line);border-radius:999px;padding:14px 22px 14px 46px;font:inherit;font-size:15px;color:var(--ink);background:var(--white);width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
body.theme-v2 #lc-banner .lc2-input::placeholder{color:var(--muted)}
body.theme-v2 #lc-banner .lc2-input:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(109,72,217,.12)}
body.theme-v2 #lc-banner .lc2-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:700;font-size:15.5px;border-radius:999px;padding:15px 30px;border:0;cursor:pointer;background:var(--violet-deep);color:#fff;box-shadow:0 10px 24px rgba(84,51,174,.25);transition:transform .18s,box-shadow .2s}
body.theme-v2 #lc-banner .lc2-btn:hover{transform:translateY(-2px)}
body.theme-v2 #lc-banner .lc2-btn:disabled{opacity:.6;cursor:wait;transform:none}
body.theme-v2 #lc-banner .lc2-msg{font-size:13.5px;margin:10px 0 0;min-height:1.25rem;color:var(--muted)}
/* JS přepisuje className na Tailwind text-green-400 / text-red-400 — na bílém
   podkladu musí sytější varianta (kontrakt lead-capture.js). */
body.theme-v2 #lc-banner .lc-msg.text-green-400{color:var(--mint-deep)}
body.theme-v2 #lc-banner .lc-msg.text-red-400{color:#C2415D}
body.theme-v2 #lc-banner .lc2-consent{font-size:12px;color:var(--muted);margin-top:12px}
/* kupón vpravo — fialový pás s perforovanou visačkou */
body.theme-v2 #lc-banner .lc2-right{position:relative;background:linear-gradient(160deg,#5B32B8 0%,var(--violet-deep) 55%,#4C2AA8 100%);display:flex;align-items:center;justify-content:center;padding:40px;overflow:hidden}
body.theme-v2 #lc-banner .lc2-right::before{content:"";position:absolute;width:340px;height:340px;border-radius:50%;left:-25%;bottom:-35%;background:radial-gradient(circle,rgba(217,70,239,.35),transparent 65%)}
body.theme-v2 #lc-banner .lc2-right::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-20%;top:-30%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 62%)}
body.theme-v2 #lc-banner .lc2-ticket{position:relative;z-index:1;width:min(300px,100%);background:var(--white);border-radius:20px;padding:26px 26px 20px;transform:rotate(3deg);box-shadow:0 24px 60px rgba(20,8,60,.45)}
body.theme-v2 #lc-banner .lc2-ticket::before,body.theme-v2 #lc-banner .lc2-ticket::after{content:"";position:absolute;width:26px;height:26px;border-radius:50%;background:#4E2CA6;top:calc(50% - 13px)}
body.theme-v2 #lc-banner .lc2-ticket::before{left:-13px}
body.theme-v2 #lc-banner .lc2-ticket::after{right:-13px}
body.theme-v2 #lc-banner .lc2-tlab{font-family:'Figtree',ui-sans-serif,sans-serif;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
body.theme-v2 #lc-banner .lc2-tbig{font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:800;font-size:clamp(2.4rem,4.6vw,4rem);letter-spacing:-.045em;line-height:1.04;color:var(--ink);margin:6px 0 2px}
@supports ((-webkit-background-clip:text) or (background-clip:text)){body.theme-v2 #lc-banner .lc2-tbig{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}}
body.theme-v2 #lc-banner .lc2-tfor{font-size:13.5px;color:var(--ink-2);font-weight:600}
body.theme-v2 #lc-banner .lc2-dash{border-top:2px dashed var(--lilac-line);margin:16px -26px 14px}
body.theme-v2 #lc-banner .lc2-tfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--muted)}
body.theme-v2 #lc-banner .lc2-tfoot b{font-family:'Figtree',ui-sans-serif,sans-serif;color:var(--violet-deep);letter-spacing:.06em;font-size:11.5px}
body.theme-v2 #lc-banner .lc2-proof{position:absolute;z-index:2;left:22px;bottom:22px;background:rgba(255,255,255,.94);border-radius:14px;padding:9px 14px;font-size:12px;font-weight:600;color:var(--ink);box-shadow:0 10px 24px rgba(20,8,60,.35);display:flex;gap:8px;align-items:center}
body.theme-v2 #lc-banner .lc2-stars{color:var(--sun);letter-spacing:1px}
body.theme-v2 #lc-banner .lc2-stars .ico{width:13px;height:13px;vertical-align:-.2em}
@media(max-width:880px){
  body.theme-v2 #lc-banner.lc2-band{padding:40px 0}
  body.theme-v2 #lc-banner .lc2-card{grid-template-columns:1fr}
  body.theme-v2 #lc-banner .lc2-right{order:-1;padding:34px 24px 74px}
  body.theme-v2 #lc-banner .lc2-ticket{width:min(230px,100%)}
  body.theme-v2 #lc-banner .lc2-tbig{font-size:clamp(2.1rem,9vw,3.25rem)}
  body.theme-v2 #lc-banner .lc2-proof{left:50%;transform:translateX(-50%);bottom:20px;white-space:nowrap}
  body.theme-v2 #lc-banner .lc2-form{flex-direction:column}
  body.theme-v2 #lc-banner .lc2-field{flex:0 0 auto}
  body.theme-v2 #lc-banner .lc2-btn{width:100%}
}

/* ==========================================================================
   11) LEAD-CAPTURE EXIT POPUP V2 — Varianta A (PC split + mobil kupón nahoře)
   (schválené mockupy nahled-theme-v13 / nahled-theme-v14).
   Markup: templates/v2/partials/lead-capture-modal.php.
   Kontrakt JS: #lc-modal (.hidden toggle), .lc-backdrop, .lc-form
   [data-surface=exit_popup], .lc-msg (souhlasný rodič s formem), .lc-dismiss.
   ========================================================================== */
body.theme-v2 #lc-banner .lc2-badge .ico{width:15px;height:15px}
body.theme-v2 footer.v2foot a .ico{width:13px;height:13px;vertical-align:-.18em;margin-right:3px}
body.theme-v2 #lc-modal.lc3-root{position:fixed;inset:0;z-index:50;display:flex}
body.theme-v2 #lc-modal.lc3-root.hidden{display:none}
body.theme-v2 .lc3-backdrop{position:absolute;inset:0;background:rgba(20,10,45,.55);backdrop-filter:blur(6px)}
body.theme-v2 .lc3-viewport{position:relative;z-index:20;display:flex;align-items:center;justify-content:center;width:100%;padding:16px;overflow-y:auto;pointer-events:none}
body.theme-v2 .lc3-card{position:relative;margin:auto;width:min(680px,100%);background:var(--white);border-radius:var(--r);box-shadow:0 40px 90px rgba(15,5,50,.55);overflow:hidden;display:grid;grid-template-columns:1.08fr .92fr;pointer-events:auto}
body.theme-v2 .lc3-x{position:absolute;top:14px;right:14px;z-index:20;pointer-events:auto;width:38px;height:38px;border:0;border-radius:12px;background:transparent;color:rgba(255,255,255,.82);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
body.theme-v2 .lc3-x:hover{background:rgba(255,255,255,.16);color:#fff}
body.theme-v2 .lc3-x svg{width:18px;height:18px}
body.theme-v2 .lc3-left{padding:clamp(26px,3.4vw,40px)}
body.theme-v2 .lc3-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:600;font-size:12px;padding:6px 14px;background:var(--butter);color:#8A5A00;letter-spacing:.02em}
body.theme-v2 .lc3-badge .ico{width:15px;height:15px}
body.theme-v2 .lc3-title{font-family:'Figtree',ui-sans-serif,sans-serif;font-size:clamp(1.4rem,2.5vw,1.95rem);font-weight:800;letter-spacing:-.028em;line-height:1.16;margin:16px 0 10px;color:var(--ink)}
body.theme-v2 .lc3-title em{font-style:normal;color:var(--violet-deep)}
body.theme-v2 .lc3-sub{color:var(--ink-2);font-size:14.5px;margin:0 0 20px;max-width:38ch}
body.theme-v2 .lc3-form{display:flex;flex-direction:column;gap:10px}
body.theme-v2 .lc3-field{position:relative;width:100%}
body.theme-v2 .lc3-mail{position:absolute;left:17px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted);pointer-events:none}
body.theme-v2 .lc3-input{border:1.5px solid var(--lilac-line);border-radius:999px;padding:15px 22px 15px 46px;font:inherit;font-size:16px;color:var(--ink);background:var(--white);width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
body.theme-v2 .lc3-input::placeholder{color:var(--muted)}
body.theme-v2 .lc3-input:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(109,72,217,.12)}
body.theme-v2 .lc3-btn{width:100%;min-height:54px;display:inline-flex;align-items:center;justify-content:center;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:700;font-size:15.5px;border-radius:999px;padding:15px 30px;border:0;cursor:pointer;background:var(--violet-deep);color:#fff;box-shadow:0 10px 24px rgba(84,51,174,.25);transition:transform .18s,box-shadow .2s}
body.theme-v2 .lc3-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(84,51,174,.34)}
body.theme-v2 .lc3-btn:disabled{opacity:.6;cursor:wait;transform:none}
body.theme-v2 .lc3-msg{font-size:13px;margin:8px 0 0;min-height:1.25rem;color:var(--muted)}
/* JS přepisuje className na Tailwind text-green-400 / text-red-400 — na bílém
   podkladu musí sytější varianta (kontrakt lead-capture.js). */
body.theme-v2 #lc-modal .lc-msg.text-green-400{color:var(--mint-deep)}
body.theme-v2 #lc-modal .lc-msg.text-red-400{color:#C2415D}
body.theme-v2 .lc3-consent{font-size:12px;color:var(--muted);margin:12px 0 8px}
body.theme-v2 .lc3-dismiss{background:none;border:0;cursor:pointer;font-size:13.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:2px 0;transition:color .15s}
body.theme-v2 .lc3-dismiss:hover{color:var(--ink-2)}
/* kupón vpravo — fialový pás (PC) */
body.theme-v2 .lc3-right{position:relative;background:linear-gradient(160deg,#5B32B8 0%,var(--violet-deep) 55%,#4C2AA8 100%);display:flex;align-items:center;justify-content:center;padding:36px;overflow:hidden}
body.theme-v2 .lc3-right::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;left:-28%;bottom:-32%;background:radial-gradient(circle,rgba(217,70,239,.4),transparent 65%)}
body.theme-v2 .lc3-right::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-22%;top:-28%;background:radial-gradient(circle,rgba(255,255,255,.15),transparent 62%)}
body.theme-v2 .lc3-ticket{position:relative;z-index:1;width:min(240px,100%);background:var(--white);border-radius:18px;padding:22px 22px 16px;transform:rotate(3deg);box-shadow:0 22px 50px rgba(20,8,60,.45)}
body.theme-v2 .lc3-ticket::before,body.theme-v2 .lc3-ticket::after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:var(--violet-deep);top:calc(50% - 12px)}
body.theme-v2 .lc3-ticket::before{left:-12px}
body.theme-v2 .lc3-ticket::after{right:-12px}
body.theme-v2 .lc3-tlab{font-family:'Figtree',ui-sans-serif,sans-serif;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
body.theme-v2 .lc3-tbig{font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:800;font-size:3rem;letter-spacing:-.045em;line-height:1.06;color:var(--ink);margin:6px 0 2px}
@supports ((-webkit-background-clip:text) or (background-clip:text)){body.theme-v2 .lc3-tbig{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}}
body.theme-v2 .lc3-tfor{font-size:12.5px;color:var(--ink-2);font-weight:600}
body.theme-v2 .lc3-dash{border-top:2px dashed var(--lilac-line);margin:14px -22px 12px}
body.theme-v2 .lc3-tfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10.5px;color:var(--muted)}
body.theme-v2 .lc3-tfoot b{font-family:'Figtree',ui-sans-serif,sans-serif;color:var(--violet-deep);letter-spacing:.06em;font-size:11px}
/* MOBIL — kupón NAHOŘE nad obsahem (schváleno náhledem v14) */
@media(max-width:640px){
  body.theme-v2 .lc3-card{grid-template-columns:1fr}
  body.theme-v2 .lc3-right{order:-1;padding:26px 20px 24px}
  body.theme-v2 .lc3-ticket{width:min(220px,100%);transform:rotate(-4deg);box-shadow:0 16px 34px rgba(20,8,60,.4)}
  body.theme-v2 .lc3-tbig{font-size:2.6rem}
  body.theme-v2 .lc3-left{padding:20px 22px 22px;text-align:center}
  body.theme-v2 .lc3-sub{margin-inline:auto;max-width:32ch}
  body.theme-v2 .lc3-consent{max-width:34ch;margin-inline:auto}
}

/* ============================================================
   MASKOT V2 — interakce s UI dle schváleného náhledu V18
   (figura bez pozadí, vložená DO karet přes absolute+z-index;
   hlava/nohy nikdy nejsou ořezány — vždy celé; pointer-events:none, bob jen
   při prefers-reduced-motion:no-preference)
   ============================================================ */
/* společný základ: obrázek naplňuje picture box, nikdy nepřekáží klikání */
body.theme-v2 .v2-mascot{pointer-events:none;margin:0;line-height:0}
body.theme-v2 .v2-mascot img{height:100%;width:auto;display:block}

/* §1 HERO (home): maskot stojí ZA zmenšeným přehrávačem — celé tělo vidět.
   Změřeno 1440x900: karta .hplayer byla široká (472px) a centrovaná, takže
   zakrývala tělo maskota (vidět jen hlava + boty). Oprava dle náhledu V18 §1:
   karta se zmenší (max ~362px) a zarovná doleva+dolů; maskot vpravo je tak
   vidět celý (hlava, tělo i nohy), karta překrývá jen jeho levý bok.
   Na mobilu (≤1023) se maskot stává radostním IN-FLOW blokem pod CTA (varianta B,
   náhled V20) — žádná rohová samolepka. Desktop používá .v2-hero-mascot, mobil .v2-hero-mascot-m. */
body.theme-v2 .v2page .hero .v2-hero-mascot{display:none}
body.theme-v2 .v2page .hero .v2-hero-mascot-m{display:none}
@media(max-width:1023.98px){
  body.theme-v2 .v2page .hero .v2-hero-mascot-m{display:flex;justify-content:center;margin:2px 0 18px}
  body.theme-v2 .v2page .hero .v2-hero-mascot-m img{height:clamp(150px,40vw,188px);width:auto;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(10,4,40,.42))}
}
@media(min-width:1024px){
  body.theme-v2 .v2page .hero{min-height:clamp(470px,40vw,560px)}
  body.theme-v2 .v2page .hero .hero-grid{align-items:end}
  body.theme-v2 .v2page .hero .hplayer{justify-self:start;align-self:end;width:min(100%,362px);margin-bottom:clamp(10px,4%,42px)}
  body.theme-v2 .v2page .hero .v2-hero-mascot{display:block;position:absolute;right:1.5%;bottom:4%;top:auto;width:min(33%,430px);height:min(86%,480px);z-index:0;filter:drop-shadow(0 22px 34px rgba(10,4,40,.45))}
  body.theme-v2 .v2page .hero .v2-hero-mascot img{width:100%;height:100%;object-fit:contain;object-position:right bottom}
}
@media(min-width:1024px) and (prefers-reduced-motion:no-preference){
  body.theme-v2 .v2page .hero .v2-hero-mascot img{animation:v2-mascot-bob 5.6s ease-in-out infinite}
}
@keyframes v2-mascot-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* §2 WIZARD krok 1: maskot SE DRŽÍ PRSTY za horní hranu karty — stejný úchop jako
   §4 děkování. Sprite maskot5-peeking má prsty roztažené na římse a useknutý řez
   trupu je v 93,8 % výšky. Nastavením top = −0,9375·výška sedí řez PŘESNĚ na horní
   hraně karty a PRSTY PŘECHÁZEJÍ PŘES hranu na její čelo (ne useknuté pod hranou).
   Hlava je celá v mezeře pod stepperem (margin-top > výška). Bubble jen ≥1024 px. */
@media(min-width:640px){
  body.theme-v2 .v2-wiz1{position:relative;margin-top:clamp(160px,18vw,215px);padding-top:clamp(120px,13vw,160px)}
  body.theme-v2 .v2-wiz1 .v2-mascot-grip{display:block;position:absolute;left:50%;transform:translateX(-50%);top:calc(-0.9375 * clamp(150px,17vw,200px));height:clamp(150px,17vw,200px);z-index:5;filter:drop-shadow(0 12px 22px rgba(124,58,237,.25))}
}
@media(max-width:639.98px){
  body.theme-v2 .v2-wiz1{position:relative;margin-top:clamp(124px,32vw,150px);padding-top:clamp(96px,26vw,116px)}
  body.theme-v2 .v2-wiz1 .v2-mascot-grip{display:block;position:absolute;left:50%;transform:translateX(-50%);top:calc(-0.9375 * clamp(104px,28vw,120px));height:clamp(104px,28vw,120px);z-index:5;filter:drop-shadow(0 8px 16px rgba(124,58,237,.22))}
}
body.theme-v2 .v2-wiz1 .v2-mascot-bubble{display:none}
@media(min-width:1024px){
  body.theme-v2 .v2-wiz1 .v2-mascot-bubble{display:block;position:absolute;z-index:6;top:calc(-0.9375 * clamp(150px,17vw,200px) + 34px);left:calc(50% + 96px);background:#fff;border-radius:16px 16px 16px 4px;box-shadow:0 10px 26px rgba(124,58,237,.18);padding:10px 16px;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:800;font-size:14px;line-height:1.2;white-space:nowrap;color:var(--ink)}
}

/* §3 GENEROVÁNÍ (krok 2 texty): maskot LEŽÍ přes horní okraj karty. Stejná
   logika jako §2 — useknutá hrana na hraně karty. ≥640 px plná, pod 640 menší. */
@media(min-width:640px){
  body.theme-v2 .v2-wiz-gen{position:relative;margin-top:clamp(70px,8vw,100px);padding-top:clamp(150px,17vw,200px)!important}
  body.theme-v2 .v2-wiz-gen .v2-mascot-recliner{display:block;position:absolute;left:50%;transform:translateX(-58%);top:calc(-1 * clamp(70px,8vw,100px) + 4px);height:clamp(130px,15vw,185px);z-index:5;filter:drop-shadow(0 14px 22px rgba(47,122,92,.28))}
}
@media(max-width:639.98px){
  body.theme-v2 .v2-wiz-gen{position:relative;margin-top:64px;padding-top:clamp(96px,24vw,120px)!important}
  body.theme-v2 .v2-wiz-gen .v2-mascot-recliner{display:block;position:absolute;left:50%;transform:translateX(-50%);top:-60px;height:64px;z-index:5;filter:drop-shadow(0 8px 14px rgba(47,122,92,.26))}
}

/* §32 GENEROVANI krok 3 — maskot reclining misto kolecka + firemní gradient průběhu.
   Aktivita (bob + equalizer + sweep) bezi ve VSECH sirach vcetne mobilu (kde se
   kolecko netocilo); vypnuto jen pri prefers-reduced-motion. */
body.theme-v2 .v2-wiz-generating .v2-gen-mascot-wrap{position:relative;display:inline-block;margin-bottom:6px}
body.theme-v2 .v2-wiz-generating .v2-gen-mascot{display:inline-block;height:clamp(104px,26vw,168px);filter:drop-shadow(0 12px 20px rgba(124,58,237,.18))}
body.theme-v2 .v2-wiz-generating .v2-gen-mascot img{height:100%;width:auto;display:block}
body.theme-v2 .v2-wiz-generating .v2-gen-eq{position:absolute;right:-6px;bottom:14px;display:flex;align-items:flex-end;gap:3px;height:clamp(24px,5vw,34px);pointer-events:none}
body.theme-v2 .v2-wiz-generating .v2-gen-eq i{width:5px;height:100%;border-radius:99px;background:var(--grad);transform-origin:bottom;transform:scaleY(.4)}
body.theme-v2 .v2-wiz-generating .v2-gen-track{background:#EEE9F8;box-shadow:inset 0 1px 3px rgba(43,30,85,.08)}
body.theme-v2 .v2-wiz-generating .v2-gen-bar{position:relative;overflow:hidden;border-radius:99px;background:var(--grad)}
body.theme-v2 .v2-wiz-generating .v2-gen-bar::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%)}
@media(prefers-reduced-motion:no-preference){
  body.theme-v2 .v2-wiz-generating .v2-gen-mascot{animation:v2-mascot-bob 3.4s ease-in-out infinite}
  body.theme-v2 .v2-wiz-generating .v2-gen-eq i{animation:v2-gen-eq 1.05s ease-in-out infinite}
  body.theme-v2 .v2-wiz-generating .v2-gen-eq i:nth-child(2){animation-delay:.15s}
  body.theme-v2 .v2-wiz-generating .v2-gen-eq i:nth-child(3){animation-delay:.30s}
  body.theme-v2 .v2-wiz-generating .v2-gen-eq i:nth-child(4){animation-delay:.45s}
  body.theme-v2 .v2-wiz-generating .v2-gen-eq i:nth-child(5){animation-delay:.60s}
  body.theme-v2 .v2-wiz-generating .v2-gen-bar::after{animation:v2-gen-sweep 1.6s ease-in-out infinite}
}
@keyframes v2-gen-eq{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes v2-gen-sweep{0%{transform:translateX(-100%)}60%,100%{transform:translateX(320%)}}

/* §33 KROK 3 VYBER VERZE — maskot u prehracu obou verzi (nahled V22 mobil / V23 PC).
   Mobil <768: peeking uchopi horni hranu boxu „Verze 1“ (stejna geometrie trupu 93,75 %
   jako pas reference / dekujeme). PC ≥768 (dvě verze): maskot RUKY DOLU — velikost ridena
   SIRKOU (--v2w); pomer stran sprite 702/1456=0,482, linka uchopu na 90 % vysky => pres
   horni hranu boxu presahuji jen konecky prstu (~10 %), hlava + noty zustavaji NAD boxy
   a nekrusi popisek „Verze 2". Kanonicke oci/tvar prevzaty pixelove z celebrating.
   Oboji dekorace (pointer-events:none, aria-hidden); bob jen pri reduced-motion:no-preference. */
body.theme-v2 .v2-versions-grid{position:relative;margin-top:clamp(84px,26vw,110px)}
body.theme-v2 .v2-ver-between{display:none}
body.theme-v2 .v2-ver-grip{display:block;position:absolute;left:50%;transform:translateX(-50%);top:calc(-0.9375 * clamp(84px,22vw,104px) + 3px);height:clamp(84px,22vw,104px);z-index:3;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(124,58,237,.2))}
@media(min-width:768px){
  body.theme-v2 .v2-versions-grid{--v2w:clamp(320px,34vw,448px);--v2hr:0.482;--v2grip:0.90;margin-top:calc(var(--v2grip) * var(--v2hr) * var(--v2w) + 12px)}
  body.theme-v2 .v2-ver-grip{display:none}
  body.theme-v2 .v2-ver-between{display:block;position:absolute;left:50%;transform:translateX(-50%);width:var(--v2w);height:auto;top:calc(-1 * var(--v2grip) * var(--v2hr) * var(--v2w));z-index:5;pointer-events:none;filter:drop-shadow(0 14px 22px rgba(124,58,237,.16))}
  body.theme-v2 .v2-ver-between img{width:100%;height:auto}
}
@media(min-width:768px) and (prefers-reduced-motion:no-preference){
  body.theme-v2 .v2-ver-between img{animation:v2-mascot-bob 3.6s ease-in-out infinite}
}

/* §36 KROK 2 GENEROVANI TEXTU — stoupajici PISMENKA misto equalizeru (nahled V25).
   Lehici maskot + modro-oranzova cara uz sdileji styl §32 (.v2-wiz-generating). Pismenka
   jsou ASCII bez diakritiky (A R S T E) = neutralni pro vsech 8 jazyku UI. Animace jen
   pri prefers-reduced-motion:no-preference (bez sirokoveho gate — bezi i na mobilu). */
body.theme-v2 .v2-wiz-generating .v2-gen-letters{position:absolute;right:-10px;bottom:14px;display:flex;align-items:flex-end;gap:4px;height:clamp(26px,5vw,36px);pointer-events:none}
body.theme-v2 .v2-wiz-generating .v2-gen-letters b{font-family:inherit;font-weight:800;font-size:clamp(15px,3.2vw,21px);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;transform-origin:bottom;opacity:.3}
@media(prefers-reduced-motion:no-preference){
  body.theme-v2 .v2-wiz-generating .v2-gen-letters b{animation:v2-gen-letter 1.15s ease-in-out infinite}
  body.theme-v2 .v2-wiz-generating .v2-gen-letters b:nth-child(2){animation-delay:.15s}
  body.theme-v2 .v2-wiz-generating .v2-gen-letters b:nth-child(3){animation-delay:.30s}
  body.theme-v2 .v2-wiz-generating .v2-gen-letters b:nth-child(4){animation-delay:.45s}
  body.theme-v2 .v2-wiz-generating .v2-gen-letters b:nth-child(5){animation-delay:.60s}
}
@keyframes v2-gen-letter{0%,100%{transform:translateY(6px) scale(.85);opacity:.22}50%{transform:translateY(-5px) scale(1);opacity:1}}

/* §4 DEKOVANI (potvrzeni objednavky): prsty drzi horni hranu souhrnne karty,
   rez trupu (93,8 % vysky sprite, mereno) sedi presne na hrane; hlava cela
   v odsazene zone. NOW vycentrovany na STRED horni hrany (drive pravy roh),
   PC i mobil shodne; jen <=768 px mensi varianta s mezerou. */
body.theme-v2 .v2-thx-hero{padding-bottom:clamp(80px,9vw,110px)}
body.theme-v2 .v2-thx-card{position:relative}
body.theme-v2 .v2-thx-card .v2-mascot-peeker{display:none}
@media(min-width:768px){
  body.theme-v2 .v2-thx-card .v2-mascot-peeker{display:block;position:absolute;top:-105px;left:50%;transform:translateX(-50%);height:112px;z-index:5;filter:drop-shadow(0 10px 18px rgba(124,58,237,.2))}
}
@media(max-width:767.98px){
  body.theme-v2 .v2-thx-card{margin-top:92px}
  body.theme-v2 .v2-thx-card .v2-mascot-peeker{display:block;position:absolute;top:-71px;left:50%;transform:translateX(-50%);height:76px;z-index:5;filter:drop-shadow(0 8px 14px rgba(124,58,237,.2))}
}

/* §6 HOTOVO (wizard krok 5): slaví v proudu karty — statické umístění,
   zero riziko ořezu či překryvu tlačítek. */
body.theme-v2 .v2-mascot-celebrant{display:block;width:min(62%,235px);margin:0 auto 14px}
body.theme-v2 .v2-mascot-celebrant img{width:100%;height:auto}
body.theme-v2 .v2-mascot-celebrant-sm{width:min(50%,180px)}

/* ============================================================
   §7 HOME — průvodce u „jak to funguje“ + doporučující kamarád u ukázek.
   Průvodce (peeking) SE DRŽÍ PRSTY za horní hranu posledního kroku — řez trupu
   (93,8 % výšky sprite) sedí přesně na horní hraně mřížky .steps, prsty přecházejí
   PŘES hranu na čelo boxu (stejný úchop jako wizard §2). Doporučující kamarád
   (celebrating) zůstává celá postava v pravém horním rohu pásu ukázek. Jen ≥1000 px.
   ============================================================ */
body.theme-v2 .v2page section.band-sky{position:relative}
body.theme-v2 .v2-steps-guide,body.theme-v2 .v2-band-mascot,body.theme-v2 .v2-band-bubble{display:none}
@media(min-width:1000px){
  body.theme-v2 .v2-steps-guide{display:block;position:absolute;left:70.2%;transform:translateX(-50%);top:calc(-0.9375 * clamp(104px,11vw,150px));height:clamp(104px,11vw,150px);z-index:3;pointer-events:none;filter:drop-shadow(0 12px 20px rgba(124,58,237,.22))}
  body.theme-v2 .v2page .testis{margin-top:clamp(120px,13vw,150px)}
  body.theme-v2 .v2-band-mascot{display:block;position:absolute;left:50%;transform:translateX(-50%);top:calc(-0.9375 * clamp(104px,11vw,140px));height:clamp(104px,11vw,140px);z-index:3;pointer-events:none;filter:drop-shadow(0 12px 20px rgba(124,58,237,.22))}
  body.theme-v2 .v2-band-bubble{display:block;position:absolute;left:calc(50% + clamp(58px,7vw,72px));top:calc(-0.9375 * clamp(104px,11vw,140px) + 12px);z-index:4;background:#fff;border-radius:16px 16px 16px 4px;box-shadow:0 10px 26px rgba(124,58,237,.18);padding:9px 14px;font-family:'Figtree',ui-sans-serif,sans-serif;font-weight:800;font-size:13px;line-height:1.2;white-space:nowrap;color:var(--ink);pointer-events:none}
}
/* Mobil (≤540 px, jednostrancovy grid): pruvodce drzi PRSTY za horni hranu 1. kroku.
   .steps dostane odsazeni shora, aby hlava maskota mela misto pod centrovanym nadpisem. */
@media(max-width:540px){
  body.theme-v2 .v2page .steps{margin-top:clamp(72px,24vw,104px)}
  body.theme-v2 .v2-steps-guide{display:block;position:absolute;left:50%;transform:translateX(-50%);top:calc(-0.9375 * clamp(84px,23vw,108px) + 3px);height:clamp(84px,23vw,108px);z-index:3;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(124,58,237,.2))}
}
/* Reference pas na mobilu (≤920 px, .testis preji na 1 sloupec): kamarad drzi 1. box. */
@media(max-width:920px){
  body.theme-v2 .v2page .testis{margin-top:clamp(84px,26vw,110px)}
  body.theme-v2 .v2-band-mascot{display:block;position:absolute;left:50%;transform:translateX(-50%);top:calc(-0.9375 * clamp(84px,22vw,104px) + 3px);height:clamp(84px,22vw,104px);z-index:3;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(124,58,237,.2))}
}

/* ============================================================
   §8 REFERENCE / BLOG — maskot NAKUKUJE přes spodní hranu hlavičky.
   Řez trupu peekingu (93,8 %) maskuje spodní okraj pageheadu: bottom:0 +
   translateY(6,2 %) → řez na hraně, prsty přes hranu dolů. Jen ≥900 px, kde
   je volný pravý okraj vedle centrovaného textu (max-width 58ch).
   ============================================================ */
body.theme-v2 .v2page .pagehead{position:relative}
body.theme-v2 .v2-head-peek{display:none}
@media(min-width:900px){
  body.theme-v2 .v2-head-peek{display:block;position:absolute;bottom:0;right:clamp(20px,5%,80px);height:clamp(84px,10vw,116px);transform:translateY(6.2%);z-index:3;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(124,58,237,.22))}
}

/* ============================================================
   §9 MOBIL — kulatá tvář (badge ořez standing) ve sticky CTA liště.
   ============================================================ */
body.theme-v2 .v2page .mbar{padding-left:8px}
body.theme-v2 .v2page .mbar .av{width:42px;height:42px;border-radius:50%;overflow:hidden;flex:none;background:var(--v-soft);display:flex;align-items:center;justify-content:center}
body.theme-v2 .v2page .mbar .av img{width:100%;height:100%;object-fit:cover;object-position:top center}

/* ============================================================
   §10 NABÍDKA V2 — katalog balíčků + poukazů (glassmorphism cards).
   Stejná pastelová paleta jako homepage hero; karty navazují na
   V1 offer (grid, highlight, value block) do V2 vizuálního jazyka.
   ============================================================ */
body.theme-v2 .v2page .v2-catalog{padding:clamp(48px,6vw,88px) 0}
body.theme-v2 .v2page .v2-catalog.alt{background:linear-gradient(180deg,var(--lilac) 0%,#fff 100%)}
body.theme-v2 .v2page .v2-catalog .sec-head{text-align:center;margin-bottom:clamp(32px,4vw,52px)}
body.theme-v2 .v2page .v2-catalog .sec-head h2{font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:900;letter-spacing:-.02em;color:var(--ink);margin:0 0 8px}
body.theme-v2 .v2page .v2-catalog .sec-head p{font-size:1.05rem;color:var(--muted);max-width:56ch;margin:0 auto}

/* Grid */
body.theme-v2 .v2page .v2-prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(20px,2.5vw,32px);max-width:1200px;margin:0 auto}
@media(max-width:640px){body.theme-v2 .v2page .v2-prod-grid{grid-template-columns:1fr}}

/* Card */
body.theme-v2 .v2page .v2-prod-card{position:relative;display:flex;flex-direction:column;border-radius:24px;padding:clamp(20px,2.5vw,32px);background:rgba(255,255,255,.72);border:1.5px solid rgba(109,72,217,.10);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 24px rgba(109,72,217,.06);transition:transform .3s,box-shadow .3s,border-color .3s;text-decoration:none;color:inherit}
body.theme-v2 .v2page .v2-prod-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(109,72,217,.12);border-color:rgba(109,72,217,.25)}
body.theme-v2 .v2page .v2-prod-card.hot{border-color:var(--violet);background:linear-gradient(135deg,rgba(109,72,217,.04),rgba(192,38,211,.03));box-shadow:0 6px 28px rgba(109,72,217,.14)}

/* Badge */
body.theme-v2 .v2page .v2-prod-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);white-space:nowrap;border-radius:999px;background:linear-gradient(135deg,var(--violet),var(--fuchsia));color:#fff;font-size:.72rem;font-weight:800;padding:5px 14px;box-shadow:0 4px 12px rgba(109,72,217,.25)}

/* Image */
body.theme-v2 .v2page .v2-prod-img{margin-bottom:16px;border-radius:16px;overflow:hidden;border:1px solid rgba(109,72,217,.08)}
body.theme-v2 .v2page .v2-prod-img img{width:100%;height:160px;object-fit:cover;display:block;transition:transform .3s}
body.theme-v2 .v2page .v2-prod-card:hover .v2-prod-img img{transform:scale(1.03)}

/* Icon fallback (vouchers) */
body.theme-v2 .v2page .v2-prod-ic{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:var(--v-soft);margin-bottom:14px}
body.theme-v2 .v2page .v2-prod-ic svg{width:28px;height:28px;stroke:var(--violet);fill:none}

/* Credits */
body.theme-v2 .v2page .v2-prod-credits{display:flex;align-items:baseline;gap:6px;margin-bottom:10px}
body.theme-v2 .v2page .v2-prod-credits b{font-size:2rem;font-weight:900;color:var(--violet-deep);line-height:1}
body.theme-v2 .v2page .v2-prod-credits span{font-size:.75rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}

/* Title */
body.theme-v2 .v2page .v2-prod-card h3{font-size:1.1rem;font-weight:800;color:var(--ink);margin:0 0 6px}

/* Description */
body.theme-v2 .v2page .v2-prod-desc{font-size:.88rem;color:var(--muted);line-height:1.55;flex:1;margin:0 0 16px}

/* Price block */
body.theme-v2 .v2page .v2-prod-price{margin-bottom:14px}
body.theme-v2 .v2page .v2-prod-price s{display:block;font-size:.82rem;color:var(--muted);opacity:.7}
body.theme-v2 .v2page .v2-prod-price strong{font-size:1.4rem;font-weight:900;color:var(--violet-deep)}
body.theme-v2 .v2page .v2-prod-price em{display:inline-block;margin-top:4px;font-style:normal;font-size:.72rem;font-weight:700;color:#059669;background:rgba(5,150,105,.08);border-radius:6px;padding:2px 8px}

/* Value block */
body.theme-v2 .v2page .v2-prod-value{border-radius:14px;padding:12px 14px;margin-bottom:16px;background:rgba(109,72,217,.03);border:1px solid rgba(109,72,217,.08);font-size:.82rem}
body.theme-v2 .v2page .v2-prod-value .r{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 0}
body.theme-v2 .v2page .v2-prod-value .r span{color:var(--muted)}
body.theme-v2 .v2page .v2-prod-value .r s{color:var(--muted);text-decoration:line-through}
body.theme-v2 .v2page .v2-prod-value .r b{font-weight:700;color:var(--ink)}
body.theme-v2 .v2page .v2-prod-value .s{color:#059669;font-weight:700;padding:3px 0}
body.theme-v2 .v2page .v2-prod-value .rule{font-size:.7rem;color:var(--muted);opacity:.7;padding-top:6px;margin-top:6px;border-top:1px solid rgba(109,72,217,.06)}

/* CTA button within card */
body.theme-v2 .v2page .v2-prod-cta{display:block;text-align:center;border-radius:14px;padding:12px;font-size:.92rem;font-weight:800;margin-top:auto}

/* Footer note */
body.theme-v2 .v2page .v2-catalog-note{text-align:center;margin-top:clamp(24px,3vw,40px);font-size:.88rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px}
body.theme-v2 .v2page .v2-catalog-note .ico{width:18px;height:18px;color:var(--violet)}

/* Scroll cue — uvnitř hero (gradient bg) musí být světlý, mimo hero zůstává muted */
body.theme-v2 .v2page .v2-scrollcue-wrap{display:flex;justify-content:center;padding:clamp(24px,4vw,40px) 0 12px}
body.theme-v2 .v2page .v2-scrollcue{display:inline-flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:rgba(255,255,255,.82);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;transition:color .2s,text-shadow .2s}
body.theme-v2 .v2page .hero .v2-scrollcue{text-shadow:0 1px 4px rgba(43,30,85,.25)}
body.theme-v2 .v2page .v2-scrollcue:hover{color:#fff;text-shadow:0 2px 8px rgba(43,30,85,.35)}
body.theme-v2 .v2page .v2-scrollcue svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;animation:v2-bounce 1.8s infinite}
@media(max-width:640px){body.theme-v2 .v2page .v2-scrollcue{font-size:.78rem;letter-spacing:.05em;gap:6px;padding:8px 16px;min-height:44px}}
@keyframes v2-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* ============================================================
   §10.1 NABÍDKA V2.1 — schválená varianta G (náhled 2026-10-13)
   + maskot Songlabáček opírající se rukama o nejvýhodnější kartu
   (balíčky i poukazy). Přenáší PŘESNĚ spočítaný stav náhledu —
   podkladová skla §10 zůstávají, přidávají se jen vlastnosti,
   které v náhledu skutečně vyhrály (srovnáno měřením v browseru).
   ============================================================ */
/* Pastelový aurora podklad prvního katalogu (alt pás zůstává dle §10) */
body.theme-v2 .v2page .v2-catalog{background:linear-gradient(135deg,#F4EFFD 0%,#EAF3FD 50%,#FDEDF3 100%)}
/* Karty: zarovnání na střed, presah maskota ven z karty */
body.theme-v2 .v2page .v2-prod-card{text-align:center;overflow:visible}
/* Fotka na radiálním pastelovém glow (3n = fialová, 3n+2 = mátová, 3n+3 = zlatá) */
body.theme-v2 .v2page .v2-prod-img{padding:26px 22px 6px;background:radial-gradient(circle at 50% 40%,rgba(124,58,237,.15) 0%,rgba(192,38,211,.07) 45%,transparent 70%)}
body.theme-v2 .v2page .v2-prod-card:nth-child(3n+2) .v2-prod-img{background:radial-gradient(circle at 50% 40%,rgba(16,185,129,.15) 0%,rgba(52,211,153,.07) 45%,transparent 70%)}
body.theme-v2 .v2page .v2-prod-card:nth-child(3n+3) .v2-prod-img{background:radial-gradient(circle at 50% 40%,rgba(245,158,11,.16) 0%,rgba(255,194,75,.08) 45%,transparent 70%)}
/* Bílý rámeček fotky (E) — přes base ořez 160px cover, shodně z měření náhledu */
body.theme-v2 .v2page .v2-prod-img img{background:#fff;border-radius:18px;padding:10px;box-shadow:0 8px 22px rgba(43,30,85,.12)}
/* CTA gradient 118deg (F) — radius 14px a stín zůstávají z base/vbtn-g */
body.theme-v2 .v2page .v2-prod-cta{background:linear-gradient(118deg,#7C3AED 0%,#C026D3 52%,#F59E0B 100%);color:#fff}

/* Maskot na horní hraně zvýrazněné karty — jen desktop ≥1200 px
   (stejná hranice jako desktopová navigace; pod ni se karta jeví bez něj). */
body.theme-v2 .v2page .v2-card-mascot{display:none}
@media(min-width:1200px){
  body.theme-v2 .v2page .v2-prod-card.hot{z-index:2}
  body.theme-v2 .v2page .v2-card-mascot{display:block;position:absolute;top:-109px;left:44%;transform:translateX(-50%);width:280px;z-index:6;pointer-events:none}
  body.theme-v2 .v2page .v2-card-mascot img{width:100%;display:block;filter:drop-shadow(0 6px 14px rgba(43,30,85,.12))}
  body.theme-v2 .v2page .v2-card-mascot-bubble{position:absolute;bottom:calc(100% - 4px);left:50%;transform:translateX(-50%);background:rgba(255,255,255,.98);border:1.5px solid #C9BAEC;border-radius:14px;padding:9px 14px;font-size:.85rem;line-height:1.35;font-weight:700;color:#2B1E55;box-shadow:0 8px 22px rgba(43,30,85,.18);width:max-content;max-width:240px;text-align:center}
  body.theme-v2 .v2page .v2-card-mascot-bubble::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:7px solid transparent;border-top-color:rgba(255,255,255,.98)}
  /* Badge klesne pod ruce maskota na fotku (stylistika štítku) */
  body.theme-v2 .v2page .v2-prod-card.hot .v2-prod-badge{top:38px}
}

/* ============================================================
   §11 PRODUKT — detail balíčku / poukazu V2 (templates/v2/app/product.php).
   Schválený náhled „originál B full width" (detail-preview-fw.html,
   14. 10. 2026): sunset hero (text | foto v bílém rámu + maskot s
   bublinkou), bílá buy karta překrývající spodní okraj pásu, 3 pastelové
   dlaždice na bílém pásu, lilac pás O produktu, cross-sell přepoužívá
   karty §10/§10.1. Full-width řádkování na ≥1024px dědí z §6b
   (pásy edge-to-edge, wrap 1400/40px); mobil zachovává zaoblené panely.
   ============================================================ */
/* hero: vlastní spodní odsazení pro překryv buy kartou + menší H1 než homepage */
body.theme-v2 .v2page .v2-det-hero{padding-bottom:clamp(96px,12vw,140px)}
body.theme-v2 .v2page .v2-det-hero h1{font-size:clamp(2rem,3.6vw,3rem);margin:14px 0 12px}
body.theme-v2 .v2page .v2-det-hero .lead{margin-bottom:20px}
/* breadcrumb (světlý text nad sunset gradientem) */
body.theme-v2 .v2page .v2-det-crumb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;font-weight:500;color:rgba(255,255,255,.8);margin-bottom:14px}
body.theme-v2 .v2page .v2-det-crumb a:hover{color:#fff}
body.theme-v2 .v2page .v2-det-crumb .ico{width:12px;height:12px;opacity:.55}
body.theme-v2 .v2page .v2-det-crumb span:last-child{color:#fff}
/* fotografie / galerie v bílém rámu (rotace jako v náhledu) */
body.theme-v2 .v2page .v2-det-fig{position:relative;justify-self:center;width:min(100%,480px)}
body.theme-v2 .v2page .v2-det-frame{background:var(--white);border-radius:22px;padding:12px;box-shadow:0 24px 60px rgba(124,58,237,.16);transform:rotate(2.5deg)}
body.theme-v2 .v2page .v2-det-frame img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;display:block}
body.theme-v2 .v2page .v2-det-thumbs{display:flex;gap:8px;margin-top:14px}
body.theme-v2 .v2page .v2-det-thumbs button{width:56px;height:56px;border-radius:14px;overflow:hidden;border:2px solid rgba(255,255,255,.55);padding:0;background:none;cursor:pointer;transition:border-color .2s}
body.theme-v2 .v2page .v2-det-thumbs button.on{border-color:#fff;box-shadow:0 4px 12px rgba(43,30,85,.25)}
body.theme-v2 .v2page .v2-det-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
body.theme-v2 .v2page .v2-det-ph{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--lilac);border-radius:14px}
body.theme-v2 .v2page .v2-det-ph .ico{width:64px;height:64px;stroke-width:1.4;color:var(--violet)}
/* maskot + bublinka (bublinka jen na dostatečně širokém Hero sloupci) */
body.theme-v2 .v2page .v2-det-mascot{position:absolute;z-index:4;right:-6%;bottom:-12px;width:clamp(120px,13vw,170px);filter:drop-shadow(0 16px 24px rgba(43,30,85,.3));pointer-events:none}
body.theme-v2 .v2page .v2-det-mascot img{width:100%;display:block}
body.theme-v2 .v2page .v2-det-bubble{position:absolute;z-index:5;right:calc(-6% + clamp(120px,13vw,170px) + 14px);bottom:40px;background:#fff;color:var(--ink);font-family:'Figtree',sans-serif;font-weight:700;font-size:13px;line-height:1.4;border-radius:16px 16px 4px 16px;padding:10px 16px;box-shadow:0 12px 28px rgba(43,30,85,.22);max-width:240px}
@media(max-width:960px){body.theme-v2 .v2page .v2-det-bubble{display:none}}
/* buy karta: bílá, centrovaná, přesahující spodní okraj hero pásu */
body.theme-v2 .v2page .v2-det-buyzone{padding:0 0 clamp(44px,5.5vw,72px)}
body.theme-v2 .v2page .v2-det-buy{position:relative;z-index:6;max-width:640px;margin:-64px auto 0;background:var(--white);border:1.5px solid var(--lilac-line);border-radius:var(--r-m);box-shadow:0 26px 60px rgba(124,58,237,.2);padding:clamp(22px,2.6vw,32px)}
@media(min-width:1024px){body.theme-v2 .v2page .v2-det-buy{margin-top:-86px}}
body.theme-v2 .v2page .v2-det-buy-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px}
body.theme-v2 .v2page .v2-det-price{font-family:'Figtree',sans-serif;font-weight:900;font-size:clamp(30px,2.8vw,38px);line-height:1.05;letter-spacing:-.03em;color:var(--ink)}
body.theme-v2 .v2page .v2-det-buy-rt{text-align:right;line-height:1.6}
body.theme-v2 .v2page .v2-det-old{font-weight:500;font-size:14.5px;color:var(--muted);text-decoration:line-through}
body.theme-v2 .v2page .v2-det-save{display:inline-flex;align-items:center;gap:6px;background:var(--mint);color:var(--mint-deep);font-weight:700;font-size:12.5px;border-radius:999px;padding:5px 12px}
body.theme-v2 .v2page .v2-det-save .ico{width:14px;height:14px}
/* hodnotová karta uvnitř buy karty */
body.theme-v2 .v2page .v2-det-val{border:1.5px solid var(--lilac-line);border-radius:16px;padding:14px 18px;margin-bottom:16px}
body.theme-v2 .v2page .v2-det-val .vr{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;font-size:13.5px;color:var(--muted)}
body.theme-v2 .v2page .v2-det-val .vr b{color:var(--ink);font-weight:700;white-space:nowrap}
body.theme-v2 .v2page .v2-det-val .vr+.vr{border-top:1px dashed var(--lilac-line)}
body.theme-v2 .v2page .v2-det-val .note{font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);margin-top:4px;padding-top:8px}
/* stepper + součet */
body.theme-v2 .v2page .v2-det-qty{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
body.theme-v2 .v2page .v2-det-qty small{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}
body.theme-v2 .v2page .v2-det-step{display:inline-flex;align-items:center;border:1.5px solid var(--lilac-line);border-radius:999px;background:var(--white);overflow:hidden}
body.theme-v2 .v2page .v2-det-step button{width:38px;height:38px;border:0;background:none;color:var(--ink-2);font-family:Inter,sans-serif;font-size:17px;font-weight:600;line-height:1}
body.theme-v2 .v2page .v2-det-step button:hover{background:var(--lilac)}
body.theme-v2 .v2page .v2-det-step button:disabled{opacity:.4;cursor:not-allowed}
body.theme-v2 .v2page .v2-det-step input{width:44px;height:38px;border:0;text-align:center;font-family:Inter,sans-serif;font-size:15px;font-weight:700;color:var(--ink);background:none}
body.theme-v2 .v2page .v2-det-tot{font-size:13px;color:var(--muted);white-space:nowrap}
body.theme-v2 .v2page .v2-det-tot b{color:var(--ink)}
/* CTA na celou šířku karty */
body.theme-v2 .v2page .v2-det-buy .vbtn{width:100%}
/* pole věnování (voucher) */
body.theme-v2 .v2page .v2-det-gift{margin-bottom:16px;display:grid;gap:10px}
body.theme-v2 .v2page .v2-det-gift label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}
body.theme-v2 .v2page .v2-det-gift input,body.theme-v2 .v2page .v2-det-gift textarea{width:100%;border:1.5px solid var(--lilac-line);border-radius:12px;padding:10px 14px;font-family:Inter,sans-serif;font-size:14px;color:var(--ink);background:var(--white);resize:none}
body.theme-v2 .v2page .v2-det-gift input:focus,body.theme-v2 .v2page .v2-det-gift textarea:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 3px rgba(109,72,217,.12)}
body.theme-v2 .v2page .v2-det-gift .note{font-size:11.5px;color:var(--muted);margin:0}
body.theme-v2 .v2page .v2-det-after{font-size:12px;color:var(--muted);margin:14px 0 0;text-align:center}
/* dlaždice: bílý pás, 3 pastelové karty */
body.theme-v2 .v2page .v2-det-strip{background:var(--white)}
body.theme-v2 .v2page .v2-det-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){body.theme-v2 .v2page .v2-det-tiles{grid-template-columns:1fr}}
body.theme-v2 .v2page .v2-det-tile{border-radius:var(--r-m);padding:26px}
body.theme-v2 .v2page .v2-det-tile.m1{background:var(--mint)}
body.theme-v2 .v2page .v2-det-tile.m2{background:var(--sky)}
body.theme-v2 .v2page .v2-det-tile.m3{background:var(--blush)}
body.theme-v2 .v2page .v2-det-tile .ic-tile{background:var(--white)}
body.theme-v2 .v2page .v2-det-tile h3{font-size:16px;font-weight:800;margin:14px 0 10px}
body.theme-v2 .v2page .v2-det-tile ul,body.theme-v2 .v2page .v2-det-tile .steps{padding:0;margin:0;list-style:none}
body.theme-v2 .v2page .v2-det-tile li{display:flex;gap:9px;font-size:13.5px;color:var(--ink-2);padding:4px 0}
body.theme-v2 .v2page .v2-det-tile li .ico{width:15px;height:15px;color:var(--violet-deep);margin-top:4px}
body.theme-v2 .v2page .v2-det-tile .steps li{align-items:flex-start}
body.theme-v2 .v2page .v2-det-tile .steps .n{flex:none;width:22px;height:22px;border-radius:50%;background:var(--white);color:var(--violet-deep);font-family:'Figtree',sans-serif;font-weight:800;font-size:12px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
body.theme-v2 .v2page .v2-det-tile .sub{font-size:13px;color:var(--ink-2);margin:0 0 8px}
body.theme-v2 .v2page .v2-det-tile .tbl .r{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);padding:3px 0}
body.theme-v2 .v2page .v2-det-tile .tbl .r b{color:var(--ink);font-weight:600;white-space:nowrap}
body.theme-v2 .v2page .v2-det-tile .tbl .r.sum{border-top:1px dashed rgba(43,30,85,.15);font-weight:700;padding-top:6px;margin-top:2px}
body.theme-v2 .v2page .v2-det-tile .eq{font-size:13px;font-weight:700;color:var(--violet-deep);margin:10px 0 4px}
body.theme-v2 .v2page .v2-det-tile .pkg{font-size:13px;color:var(--ink-2);margin:0}
/* O produktu: lilac pás, osvěžený markdown na odstavce */
body.theme-v2 .v2page .v2-det-about{background:var(--lilac)}
body.theme-v2 .v2page .v2-det-prose p{color:var(--ink-2);font-size:14.5px;max-width:82ch;margin:0 0 12px}
body.theme-v2 .v2page .v2-det-prose p:last-child{margin-bottom:0}
body.theme-v2 .v2page .v2-det-prose strong{color:var(--ink)}
/* cross-sell: hlavička sekce (karty přepoužívají .v2-prod-* z §10/§10.1) */
body.theme-v2 .v2page .v2-det-related .sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}
body.theme-v2 .v2page .v2-det-related .sec-head h2{font-size:clamp(1.5rem,2.4vw,2rem);font-weight:800;color:var(--ink);margin:0}
body.theme-v2 .v2page .v2-det-related .sec-head a{display:inline-flex;align-items:center;gap:4px;font-family:'Figtree',sans-serif;font-size:13.5px;font-weight:700;color:var(--violet-deep)}
body.theme-v2 .v2page .v2-det-related .sec-head a .ico{width:15px;height:15px}
/* mobilní sticky lišta (nahrazuje V1 dark variantu; lg breakpoint 1024) */
body.theme-v2 .v2page .v2-det-mbar{display:none}
@media(max-width:1023px){
  body.theme-v2 .v2page .v2-det-mbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:9999;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--lilac-line);box-shadow:0 -10px 26px rgba(43,30,85,.12);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
  body.theme-v2 .v2page .v2-det-mbar .row{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:640px;margin:0 auto}
  body.theme-v2 .v2page .v2-det-mbar .pr b{font-family:'Figtree',sans-serif;font-weight:900;font-size:19px;color:var(--violet-deep)}
  body.theme-v2 .v2page .v2-det-mbar .pr s{font-size:12.5px;color:var(--muted);margin-right:8px}
  body.theme-v2 .v2page .v2-det-mbar-space{display:block;height:76px}
}
@media(min-width:1024px){body.theme-v2 .v2page .v2-det-mbar-space{display:none}}

/* ============================================================
   13) /jak-to-funguje V2 — varianta A „časová osa" (náhled schválen)
   Karty povrch 1:1 s qcard Varianta A (levandulový obrys + měkký stín).
   ============================================================ */
body.theme-v2 .v2page .tl{position:relative;padding-left:56px}
body.theme-v2 .v2page .tl::before{content:"";position:absolute;left:21px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,var(--violet) 0%,var(--lilac-line) 100%)}
body.theme-v2 .v2page .tl-step{position:relative;margin-bottom:26px}
body.theme-v2 .v2page .tl-num{position:absolute;left:-56px;top:4px;width:44px;height:44px;border-radius:50%;background:var(--grad);color:#fff;font-family:'Figtree',sans-serif;font-weight:800;font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(109,72,217,.3);border:3px solid #FFFDF9}
body.theme-v2 .v2page .tl-card{background:var(--white);border:1px solid var(--lilac-line);border-radius:var(--r);box-shadow:var(--sh);padding:26px 30px;transition:transform .2s,box-shadow .2s}
body.theme-v2 .v2page .tl-card:hover{transform:translateY(-3px);box-shadow:0 22px 52px rgba(124,58,237,.16)}
body.theme-v2 .v2page .tl-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}
body.theme-v2 .v2page .tl-head h3{font-family:'Figtree',sans-serif;font-size:1.25rem;font-weight:800;display:flex;align-items:center;gap:10px}
body.theme-v2 .v2page .tl-head h3 .dico{color:var(--violet)}
body.theme-v2 .v2page .time-chip{display:inline-flex;align-items:center;gap:6px;background:var(--sky);border-radius:999px;padding:4px 12px;font-size:11.5px;font-weight:600;color:var(--violet-deep)}
body.theme-v2 .v2page .time-chip .ico{width:13px;height:13px}
body.theme-v2 .v2page .tl-card p{font-size:14px;color:var(--ink-2);margin-bottom:10px}
body.theme-v2 .v2page .tl-card .need{font-family:'Figtree',sans-serif;font-weight:700;font-size:14px;color:var(--ink);margin:14px 0 8px}
body.theme-v2 .v2page .tl-card .items{display:grid;gap:8px;margin-bottom:4px}
body.theme-v2 .v2page .tl-card .item{display:flex;gap:10px;font-size:13.5px;color:var(--ink-2)}
body.theme-v2 .v2page .tl-card .item>.ico{width:15px;height:15px;flex:none;margin-top:5px;color:var(--violet)}
body.theme-v2 .v2page .tl-card .item strong{color:var(--ink)}
body.theme-v2 .v2page .tl-card .callout{display:flex;gap:10px;align-items:flex-start;border-radius:14px;padding:14px 18px;font-size:13px;margin-top:12px}
body.theme-v2 .v2page .tl-card .callout .dico{flex:none;width:18px;height:18px;margin-top:1px}
body.theme-v2 .v2page .tl-card .callout.tip{background:var(--mint);color:#256B50}
body.theme-v2 .v2page .tl-card .callout.warn{background:var(--peach);color:#9A5B16}
body.theme-v2 .v2page .tl-card .callout.bonus{background:var(--blush);color:#A33062}
/* trust dlaždice (SSL / doručení) — scoping přes .tl-card, kolize s hero .trust nedává smysl */
body.theme-v2 .v2page .tl-card .trust{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;margin-bottom:0}
body.theme-v2 .v2page .tl-card .trust>div{background:var(--lilac);border-radius:14px;padding:12px;text-align:center;font-size:12px;color:var(--violet-deep);font-weight:600;display:block}
body.theme-v2 .v2page .tl-card .trust .ico{width:20px;height:20px;display:block;margin:0 auto 6px;color:var(--violet)}
@media(max-width:640px){
  body.theme-v2 .v2page .tl{padding-left:44px}
  body.theme-v2 .v2page .tl-num{left:-44px;width:36px;height:36px;font-size:15px}
  body.theme-v2 .v2page .tl::before{left:15px}
  body.theme-v2 .v2page .tl-card{padding:20px 18px}
}

/* ============================================================
   14) /contact V2 — varianta B (formular + bocni lista)
   Povrch karty 1:1 s qcard Varianta A; kontrakt formularu (id, pole,
   AJAX /contact/submit) ponechan 1:1 s V1 sablonou.
   ============================================================ */
body.theme-v2 .v2page .k-split{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;align-items:start}
@media(max-width:900px){body.theme-v2 .v2page .k-split{grid-template-columns:1fr}}
body.theme-v2 .v2page .k-card{background:var(--white);border:1px solid var(--lilac-line);border-radius:var(--r);box-shadow:var(--sh);padding:28px 30px}
body.theme-v2 .v2page .k-fields{display:grid;gap:18px}
body.theme-v2 .v2page .k-req{color:var(--coral)}
body.theme-v2 .v2page .k-hint{font-size:11.5px;color:var(--muted);margin:6px 0 0}
body.theme-v2 .v2page .k-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px}
body.theme-v2 .v2page .k-note{font-size:11.5px;color:var(--muted);margin:0}
body.theme-v2 .v2page .vbtn[disabled]{opacity:.65;cursor:not-allowed;transform:none}
body.theme-v2 .v2page .k-spin{width:16px;height:16px;animation:kspin 1s linear infinite}
@keyframes kspin{to{transform:rotate(360deg)}}
/* chybovy radek — bez vlastniho `display`, aby V1 utility .hidden fungovaly */
body.theme-v2 .v2page .k-error{margin-top:14px;background:var(--peach);color:#9A5B16;border-radius:14px;padding:12px 16px;font-size:13px;font-weight:600}
/* bocni lista rychlych kontaktu — maskot nakukuje na jeji konci */
body.theme-v2 .v2page .k-rail{background:var(--lilac);border-radius:var(--r);padding:24px 22px;display:flex;flex-direction:column;gap:14px}
body.theme-v2 .v2page .k-rail h3{font-size:1.05rem;font-weight:800;margin-bottom:2px}
body.theme-v2 .v2page .k-it{display:flex;gap:12px;align-items:flex-start;background:var(--white);border-radius:var(--r-m);padding:14px 16px}
body.theme-v2 .v2page .k-ic{width:34px;height:34px;border-radius:12px;background:var(--v-soft);color:var(--violet-deep);display:flex;align-items:center;justify-content:center;flex:none}
body.theme-v2 .v2page .k-it .ico{width:17px;height:17px}
body.theme-v2 .v2page .k-it b{font-family:'Figtree',sans-serif;font-size:13px;font-weight:800;display:block;color:var(--ink)}
body.theme-v2 .v2page .k-d{display:block;font-size:12.5px;color:var(--ink-2);line-height:1.5}
body.theme-v2 .v2page .k-mail{color:var(--violet-deep);font-weight:700}
body.theme-v2 .v2page .k-rail-msc{margin-top:4px;align-self:center}
body.theme-v2 .v2page .k-rail-msc img{width:min(190px,60%);height:auto;filter:drop-shadow(0 14px 24px rgba(10,4,40,.16))}
/* success modal — pastelovy povrch (struktura + prepinalni .hidden/.flex 1:1 s V1) */
body.theme-v2 #contact-modal .k-modal{background:var(--white);border:1px solid var(--lilac-line);border-radius:var(--r);box-shadow:0 30px 70px rgba(43,30,85,.28)}
body.theme-v2 #contact-modal .k-modal-ic{width:64px;height:64px;border-radius:50%;background:var(--mint);display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
body.theme-v2 #contact-modal .k-modal-ic .dico{width:32px;height:32px;color:var(--mint-deep)}
body.theme-v2 #contact-modal .k-modal-title{font-family:'Figtree',sans-serif;font-size:1.5rem;font-weight:800;text-align:center;margin-bottom:8px;color:var(--ink)}
body.theme-v2 #contact-modal .k-modal-msg{color:var(--ink-2);text-align:center;line-height:1.6;margin:0 0 26px;font-size:14px}
body.theme-v2 #contact-modal .k-modal-btn{width:100%}
