@font-face{
    font-family:'GW';
    src:url('HankenGrotesk-VF.ttf') format('truetype-variations');
    font-weight:100 900; font-style:normal; font-display:swap;
  }

  :root{
    --forest:#295044;
    --forest-deep:#224237;
    --gold:#BFA767;
    --gold-light:#E4D5A9;
    --cream:#F5F0E4;
    --terra:#B85C40;
    --line:rgba(191,167,103,.22);
    --ink:#24322B;
  }

  *{margin:0;padding:0;box-sizing:border-box}

  html{overflow-x:hidden; scroll-behavior:smooth; scroll-padding-top:84px}
  html,body{min-height:100%}
  body{
    font-family:'GW',system-ui,-apple-system,sans-serif;
    -webkit-font-smoothing:antialiased;
    background:linear-gradient(178deg,#2B5548 0%,#284E42 55%,#224237 100%);
    background-attachment:fixed;
    color:var(--cream);
    overflow-x:hidden;
  }

  /* vignette + zrno (rovnaká AD vrstva ako IG posty) */
  body::before{
    content:''; position:fixed; inset:0; z-index:6; pointer-events:none;
    background:radial-gradient(135% 100% at 50% 8%, rgba(0,0,0,0) 55%, rgba(0,0,0,.20) 100%);
  }
  body::after{
    content:''; position:fixed; inset:0; z-index:7; pointer-events:none;
    opacity:.05; background-size:280px 280px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  ::selection{background:var(--gold); color:var(--ink)}

  /* ---------- nav ---------- */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:20;
    display:flex; align-items:center; justify-content:space-between; gap:18px;
    padding:16px clamp(20px,4vw,44px);
    transition:background .25s, box-shadow .25s, padding .25s;
  }
  nav.on{
    background:rgba(31,58,49,.86);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    box-shadow:0 1px 0 rgba(191,167,103,.16), 0 12px 30px rgba(0,0,0,.18);
    padding-top:12px; padding-bottom:12px;
  }
  nav .nlogo{height:26px; display:block}
  nav .links{display:flex; align-items:center; gap:26px}
  nav .links a{
    font-size:14px; font-weight:400; letter-spacing:.05em;
    color:rgba(245,240,228,.72); text-decoration:none; transition:color .2s;
  }
  nav .links a:hover{color:#fff}
  nav .links a.cta{
    color:var(--ink); background:var(--gold); font-weight:700;
    padding:9px 18px; border-radius:999px; letter-spacing:.02em;
    transition:background .2s, transform .15s;
  }
  nav .links a.cta:hover{background:var(--gold-light); transform:translateY(-1px)}
  @media (max-width:760px){ nav .links a:not(.cta){display:none} }

  /* ---------- spoločné ---------- */
  section{position:relative; z-index:2}
  .shell{width:100%; max-width:1080px; margin:0 auto; padding:0 clamp(22px,4.5vw,44px)}
  .narrow{max-width:780px}

  .kicker{
    display:flex; align-items:center; gap:16px;
    margin-bottom:clamp(22px,3.5vh,34px);
  }
  .kicker b{
    font-size:12px; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
    color:var(--gold); white-space:nowrap;
  }
  .kicker::after{content:''; flex:1; height:1px; background:linear-gradient(90deg,rgba(191,167,103,.45),rgba(191,167,103,0))}

  h2{
    font-weight:300; font-size:clamp(28px,4.6vw,46px);
    line-height:1.18; letter-spacing:-.02em; text-wrap:balance;
  }
  h2 b{font-weight:800}

  .prose{font-weight:300; font-size:clamp(17px,2.1vw,20px); line-height:1.6; color:rgba(245,240,228,.86)}
  .prose b{font-weight:700; color:var(--cream)}
  .prose p+p{margin-top:16px}

  .pill-btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:inherit; cursor:pointer; text-decoration:none;
    background:var(--gold); color:var(--ink);
    border:none; border-radius:999px;
    padding:16px 30px;
    font-size:16px; font-weight:800; letter-spacing:.01em;
    transition:transform .15s, background .2s;
  }
  .pill-btn:hover{background:var(--gold-light); transform:translateY(-1px)}
  .pill-btn .ar{font-weight:400; transform:translateY(-1px)}
  .pill-ghost{
    display:inline-flex; align-items:center; gap:10px;
    text-decoration:none; cursor:pointer; font-family:inherit;
    background:transparent; color:var(--cream);
    border:1.5px solid rgba(191,167,103,.55); border-radius:999px;
    padding:15px 28px; font-size:16px; font-weight:400;
    transition:border-color .2s, background .2s;
  }
  .pill-ghost:hover{border-color:var(--gold); background:rgba(191,167,103,.08)}

  .quiet{
    display:inline-block; align-self:flex-start; margin-top:20px;
    font-size:14.5px; font-weight:300; color:rgba(245,240,228,.55);
    text-decoration:none; border-bottom:1px solid rgba(191,167,103,.35);
    padding-bottom:2px; transition:color .2s, border-color .2s;
  }
  .quiet:hover{color:var(--cream); border-color:var(--gold)}

  /* reveal animácie */
  .rv{opacity:0; transform:translateY(22px); transition:opacity .65s ease, transform .65s ease}
  .rv.in{opacity:1; transform:none}
  .d1{transition-delay:.08s} .d2{transition-delay:.16s} .d3{transition-delay:.24s}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .rv{opacity:1; transform:none; transition:none}
  }

  /* ---------- hero ---------- */
  .hero{
    min-height:100svh;
    display:flex; flex-direction:column; justify-content:center;
    padding:120px 0 70px; position:relative; overflow:hidden;
  }
  .hero .calgrid{
    position:absolute; right:-9%; bottom:-10%; width:min(64vw,680px);
    opacity:.26; pointer-events:none;
  }
  .badge{
    display:inline-block; align-self:flex-start;
    border:1.5px solid rgba(191,167,103,.85); border-radius:999px;
    padding:11px 22px 10px;
    font-size:12.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
    color:var(--gold); margin-bottom:34px;
  }
  h1{
    font-weight:300;
    font-size:clamp(34px,6.6vw,74px);
    line-height:1.16; letter-spacing:-.02em; text-wrap:balance;
    max-width:15em;
  }
  h1 b{font-weight:800}
  .u{position:relative; white-space:nowrap; display:inline-block}
  .u img{position:absolute; left:-2%; width:104%; height:.14em; bottom:-.06em; transform:rotate(-.6deg)}

  .hero .lead{
    font-weight:300; font-size:clamp(18px,2.4vw,24px); line-height:1.55;
    margin-top:clamp(24px,4vh,38px); max-width:33em; color:rgba(245,240,228,.88);
  }
  .hero .lead+.lead{margin-top:14px}
  .hero .ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:clamp(30px,4.5vh,44px)}

  /* ---------- problém ---------- */
  .sec{padding:clamp(72px,11vh,130px) 0}

  .biglist{margin-top:clamp(26px,4vh,38px); display:grid; gap:0}
  .biglist li{
    list-style:none; display:flex; gap:18px; align-items:flex-start;
    padding:17px 0; border-bottom:1px solid rgba(191,167,103,.14);
    font-weight:300; font-size:clamp(17px,2.1vw,20px); line-height:1.5;
    color:rgba(245,240,228,.86);
  }
  .biglist li:first-child{border-top:1px solid rgba(191,167,103,.14)}
  .biglist li::before{
    content:'→'; color:var(--gold); font-weight:400; flex:0 0 auto;
    transform:translateY(1px);
  }
  .pointa{
    margin-top:clamp(30px,4.5vh,42px);
    padding:22px 26px;
    border-left:2px solid var(--gold);
    background:rgba(0,0,0,.14); border-radius:0 16px 16px 0;
    font-weight:300; font-size:clamp(18px,2.3vw,22px); line-height:1.5;
  }
  .pointa b{font-weight:800}
  .pointa .plabel{
    display:block; font-size:11px; font-weight:700; letter-spacing:.26em;
    text-transform:uppercase; color:var(--gold); margin-bottom:10px;
  }

  /* ---------- prečo mi veriť ---------- */
  .trust{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(36px,5vw,64px); align-items:center}
  @media (max-width:860px){ .trust{grid-template-columns:1fr} }
  .trust-rows{margin-top:clamp(24px,3.5vh,34px); display:grid; gap:14px}
  .trow{
    display:flex; gap:16px; align-items:flex-start;
    background:rgba(0,0,0,.15);
    border:1px solid var(--line); border-radius:18px;
    padding:18px 20px;
  }
  .trow .tico{
    flex:0 0 auto; width:38px; height:38px; border-radius:12px;
    background:rgba(191,167,103,.14); border:1px solid rgba(191,167,103,.3);
    display:flex; align-items:center; justify-content:center;
    color:var(--gold); font-size:17px;
  }
  .trow div b{display:block; font-weight:700; font-size:16.5px; margin-bottom:4px}
  .trow div span{font-weight:300; font-size:15.5px; line-height:1.5; color:rgba(245,240,228,.72)}
  .proofwrap{position:relative; min-height:430px}
  .proof{
    position:absolute; width:min(66%,310px); border-radius:14px;
    box-shadow:0 24px 60px rgba(0,0,0,.4);
  }
  .proof.p1{top:0; left:0; transform:rotate(-3deg); z-index:3}
  .proof.p2{top:38%; right:0; transform:rotate(2.5deg); z-index:2}
  @media (max-width:860px){
    .proofwrap{min-height:0; display:flex; flex-wrap:wrap; gap:16px; margin-top:8px}
    .proof{position:static; width:min(100%,320px)}
    .proof.p1,.proof.p2{transform:rotate(-2deg)}
    .proof.p2{transform:rotate(2deg)}
  }
  .btdt{
    margin-top:clamp(26px,4vh,36px);
    font-size:clamp(19px,2.4vw,24px); font-weight:300; letter-spacing:.01em;
    color:var(--gold-light);
  }
  .btdt b{font-weight:800}
  .tlinks{margin-top:18px; display:flex; flex-wrap:wrap; gap:10px 22px}
  .tlinks a{
    font-size:14px; font-weight:400; color:rgba(245,240,228,.55); text-decoration:none;
    border-bottom:1px solid rgba(191,167,103,.3); padding-bottom:2px;
    transition:color .2s, border-color .2s;
  }
  .tlinks a:hover{color:var(--cream); border-color:var(--gold)}

  /* ---------- budeme si rozumieť ---------- */
  .fit{display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,3vw,28px); margin-top:clamp(28px,4vh,40px)}
  @media (max-width:760px){ .fit{grid-template-columns:1fr} }
  .fitcard{
    background:rgba(0,0,0,.16); border:1px solid var(--line); border-radius:22px;
    padding:clamp(24px,3.4vw,34px);
  }
  .fitcard h3{
    font-size:13px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
    margin-bottom:20px; color:var(--gold-light);
  }
  .fitcard.no h3{color:#E8B7A3}
  .fitcard li{
    list-style:none; display:flex; gap:14px; align-items:flex-start;
    padding:11px 0; font-weight:300; font-size:16.5px; line-height:1.5;
    color:rgba(245,240,228,.85);
  }
  .fitcard li::before{content:'✓'; color:var(--gold); font-weight:700; flex:0 0 auto}
  .fitcard.no li::before{content:'✕'; color:var(--terra)}
  .fitnote{
    margin-top:clamp(22px,3vh,30px);
    font-weight:300; font-size:clamp(16px,2vw,18.5px); line-height:1.6;
    color:rgba(245,240,228,.75); max-width:46em;
  }
  .fitnote b{font-weight:700; color:var(--cream)}

  /* ---------- metóda ---------- */
  .method{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,24px); margin-top:clamp(30px,4.5vh,44px)}
  @media (max-width:860px){ .method{grid-template-columns:1fr} }
  .mcard{
    position:relative; overflow:hidden;
    background:rgba(0,0,0,.16); border:1px solid var(--line); border-radius:22px;
    padding:clamp(24px,3vw,32px);
  }
  .mcard .ghost{
    position:absolute; top:-28px; right:2px;
    font-size:150px; font-weight:800; line-height:1;
    color:rgba(191,167,103,.08); pointer-events:none; user-select:none;
  }
  .mcard h3{font-weight:800; font-size:19px; margin-bottom:4px}
  .mcard .msub{font-weight:300; font-size:15px; color:rgba(245,240,228,.6); margin-bottom:20px}
  .mrow{display:flex; gap:12px; align-items:baseline; padding:10px 0; border-top:1px solid rgba(191,167,103,.12)}
  .mrow .tag{
    flex:0 0 62px; font-size:11px; font-weight:700; letter-spacing:.14em;
    text-transform:uppercase; color:var(--gold);
  }
  .mrow span{font-weight:300; font-size:15px; line-height:1.45; color:rgba(245,240,228,.82)}
  .mfoot{
    margin-top:clamp(26px,3.5vh,36px); font-weight:300;
    font-size:clamp(17px,2.1vw,20px); line-height:1.6; color:rgba(245,240,228,.85); max-width:44em;
  }
  .mfoot b{font-weight:700; color:var(--cream)}

  /* ---------- dva vchody ---------- */
  .doors{display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,3vw,28px); margin-top:clamp(28px,4vh,40px)}
  @media (max-width:760px){ .doors{grid-template-columns:1fr} }
  .door{
    display:block; text-decoration:none; color:var(--cream);
    background:rgba(0,0,0,.18); border:1px solid var(--line); border-radius:24px;
    padding:clamp(26px,3.6vw,38px);
    transition:transform .2s, border-color .2s, background .2s;
  }
  .door:hover{transform:translateY(-4px); border-color:rgba(191,167,103,.6); background:rgba(0,0,0,.24)}
  .door .dk{font-size:11.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:14px}
  .door h3{font-weight:300; font-size:clamp(24px,3vw,32px); letter-spacing:-.015em; margin-bottom:12px}
  .door h3 b{font-weight:800}
  .door p{font-weight:300; font-size:16px; line-height:1.55; color:rgba(245,240,228,.75)}
  .door .go{
    display:inline-flex; align-items:center; gap:8px; margin-top:20px;
    font-size:14.5px; font-weight:700; color:var(--gold-light);
  }
  .door:hover .go{color:#fff}

  /* ---------- postup ---------- */
  .steps{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,20px); margin-top:clamp(30px,4.5vh,44px)}
  @media (max-width:980px){ .steps{grid-template-columns:1fr 1fr} }
  @media (max-width:560px){ .steps{grid-template-columns:1fr} }
  .step{
    position:relative; overflow:hidden;
    background:rgba(0,0,0,.16); border:1px solid var(--line); border-radius:22px;
    padding:clamp(22px,2.8vw,30px);
  }
  .step .ghost{
    position:absolute; top:-24px; right:4px;
    font-size:120px; font-weight:800; line-height:1;
    color:rgba(191,167,103,.09); pointer-events:none; user-select:none;
  }
  .step h3{font-weight:800; font-size:16.5px; line-height:1.3; margin-bottom:10px; padding-right:30px}
  .step p{font-weight:300; font-size:14.5px; line-height:1.55; color:rgba(245,240,228,.78)}

  /* ---------- referencie ---------- */
  .quotes{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,20px); margin-top:clamp(30px,4.5vh,44px)}
  @media (max-width:760px){ .quotes{grid-template-columns:1fr} }
  .qcard{
    position:relative; overflow:hidden;
    background:rgba(0,0,0,.16); border:1px solid var(--line); border-radius:22px;
    padding:clamp(24px,3vw,32px);
  }
  .qcard::before{
    content:'„'; position:absolute; top:-30px; left:14px;
    font-size:130px; font-weight:800; line-height:1;
    color:rgba(191,167,103,.12); pointer-events:none; user-select:none;
  }
  .qcard p{
    position:relative;
    font-weight:300; font-size:clamp(16px,2vw,18px); line-height:1.55;
    color:rgba(245,240,228,.9); margin-bottom:16px;
  }
  .qcard .qwho{font-size:14px; font-weight:700; color:var(--gold-light)}
  .qcard .qrole{font-size:13px; font-weight:300; color:rgba(245,240,228,.55); margin-top:2px}

  /* ---------- cenové karty ---------- */
  .pintro{margin-top:clamp(18px,2.5vh,26px); max-width:44em}
  .plans{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,24px); margin-top:clamp(30px,4.5vh,44px); align-items:stretch}
  @media (min-width:921px){ .plans.p2{grid-template-columns:1fr 1fr; max-width:820px} }
  @media (max-width:920px){ .plans{grid-template-columns:1fr; max-width:520px} }
  .plan{
    position:relative; display:flex; flex-direction:column;
    background:rgba(0,0,0,.18); border:1px solid var(--line); border-radius:24px;
    padding:clamp(24px,3vw,32px);
    transition:transform .2s, border-color .2s;
  }
  .plan:hover{transform:translateY(-4px); border-color:rgba(191,167,103,.55)}
  .plan.hot{border:1.5px solid var(--gold); background:rgba(0,0,0,.26)}
  .plan .pbadge{
    position:absolute; top:-13px; left:26px;
    background:var(--gold); color:var(--ink);
    font-size:11.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
    padding:6px 14px 5px; border-radius:999px;
  }
  .plan h3{font-weight:800; font-size:clamp(18px,2.1vw,21px); line-height:1.25; padding-right:8px}
  @media (min-width:921px){ .plan h3{min-height:2.6em} }
  .plan .price{
    margin:14px 0 18px; font-weight:300; font-size:clamp(34px,3.6vw,42px);
    letter-spacing:-.02em; line-height:1; font-variant-numeric:tabular-nums;
  }
  .plan .price b{font-weight:800; color:var(--gold)}
  .plan .price span{font-size:16px; color:rgba(245,240,228,.5); font-weight:300}
  .plan p{font-weight:300; font-size:15.5px; line-height:1.55; color:rgba(245,240,228,.82)}
  .plan > p:not(.who){margin-bottom:16px}
  .plan .who{
    margin-top:auto; padding:12px 15px;
    border-left:2px solid var(--gold);
    background:rgba(191,167,103,.08); border-radius:0 10px 10px 0;
    font-weight:400; font-size:14.5px; line-height:1.5; color:rgba(245,240,228,.88);
  }
  .plan .btns{display:flex; gap:10px; margin-top:22px}
  .plan .btns .pill-btn{flex:1.2; justify-content:center; padding:14px 12px; font-size:15px}
  .plan .btns .pill-ghost{flex:1; justify-content:center; padding:13px 12px; font-size:15px}
  .plan .mini{
    margin-top:12px; text-align:center;
    font-weight:300; font-size:13px; line-height:1.45; color:rgba(245,240,228,.62);
  }
  .plan .mini i{font-style:normal; font-weight:700; color:var(--gold)}
  /* zarovnanie kariet na desktope: spodný blok (úžitok + button + mikroriadok) je prikotvený
     k spodku karty cez .who margin-top:auto; mini má fixné minimum, nech sú buttony v jednej línii */
  @media (min-width:921px){
    .plan .mini{min-height:38px}
    .plan .who{min-height:66px; display:flex; align-items:center}
  }

  .assure{
    display:flex; gap:14px; align-items:flex-start;
    margin-top:clamp(22px,3vh,30px);
    padding:18px 22px;
    border:1px dashed rgba(191,167,103,.4); border-radius:16px;
    font-weight:300; font-size:15.5px; line-height:1.55; color:rgba(245,240,228,.78);
  }
  .assure::before{content:'✓'; color:var(--gold); font-weight:700; flex:0 0 auto; transform:translateY(1px)}
  .assure b{font-weight:700; color:var(--cream)}
  .assure + .credit{margin-top:14px}

  .credit{
    display:flex; gap:14px; align-items:flex-start;
    margin-top:clamp(22px,3vh,30px);
    padding:18px 22px;
    border:1px dashed rgba(191,167,103,.4); border-radius:16px;
    font-weight:300; font-size:15.5px; line-height:1.55; color:rgba(245,240,228,.78);
  }
  .credit::before{content:'↗'; color:var(--gold); font-weight:700; flex:0 0 auto; transform:translateY(1px)}
  .credit b{font-weight:700; color:var(--cream)}

  /* ---------- kniha ---------- */
  .bookgrid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,4.5vw,56px); margin-top:clamp(28px,4vh,40px); align-items:start}
  @media (max-width:860px){ .bookgrid{grid-template-columns:1fr} }
  .bstats{display:flex; gap:clamp(20px,3.4vw,42px); margin:clamp(22px,3vh,30px) 0}
  .bstat{border-top:2px solid var(--gold); padding-top:12px}
  .bstat b{display:block; font-weight:800; font-size:clamp(26px,3.4vw,36px); line-height:1; font-variant-numeric:tabular-nums}
  .bstat span{display:block; margin-top:6px; font-weight:300; font-size:13.5px; color:rgba(245,240,228,.6)}
  .toolkit{
    background:rgba(0,0,0,.16); border:1px solid var(--line); border-radius:24px;
    padding:clamp(24px,3.2vw,34px);
  }
  .toolkit .dk{font-size:11.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:14px}
  .toolkit h3{font-weight:300; font-size:clamp(21px,2.6vw,27px); letter-spacing:-.015em; margin-bottom:14px}
  .toolkit h3 b{font-weight:800}
  .toolkit p{font-weight:300; font-size:15.5px; line-height:1.6; color:rgba(245,240,228,.8)}
  .kopky{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px}
  .kopky span{
    font-size:13px; font-weight:700; letter-spacing:.06em;
    border:1px solid rgba(191,167,103,.4); border-radius:999px;
    padding:7px 14px 6px; color:var(--gold-light);
  }
  .kopky span.ok{background:rgba(191,167,103,.15)}
  .prep{margin-top:20px; font-weight:300; font-size:14px; color:rgba(245,240,228,.5)}
  .prep a{color:var(--gold-light); text-decoration:none; border-bottom:1px solid rgba(191,167,103,.45); padding-bottom:1px; transition:color .2s, border-color .2s}
  .prep a:hover{color:#fff; border-color:#fff}

  /* ---------- FAQ ---------- */
  .faq{margin-top:clamp(26px,4vh,38px)}
  .faq details{border-bottom:1px solid rgba(191,167,103,.16)}
  .faq details:first-child{border-top:1px solid rgba(191,167,103,.16)}
  .faq summary{
    list-style:none; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between; gap:18px;
    padding:20px 2px;
    font-weight:700; font-size:clamp(16px,2vw,18.5px); line-height:1.4;
    transition:color .2s;
  }
  .faq summary::-webkit-details-marker{display:none}
  .faq summary:hover{color:var(--gold-light)}
  .faq summary::after{
    content:'+'; flex:0 0 auto; font-weight:300; font-size:26px;
    color:var(--gold); transition:transform .25s;
  }
  .faq details[open] summary::after{transform:rotate(45deg)}
  .faq .a{
    padding:0 2px 22px; max-width:46em;
    font-weight:300; font-size:16px; line-height:1.6; color:rgba(245,240,228,.78);
  }

  /* ---------- záver + footer ---------- */
  .final{text-align:left}
  .final .ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:clamp(28px,4vh,40px)}

  footer{
    position:relative; z-index:2;
    margin-top:clamp(40px,6vh,70px);
    border-top:1px solid rgba(191,167,103,.16);
    padding:34px clamp(22px,4.5vw,44px) 40px;
  }
  .fin{
    max-width:1080px; margin:0 auto;
    display:flex; flex-wrap:wrap; gap:14px 30px; align-items:center; justify-content:space-between;
    font-size:14px; font-weight:300; letter-spacing:.04em; color:rgba(245,240,228,.5);
  }
  .fin a{color:rgba(245,240,228,.72); text-decoration:none; transition:color .2s}
  .fin a:hover{color:#fff}
  .fin .flogo{height:22px; display:block; opacity:.9}

  /* ---------- detail balíka (fullscreen) ---------- */
  .dwrap{
    position:fixed; inset:0; z-index:38; display:none;
    background:linear-gradient(178deg,#2B5548 0%,#254A3E 55%,#1F3A31 100%);
    overflow-y:auto;
  }
  .dwrap.open{display:block}
  .dclose{
    position:fixed; top:18px; right:22px; z-index:39;
    width:44px; height:44px; border-radius:50%;
    border:1px solid rgba(191,167,103,.35); background:rgba(31,58,49,.7);
    color:rgba(245,240,228,.8); font-size:20px; font-family:inherit; cursor:pointer;
    transition:all .2s;
  }
  .dclose:hover{border-color:var(--gold); color:#fff}
  .dinner{max-width:760px; margin:0 auto; padding:72px 26px 70px; position:relative; z-index:2}
  .dpage{display:none}
  .dpage.on{display:block}
  .dhead .dk{font-size:11.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:16px}
  .dhead h2{font-weight:300; font-size:clamp(30px,5vw,44px); line-height:1.15; letter-spacing:-.02em}
  .dhead h2 b{font-weight:800}
  .dprice{
    margin:18px 0 6px; font-weight:300; font-size:clamp(30px,4vw,38px);
    letter-spacing:-.02em; line-height:1; font-variant-numeric:tabular-nums;
  }
  .dprice b{font-weight:800; color:var(--gold)}
  .dprice span{font-size:16px; color:rgba(245,240,228,.5); font-weight:300}
  .dpay{font-weight:300; font-size:14px; color:rgba(245,240,228,.62)}
  .dpay i{font-style:normal; font-weight:700; color:var(--gold)}
  .dsub{margin-top:18px; font-weight:300; font-size:clamp(17px,2.2vw,20px); line-height:1.55; color:rgba(245,240,228,.86)}

  .dsec{margin-top:clamp(32px,4.5vh,44px)}
  .dlabel{
    display:flex; align-items:center; gap:16px;
    font-size:12px; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
    color:var(--gold); margin-bottom:16px;
  }
  .dlabel::after{content:''; flex:1; height:1px; background:linear-gradient(90deg,rgba(191,167,103,.4),rgba(191,167,103,0))}

  .dlist{list-style:none}
  .dlist li{
    position:relative;
    padding:11px 0 11px 30px; border-bottom:1px solid rgba(191,167,103,.12);
    font-weight:300; font-size:16px; line-height:1.5; color:rgba(245,240,228,.86);
  }
  .dlist li::before{content:'✓'; position:absolute; left:2px; top:11px; color:var(--gold); font-weight:700}
  .dlist li b{font-weight:700; color:var(--cream)}
  .dplus{font-weight:300; font-size:15px; color:rgba(245,240,228,.6); margin-bottom:10px}
  .dplus b{font-weight:700; color:var(--gold-light)}

  .dflow{list-style:none}
  .dflow li{
    position:relative;
    padding:11px 0 11px 32px; border-bottom:1px solid rgba(191,167,103,.12);
    font-weight:300; font-size:16px; line-height:1.5; color:rgba(245,240,228,.86);
  }
  .dflow li::before{content:'→'; position:absolute; left:0; top:11px; color:var(--gold); font-weight:400}
  .dflow li b{font-weight:700; color:var(--cream)}
  .dflow-intro{font-weight:300; font-size:16px; line-height:1.6; color:rgba(245,240,228,.86); margin-bottom:14px}
  .dflow-intro b{font-weight:700; color:var(--cream)}
  .dflow-pointa{
    margin-top:16px; padding:14px 18px;
    border-left:2px solid var(--gold); background:rgba(0,0,0,.14);
    border-radius:0 12px 12px 0;
    font-weight:300; font-size:16px; line-height:1.5; color:rgba(245,240,228,.88);
  }
  .dflow-pointa b{font-weight:700; color:var(--cream)}

  .dsteps{list-style:none; counter-reset:ds}
  .dsteps li{
    counter-increment:ds; position:relative;
    padding:10px 0 10px 48px; min-height:44px;
    font-weight:300; font-size:16px; line-height:1.5; color:rgba(245,240,228,.86);
  }
  .dsteps li::before{
    content:counter(ds); position:absolute; left:0; top:9px;
    width:30px; height:30px;
    display:flex; align-items:center; justify-content:center;
    border:1px solid rgba(191,167,103,.45); border-radius:50%;
    font-size:13px; font-weight:700; color:var(--gold);
  }
  .dsteps li b{font-weight:700; color:var(--cream)}

  .dfit{display:grid; gap:12px}
  .dfit p{
    font-weight:300; font-size:16px; line-height:1.55; color:rgba(245,240,228,.86);
    padding:14px 18px; border-radius:14px; background:rgba(0,0,0,.15);
    border:1px solid rgba(191,167,103,.16);
  }
  .dfit p b{font-weight:700; color:var(--cream)}
  .dfit a{color:var(--gold-light); text-decoration:none; border-bottom:1px solid rgba(191,167,103,.45); cursor:pointer}
  .dfit a:hover{color:#fff; border-color:#fff}

  .dqa p{font-weight:300; font-size:16px; line-height:1.55; color:rgba(245,240,228,.78); margin-bottom:16px}
  .dqa p b{display:block; font-weight:700; color:var(--cream); margin-bottom:4px}

  .dsign{
    margin-top:clamp(32px,4.5vh,44px); padding:18px 22px;
    border-left:2px solid var(--gold); background:rgba(0,0,0,.14);
    border-radius:0 14px 14px 0;
    font-weight:300; font-size:15.5px; line-height:1.55; color:rgba(245,240,228,.82);
  }
  .dcta{margin-top:28px; display:flex; flex-wrap:wrap; align-items:center; gap:16px}
  .dcta .pill-btn{padding:16px 32px}
  .dcta .back{
    font-family:inherit; background:none; border:none; cursor:pointer;
    font-size:14.5px; font-weight:300; color:rgba(245,240,228,.55);
    border-bottom:1px solid rgba(191,167,103,.35); padding:0 0 2px;
    transition:color .2s, border-color .2s;
  }
  .dcta .back:hover{color:var(--cream); border-color:var(--gold)}
  .dcta a.back{text-decoration:none}
  .dcta-pay{width:100%; font-weight:300; font-size:13.5px; color:rgba(245,240,228,.6)}
  .dcta-pay i{font-style:normal; font-weight:700; color:var(--gold)}

  /* ---------- modal ---------- */
  .mwrap{
    position:fixed; inset:0; z-index:40; display:none;
    align-items:flex-start; justify-content:center;
    padding:5vh 18px 18px;
    background:rgba(15,28,23,.7);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    overflow-y:auto;
  }
  .mwrap.open{display:flex}
  .modal{
    width:100%; max-width:560px;
    background:linear-gradient(178deg,#2D584B 0%,#224237 100%);
    border:1px solid rgba(191,167,103,.35); border-radius:26px;
    padding:clamp(26px,4vw,40px);
    box-shadow:0 40px 90px rgba(0,0,0,.5);
    position:relative;
  }
  .mclose{
    position:absolute; top:16px; right:16px;
    width:40px; height:40px; border-radius:50%;
    border:1px solid rgba(191,167,103,.3); background:transparent;
    color:rgba(245,240,228,.7); font-size:20px; font-family:inherit; cursor:pointer;
    transition:all .2s;
  }
  .mclose:hover{border-color:var(--gold); color:#fff}
  .modal h3{font-weight:300; font-size:clamp(23px,3vw,30px); letter-spacing:-.015em; margin-bottom:8px; padding-right:40px}
  .modal h3 b{font-weight:800}
  .modal .msub{font-weight:300; font-size:15px; line-height:1.55; color:rgba(245,240,228,.66); margin-bottom:26px}

  .field{margin-bottom:22px}
  label.q{
    display:block; font-size:12px; font-weight:700;
    letter-spacing:.16em; text-transform:uppercase;
    color:var(--gold-light); margin-bottom:10px;
  }
  label.q i{font-style:normal; font-weight:400; letter-spacing:.04em; text-transform:none;
    color:rgba(245,240,228,.45); font-size:12.5px}
  input[type=email], input[type=text], input[type=tel], textarea{
    width:100%;
    font-family:inherit; font-weight:300; font-size:17px; color:var(--cream);
    background:rgba(0,0,0,.18);
    border:1px solid rgba(191,167,103,.34); border-radius:12px;
    padding:14px 15px;
    transition:border-color .2s, background .2s;
  }
  input::placeholder, textarea::placeholder{color:rgba(245,240,228,.32)}
  input:focus, textarea:focus{outline:none; border-color:var(--gold); background:rgba(0,0,0,.26)}
  textarea{resize:vertical; min-height:80px; line-height:1.5}

  .opts{display:flex; flex-wrap:wrap; gap:9px}
  .opt{position:relative}
  .opt input{position:absolute; opacity:0; width:0; height:0}
  .opt span{
    display:block; cursor:pointer;
    border:1px solid rgba(191,167,103,.34); border-radius:999px;
    padding:9px 16px; font-size:14.5px; font-weight:300;
    color:rgba(245,240,228,.8);
    transition:all .18s;
  }
  .opt span:hover{border-color:rgba(191,167,103,.7); color:var(--cream)}
  .opt input:checked + span{background:var(--gold); border-color:var(--gold); color:var(--ink); font-weight:700}
  .opt input:focus-visible + span{outline:2px solid var(--gold-light); outline-offset:2px}

  .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

  .consent{display:flex; align-items:flex-start; gap:13px; cursor:pointer; margin-bottom:24px}
  .consent input{position:absolute; opacity:0; width:0; height:0}
  .consent .box{
    flex:0 0 auto; width:22px; height:22px; margin-top:1px;
    border:1.5px solid rgba(191,167,103,.5); border-radius:6px;
    background:rgba(0,0,0,.14);
    display:flex; align-items:center; justify-content:center;
    transition:all .18s;
  }
  .consent .box::after{
    content:''; width:11px; height:6px;
    border-left:2.5px solid var(--ink); border-bottom:2.5px solid var(--ink);
    transform:rotate(-45deg) translate(1px,-2px) scale(.5);
    opacity:0; transition:all .18s;
  }
  .consent:hover .box{border-color:var(--gold)}
  .consent input:checked + .box{background:var(--gold); border-color:var(--gold)}
  .consent input:checked + .box::after{opacity:1; transform:rotate(-45deg) translate(1px,-2px) scale(1)}
  .consent input:focus-visible + .box{outline:2px solid var(--gold-light); outline-offset:3px}
  .consent .txt{font-size:13.5px; font-weight:300; line-height:1.55; color:rgba(245,240,228,.66)}
  .consent.miss .box{border-color:#F0B9A6}
  /* Odkaz na zásady je mimo <label>, aby preklik neprepínal checkbox. */
  .consent.tight{margin-bottom:7px}
  .cnote{margin:0 0 24px; padding-left:35px; font-size:12.5px; font-weight:300; line-height:1.5; color:rgba(245,240,228,.48)}
  .cnote a{color:var(--gold-light); text-decoration:underline; text-underline-offset:2px}

  .err{margin-top:14px; font-size:14.5px; font-weight:400; color:#F0B9A6; display:none}
  .mdone{display:none}
  .mdone h4{font-weight:300; font-size:clamp(22px,3vw,28px); margin-bottom:14px}
  .mdone h4 b{font-weight:800}
  .mdone p{font-weight:300; font-size:15.5px; line-height:1.6; color:rgba(245,240,228,.8)}
