
  :root{
    --ink:#241815;
    --ink-soft:#6B5750;
    --ink-faint:#998984;
    --bg:#FBF6F2;
    --surface:#FFFFFF;
    --surface-tint:#F5EAE3;
    --line:rgba(36,24,21,0.13);
    --red:#D6303C;
    --red-deep:#A81F2A;
    --blue:#2457B2;
    --blue-deep:#0F2C5C;
    --blue-bright:#3E7BFF;
    --amber:#E8730F;
    --amber-soft:#FCEEDD;
    --maroon:#7A1620;
    --maroon-deep:#2B0A0E;
    --focus:#3E7BFF;
    --shadow: 0 18px 40px -20px rgba(43,10,14,0.35);
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#F5EBE5;
      --ink-soft:#C9B6AF;
      --ink-faint:#8C7C77;
      --bg:#170F0D;
      --surface:#1F1613;
      --surface-tint:#2A1D19;
      --line:rgba(245,236,230,0.14);
      --red:#FF5A64;
      --red-deep:#FF7A82;
      --blue:#6FA0FF;
      --blue-deep:#0B1E3B;
      --blue-bright:#6FA0FF;
      --amber:#FFA24D;
      --amber-soft:#2A2013;
      --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
    }
  }
  :root[data-theme="dark"]{
    --ink:#F5EBE5;
    --ink-soft:#C9B6AF;
    --ink-faint:#8C7C77;
    --bg:#170F0D;
    --surface:#1F1613;
    --surface-tint:#2A1D19;
    --line:rgba(245,236,230,0.14);
    --red:#FF5A64;
    --red-deep:#FF7A82;
    --blue:#6FA0FF;
    --blue-deep:#0B1E3B;
    --blue-bright:#6FA0FF;
    --amber:#FFA24D;
    --amber-soft:#2A2013;
    --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:"Poppins",system-ui,sans-serif;
    color:var(--ink);
    line-height:1.15;
    text-wrap:balance;
    margin:0;
  }

  .mono{ font-family:"IBM Plex Mono",ui-monospace,monospace; }

  a{ color:inherit; }
  img{ max-width:100%; display:block; }

  :focus-visible{ outline:3px solid var(--focus); outline-offset:3px; border-radius:2px; }

  .wrap{
    max-width:1120px;
    margin:0 auto;
    padding:0 24px;
  }
  .measure{ max-width:65ch; }

  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:"IBM Plex Mono",monospace;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--red-deep);
  }
  .eyebrow::before{
    content:"";
    width:18px; height:2px;
    background:var(--red);
  }

  .tag-cut{
    clip-path:polygon(10px 0, 100% 0, 100% 100%, 0 100%);
    background:var(--amber);
    color:#241304;
    font-family:"Poppins",sans-serif;
    font-weight:700;
    font-size:13px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    padding:8px 18px 8px 22px;
    display:inline-block;
  }
  :root[data-theme="dark"] .tag-cut, @media (prefers-color-scheme:dark){ }

  /* ---------- Buttons ---------- */
  .btn{
    --btnbg:var(--red);
    --btnfg:#fff;
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:var(--btnbg);
    color:var(--btnfg);
    font-family:"Poppins",sans-serif;
    font-weight:700;
    font-size:15.5px;
    letter-spacing:0.01em;
    text-decoration:none;
    padding:16px 30px;
    border:none;
    cursor:pointer;
    clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 100%, 14px 100%);
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
    box-shadow:var(--shadow);
  }
  .btn:hover{ transform:translateY(-2px); background:var(--red-deep); }
  .btn:active{ transform:translateY(0); }
  .btn-ghost{
    --btnbg:transparent;
    --btnfg:var(--ink);
    box-shadow:none;
    border:1.5px solid var(--line);
  }
  .btn-ghost:hover{ background:var(--surface-tint); }
  .btn-block{ width:100%; justify-content:center; }
  .btn small{ font-family:"IBM Plex Mono",monospace; font-weight:600; opacity:.85; font-size:12px; }

  @media (prefers-reduced-motion: reduce){ .btn{ transition:none; } .btn:hover{ transform:none; } }

  /* ---------- Header ---------- */
  .top-bar{
    position:sticky; top:0; z-index:40;
    background:color-mix(in srgb, var(--surface) 92%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .top-bar .wrap{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:12px; padding-bottom:12px;
  }
  .brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
  .brand-word{ font-family:"Poppins",sans-serif; font-weight:800; font-size:18px; letter-spacing:-0.01em; }
  .brand-word b{ color:var(--red); }
  .brand-word span{ display:block; font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:500; letter-spacing:.08em; color:var(--ink-faint); }
  .top-bar .btn{ padding:11px 22px; font-size:14px; }
  .top-phone{ display:none; font-family:"IBM Plex Mono",monospace; font-size:13.5px; color:var(--ink-soft); margin-right:18px; }
  @media (min-width:760px){ .top-phone{ display:inline; } }

  /* ---------- Pulse divider ---------- */
  .pulse{
    max-width:1120px; margin:0 auto; padding:36px 24px;
    display:flex; align-items:center; gap:18px;
  }
  .pulse svg{ flex:1; height:34px; width:100%; overflow:visible; }
  .pulse path{
    fill:none; stroke:var(--red); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round;
  }
  .pulse.amber path{ stroke:var(--amber); }
  .pulse.blue path{ stroke:var(--red-deep); }
  @media (prefers-reduced-motion: no-preference){
    .pulse path{
      stroke-dasharray:340; stroke-dashoffset:340;
      animation:draw 2.6s ease-in-out infinite;
    }
    @keyframes draw{
      0%{ stroke-dashoffset:340; }
      45%{ stroke-dashoffset:0; }
      100%{ stroke-dashoffset:-340; }
    }
  }

  /* ---------- Hero ---------- */
  .hero{
    background:
      radial-gradient(720px 420px at 82% -10%, color-mix(in srgb, var(--amber) 30%, transparent), transparent 65%),
      linear-gradient(160deg, var(--maroon), var(--maroon-deep) 78%);
    color:#F7E9E3;
    padding:76px 0 84px;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,.35) 1px, transparent 0),
      radial-gradient(1px 1px at 30% 70%, rgba(255,255,255,.25) 1px, transparent 0),
      radial-gradient(1px 1px at 60% 30%, rgba(255,255,255,.3) 1px, transparent 0),
      radial-gradient(1px 1px at 80% 80%, rgba(255,255,255,.2) 1px, transparent 0),
      radial-gradient(1px 1px at 92% 15%, rgba(255,255,255,.3) 1px, transparent 0);
    opacity:.6;
  }
  .hero .wrap{ position:relative; display:grid; gap:44px; }
  @media (min-width:900px){ .hero .wrap{ grid-template-columns:1.15fr 0.85fr; align-items:center; } }

  .hero h1{
    color:#fff;
    font-size:clamp(34px,5vw,54px);
    font-weight:800;
    letter-spacing:-0.01em;
  }
  .hero h1 .marker{
    display:inline; box-decoration-break:clone; -webkit-box-decoration-break:clone;
    background:var(--amber); color:#241304; padding:2px 12px;
    transform:rotate(-1deg); display:inline-block;
  }
  .hero h1 em{ font-style:normal; color:#fff; display:block; margin-top:10px; }
  .hero .lede{ margin-top:18px; color:#F0DCD0; font-size:18px; max-width:52ch; }
  .hero .eyebrow{ color:var(--amber); }
  .hero .eyebrow::before{ background:#fff; }
  .hero .cta-row{ margin-top:32px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
  .hero .fine{ margin-top:14px; font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:#D9B3A3; }
  .call-link{
    display:inline-flex; align-items:center; gap:8px;
    color:#fff; text-decoration:none; font-family:"Poppins",sans-serif; font-weight:600; font-size:15px;
    border-bottom:1.5px solid rgba(255,255,255,.4); padding-bottom:2px;
  }
  .call-link:hover{ border-color:#fff; }
  .call-link svg{ flex:none; }

  .offer-card{
    position:relative;
    background:rgba(255,255,255,.07);
    border:2px solid var(--amber);
    padding:28px;
    clip-path:polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%);
    box-shadow:0 0 0 6px rgba(232,115,15,.12);
  }
  .offer-card .corner-tag{
    position:absolute; top:-14px; left:24px;
    background:var(--amber); color:#241304;
    font-family:"Poppins",sans-serif; font-weight:800; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
    padding:6px 14px; clip-path:polygon(6px 0,100% 0,100% 100%,0 100%);
  }
  .offer-card .price-row{ display:flex; align-items:baseline; gap:12px; margin-bottom:6px; }
  .offer-card .price{ font-family:"IBM Plex Mono",monospace; font-weight:700; font-size:48px; color:var(--amber); }
  .offer-card .was{ font-family:"IBM Plex Mono",monospace; color:#D9B3A3; text-decoration:line-through; font-size:16px; }
  .offer-card .label{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:#D9B3A3; margin-bottom:10px; }
  .offer-card ul{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:11px; }
  .offer-card li{ display:flex; gap:10px; font-size:15px; font-weight:600; color:#fff; }
  .offer-card li::before{ content:"✓"; color:var(--amber); font-weight:700; flex:none; }

  /* ---------- Sections ---------- */
  section{ padding:72px 0; }
  .section-head{ max-width:56ch; margin-bottom:36px; }
  .section-head h2{ font-size:clamp(26px,3.4vw,38px); margin-top:14px; }
  .surface{ background:var(--surface); }
  .tint{ background:var(--surface-tint); }

  .list-plain{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
  .list-plain li{
    padding:14px 0; border-bottom:1px solid var(--line);
    font-size:17px; color:var(--ink-soft);
    display:flex; align-items:baseline; gap:14px;
  }
  .list-plain li b{ color:var(--ink); font-family:"Poppins",sans-serif; font-weight:600; }
  .list-plain li::before{ content:"—"; color:var(--red); flex:none; font-weight:700; }

  .check-grid{ display:grid; gap:14px; margin-top:8px; }
  @media (min-width:640px){ .check-grid{ grid-template-columns:1fr 1fr; } }
  .check{
    display:flex; gap:12px; align-items:flex-start;
    padding:16px; background:var(--surface); border:1px solid var(--line);
  }
  .check .mark{
    flex:none; width:22px; height:22px; background:var(--red);
    clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
    display:grid; place-items:center; color:#fff; font-size:13px; font-weight:700;
  }
  .check:nth-child(even) .mark{ background:var(--amber); color:#241304; }
  .check p{ margin:0; color:var(--ink-soft); font-size:15px; }

  /* ---------- Illustrations ---------- */
  .illus-panel{
    background:var(--surface); border:1px solid var(--line);
    padding:24px; display:flex; align-items:center; justify-content:center;
    min-height:280px;
  }
  .illus-panel svg{ width:100%; height:auto; max-width:360px; }
  .two-col{ display:grid; gap:32px; align-items:center; }
  @media (min-width:820px){ .two-col{ grid-template-columns:1.1fr 0.9fr; } }
  @media (prefers-reduced-motion: no-preference){
    .ripple-ring{ animation:ripple 3.2s ease-out infinite; transform-origin:center; }
    .ripple-ring.r2{ animation-delay:.5s; }
    .ripple-ring.r3{ animation-delay:1s; }
    @keyframes ripple{
      0%{ opacity:.9; transform:scale(0.55); }
      80%{ opacity:0; transform:scale(1.05); }
      100%{ opacity:0; transform:scale(1.05); }
    }
  }

  .video-frame{
    max-width:340px; margin:28px auto 0;
    border:1px solid var(--line); box-shadow:var(--shadow);
    clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
    background:#000;
  }
  .video-frame video{ width:100%; display:block; aspect-ratio:9/16; background:#000; }

  .icon-chip{
    width:40px; height:40px; flex:none; display:grid; place-items:center;
    background:var(--surface-tint); border:1px solid var(--line);
  }

  .card-photo{
    width:100%; aspect-ratio:16/10; object-fit:cover;
    clip-path:polygon(0 0,100% 0,100% 100%,14px 100%,0 calc(100% - 14px));
    margin-bottom:16px; border:1px solid var(--line);
  }
  .step-photo{
    width:100%; max-width:280px; aspect-ratio:4/3; object-fit:cover;
    margin-top:14px; border:1px solid var(--line);
    clip-path:polygon(10px 0,100% 0,100% 100%,0 100%);
  }
  .bonus-photo{
    width:74px; height:74px; flex:none; object-fit:cover;
    clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
    box-shadow:3px 3px 0 var(--ink);
  }
  .missing-photos{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
  .missing-photos figure{ margin:0; flex:1 1 160px; max-width:220px; }
  .missing-photos img{
    width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
    clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);
    border:1px solid rgba(255,255,255,.25);
  }
  .missing-photos figcaption{
    font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
    color:#E8B9A8; margin-top:8px;
  }

  .cond-grid{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
  .cond{
    font-family:"IBM Plex Mono",monospace; font-size:13px; font-weight:600;
    letter-spacing:.06em; text-transform:uppercase;
    border:1.5px solid var(--line); padding:10px 16px;
    clip-path:polygon(8px 0,100% 0,100% 100%,0 100%);
    color:var(--ink-soft);
  }

  /* ---------- Package statement ---------- */
  .statement{
    background:var(--surface);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
  }
  .statement-head{
    display:flex; justify-content:space-between; align-items:flex-start;
    gap:20px; padding:26px 26px 22px; border-bottom:1px solid var(--line);
  }
  .statement-head .tag-cut{ align-self:flex-start; }
  .statement-head .totalv{ text-align:right; }
  .statement-head .totalv .amt{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:26px; }
  .statement-head .totalv .cap{ font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-faint); letter-spacing:.1em; text-transform:uppercase; }

  .bonus-row{
    display:grid; grid-template-columns:34px 1fr auto; gap:16px;
    align-items:flex-start;
    padding:22px 26px; border-bottom:1px solid var(--line);
  }
  .bonus-row:last-of-type{ border-bottom:none; }
  .bonus-row .num{ font-family:"IBM Plex Mono",monospace; color:var(--ink-faint); font-size:14px; padding-top:3px; }
  .bonus-row h3{ font-size:18px; font-weight:700; margin-bottom:4px; }
  .bonus-row p{ margin:0; color:var(--ink-soft); font-size:14.5px; max-width:48ch; }
  .bonus-row .val{ text-align:right; }
  .bonus-row .val .was{ font-family:"IBM Plex Mono",monospace; text-decoration:line-through; color:var(--ink-faint); font-size:14px; display:block; }
  .stamp{
    display:inline-block; margin-top:6px;
    font-family:"Poppins",sans-serif; font-weight:800; font-size:13px; letter-spacing:.08em;
    color:var(--red); border:2px solid var(--red); padding:3px 10px;
    transform:rotate(-6deg);
  }

  .statement-foot{
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding:24px 26px; background:var(--surface-tint); flex-wrap:wrap;
  }
  .statement-foot .today .cap{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
  .statement-foot .today .amt{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:38px; color:var(--red); }
  .statement-foot .save{ font-size:14.5px; color:var(--ink-soft); }
  .statement-foot .save b{ color:var(--red-deep); }

  /* ---------- Photo placeholders ---------- */
  .photo{
    position:relative; aspect-ratio:4/3; overflow:hidden;
    background:
      radial-gradient(120% 140% at 15% 0%, color-mix(in srgb, var(--blue) 22%, transparent), transparent 60%),
      linear-gradient(135deg, var(--blue-deep), var(--surface-tint));
    border:1px solid var(--line);
    display:flex; align-items:flex-end;
  }
  .photo::before{
    content:""; position:absolute; inset:0;
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:26px 26px;
    opacity:.35;
  }
  .photo .cap{
    position:relative; z-index:1; margin:16px;
    font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.06em;
    color:#fff; background:rgba(10,20,40,.55); padding:8px 12px;
    text-transform:uppercase;
  }
  .avatar{
    width:96px; height:96px; border-radius:50%;
    background:var(--maroon-deep); color:#fff;
    display:grid; place-items:center;
    font-family:"Poppins",sans-serif; font-weight:700; font-size:26px;
    border:3px solid var(--surface); box-shadow:0 0 0 1px var(--line);
    flex:none;
  }
  .book-spine{
    width:74px; height:104px; flex:none;
    background:linear-gradient(160deg, var(--red), var(--red-deep));
    color:#fff; display:flex; align-items:center; justify-content:center;
    padding:8px; text-align:center;
    font-family:"Poppins",sans-serif; font-weight:700; font-size:10.5px; line-height:1.25;
    box-shadow:3px 3px 0 var(--ink);
  }
  .patch-chip{
    width:74px; height:74px; flex:none; border-radius:50%;
    background:conic-gradient(from 200deg, #9AA3AE, #D7DCE2, #9AA3AE);
    display:grid; place-items:center; color:#fff;
    font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:9.5px; letter-spacing:.03em;
    text-align:center; padding:6px;
    box-shadow:0 0 0 4px var(--surface), 0 0 0 5px var(--line);
  }

  /* ---------- Two-up ---------- */
  .two-up{ display:grid; gap:26px; }
  @media (min-width:800px){ .two-up{ grid-template-columns:1fr 1fr; } }
  .option-card{
    background:var(--surface); border:1px solid var(--line); padding:28px;
  }
  .option-card h3{ font-size:20px; margin-bottom:10px; }
  .option-card p{ color:var(--ink-soft); font-size:15px; margin:0; }
  .option-card .eyebrow{ margin-bottom:12px; }

  /* ---------- Missing / emotional ---------- */
  .missing-band{
    position:relative; overflow:hidden;
    background:
      radial-gradient(640px 380px at 88% 110%, color-mix(in srgb, var(--amber) 35%, transparent), transparent 65%),
      linear-gradient(155deg, var(--maroon), var(--maroon-deep) 78%);
    color:#F7E9E3; padding:80px 0;
  }
  .missing-band::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(1px 1px at 12% 25%, rgba(255,255,255,.3) 1px, transparent 0),
      radial-gradient(1px 1px at 35% 75%, rgba(255,255,255,.22) 1px, transparent 0),
      radial-gradient(1px 1px at 65% 35%, rgba(255,255,255,.28) 1px, transparent 0),
      radial-gradient(1px 1px at 85% 80%, rgba(255,255,255,.2) 1px, transparent 0);
    opacity:.6;
  }
  .missing-band .wrap{ position:relative; }
  .missing-band .eyebrow{ color:var(--amber); }
  .missing-band .eyebrow::before{ background:#fff; }
  .missing-band h2{ color:#fff; font-size:clamp(26px,3.6vw,40px); margin-top:14px; max-width:22ch; }
  .missing-list{
    margin-top:30px; display:flex; flex-wrap:wrap; gap:12px 28px;
  }
  .missing-list span{
    font-family:"Poppins",sans-serif; font-size:16px; color:#F0DCD0;
    padding-bottom:4px; border-bottom:1px solid rgba(255,255,255,.25);
  }
  .missing-band .payoff{ margin-top:34px; font-size:19px; color:#fff; font-weight:700; font-family:"Poppins",sans-serif; }

  /* ---------- Steps ---------- */
  .steps{ display:grid; gap:0; margin-top:8px; }
  .step{ display:grid; grid-template-columns:56px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
  .step:last-child{ border-bottom:none; }
  .step .n{ font-family:"IBM Plex Mono",monospace; font-size:26px; font-weight:600; color:var(--red); }
  .step h3{ font-size:17px; margin-bottom:4px; }
  .step p{ margin:0; color:var(--ink-soft); font-size:15px; max-width:56ch; }

  /* ---------- FAQ ---------- */
  .faq{ border-top:1px solid var(--line); }
  details{ border-bottom:1px solid var(--line); }
  summary{
    cursor:pointer; list-style:none;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding:20px 2px; font-family:"Poppins",sans-serif; font-weight:600; font-size:16.5px;
  }
  summary::-webkit-details-marker{ display:none; }
  summary .plus{
    flex:none; width:24px; height:24px; position:relative;
  }
  summary .plus::before, summary .plus::after{
    content:""; position:absolute; background:var(--red);
    top:50%; left:50%; transform:translate(-50%,-50%);
  }
  summary .plus::before{ width:16px; height:2px; }
  summary .plus::after{ width:2px; height:16px; transition:transform .18s ease; }
  details[open] summary .plus::after{ transform:translate(-50%,-50%) rotate(90deg); }
  details[open] summary .plus::after{ transform:translate(-50%,-50%) scaleY(0); }
  details p{ margin:0 0 22px; color:var(--ink-soft); font-size:15px; max-width:66ch; }

  /* ---------- Final CTA ---------- */
  .final{ background:var(--surface-tint); padding:88px 0; }
  .final .wrap{ display:flex; justify-content:center; }
  .voucher{
    position:relative; overflow:hidden;
    background:var(--surface); border:2px solid var(--ink);
    clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%);
    max-width:640px; width:100%;
    padding:52px 40px 44px;
    text-align:center; display:grid; justify-items:center; gap:20px;
  }
  .voucher::before, .voucher::after{
    content:""; position:absolute; top:50%; width:26px; height:26px;
    background:var(--bg); border-radius:50%; transform:translateY(-50%);
  }
  .voucher::before{ left:-13px; }
  .voucher::after{ right:-13px; }
  .voucher .ripple-deco{ position:absolute; top:-60px; right:-60px; width:220px; height:220px; opacity:.5; }
  .voucher .tag-cut{ position:relative; }
  .final h2{ font-size:clamp(26px,3.6vw,38px); max-width:20ch; position:relative; }
  .final .recap{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 10px; position:relative; }
  .final .recap span{
    font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--ink-soft);
    border:1px solid var(--line); padding:6px 12px; background:var(--surface-tint);
  }
  .final .price{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:60px; color:var(--red); position:relative; }
  .final .fine{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint); position:relative; }

  /* ---------- Booking ---------- */
  .book-panel{
    background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow);
    padding:36px;
  }
  .book-panel-embed{
    padding:20px; border-color:rgba(36,24,21,.12);
    box-shadow:0 18px 40px -20px rgba(43,10,14,.45);
    position:relative;
  }
  .book-panel-embed iframe{ display:block; }
  .field-grid{ display:grid; gap:18px; margin-top:26px; }
  @media (min-width:640px){ .field-grid.two{ grid-template-columns:1fr 1fr; } }
  label{ display:block; font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
  input[type=text],input[type=email],input[type=tel],input[type=datetime-local],select{
    width:100%; padding:13px 14px; font:15px/1.4 "Manrope",sans-serif; color:var(--ink);
    background:var(--bg); border:1.5px solid var(--line);
  }
  input:focus-visible,select:focus-visible{ outline:3px solid var(--focus); outline-offset:1px; }
  fieldset{ border:1.5px solid var(--line); padding:16px 16px 6px; }
  legend{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); padding:0 6px; }
  .radio-row,.check-row{ display:flex; flex-wrap:wrap; gap:18px; padding-bottom:14px; }
  .radio-row label,.check-row label{
    display:flex; align-items:center; gap:8px; text-transform:none;
    font-family:"Manrope",sans-serif; font-size:14.5px; letter-spacing:0; color:var(--ink-soft);
  }
  .radio-row input,.check-row input{ width:16px; height:16px; accent-color:var(--red); }
  .book-panel .btn{ margin-top:28px; }
  .confirm{ display:none; text-align:center; padding:40px 20px; }
  .confirm.show{ display:block; }
  .confirm .mark{
    width:56px; height:56px; margin:0 auto 18px; background:var(--red); color:#fff;
    display:grid; place-items:center; font-size:26px; clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
  }
  .confirm h3{ font-size:24px; margin-bottom:10px; }
  .confirm p{ color:var(--ink-soft); max-width:44ch; margin:0 auto; }

  /* ---------- Footer ---------- */
  footer{ padding:40px 0 120px; border-top:1px solid var(--line); }
  footer .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; align-items:center; }
  footer p{ margin:0; color:var(--ink-faint); font-size:13px; max-width:60ch; }

  /* ---------- Sticky mobile CTA ---------- */
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:50;
    background:var(--surface); border-top:1px solid var(--line);
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    display:flex; align-items:center; gap:12px;
    box-shadow:0 -14px 30px -18px rgba(0,0,0,.35);
  }
  .sticky-cta .amt{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:15px; flex:none; }
  .sticky-cta .amt small{ display:block; font-size:10px; color:var(--ink-faint); font-weight:500; }
  .sticky-cta .btn{ flex:1; padding:13px 18px; font-size:14px; }
  @media (min-width:900px){ .sticky-cta{ display:none; } }

  /* ---------- Reveal ---------- */
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

  ::selection{ background:var(--red); color:#fff; }
