/* ══════════════════════════════════════════════════════════════════════════
   intensiv.tg.tours — the €15 page, REDESIGNED 8 Oct 2026.
   Founder: «why the landing page looks so bad (update the ui) please update the
   looks of it use tateskill and other design skills to make it look just better».

   Design read (taste-skill §0.B): a redesign that keeps every word, link and
   tracking hook, for Russian-speaking women 35–54, in the language of the shop he
   approved (academy.tg.tours): one lilac-plum ground with soft glows, Playfair
   500 headings with real scale contrast, Raleway 17 px body, gold only where
   something must be pressed, and paper for the tactile pieces he loves (the
   ticket, the gift envelope, Tatiana's room, the invitation card).
   Dials: variance 6 (older buyers want a calm order), motion 6, density 3.

   Only index.html uses this file. The document pages (oferta, privacy, refund,
   spasibo, 404) keep css/styles.css + css/doc.css, untouched.
   Strict CSP: no inline style anywhere; JS writes only through CSSOM.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── tokens: the shop's (build/academy/site/css/styles.css) ───────────────── */
:root{
  --plum:#4C1F3C;--mauve:#784566;--cream:#FEF0E7;--gold-lt:#F1D087;--gold:#F0B760;--violet:#593283;--coral:#DD5A5F;
  --plum-d:#371536;               /* ink on gold, never a surface */
  --gold-ink:#9A630F;             /* the only gold that clears 4.5:1 on paper */
  --ink:#2E1128;--body:#5A4453;--quiet:#7A6272;
  --paper:#FCF0E5;
  --bg-d:#311930;--panel-d:#3D213D;--band-d:#5A2B57;--facts-d:#482347;
  --txt-d:#F4EAE6;--txt-d-mut:rgba(244,234,230,.76);--line-d:rgba(255,255,255,.14);
  --line:rgba(76,31,60,.14);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Raleway",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --r:16px;--r-s:10px;            /* one radius scale: cards 16, small 10, buttons pill */
  --wrap:1180px;--pad:24px;
  --lift-d:0 2px 4px rgba(0,0,0,.3),0 18px 44px rgba(0,0,0,.36);
  /* card stock, the invitation card's recipe (css/card.css): a lit top edge, thickness, a long soft shadow */
  --stock:inset 0 1px 0 rgba(255,255,255,.9),0 1px 0 #EAD9C9,0 2px 0 #E2CEBC,0 3px 0 #D9C3AF,0 4px 0 #CFB7A1,
    0 5px 2px rgba(40,12,36,.45),0 24px 34px -14px rgba(26,6,24,.6),0 60px 90px -40px rgba(26,6,24,.7);
}

/* ── base ────────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:76px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--txt-d-mut);background:var(--bg-d);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img,picture,svg,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--serif);color:var(--txt-d);line-height:1.12;font-weight:500;letter-spacing:-.012em}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
b,strong{font-weight:700;color:var(--txt-d)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:200;background:var(--plum);color:#fff;padding:10px 16px;border-radius:var(--r-s)}
.ic{width:24px;height:24px;flex:none;fill:currentColor}

/* film grain over the whole page: fixed, never on a scrolling box (taste-skill 6.E) */
body::after{content:"";position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.05;
  background:url(../assets/img/tex-grain.webp) 0 0/256px 256px}
@media (prefers-reduced-transparency:reduce){body::after{display:none}}

/* paper, the same textures as the invitation card */
.paper{background:var(--paper) url(../assets/img/tex-paper-ivory.webp) 0 0/768px 768px;color:var(--ink)}
.goldpaper{background:#F0B760 url(../assets/img/tex-paper-gold.webp) 0 0/512px 512px;color:var(--plum-d)}

/* ── type ────────────────────────────────────────────────────────────────── */
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);margin:0 0 18px}
.eyebrow--light{color:var(--gold)}
.h2{font-size:clamp(30px,4.3vw,52px);line-height:1.07;margin:0 0 22px;text-wrap:balance}
.h2--light{color:var(--txt-d)}
.lede{font-size:clamp(17.5px,1.9vw,20px);line-height:1.62;max-width:60ch;color:var(--txt-d-mut)}
.lede--light{color:var(--txt-d-mut)}
.sec{position:relative;padding:clamp(64px,8vw,116px) 0}

/* soft light from outside the frame; masked so no glow is ever cut by its box */
.glow{isolation:isolate}
.glow::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);
          mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);
  background:radial-gradient(52% 44% at 16% 10%,rgba(120,69,102,.5),rgba(120,69,102,0) 66%),
             radial-gradient(44% 40% at 88% 90%,rgba(89,50,131,.4),rgba(89,50,131,0) 68%)}
.glow--gold::before{background:radial-gradient(46% 42% at 80% 12%,rgba(240,183,96,.15),rgba(240,183,96,0) 64%),
             radial-gradient(56% 48% at 12% 92%,rgba(120,69,102,.46),rgba(120,69,102,0) 68%)}

/* ── buttons ─────────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);
  font-size:16.5px;font-weight:700;line-height:1;padding:18px 32px;min-height:56px;border-radius:999px;border:1.5px solid transparent;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .2s,background-color .2s,color .2s,border-color .2s}
.btn:active{transform:translateY(1px) scale(.99)}
.btn--gold{background:var(--gold);color:var(--plum-d);box-shadow:0 8px 22px rgba(240,183,96,.28)}
.btn--gold:hover{background:var(--gold-lt);box-shadow:0 12px 30px rgba(240,183,96,.42)}
.btn--ink{background:var(--plum);color:#FFF6EC;box-shadow:0 8px 20px rgba(55,21,54,.28)}
.btn--ink:hover{background:var(--plum-d)}
.btn--ghost-light{background:rgba(120,69,102,.24);color:var(--txt-d);border-color:rgba(255,255,255,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.btn--ghost-light:hover{background:rgba(255,255,255,.08);border-color:rgba(240,183,96,.55);color:#fff}
.btn--lg{font-size:17.5px;padding:20px 38px;min-height:60px}
.btn--sm{font-size:15px;padding:12px 22px;min-height:44px}
.btn .ic{width:20px;height:20px}

/* prices: the old one struck, the new one in Playfair */
.price-old{font-family:var(--serif);font-size:20px;color:var(--txt-d-mut)}
.price-old s{text-decoration-thickness:1.5px;text-decoration-color:rgba(240,183,96,.8)}
.price-now{font-family:var(--serif);font-size:34px;font-weight:500;color:var(--gold);line-height:1}

/* ── header ──────────────────────────────────────────────────────────────── */
/* solid, not frosted glass (8 Oct 2026, speed): the blur re-rendered the page under it on every scroll frame */
.hdr{position:sticky;top:0;z-index:60;background:rgba(49,25,48,.97);border-bottom:1px solid var(--line-d)}
.hdr__in{display:flex;align-items:center;gap:28px;height:64px}
.hdr__logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--txt-d);flex:none}
.hdr__logo img{width:38px;height:38px}
.hdr__logo-txt{display:flex;flex-direction:column;line-height:1;font-family:var(--serif)}
.hdr__logo-txt b{font-weight:500;font-size:15px;letter-spacing:.14em;color:var(--txt-d)}
.hdr__logo-txt i{font-style:normal;font-family:var(--sans);font-size:9.5px;letter-spacing:.28em;color:var(--gold);margin-top:3px}
.hdr__nav{display:flex;gap:26px;margin-left:auto}
.hdr__nav a{text-decoration:none;font-size:15px;font-weight:600;color:var(--txt-d-mut);transition:color .2s}
.hdr__nav a:hover{color:var(--txt-d)}
.hdr .btn{flex:none}
.hdr__burger{display:none;margin-left:auto;width:46px;height:46px;border:0;border-radius:12px;background:rgba(255,255,255,.06);
  cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.hdr__burger span{display:block;width:20px;height:2px;border-radius:2px;background:var(--txt-d);transition:transform .25s,opacity .2s}
.hdr__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hdr__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hdr__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnav{display:grid;gap:4px;padding:10px var(--pad) 22px;border-top:1px solid var(--line-d);background:rgba(49,25,48,.97)}
.mnav[hidden]{display:none}
.mnav a{text-decoration:none;font-size:18px;font-weight:600;color:var(--txt-d);padding:12px 0}
.mnav .btn{margin-top:10px;color:var(--plum-d)}
@media (max-width:900px){
  .hdr__nav{display:none}
  .hdr__in{gap:12px}
  .hdr__in > .btn{margin-left:auto;font-size:14.5px;padding:11px 18px;min-height:44px}
  .hdr__burger{display:flex;margin-left:0}
}
@media (max-width:380px){.hdr__logo-txt{display:none}}

/* ── hero ────────────────────────────────────────────────────────────────── */
/* Tatiana stands in the left third of the photo. Her side stays clear; the words
   sit on a plum fall-off on the right, never across her (the old layout ran the
   subtitle over her shirt). */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(calc(100dvh - 64px),860px);display:flex;align-items:center;background:var(--bg-d)}
.hero__img{position:absolute;inset:0;z-index:-2}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:28% 35%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(49,25,48,0) 22%,rgba(49,25,48,.55) 44%,rgba(49,25,48,.93) 58%,#311930 74%),
             linear-gradient(0deg,#311930 0%,rgba(49,25,48,0) 26%)}
.hero__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);padding-top:56px;padding-bottom:72px}
.hero__txt{grid-column:2}
.hero__h1{font-size:clamp(40px,5.2vw,68px);line-height:1.02;letter-spacing:-.022em;margin:0 0 24px;text-wrap:balance}
.hero__h1 em,.hero__h1 span{display:block;font-style:italic;color:var(--gold-lt);padding-bottom:4px}
.hero__sub{font-size:clamp(17.5px,1.6vw,19px);line-height:1.6;color:var(--txt-d-mut);margin:0 0 12px;max-width:52ch}
.hero__sub--key{color:var(--txt-d)}
.hero__sub--key b{color:var(--gold-lt)}
.hero__buy{display:flex;align-items:center;flex-wrap:wrap;gap:16px 22px;margin:30px 0 14px}
.hero__price{display:flex;align-items:baseline;gap:10px}
.hero__reassure{font-size:14.5px;line-height:1.55;color:var(--txt-d-mut);max-width:46ch;margin:0 0 22px}
.hero__scroll{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--txt-d);text-decoration:none;
  border-bottom:1px solid rgba(240,183,96,.5);padding-bottom:3px}
.hero__scroll:hover{color:var(--gold-lt)}
@media (max-width:860px){
  .hero{display:block;min-height:0}
  .hero__img{position:relative;inset:auto;height:min(62vw,420px)}
  .hero__img img{object-position:24% 28%}
  .hero::before{background:linear-gradient(0deg,#311930 0,rgba(49,25,48,0) min(30vw,200px)) top/100% min(62vw,420px) no-repeat}
  .hero__in{display:block;padding-top:6px;padding-bottom:56px;margin-top:-28px}
  .hero__h1{font-size:clamp(36px,9.6vw,50px)}
  .hero__buy .btn{width:100%}
}

/* ── identity strip: the shop's facts band ───────────────────────────────── */
.ident{background:var(--facts-d);border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
.ident__in{display:grid;grid-template-columns:repeat(3,1fr)}
.ident__i{padding:30px 28px;display:flex;flex-direction:column;gap:6px}
.ident__i + .ident__i{border-left:1px solid var(--line-d)}
.ident__i b{font-family:var(--serif);font-weight:500;font-size:clamp(21px,2.2vw,26px);color:var(--gold-lt);line-height:1.15}
.ident__i span{font-size:15px;line-height:1.5;color:var(--txt-d-mut)}
@media (max-width:760px){
  .ident__in{grid-template-columns:minmax(0,1fr)}
  .ident__i{padding:20px 4px}
  .ident__i + .ident__i{border-left:0;border-top:1px solid var(--line-d)}
}

/* ── video + the gift it unlocks ─────────────────────────────────────────── */
.video__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,350px) minmax(0,330px);
  grid-template-areas:"head head head" "lede frame gift" "cta frame gift";grid-template-rows:auto auto 1fr;gap:0 48px;align-items:start}
.video__head{grid-area:head;max-width:900px;margin-bottom:34px}
.video__lede{grid-area:lede;margin:0 0 26px}
.video__frame{grid-area:frame;position:relative;border-radius:22px;overflow:hidden;background:#1d0c1b;
  box-shadow:0 0 0 1px rgba(255,255,255,.1),0 0 0 9px rgba(255,255,255,.04),var(--lift-d)}
.video__el{width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;background:#1d0c1b}
.video .gift{grid-area:gift}
.video__cta{grid-area:cta;display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:10px}
.video__note{font-size:14.5px;color:var(--txt-d-mut)}
@media (max-width:1120px){
  .video__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"head head" "lede lede" "frame gift" "cta cta";gap:0 32px}
  .video__head{margin-bottom:18px}
  .video__frame,.video .gift{margin-bottom:34px}
  .video__frame{max-width:380px;justify-self:center;width:100%}
  .video__cta{align-items:center;text-align:center}
}
@media (max-width:680px){
  .video__in{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "lede" "frame" "gift" "cta";gap:0}
  .video__frame{max-width:340px}
  .video__cta .btn{width:100%}
}

/* the gift, still locked: a sealed paper envelope with the countdown on the seal */
.gift{position:relative;border-radius:6px;padding:28px 24px 26px;text-align:center;box-shadow:var(--stock)}
.gift__eyebrow{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink)}
.gift__h{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2.4vw,27px);line-height:1.18;color:var(--ink);margin:0 0 12px}
.gift__p{font-size:15.5px;line-height:1.55;color:var(--body);margin:0 0 20px}
.gift__grid{position:relative;height:150px;margin:0 auto 16px;max-width:240px;border-radius:4px;
  background:linear-gradient(180deg,#F5E4D2,#EFD9C3);box-shadow:inset 0 0 0 1px rgba(110,60,30,.18)}
.gift__grid::before{content:"";position:absolute;inset:0;border-radius:4px;              /* the flap */
  background:linear-gradient(180deg,#FBEFE2,#EAD3BB);clip-path:polygon(0 0,100% 0,50% 58%);
  filter:drop-shadow(0 2px 2px rgba(110,60,30,.25))}
.gift__grid::after{content:"";position:absolute;inset:0;border-radius:4px;               /* the folds */
  background:linear-gradient(to top right,transparent calc(50% - 1px),rgba(110,60,30,.18) 50%,transparent calc(50% + 1px)) left bottom/50% 62% no-repeat,
             linear-gradient(to top left,transparent calc(50% - 1px),rgba(110,60,30,.18) 50%,transparent calc(50% + 1px)) right bottom/50% 62% no-repeat}
.gift__grid > span:not(.gift__time){display:none}
.gift__lock{position:absolute;z-index:2;left:50%;top:58%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;
  display:grid;place-content:center;color:#FCE3C0;
  background:radial-gradient(circle at 38% 32%,#8E3C6E,#5A1F45 62%,#3E1230);
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.08),inset 0 -5px 8px rgba(0,0,0,.35),0 6px 12px rgba(46,17,40,.4)}
.gift__lock svg{width:24px;height:24px}
.gift__time{position:absolute;z-index:3;left:50%;bottom:-13px;transform:translateX(-50%);
  background:var(--ink);color:#FCE3C0;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:700;letter-spacing:.08em;
  font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 4px 10px rgba(46,17,40,.3)}
.gift__note{margin:26px 0 0;font-size:14px;line-height:1.5;color:var(--gold-ink);font-weight:600}
.gift.is-open .gift__locked{display:none}
.gift__open{animation:giftIn .45s ease both}
.gift__open .gift__p{margin-bottom:6px}
@keyframes giftIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ── what you get for €15: a boarding pass ───────────────────────────────── */
/* 8 Oct 2026, founder (circles on the corners, the notches and the tear line): «this ticket
   looks a bit off». One shape now: both halves rounded on their outer corners; each half
   carries HALF of a round notch at the top and bottom of the tear line, so together they
   form one notch (before, only the gold stub was cut, which showed as a dark bite); punched
   holes instead of a dotted line; and the shadow is a drop-shadow, so it follows the real
   outline — notches, corners and all (the old box-shadow was a plain rectangle). */
.pass{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 372px;
  filter:drop-shadow(0 1.5px 0 rgba(96,58,26,.55)) drop-shadow(0 22px 26px rgba(18,4,16,.5))}
.pass__main{padding:clamp(30px,4vw,54px) clamp(24px,4vw,56px);border-radius:12px 0 0 12px;
  -webkit-mask:radial-gradient(circle 13px at 100% 0,transparent 96%,#000 100%) top/100% 51% no-repeat,
               radial-gradient(circle 13px at 100% 100%,transparent 96%,#000 100%) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 13px at 100% 0,transparent 96%,#000 100%) top/100% 51% no-repeat,
               radial-gradient(circle 13px at 100% 100%,transparent 96%,#000 100%) bottom/100% 51% no-repeat}
.pass__main .eyebrow{color:var(--gold-ink)}
.pass__main .h2{color:var(--ink)}
.pass__stub{position:relative;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:40px 30px 40px 34px;
  border-radius:0 12px 12px 0;text-align:center;
  -webkit-mask:radial-gradient(circle 13px at 0 0,transparent 96%,#000 100%) top/100% 51% no-repeat,
               radial-gradient(circle 13px at 0 100%,transparent 96%,#000 100%) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 13px at 0 0,transparent 96%,#000 100%) top/100% 51% no-repeat,
               radial-gradient(circle 13px at 0 100%,transparent 96%,#000 100%) bottom/100% 51% no-repeat}
/* the tear line: punched holes (the page's own colour, with a lit lower rim), just inside the stub */
.pass__stub::before{content:"";position:absolute;left:3px;top:26px;bottom:26px;width:7px;
  background:radial-gradient(circle at 3.5px 7px,#2A1428 0 2.4px,rgba(255,236,200,.55) 2.9px,transparent 3.5px) 0 0/7px 14px repeat-y}
.pass__label{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(55,21,54,.78)}
.pass .offer__price{display:flex;flex-direction:column;align-items:center;gap:4px}
.pass .price-old{color:rgba(55,21,54,.7)}
.pass .price-old s{text-decoration-color:rgba(55,21,54,.7)}
.pass .price-now{font-size:76px;color:var(--plum-d);letter-spacing:-.02em}
.offer__once{font-size:14px;color:rgba(55,21,54,.82);font-weight:600}
.pass__stub .btn{width:100%;padding-left:20px;padding-right:20px}
.getlist{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin:8px 0 26px}
.getlist li{position:relative;display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-bottom:1px dashed rgba(46,17,40,.2);
  font-size:16.5px;line-height:1.5;color:var(--body)}
.getlist li b{color:var(--ink)}
.getlist .ic{width:26px;height:26px;color:var(--gold-ink);margin-top:-1px}
.getlist__key{grid-column:1/-1;background:rgba(240,183,96,.16);border-radius:var(--r-s);border-bottom-color:transparent!important;
  padding:16px 16px 16px 14px!important;margin:8px 0}
.getlist__key::after{content:"Только у нас";position:absolute;right:14px;top:-11px;transform:rotate(3deg);
  font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--plum);
  padding:5px 10px;border-radius:999px}
.offer__ready{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.9vw,21px);line-height:1.45;color:var(--ink);max-width:48ch}
@media (max-width:900px){
  .pass{grid-template-columns:minmax(0,1fr)}
  /* stacked: the tear line runs across, the notches sit at its two ends */
  .pass__main{border-radius:12px 12px 0 0;
    -webkit-mask:radial-gradient(circle 13px at 0 100%,transparent 96%,#000 100%) left/51% 100% no-repeat,
                 radial-gradient(circle 13px at 100% 100%,transparent 96%,#000 100%) right/51% 100% no-repeat;
            mask:radial-gradient(circle 13px at 0 100%,transparent 96%,#000 100%) left/51% 100% no-repeat,
                 radial-gradient(circle 13px at 100% 100%,transparent 96%,#000 100%) right/51% 100% no-repeat}
  .pass__stub{border-radius:0 0 12px 12px;padding:44px 26px 32px;
    -webkit-mask:radial-gradient(circle 13px at 0 0,transparent 96%,#000 100%) left/51% 100% no-repeat,
                 radial-gradient(circle 13px at 100% 0,transparent 96%,#000 100%) right/51% 100% no-repeat;
            mask:radial-gradient(circle 13px at 0 0,transparent 96%,#000 100%) left/51% 100% no-repeat,
                 radial-gradient(circle 13px at 100% 0,transparent 96%,#000 100%) right/51% 100% no-repeat}
  .pass__stub::before{left:26px;right:26px;top:3px;bottom:auto;width:auto;height:7px;
    background:radial-gradient(circle at 7px 3.5px,#2A1428 0 2.4px,rgba(255,236,200,.55) 2.9px,transparent 3.5px) 0 0/14px 7px repeat-x}
  .getlist{grid-template-columns:minmax(0,1fr)}
}

/* ── the differentiator ──────────────────────────────────────────────────── */
.review__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;align-items:center}
.ticks{display:grid;gap:12px;margin:26px 0 30px}
.ticks li{position:relative;padding-left:36px;font-size:17px;line-height:1.5;color:var(--txt-d)}
.ticks li::before{content:"";position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;
  background:rgba(240,183,96,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23F1D087' d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E") center/14px no-repeat}
.pullquote{margin:0;position:relative;padding-top:78px}
.pullquote::before{content:"";position:absolute;left:0;top:0;width:58px;height:58px;opacity:.9;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23F0B760' d='M116,72v88a48.05,48.05,0,0,1-48,48,8,8,0,0,1,0-16,32,32,0,0,0,32-32v-8H40a16,16,0,0,1-16-16V72A16,16,0,0,1,40,56h60A16,16,0,0,1,116,72ZM216,56H156a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h60v8a32,32,0,0,1-32,32,8,8,0,0,0,0,16,48.05,48.05,0,0,0,48-48V72A16,16,0,0,0,216,56Z'/%3E%3C/svg%3E") center/contain no-repeat}
.pullquote blockquote{margin:0 0 22px;font-family:var(--serif);font-style:italic;font-size:clamp(25px,2.8vw,36px);line-height:1.3;color:var(--txt-d)}
.pullquote figcaption{font-size:15px;color:var(--txt-d-mut)}
.pullquote figcaption b{color:var(--gold-lt)}
@media (max-width:900px){.review__in{grid-template-columns:minmax(0,1fr);gap:40px}}

/* ── the 7 steps: a route with seven stops ───────────────────────────────── */
.steps7{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:18px;counter-reset:st;margin:34px 0 56px}
.steps7::before{content:"";position:absolute;left:3%;right:3%;top:23px;border-top:2px dotted rgba(240,183,96,.55)}
.steps7 li{position:relative;counter-increment:st;display:flex;flex-direction:column;gap:6px;padding-top:62px}
.steps7 li::before{content:counter(st);position:absolute;left:0;top:0;width:48px;height:48px;border-radius:50%;
  display:grid;place-content:center;font-family:var(--serif);font-size:21px;color:var(--plum-d);background:var(--gold);
  box-shadow:0 0 0 6px var(--bg-d),0 0 0 7px rgba(240,183,96,.35)}
.steps7 li b{font-family:var(--serif);font-weight:500;font-size:19px;line-height:1.2;color:var(--txt-d)}
.steps7 li span{font-size:15px;line-height:1.5;color:var(--txt-d-mut)}
.route{position:relative}
.route__plane{position:absolute;z-index:2;top:10px;left:0;width:28px;height:28px;color:var(--gold-lt);opacity:0;pointer-events:none;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.4))}
.route__plane svg{width:100%;height:100%;transform:rotate(45deg)}
@media (max-width:1060px){
  .steps7{grid-template-columns:minmax(0,1fr);gap:0;max-width:640px}
  .steps7::before{left:23px;right:auto;top:24px;bottom:24px;border-top:0;border-left:2px dotted rgba(240,183,96,.55)}
  .steps7 li{padding:0 0 30px 74px;min-height:64px}
  .steps7 li:last-child{padding-bottom:0}
  .route__plane{display:none}
}

/* three days, an itinerary */
.days{position:relative;background:var(--panel-d);border-radius:var(--r);padding:clamp(28px,4vw,50px);border:1px solid var(--line-d)}
.days__list{display:grid;grid-template-columns:repeat(3,1fr)}
.days__after{margin:30px 0 0;padding-top:24px;border-top:1px dashed rgba(255,255,255,.18);font-family:var(--serif);font-size:clamp(20px,2.2vw,26px);line-height:1.35;color:var(--txt-d);text-wrap:balance}
.days__after b{font-weight:500;font-style:italic;color:var(--gold-lt)}
.days__list li{display:flex;flex-direction:column;gap:8px;padding:0 28px}
.days__list li:first-child{padding-left:0}
.days__list li + li{border-left:1px dashed rgba(255,255,255,.18)}
.days__n{font-family:var(--serif);font-style:italic;font-size:34px;line-height:1;color:var(--gold-lt)}
.days__list b{font-family:var(--serif);font-weight:500;font-size:20px;color:var(--txt-d)}
.days__list li span:not(.days__n){font-size:15.5px;line-height:1.55;color:var(--txt-d-mut)}
@media (max-width:820px){
  .days__list{grid-template-columns:minmax(0,1fr);gap:22px}
  .days__list li{padding:0}
  .days__list li + li{border-left:0;border-top:1px dashed rgba(255,255,255,.18);padding-top:22px}
}
/* ── who it fits: seven tappable lines ───────────────────────────────────── */
.audience__in{max-width:980px}
.whos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:34px}
.whos li{display:flex}
.who{width:100%}
.who{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:14px 22px 14px 16px;border-radius:999px;cursor:pointer;
  font:600 16.5px/1.35 var(--sans);text-align:left;color:var(--txt-d);background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.16);
  transition:background-color .2s,border-color .2s,color .2s,transform .18s cubic-bezier(.16,1,.3,1)}
.who::before{content:"";flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid rgba(240,183,96,.6);transition:background-color .2s}
.who:hover{border-color:rgba(240,183,96,.6)}
.who:active{transform:scale(.98)}
.who[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--plum-d)}
.who[aria-pressed="true"]::before{border-color:var(--plum-d);
  background:var(--plum-d) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23F0B760' d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E") center/13px no-repeat}
@media (max-width:760px){.whos{grid-template-columns:minmax(0,1fr)}}
/* the answer to her pick: a paper card with the line for her situation and the €15 button */
.pick{margin-top:28px;max-width:860px;padding:26px 28px;border-radius:6px;box-shadow:var(--stock);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 30px;align-items:center}
.pick[hidden]{display:none}
.pick__txt{margin:0;font-family:var(--serif);font-size:clamp(19px,1.9vw,22px);line-height:1.45;color:var(--ink)}
.pick.is-in{animation:pickIn .55s cubic-bezier(.16,1,.3,1) both}
@keyframes pickIn{from{opacity:0;transform:translateY(12px) rotate(-.5deg)}to{opacity:1;transform:none}}
@media (max-width:760px){.pick{grid-template-columns:minmax(0,1fr);padding:24px 20px}.pick .btn{width:100%}}
@media (prefers-reduced-motion:reduce){.pick.is-in{animation:none}}
.whos li:not(:has(.who)){display:inline-flex;align-items:center;min-height:56px;padding:14px 22px;border-radius:999px;
  color:var(--txt-d);background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.16);font-weight:600}

/* ── Tatiana: the one lit room, as on the shop ───────────────────────────── */
.expert{background:var(--cream);color:var(--body)}
.expert h2,.expert .h2{color:var(--ink)}
.expert b{color:var(--ink)}
.expert__in{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:80px;align-items:center}
.expert__imgs{position:relative;min-height:560px}
.expert__img{position:absolute;display:block;background:#fff;padding:12px 12px 44px;border-radius:3px;
  box-shadow:0 1px 0 #ead9c9,0 18px 30px -12px rgba(46,17,40,.35),0 50px 80px -40px rgba(46,17,40,.4)}
.expert__img img{width:100%;height:100%;object-fit:cover}
.expert__img--a{left:0;top:0;width:64%;height:74%;transform:rotate(-3deg);z-index:1}
.expert__img--b{right:2%;bottom:0;width:50%;height:60%;transform:rotate(4deg);z-index:2}
.expert__lead{font-size:18px;line-height:1.65;color:var(--body);margin:0 0 28px}
.expert__name{font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.1;color:var(--ink);margin:0 0 4px}
.expert__role{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 22px}
.facts{display:grid;gap:12px;margin:0 0 30px}
.facts li{position:relative;padding-left:32px;font-size:16.5px;line-height:1.55;color:var(--body)}
.facts li::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%239A630F' d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E") center/18px no-repeat}
.expert .quote{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.1vw,25px);line-height:1.4;color:var(--ink);
  border-left:3px solid var(--gold);padding:4px 0 4px 22px}
@media (max-width:900px){
  .expert__in{grid-template-columns:minmax(0,1fr);gap:44px}
  .expert__imgs{min-height:0;height:min(118vw,540px);max-width:480px;width:100%;margin:0 auto}
}

/* ── proof ───────────────────────────────────────────────────────────────── */
.tcards{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:16px 0 48px}
.tcard{position:relative;padding:8px 48px 0 0;display:flex;flex-direction:column}
.tcard + .tcard{padding:8px 0 0 48px;border-left:1px solid rgba(240,183,96,.3)}
.tcard__who{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 16px}
.tcard blockquote{margin:0 0 22px;font-size:17px;line-height:1.7;color:var(--txt-d)}
.tcard__name{margin:auto 0 0;font-size:15px;color:var(--txt-d-mut)}
.tcard__name b{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--gold-lt)}
.proof__fact{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:34px 24px;border-radius:var(--r);
  background:var(--panel-d);border:1px solid var(--line-d)}
.proof__fact b{font-size:17px;font-weight:600;color:var(--txt-d)}
.proof__fact span{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.4vw,28px);color:var(--gold-lt)}
.proof__note{margin:18px 0 0;font-size:13.5px;text-align:center;color:var(--txt-d-mut)}
@media (max-width:860px){
  .tcards{grid-template-columns:minmax(0,1fr);gap:40px}
  .tcard,.tcard + .tcard{padding:0}
  .tcard + .tcard{border-left:0;border-top:1px solid rgba(240,183,96,.3);padding-top:36px}
}

/* ── honest limits ───────────────────────────────────────────────────────── */
.limits__list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:30px}
.limits__list li{position:relative;padding:58px 0 0;font-size:16px;line-height:1.6;color:var(--txt-d-mut);border-top:1px solid var(--line-d)}
.limits__list li::before{content:"";position:absolute;left:0;top:18px;width:26px;height:26px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23F1D087' d='M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z'/%3E%3C/svg%3E") center/26px no-repeat}
.limits__list b{display:block;font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.25;color:var(--txt-d);margin-bottom:8px}
@media (max-width:860px){.limits__list{grid-template-columns:minmax(0,1fr);gap:6px}}

/* ── payment: the price as the one held moment ───────────────────────────── */
.price{text-align:center}
.price__in{max-width:980px}
.price__in > .h2{max-width:22ch;margin-left:auto;margin-right:auto}
.price__wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;text-align:left;align-items:stretch}
.price__box{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:46px 34px 34px;
  border-radius:6px;box-shadow:var(--stock)}
.price__tags{display:flex;align-items:baseline;justify-content:center;gap:16px}
.price__box .price-old{color:var(--quiet)}
.price__box .price-old s{text-decoration-color:var(--gold-ink)}
.price-old--lg{font-size:30px}
.price-now--lg{font-size:clamp(84px,9vw,112px);letter-spacing:-.03em;color:var(--plum)}
.price__once{font-size:15.5px;color:var(--body);margin:0 0 22px}
.price__box .btn{width:100%;max-width:360px}
.price__refund{font-size:14.5px;line-height:1.55;color:var(--body);margin:18px 0 0;max-width:38ch}
.prechk{padding:36px 32px;border-radius:var(--r);background:var(--panel-d);border:1px solid var(--line-d)}
.prechk__t{font-family:var(--serif);font-size:23px;color:var(--txt-d);margin:0 0 18px}
.prechk__list{display:grid;gap:14px;margin:0 0 20px}
.prechk__list li{position:relative;padding-left:30px;font-size:15.5px;line-height:1.55;color:var(--txt-d-mut)}
.prechk__list li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23F1D087' d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E") center/17px no-repeat}
.prechk__help{margin:0;font-size:14.5px;line-height:1.55;color:var(--txt-d-mut)}
.prechk__help a{color:var(--gold-lt)}
@media (max-width:860px){.price__wrap{grid-template-columns:minmax(0,1fr)}}

/* ── FAQ ─────────────────────────────────────────────────────────────────── */
.faq__in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-areas:"head acc" "promo acc" "tog acc" "after acc";
  grid-template-rows:auto auto auto 1fr;gap:0 72px;align-items:start}
.faq__in > .h2{grid-area:head}
.faq__promoted{grid-area:promo;font-size:16px;line-height:1.6;color:var(--txt-d-mut);border-left:2px solid var(--gold);padding:2px 0 2px 18px;margin:0 0 22px}
.faq__toggle{grid-area:tog;justify-self:start;background:none;border:0;padding:6px 0;font:700 15px var(--sans);color:var(--gold-lt);cursor:pointer;
  border-bottom:1px solid rgba(240,183,96,.5);margin-bottom:30px}
.faq__after{grid-area:after}
.acc{grid-area:acc;border-top:1px solid var(--line-d)}
.acc__i{border-bottom:1px solid var(--line-d)}
.acc__i summary{position:relative;list-style:none;cursor:pointer;padding:22px 52px 22px 0;min-height:64px;
  font-family:var(--serif);font-weight:500;font-size:clamp(18.5px,1.8vw,21px);line-height:1.35;color:var(--txt-d)}
.acc__i summary::-webkit-details-marker{display:none}
.acc__i summary::after{content:"";position:absolute;right:4px;top:50%;width:30px;height:30px;margin-top:-15px;border-radius:50%;
  border:1.5px solid rgba(240,183,96,.5);
  background:linear-gradient(var(--gold-lt),var(--gold-lt)) center/12px 2px no-repeat,linear-gradient(var(--gold-lt),var(--gold-lt)) center/2px 12px no-repeat;
  transition:transform .3s cubic-bezier(.16,1,.3,1),background-color .2s}
.acc__i[open] summary::after{transform:rotate(45deg);background-color:rgba(240,183,96,.12)}
.acc__i summary:hover{color:var(--gold-lt)}
.acc__b{padding:0 52px 24px 0}
.acc__b p{margin:0;font-size:16.5px;line-height:1.7;color:var(--txt-d-mut)}
.acc__b a{color:var(--gold-lt)}
@media (max-width:900px){
  .faq__in{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "promo" "tog" "acc" "after";gap:0}
  .faq__after{margin-top:34px;text-align:center}
}

/* ── not ready yet: the free masterclass, and the e-mail ─────────────────── */
.keep{background:var(--panel-d);overflow-x:clip}
.keep__in > .h2{text-align:center;margin-bottom:clamp(20px,3vw,40px)}
.nobr{white-space:nowrap}
.keep__sub{text-align:center;font-size:17px;color:var(--txt-d-mut);margin:0 auto 44px;max-width:44ch}
.keep__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center}
.keep__mk .mk__txt{margin-top:-6px}
.keep__mk .mk__h{color:var(--txt-d)}
.keep__mk .mk__p{color:var(--txt-d)}
.keep__mk .mk__note{color:var(--txt-d-mut)}
.keep__mail{padding:36px 34px;border-radius:var(--r);background:var(--bg-d);border:1px solid var(--line-d)}
.keep__mail .lede{font-size:17px;margin:0 0 22px}
.keep__form{margin:0}
.keep__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.keep__label{display:block;font-size:14.5px;font-weight:700;color:var(--txt-d);margin:0 0 8px}
.keep__row{display:grid;gap:12px}
.keep__input{width:100%;min-height:58px;padding:0 18px;border-radius:12px;border:1.5px solid rgba(255,255,255,.2);
  background:var(--paper);color:var(--ink);font:500 17px var(--sans)}
.keep__input::placeholder{color:#8A7282}
.keep__input:focus{outline:3px solid var(--gold);outline-offset:2px;border-color:var(--gold)}
.keep__row .btn{width:100%}
.keep__consent{font-size:13.5px;line-height:1.55;color:var(--txt-d-mut);margin:14px 0 0}
.keep__consent a{color:var(--gold-lt)}
@media (max-width:900px){.keep__grid{grid-template-columns:minmax(0,1fr);gap:36px}}

/* ── what comes next: two lines over the booking card, inside its block ─── */
#konsultaciya.cons{padding-top:clamp(72px,8vw,112px)}
/* 19 Oct 2026: the block now sits right under the video and gift (founder: «make this interval smaller»):
   the two paddings between them were 64 + 72 px on a phone, 116 + 112 px on a computer */
/* 26 Oct 2026: the consultation moved below the questions (team notes); the video keeps a normal gap again,
   and these two rules only apply if the block ever sits right under the video again */
#video + .cons{padding-top:clamp(20px,2.5vw,36px)}
.cons__head{text-align:center;max-width:860px;margin:0 auto clamp(52px,6vw,84px)}
.cons__head .lede{margin:0 auto}

/* ── footer ──────────────────────────────────────────────────────────────── */
.ftr{background:#1F0D1D;color:var(--txt-d-mut);padding:64px 0 34px;font-size:15px}
.ftr__in{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.ftr__brand{display:flex;align-items:flex-start;gap:16px}
.ftr__brand img{width:auto;height:66px}
.ftr__brand p{margin:0;line-height:1.55}
.ftr__brand b{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--txt-d)}
.ftr h3{font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.ftr__col p{margin:0;line-height:1.95}
.ftr a{color:var(--txt-d);text-decoration:none;border-bottom:1px solid rgba(240,183,96,.35)}
.ftr a:hover{color:var(--gold-lt)}
.ftr .cc-reopen{color:var(--txt-d)}
.ftr__legal{margin-top:46px;padding-top:24px;border-top:1px solid var(--line-d)}
.ftr__copy{margin:0;font-size:13px;color:rgba(244,234,230,.55)}
@media (max-width:900px){.ftr__in{grid-template-columns:1fr 1fr}.ftr__brand{grid-column:1/-1}}
@media (max-width:520px){.ftr__in{grid-template-columns:minmax(0,1fr)}}

/* ── sticky «Записаться» ─────────────────────────────────────────────────── */
.sticky-cta{position:fixed;z-index:55;left:50%;bottom:16px;display:flex;align-items:center;gap:16px;padding:8px 8px 8px 22px;border-radius:999px;
  background:rgba(49,25,48,.98);border:1px solid rgba(240,183,96,.35);box-shadow:0 14px 34px rgba(0,0,0,.45);
  transform:translate(-50%,140%);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .3s}
.sticky-cta[hidden]{display:none}
.sticky-cta.is-on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.sticky-cta__price{font-family:var(--serif);font-size:15px;color:var(--txt-d-mut);white-space:nowrap}
.sticky-cta__price b{font-size:24px;font-weight:500;color:var(--gold)}
.sticky-cta .btn{min-height:50px;padding:14px 28px}
@media (max-width:560px){.sticky-cta{left:12px;right:12px;bottom:12px;transform:translateY(140%);justify-content:space-between}
  .sticky-cta.is-on{transform:none}}
/* 9 Oct 2026, founder: «do we really need the bottom button in phone? 3 buttons?! … remove the bottom
   panel on phone». On a phone the header keeps «Записаться за €15» on screen, and the page has its own buttons. */
@media (max-width:760px),(max-height:500px){.sticky-cta,.sticky-cta.is-on{display:none!important}}

/* ── very small phones (320–380 px): long buttons tighten, and may wrap rather than stick out ── */
@media (max-width:380px){
  :root{--pad:18px}
  .btn--lg{font-size:16px;padding:16px 18px;white-space:normal;text-align:center;line-height:1.25}
  .pass__stub{padding:36px 18px 28px}
  .price__box{padding:42px 18px 28px}
  .price-now--lg{font-size:76px}
  .prechk,.keep__mail{padding:28px 20px}
  .sticky-cta{gap:10px;padding-left:16px}
  .sticky-cta__price s{display:none}
  .sticky-cta .btn{padding:12px 18px}
}

/* ── reveal: one gentle rise per section, in reading order ────────────────
   Gated by .js-reveal, which js/main.js adds only once its observer exists: no
   script, no hiding. */
@media (prefers-reduced-motion:no-preference){
  .js-reveal [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
  .js-reveal [data-reveal].is-in{opacity:1;transform:none}
  .js-reveal [data-stagger] > *{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
  .js-reveal [data-stagger].is-in > *{opacity:1;transform:none}
  [data-stagger].is-in > :nth-child(2){transition-delay:.06s}
  [data-stagger].is-in > :nth-child(3){transition-delay:.12s}
  [data-stagger].is-in > :nth-child(4){transition-delay:.18s}
  [data-stagger].is-in > :nth-child(5){transition-delay:.24s}
  [data-stagger].is-in > :nth-child(6){transition-delay:.30s}
  [data-stagger].is-in > :nth-child(7){transition-delay:.36s}
  /* the route: the plane flies the seven stops once, the moment they come into view */
  .route.is-fly .route__plane{animation:routeFly 2.6s cubic-bezier(.45,.05,.3,1) .35s both}
  .hero__txt > *{animation:heroIn .9s cubic-bezier(.16,1,.3,1) both}
  .hero__txt > :nth-child(2){animation-delay:.08s}
  .hero__txt > :nth-child(3){animation-delay:.16s}
  .hero__txt > :nth-child(4){animation-delay:.22s}
  .hero__txt > :nth-child(5){animation-delay:.28s}
  .hero__txt > :nth-child(6){animation-delay:.34s}
  .hero__txt > :nth-child(7){animation-delay:.4s}
}
@keyframes routeFly{0%{opacity:0;transform:translateX(0)}8%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translateX(calc(var(--route-w,1000px) - 28px))}}
@keyframes heroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
