/* ==========================================================================
   Btrkoop landing page — beterkoop.nl
   Brand tokens: landing-page/ds-bundle (teal #2DD4C8, ink #0C3D38)
   ========================================================================== */

@font-face{font-family:"Archivo";src:url("../fonts/archivo-var-latin.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/manrope-latin.woff2") format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrainsmono-800-latin.woff2") format("woff2");font-weight:800;font-display:swap}

:root{
  --ink:#0c3d38; --ink-2:#11534c; --ink-deep:#072824; --night:#051a17;
  --teal:#2dd4c8; --teal-deep:#11b3a6; --teal-dark:#0b8a80; --teal-text:#0f766e; --teal-soft:#d9f7f4; --mint:#effffd;
  --sun:#ffd23f; --sun-deep:#e8b400; --coral:#ff5f45;
  --text:#122430; --muted:#51626d; --line:#cfe5e2;
  --ah:#00a0e2; --jumbo:#ffd400; --dirk:#e30613;
  --f-display:"Archivo","Arial Black",Impact,sans-serif;
  --f-body:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1200px; --gut:clamp(16px,4vw,40px);
  --r-sm:12px; --r:20px; --r-lg:28px;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--night);color:var(--text);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
img{height:auto}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.05;text-wrap:balance}
p{margin:0}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
main{overflow-x:clip}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.num{font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--sun);color:var(--ink);padding:10px 16px;border-radius:10px;font-weight:800}
.skip:focus{top:12px}

/* ---------- shared type ---------- */
.display{font-family:var(--f-display);font-weight:900;font-stretch:112%;letter-spacing:-.03em}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.h2{font-family:var(--f-display);font-weight:900;font-stretch:110%;font-size:clamp(2.1rem,5vw,4rem);letter-spacing:-.035em;line-height:.95}
.lead{font-size:clamp(1.05rem,1.6vw,1.2rem);max-width:58ch}
/* the highlight: extruded teal on dark, white-with-ink offset on light */
.pop{color:var(--teal);text-shadow:.012em .012em 0 var(--teal-deep),.024em .024em 0 var(--teal-deep),.036em .036em 0 var(--teal-dark),.048em .048em 0 var(--teal-dark),.06em .06em 0 var(--ink-2),.072em .072em 0 var(--ink-2),.084em .084em 0 var(--ink-deep),.14em .16em .3em rgba(0,0,0,.45)}
.hl{color:var(--teal);text-shadow:.05em .06em 0 var(--ink)}
.hl-sun{color:var(--sun);text-shadow:.05em .06em 0 var(--ink-deep)}
.textlink{display:inline-flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px}
.textlink svg{width:18px;height:18px;transition:translate .2s}
.textlink:hover svg{translate:4px 0}

/* ---------- buttons & badges ---------- */
.badges{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.badge{display:block;border-radius:10px;transition:transform .2s,box-shadow .2s}
.badge img{display:block;height:52px;width:auto}
.badge:hover{transform:translateY(-3px);box-shadow:0 10px 24px -8px rgba(0,0,0,.5)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;font-weight:800;font-size:.95rem;text-decoration:none;white-space:nowrap;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn-teal{background:var(--teal);color:var(--ink);box-shadow:0 0 0 0 rgba(45,212,200,.5)}
.btn-ink{background:var(--ink);color:#fff}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--mint);padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 0;pointer-events:none}
.hdr{pointer-events:auto;display:flex;align-items:center;gap:26px;height:60px;max-width:calc(var(--wrap) + 2*var(--gut));margin-inline:auto;padding-inline:calc(var(--gut) - 12px);border-radius:999px;border:1px solid transparent;transition:max-width .45s cubic-bezier(.2,.8,.2,1),height .3s,background .35s,border-color .35s,box-shadow .35s,padding .3s}
.scrolled .hdr{height:54px;max-width:1000px;padding-inline:18px 8px;background:rgba(7,40,36,.72);border-color:rgba(45,212,200,.18);backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);box-shadow:0 12px 32px -14px rgba(0,0,0,.55)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--f-display);font-weight:900;font-stretch:108%;font-size:1.4rem;letter-spacing:-.03em;transition:font-size .3s}
.brand img{width:32px;height:32px;transition:width .3s,height .3s}
.scrolled .hdr .brand{font-size:1.2rem}
.scrolled .hdr .brand img{width:26px;height:26px}
.nav{margin-left:auto;transition:opacity .25s}
.nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.nav a{text-decoration:none;font-weight:700;font-size:.92rem;opacity:.85;transition:opacity .2s,color .2s;white-space:nowrap}
.nav a:hover{opacity:1;color:var(--teal)}
.nav-folder::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sun);margin-right:8px;vertical-align:1px;box-shadow:0 0 10px var(--sun)}
.hdr-end{display:flex;align-items:center;gap:12px;margin-left:auto}
.nav+.hdr-end{margin-left:0}
.scrolled .hdr-end .btn{padding:9px 16px;font-size:.88rem}
.lang{font-weight:800;font-size:.85rem;text-decoration:none;opacity:.8;padding:6px 8px;border-radius:8px}
.lang:hover{opacity:1;background:rgba(255,255,255,.08)}
.menu-btn{display:none;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:inherit;cursor:pointer;place-items:center}
.menu-btn svg{width:22px;height:22px}
@media (max-width:1000px){
  .nav{position:fixed;inset:78px 12px auto 12px;background:rgba(7,40,36,.96);border-radius:24px;padding:10px 22px 18px;display:none;box-shadow:0 30px 60px rgba(0,0,0,.4);width:auto}
  .nav.open{display:block}
  .nav ul{flex-direction:column;gap:0}
  .nav a{display:block;padding:13px 0;font-size:1.08rem;border-bottom:1px solid rgba(255,255,255,.08)}
  .menu-btn{display:grid}
}
@media (max-width:420px){.hdr-end .btn{display:none}}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{position:relative;overflow:hidden;isolation:isolate;color:var(--mint);padding:calc(80px + env(safe-area-inset-top,0px) + clamp(16px,4vw,44px)) 0 clamp(64px,7vw,90px);
  background:radial-gradient(60% 55% at 78% 30%,rgba(45,212,200,.38),transparent 70%),radial-gradient(45% 50% at 8% 95%,rgba(17,179,166,.28),transparent 70%),linear-gradient(170deg,#0f4a44 0%,var(--ink) 38%,var(--ink-deep) 75%,var(--night) 100%)}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px) 0 0/100% 56px,linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px) 0 0/56px 100%;mask:radial-gradient(80% 70% at 60% 40%,#000,transparent)}
.aurora{position:absolute;z-index:-1;width:70vmax;aspect-ratio:1;right:-20vmax;top:-25vmax;border-radius:50%;background:conic-gradient(from 0deg,rgba(45,212,200,.0),rgba(45,212,200,.28),rgba(255,210,63,.12),rgba(45,212,200,.0) 60%);filter:blur(60px);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:32px clamp(24px,4vw,56px);align-items:center}
.hero-copy{display:grid;gap:30px;align-content:center}
@media (min-width:901px){.h1-main{font-size:clamp(2.6rem,4.9vw,4.7rem)}}
.pill{justify-self:start;display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 10px;border-radius:999px;background:rgba(45,212,200,.12);border:1px solid rgba(45,212,200,.35);font-weight:700;font-size:.88rem;color:var(--teal-soft)}
.pill i{width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(45,212,200,.7)}
.hero h1{display:grid;gap:22px}
.h1-main{font-family:var(--f-display);font-weight:900;font-stretch:104%;font-size:clamp(2.4rem,10.4vw,4.4rem);line-height:.9;letter-spacing:-.04em;display:grid}
.h1-main .l2{position:relative;justify-self:start;padding-bottom:.1em}
.swoosh{position:absolute;left:-.02em;right:.1em;bottom:-.12em;height:.28em;width:calc(100% - .1em);overflow:visible}
.swoosh path{fill:none;stroke:var(--sun);stroke-width:7;stroke-linecap:round}
.h1-sub{font-family:var(--f-body);font-weight:600;font-size:clamp(1.08rem,1.7vw,1.3rem);line-height:1.45;letter-spacing:0;color:#c6ece8;max-width:32ch}
.h1-sub strong{color:#fff;font-weight:800}
.hero-cta{display:grid;gap:18px}
.proof{margin:0;font-size:.92rem;color:#a9d8d3;font-weight:600}
.proof b{color:#fff}

/* stage */
.stage{position:relative;width:100%;aspect-ratio:1/1.02;container-type:inline-size}
.phone{position:absolute;padding:1.9cqw;border-radius:6.6cqw;background:linear-gradient(145deg,#44464d,#0d0d10 38%,#26272c);box-shadow:inset 0 0 0 .35cqw #5a5b62,0 3cqw 5cqw -1.5cqw rgba(0,15,13,.55),0 10cqw 14cqw -5cqw rgba(0,15,13,.6)}
.phone img{display:block;width:100%;height:auto;border-radius:4.9cqw;background:#f1f1f5}
.hero .ph-back{left:3cqw;top:1cqw;width:33cqw;rotate:-11deg;z-index:1;filter:saturate(.9) brightness(.92)}
.hero .ph-front{left:57cqw;top:0;width:38cqw;rotate:8deg;z-index:2}
.board{position:absolute;left:2cqw;top:40cqw;width:82cqw;z-index:3;background:linear-gradient(#112724,#081513);border-radius:3.2cqw;padding:3.4cqw 3.8cqw 3.8cqw;color:#e9f7f5;font-size:2.6cqw;line-height:1.4;box-shadow:0 0 0 .5cqw #1d3d39,0 0 0 1cqw rgba(45,212,200,.12),0 5cqw 8cqw -2cqw rgba(0,0,0,.7),0 0 12cqw -2cqw rgba(45,212,200,.35);transform:perspective(170cqw) rotateY(-7deg) rotateX(4deg)}
.board::before,.board::after{content:"";position:absolute;top:1.6cqw;width:1.2cqw;height:1.2cqw;border-radius:50%;background:#2b4642;box-shadow:inset 0 .2cqw .2cqw rgba(0,0,0,.6)}
.board::before{left:1.6cqw}.board::after{right:1.6cqw}
.b-head{display:flex;justify-content:space-between;align-items:center;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:1.95cqw;color:var(--teal);margin-bottom:1.8cqw}
.b-head span:first-child::before{content:"";display:inline-block;width:1.5cqw;height:1.5cqw;border-radius:50%;background:var(--teal);margin-right:1.3cqw;box-shadow:0 0 1.6cqw var(--teal);vertical-align:middle}
.b-row{display:grid;grid-template-columns:4.4cqw 1fr auto auto;gap:2.4cqw;align-items:center;padding:1.15cqw 0;border-top:.25cqw solid rgba(255,255,255,.07)}
.b-logo{width:4.4cqw;height:4.4cqw;border-radius:1cqw;background:#fff;padding:.4cqw;object-fit:contain}
.b-row b{font-weight:800}
.b-row span{opacity:.6;font-size:2.15cqw}
.b-row strong{font-family:var(--f-mono);font-weight:800;color:var(--sun)}
.b-sum{display:flex;justify-content:space-between;align-items:baseline;gap:2cqw;padding:1.4cqw 0 2.2cqw;border-top:.25cqw solid rgba(255,255,255,.07);font-size:2.3cqw}
.b-sum s{opacity:.55;text-decoration-color:var(--coral);text-decoration-thickness:.3cqw}
.b-sum strong{font-family:var(--f-mono);font-size:3.2cqw}
.b-save{display:flex;align-items:center;justify-content:space-between;gap:2cqw}
.b-save small{font-weight:800;letter-spacing:.13em;font-size:2cqw;color:var(--teal);line-height:1.35}
.flaps{display:flex;gap:.8cqw}
.flap{position:relative;display:grid;place-items:center;width:7.8cqw;height:11.2cqw;border-radius:1.2cqw;background:linear-gradient(#22302e 50%,#18231f 50%);color:var(--sun);font-family:var(--f-mono);font-weight:800;font-size:8.4cqw;line-height:1;box-shadow:inset 0 .3cqw 0 rgba(255,255,255,.07),0 .6cqw 1cqw rgba(0,0,0,.5);overflow:hidden;text-shadow:0 0 2cqw rgba(255,210,63,.45)}
.flap::after{content:"";position:absolute;left:0;right:0;top:50%;height:.3cqw;background:#040a09}
.flap.sep{width:3.4cqw;background:none;box-shadow:none}
.flap.sep::after{display:none}
.flap.flip{animation:flip .08s linear}
@keyframes flip{from{transform:scaleY(.15)}to{transform:scaleY(1)}}
.sticker{position:absolute;z-index:4;display:grid;place-content:center;text-align:center;font-family:var(--f-display);font-weight:900;filter:drop-shadow(0 1.6cqw 2.4cqw rgba(0,0,0,.45))}
.st-burst{left:66cqw;top:31cqw;width:21cqw;rotate:10deg}
.st-burst svg{display:block;width:100%;height:auto}
.st-burst span{position:absolute;inset:0;display:grid;place-content:center;color:var(--ink);font-size:3.5cqw;line-height:.95;font-stretch:100%}
@media (max-width:900px){
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .stage{max-width:560px;justify-self:center;margin-top:8px}
}

/* ---------- crossing tapes ---------- */
.tapes{position:relative;height:clamp(80px,9vw,110px);margin-top:calc(-1 * clamp(40px,4.5vw,55px));z-index:5;overflow:hidden;pointer-events:none;background:linear-gradient(transparent 50%,var(--mint) 50%)}
.tape{position:absolute;left:-5%;width:110%;padding:14px 0;display:flex;overflow:hidden;white-space:nowrap;pointer-events:auto}
.tape-a{top:24%;background:var(--teal);color:var(--ink);rotate:-2.2deg;box-shadow:0 12px 30px -10px rgba(0,0,0,.45);z-index:2}
.tape ul{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0 14px 0 0;flex:none;font-family:var(--f-display);font-weight:900;font-stretch:115%;font-size:clamp(1.05rem,2vw,1.45rem);text-transform:uppercase;letter-spacing:-.01em}
.tape li{display:flex;align-items:center;gap:12px}
.tape li::after{margin-left:16px}
.lg{width:1.5em;height:1.5em;border-radius:.35em;background:#fff;padding:.12em;object-fit:contain;box-shadow:0 2px 0 rgba(12,61,56,.25)}
.tape li::after{content:"";width:12px;height:12px;border-radius:50%;background:currentColor;opacity:.8}
.tape s{opacity:.55;font-size:.8em;margin-right:6px;text-decoration-color:var(--coral);text-decoration-thickness:3px}
.tape .soon{opacity:.6}
.tape .new{font-family:var(--f-body);font-size:.6em;font-weight:800;letter-spacing:.06em;background:var(--sun);color:var(--ink);padding:3px 9px;border-radius:99px;margin-left:4px;rotate:-4deg}
@media (prefers-reduced-motion:no-preference){
  .tape-a ul{animation:marquee 38s linear infinite}
  @keyframes marquee{to{transform:translateX(-100%)}}
  .tape:hover ul{animation-play-state:paused}
}

/* ==========================================================================
   Sections
   ========================================================================== */
.sec{position:relative;padding-block:clamp(80px,11vw,140px)}
.sec-head{display:grid;gap:18px;margin-bottom:clamp(40px,6vw,64px)}

/* ---------- folder ---------- */
.folder{background:radial-gradient(50% 60% at 15% 40%,rgba(45,212,200,.28),transparent 70%),var(--mint);color:var(--text);padding-top:clamp(40px,6vw,80px)}
.folder .h2{color:var(--ink)}
.folder-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(40px,7vw,100px);align-items:center}
.folder-cover{position:relative;display:block;width:min(100%,430px);justify-self:center;rotate:-4deg;transition:rotate .4s cubic-bezier(.2,.8,.2,1),scale .4s cubic-bezier(.2,.8,.2,1)}
.folder-cover:hover,.folder-cover:focus-visible{rotate:-1deg;scale:1.03}
.folder-cover img{position:relative;display:block;width:100%;height:auto;aspect-ratio:1500/2129;border-radius:10px;background:var(--ink);box-shadow:0 2px 0 rgba(0,0,0,.05),0 40px 70px -30px rgba(12,61,56,.6),0 18px 30px -18px rgba(12,61,56,.4)}
.folder-pages,.folder-pages::before{position:absolute;inset:0;border-radius:10px;background:#fff;box-shadow:0 20px 40px -24px rgba(12,61,56,.5)}
.folder-pages{translate:14px 10px;rotate:3deg}
.folder-pages::before{content:"";translate:12px 8px;rotate:3deg;background:#eefaf8}
.folder-flag{position:absolute;right:-18px;top:18%;background:var(--sun);color:var(--ink);font-weight:800;font-size:1rem;padding:10px 18px;border-radius:999px;rotate:8deg;box-shadow:4px 5px 0 var(--ink)}
.folder-copy{display:grid;gap:24px;justify-items:start}
.folder-copy .lead{color:#35484f;max-width:40ch}
.folder-meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.folder-meta li{background:#fff;border-radius:999px;padding:8px 14px;font-weight:600;font-size:.92rem;box-shadow:0 1px 0 var(--line)}
.folder-meta b{font-weight:800;color:var(--ink)}
.folder-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:4px}
.btn-lg{font-size:1.15rem;padding:17px 28px}
.btn svg{width:22px;height:22px;transition:translate .2s}
.btn-sun{background:var(--sun);color:var(--ink);box-shadow:5px 6px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.btn-sun:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 var(--ink)}
.btn-sun:hover svg{translate:3px 0}
.btn-sun:active{transform:translate(3px,4px);box-shadow:2px 2px 0 var(--ink)}
.btn-ghost{color:var(--ink);border:2px solid rgba(12,61,56,.25)}
.btn-ghost:hover{border-color:var(--ink)}
@media (max-width:800px){.folder-grid{grid-template-columns:minmax(0,1fr)}.folder-cover{width:min(78%,360px)}.folder-flag{right:-10px}}

/* ---------- steps (sticky) ---------- */
.steps{background:linear-gradient(180deg,var(--teal-soft),#f2fffd 60%,var(--teal-soft));color:var(--text);margin-top:-1px}
.steps .eyebrow{color:var(--teal-text)}
.steps .h2{color:var(--ink)}
.steps-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,90px)}
.steps-visual{position:sticky;top:110px;align-self:start;height:min(620px,calc(100vh - 150px));display:grid;place-items:center;container-type:size}
.steps-visual .bignum{position:absolute;font-family:var(--f-display);font-weight:900;font-stretch:120%;font-size:min(62cqh,80cqw);line-height:.8;color:transparent;-webkit-text-stroke:2px rgba(12,61,56,.12);left:0;top:4%;transition:opacity .4s}
.screen-stack{position:relative;width:min(300px,52cqh);rotate:-4deg}
.screen-stack .phone{position:relative;padding:10px;border-radius:44px;box-shadow:inset 0 0 0 2px #5a5b62,0 30px 60px -20px rgba(12,61,56,.5),0 70px 100px -40px rgba(12,61,56,.45)}
.screen-stack .phone img{border-radius:34px}
.screen-stack .phone img+img{position:absolute;inset:10px;width:calc(100% - 20px)}
.screen-stack img{opacity:0;transition:opacity .45s}
.screen-stack img.on{opacity:1}
.step-list{list-style:none;margin:0;padding:0;display:grid}
.step{min-height:min(48vh,400px);display:grid;align-content:center;gap:14px;padding-block:32px;opacity:.5;transition:opacity .4s}
.step.active,.no-js .step{opacity:1}
.step-n{font-family:var(--f-mono);font-weight:800;font-size:1rem;color:var(--teal-text);display:flex;align-items:center;gap:12px}
.step-n::after{content:"";height:2px;width:60px;background:currentColor;opacity:.4}
.step h3{font-family:var(--f-display);font-weight:900;font-stretch:108%;font-size:clamp(1.9rem,3.6vw,2.9rem);letter-spacing:-.03em;color:var(--ink)}
.step p{max-width:48ch;color:#35484f}
.step .mobile-shot{display:none}
.steps-foot{margin-top:24px;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.premium{display:inline-block;vertical-align:middle;font-family:var(--f-body);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:99px;background:var(--sun);color:var(--ink);line-height:1.4}
.premium-note{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;color:#35484f;font-size:.95rem}
.premium-note b{color:var(--ink)}
.steps-foot .textlink{color:var(--teal-text)}
@media (max-width:900px){
  .steps-grid{grid-template-columns:minmax(0,1fr)}
  .steps-visual{display:none}
  .step{min-height:0;opacity:1;padding-block:28px;border-top:1px solid var(--line)}
  .step .mobile-shot{display:block;width:62%;max-width:260px;margin:8px auto 0;rotate:-3deg}
  .step .mobile-shot .phone{position:relative;padding:8px;border-radius:36px;box-shadow:inset 0 0 0 2px #5a5b62,0 24px 40px -16px rgba(12,61,56,.5)}
  .step .mobile-shot img{border-radius:28px;display:block;width:100%}
}

/* ---------- bento ---------- */
.features{background:radial-gradient(50% 40% at 90% 0%,rgba(45,212,200,.18),transparent 70%),var(--ink-deep);color:var(--mint)}
.features .eyebrow{color:var(--teal)}
.features .lead{color:#b5dcd8}
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.card{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(22px,2.6vw,32px);background:linear-gradient(160deg,#10423c,#0a302c);border:1px solid rgba(45,212,200,.14);display:grid;gap:14px;align-content:start;box-shadow:0 30px 60px -40px rgba(0,0,0,.8);min-width:0}
.card h3{font-family:var(--f-display);font-weight:900;font-stretch:106%;font-size:clamp(1.35rem,2.2vw,1.85rem);letter-spacing:-.025em;line-height:1.02}
.card p{color:#b5dcd8;font-size:.98rem;max-width:44ch}
.ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(45,212,200,.14);color:var(--teal)}
.ico svg{width:26px;height:26px}
.card .textlink{color:var(--teal);justify-self:start;font-size:.95rem}
.c-history{grid-column:span 3;grid-row:span 2}
.chart{width:100%;height:auto;display:block}
.chart text{font-family:var(--f-body);font-size:11px;fill:#8fbcb7;font-weight:600}
.chart .grid{stroke:rgba(255,255,255,.09)}
.chart .ln{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:0}
.js .chart .ln{stroke-dashoffset:420;transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1)}
.js .chart.in .ln{stroke-dashoffset:0}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;font-weight:700;color:#cde9e6}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.c-compare{grid-column:span 3}
.c-fav,.c-receipt{grid-column:span 3}
.ptable{width:100%;border-collapse:collapse;font-size:.95rem}
.ptable caption{text-align:left;font-weight:800;color:#fff;padding-bottom:8px}
.ptable td{padding:10px 0;border-top:1px solid rgba(255,255,255,.1)}
.ptable td:nth-child(2),.ptable td:nth-child(3){text-align:right;font-family:var(--f-mono);font-weight:800}
.ptable td:nth-child(3){color:#8fbcb7;font-size:.82rem;padding-left:14px}
.ptable tr.best td{color:var(--teal)}
.tlg{width:24px;height:24px;border-radius:6px;background:#fff;padding:2px;object-fit:contain;vertical-align:middle;margin-right:10px}
.ptable tr.best td:first-child::after{content:attr(data-best);margin-left:10px;font-family:var(--f-body);font-size:.7rem;font-weight:800;background:var(--teal);color:var(--ink);padding:2px 8px;border-radius:99px;vertical-align:2px}
.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:10px}
.c-share{grid-column:span 3;grid-template-columns:minmax(0,1fr) auto;column-gap:22px}
.c-share>*{grid-column:1}
.c-share .qr{grid-column:2;grid-row:1/span 3;align-self:center;width:130px;background:#fff;border-radius:18px;padding:12px;rotate:4deg;box-shadow:0 20px 40px -15px rgba(0,0,0,.6)}
.c-share .qr svg{display:block;width:100%;height:auto}
@media (max-width:560px){.c-share{grid-template-columns:minmax(0,1fr)}.c-share .qr{grid-column:1;grid-row:auto;justify-self:start;width:110px}}
.toast{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;background:#fff;color:var(--text);border-radius:16px;padding:12px 14px;box-shadow:0 18px 36px -18px rgba(0,0,0,.7);font-size:.86rem;line-height:1.35}
.toast .ti{grid-row:span 2;width:36px;height:36px;border-radius:10px;background:var(--teal);display:grid;place-items:center;color:var(--ink)}
.toast .ti svg{width:20px;height:20px}
.toast b{font-weight:800}
.toast span{color:var(--muted)}
@media (max-width:1000px){
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-history,.c-compare,.c-share{grid-column:span 2;grid-row:auto}
  .c-fav,.c-receipt{grid-column:span 1}
}
@media (max-width:640px){
  .bento{grid-template-columns:minmax(0,1fr)}
  .c-history,.c-compare,.c-share,.c-fav,.c-receipt{grid-column:auto}
}

/* ---------- supermarkets ---------- */
.stores{background:var(--teal);color:var(--ink);overflow:hidden}
.stores .eyebrow{color:var(--ink)}
.stores-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.store-names{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.06em .34em;font-family:var(--f-display);font-weight:900;font-stretch:118%;font-size:clamp(2.4rem,8vw,6.6rem);line-height:1;letter-spacing:-.045em;text-transform:uppercase}
.store-names li{display:inline-flex;align-items:center;gap:.22em;transition:transform .2s}
.slg{width:.82em;height:.82em;border-radius:.16em;background:#fff;padding:.07em;object-fit:contain;box-shadow:.04em .05em 0 var(--ink);flex:none}
.store-names .is-new{position:relative}
.store-names .new{position:absolute;right:-.3em;top:-.15em;font-family:var(--f-body);font-size:.85rem;letter-spacing:.06em;font-weight:800;background:var(--sun);color:var(--ink);padding:4px 11px;border-radius:99px;rotate:6deg;text-transform:uppercase;text-shadow:none;box-shadow:3px 3px 0 var(--ink)}
.store-names .soon .slg{opacity:.55;filter:grayscale(1)}
.store-names li:hover{transform:rotate(-2deg) scale(1.03)}
.store-names li:nth-child(odd){color:var(--ink)}
.store-names li:nth-child(even){color:#fff;text-shadow:.04em .05em 0 var(--ink)}
.store-names .soon{color:transparent !important;-webkit-text-stroke:2px rgba(12,61,56,.55);text-shadow:none !important;position:relative}
.store-names .soon small{position:absolute;right:-.2em;top:-.1em;font-family:var(--f-body);font-size:.8rem;letter-spacing:.06em;font-weight:800;background:var(--ink);color:var(--sun);-webkit-text-stroke:0;padding:3px 9px;border-radius:99px;rotate:6deg;text-transform:uppercase}
.stores-foot{margin-top:40px;display:flex;gap:24px;flex-wrap:wrap;align-items:center;justify-content:space-between;font-weight:700}

/* ---------- index ---------- */
.index{background:radial-gradient(50% 60% at 0% 100%,rgba(45,212,200,.16),transparent 70%),var(--night);color:var(--mint)}
.index-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,80px);align-items:center}
.index .eyebrow{color:var(--teal)}
.index .lead{color:#b5dcd8}
.index-copy{display:grid;gap:22px;align-content:start}
.index-copy .textlink{color:var(--teal);justify-self:start}
.rank{list-style:none;margin:0;padding:clamp(18px,3vw,30px);display:grid;gap:10px;background:linear-gradient(#0f2320,#081412);border-radius:var(--r-lg);box-shadow:0 0 0 1px rgba(45,212,200,.15),0 40px 80px -40px rgba(0,0,0,.9),0 0 90px -30px rgba(45,212,200,.35)}
.rank-head{display:flex;justify-content:space-between;gap:10px;font-weight:800;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);padding-bottom:4px}
.rank li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center}
.rank .pos{height:52px;border-radius:9px;display:grid;place-items:center;font-family:var(--f-mono);font-weight:800;font-size:1.5rem;color:var(--sun);background:linear-gradient(#22302e 50%,#18231f 50%);position:relative}
.rank .pos::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:#040a09}
.rank .nm{display:grid;gap:6px;font-weight:800}
.rank .bar{height:8px;border-radius:9px;background:rgba(255,255,255,.08);overflow:hidden}
.rank .bar i{display:block;height:100%;width:calc(var(--w) * 1%);min-width:6px;background:linear-gradient(90deg,var(--teal),var(--sun));border-radius:9px;transform-origin:left}
.js .rank .bar i{transform:scaleX(0);transition:transform 1.2s cubic-bezier(.3,.8,.2,1)}
.js .rank.in .bar i{transform:none}
.rank .val{font-family:var(--f-mono);font-weight:800;text-align:right;font-size:.95rem}
.rank .val small{display:block;font-family:var(--f-body);font-size:.72rem;color:#8fbcb7;font-weight:700}
.rank li:first-of-type .val{color:var(--teal)}
.rank .rank-head{display:flex}
.rank .rank-note{display:block;font-size:.8rem;color:#8fbcb7;padding-top:6px}
@media (max-width:900px){.index-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- proof ---------- */
.proofsec{background:var(--mint);color:var(--text)}
.proofsec .eyebrow{color:var(--teal-text)}
.proofsec .h2{color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:clamp(48px,7vw,80px)}
.stat{display:grid;gap:4px;border-top:4px solid var(--ink);padding-top:14px}
.stat b{font-family:var(--f-display);font-weight:900;font-stretch:112%;font-size:clamp(2.4rem,5vw,4.2rem);line-height:1;letter-spacing:-.04em;color:var(--ink)}
.stat:nth-child(2) b{color:var(--teal);text-shadow:.05em .06em 0 var(--ink)}
.stat span{font-weight:700;color:var(--muted)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;list-style:none;margin:0;padding:0;align-items:start}
.quote{background:#fff;border-radius:6px;padding:24px 22px 34px;font-family:var(--f-mono);box-shadow:0 30px 50px -30px rgba(12,61,56,.45);display:grid;gap:14px;rotate:var(--r,0deg);-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#000 90deg,#0000 0) bottom/20px 10px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#000 90deg,#0000 0) bottom/20px 10px repeat-x}
.quote .amt{font-family:var(--f-display);font-weight:900;font-stretch:112%;font-size:2.6rem;line-height:1;letter-spacing:-.04em;color:var(--ink);background:var(--teal);justify-self:start;padding:4px 12px 6px;border-radius:6px;rotate:-2deg}
.quote .amt small{font-family:var(--f-body);font-size:.8rem;letter-spacing:0;font-weight:800;margin-left:6px}
.quote blockquote{margin:0;font-family:var(--f-body);font-weight:600;font-size:1.05rem;line-height:1.5;color:var(--text)}
.quote figcaption{font-size:.8rem;font-weight:800;color:var(--muted);border-top:2px dashed var(--line);padding-top:12px;letter-spacing:.04em}
@media (max-width:860px){.quotes{grid-template-columns:minmax(0,1fr)}}

/* ---------- faq ---------- */
.faq{background:var(--teal-soft);color:var(--text)}
.faq .eyebrow{color:var(--teal-text)}
.faq .h2{color:var(--ink)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,80px);align-items:start}
.faq-aside{position:sticky;top:110px;display:grid;gap:22px}
.contact-card{background:var(--ink);color:var(--mint);border-radius:var(--r);padding:22px;display:grid;gap:6px}
.contact-card a{color:var(--teal);font-weight:800;font-size:1.15rem;word-break:break-all}
.qa{border-bottom:2px solid rgba(12,61,56,.12)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:22px 0;font-weight:800;font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232dd4c8' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;transition:rotate .25s}
.qa[open] summary::after{rotate:45deg}
.qa p{padding:0 0 24px;max-width:62ch;color:#35484f}
@media (max-width:860px){.faq-grid{grid-template-columns:minmax(0,1fr)}.faq-aside{position:static}}

/* ---------- final cta ---------- */
.final{background:radial-gradient(60% 70% at 50% 110%,rgba(45,212,200,.45),transparent 70%),linear-gradient(180deg,var(--ink-deep),var(--ink));color:var(--mint);text-align:center;overflow:hidden}
.final-in{display:grid;gap:28px;justify-items:center}
.final .h2{font-size:clamp(2.3rem,6vw,5rem);max-width:15ch}
.final .lead{color:#b5dcd8;margin-inline:auto}
.final .flaps-lg{display:flex;gap:10px;justify-content:center}
.final .flaps-lg .flap{width:clamp(44px,8vw,86px);height:clamp(64px,11.5vw,124px);font-size:clamp(38px,7.4vw,80px);border-radius:12px}
.final .flaps-lg .flap::after{height:3px}
.final .flaps-lg .flap.sep{width:clamp(18px,3vw,34px)}
.final .badges{justify-content:center}
.team{font-size:.95rem;color:#9fcfca;max-width:56ch}
.team strong{color:#fff}

/* ---------- footer ---------- */
.site-footer{background:var(--night);color:#a3c9c4;padding-block:64px 40px;font-size:.95rem}
.ft-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}
.ft-brand{display:grid;gap:14px;align-content:start}
.ft-brand .brand{color:var(--mint)}
.ft-brand p{max-width:34ch}
.site-footer h2{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:14px;font-family:var(--f-body);font-weight:800}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--teal)}
.ft-bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.85rem}
@media (max-width:860px){.ft-grid{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}

/* ==========================================================================
   Subpages
   ========================================================================== */
.nav a[aria-current="page"]{color:var(--teal);opacity:1}
.page-hero{position:relative;overflow:hidden;isolation:isolate;color:var(--mint);padding:calc(80px + env(safe-area-inset-top,0px) + clamp(24px,5vw,56px)) 0 clamp(48px,6vw,84px);
  background:radial-gradient(60% 60% at 80% 20%,rgba(45,212,200,.32),transparent 70%),radial-gradient(45% 50% at 5% 100%,rgba(17,179,166,.22),transparent 70%),linear-gradient(170deg,#0f4a44 0%,var(--ink) 40%,var(--ink-deep) 80%,var(--night) 100%)}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px) 0 0/100% 56px,linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px) 0 0/56px 100%;mask:radial-gradient(80% 80% at 60% 30%,#000,transparent)}
.page-hero-in{display:grid;gap:22px;align-content:start}
.has-visual .page-hero-in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;column-gap:clamp(24px,5vw,64px)}
.page-hero-copy{display:grid;gap:22px;align-content:center}
.crumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:.85rem;font-weight:700;color:#8fcfc8}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--teal)}
.crumbs [aria-current]{color:var(--mint)}
.page-title{font-family:var(--f-display);font-weight:900;font-stretch:106%;font-size:clamp(2.4rem,6vw,4.6rem);line-height:.95;letter-spacing:-.035em}
.page-lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:#c6ece8;max-width:50ch;font-weight:500}
.page-lead b{color:#fff}
.page-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px}
.btn-glass{color:var(--mint);background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.22)}
.btn-glass:hover{background:rgba(255,255,255,.15)}
.page-hero .btn-sun{box-shadow:5px 6px 0 var(--night)}
.page-hero .btn-sun:hover{box-shadow:7px 8px 0 var(--night)}
.page-visual{position:relative;width:100%;aspect-ratio:1/1;container-type:inline-size}
.page-visual .pv-a{left:8cqw;top:2cqw;width:43cqw;rotate:-6deg;z-index:2}
.page-visual .pv-b{left:50cqw;top:9cqw;width:41cqw;rotate:7deg;z-index:1}
.page-visual .pv-toast{position:absolute;left:40cqw;top:60cqw;width:56cqw;z-index:3;rotate:3deg}
.idx-visual{aspect-ratio:auto;container-type:normal}
.takeaway{font-size:1.05rem;color:#c6ece8;border-left:4px solid var(--sun);padding-left:14px;max-width:46ch}
.takeaway strong{color:#fff}
.rank-legend{font-size:.8rem;color:#8fbcb7;margin-top:12px}
.chain-row{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;min-height:40px}
.chain-row img{display:block;width:40px;height:40px;border-radius:10px;background:#fff;padding:3px;object-fit:contain}
@media (max-width:900px){.has-visual .page-hero-in{grid-template-columns:minmax(0,1fr)}.page-visual{max-width:420px;justify-self:center}}

/* shared light / dark sections */
.light-sec{background:var(--mint);color:var(--text)}
.light-sec .h2{color:var(--ink)}
.dark-sec{background:radial-gradient(50% 60% at 100% 0%,rgba(45,212,200,.16),transparent 70%),var(--ink-deep);color:var(--mint)}
.dark-sec .lead{color:#b5dcd8}
.dark-sec .textlink{color:var(--teal)}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,80px);align-items:center}
.split-copy{display:grid;gap:22px;justify-items:start}
.split-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.card-note{color:#b5dcd8;font-size:.95rem}
.card-note b{color:var(--sun)}
.nsteps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.nsteps li{background:#fff;border-radius:22px;padding:26px;display:grid;gap:10px;align-content:start;box-shadow:0 1px 0 var(--line),0 24px 50px -36px rgba(12,61,56,.5)}
.nsteps h3,.feats h3{font-family:var(--f-display);font-weight:900;font-stretch:104%;font-size:1.4rem;letter-spacing:-.02em;color:var(--ink);line-height:1.1}
.nsteps p,.feats p{color:#35484f}
.row-n{font-family:var(--f-mono);font-weight:800;color:var(--teal-text);display:flex;align-items:center;gap:12px}
.row-n::after{content:"";height:2px;width:48px;background:currentColor;opacity:.4}
.feats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.feats li{background:#fff;border-radius:22px;padding:24px;display:grid;gap:12px;align-content:start;box-shadow:0 1px 0 var(--line)}
.feats h3{font-size:1.2rem}
.feats p{font-size:.95rem}
.light-sec .ico{background:var(--teal-soft);color:var(--teal-text)}
.toasts{display:grid;gap:12px;justify-items:start}
.toasts .toast{width:min(100%,340px)}
.toasts .toast:nth-child(2){margin-left:28px}
.toasts .toast:nth-child(3){margin-left:10px}
.link-cards{display:grid;gap:12px}
.link-card{display:grid;gap:4px;padding:22px 24px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid rgba(45,212,200,.2);text-decoration:none;color:var(--mint);transition:background .2s,transform .2s}
.link-card b{font-family:var(--f-display);font-weight:900;font-size:1.25rem}
.link-card span{color:#b5dcd8}
.link-card:hover{background:rgba(45,212,200,.14);transform:translateX(4px)}
.prose{max-width:780px;display:grid;gap:18px}
.prose p{color:#35484f;font-size:1.05rem}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}.nsteps{grid-template-columns:minmax(0,1fr)}.feats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.feats{grid-template-columns:minmax(0,1fr)}}

/* hoe werkt het: alternating rows */
.rows-sec{background:var(--mint);color:var(--text)}
.rows{list-style:none;margin:0;padding:0;display:grid;gap:clamp(56px,8vw,110px)}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,90px);align-items:center}
.row:nth-child(even) .row-copy{order:2}
.row-copy{display:grid;gap:16px;justify-items:start}
.row-copy p{color:#35484f;max-width:52ch}
.row-title{font-family:var(--f-display);font-weight:900;font-stretch:106%;font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;color:var(--ink)}
.row-visual{display:grid;place-items:center;min-height:300px;filter:drop-shadow(0 30px 40px rgba(12,61,56,.25))}
.row-visual .phone,.row-visual.duo .phone{position:relative;width:min(260px,62%);padding:9px;border-radius:40px;box-shadow:inset 0 0 0 2px #5a5b62}
.row-visual .phone img{border-radius:31px}
.row-visual.duo{grid-template-columns:1fr 1fr;gap:18px;justify-items:center}
.row-visual.duo .phone{width:min(220px,100%)}
.tilt-l{rotate:-4deg}.tilt-r{rotate:4deg}
.bon{background:#fffdf6;color:var(--text);font-family:var(--f-mono);font-weight:800;font-size:.88rem;width:min(320px,90%);padding:24px 24px 36px;rotate:-3deg;display:grid;gap:6px;
  -webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#000 90deg,#0000 0) bottom/20px 10px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#000 90deg,#0000 0) bottom/20px 10px repeat-x}
.bon div{display:flex;justify-content:space-between;gap:12px}
.bon-head{border-bottom:2px dashed var(--line);padding-bottom:10px;margin-bottom:6px}
.bon-more{color:var(--muted)}
.bon-total{border-top:2px dashed var(--line);padding-top:8px;margin-top:4px}
.bon-save{background:var(--teal);padding:8px 10px;border-radius:6px;margin:6px -10px 0}
.bon-pts{color:var(--teal-text)}
@media (max-width:860px){.row{grid-template-columns:minmax(0,1fr)}.row:nth-child(even) .row-copy{order:0}}

/* folder reader */
.reader-sec{background:linear-gradient(var(--night),var(--ink-deep));color:var(--mint);padding-block:clamp(28px,4vw,52px) clamp(40px,5vw,64px);scroll-margin-top:70px}
.reader-shell{position:relative}
.reader{position:relative}
.reader-strip{margin-inline:auto}
.reader-bar{align-items:center}
.reader-fs{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:var(--mint);cursor:pointer;transition:background .2s,transform .2s}
.reader-fs:hover{background:var(--teal);color:var(--ink);transform:scale(1.06)}
.reader-fs svg{width:22px;height:22px}
.reader-fs .fs-off,.is-fs .reader-fs .fs-on{display:none}
.is-fs .reader-fs .fs-off{display:block}
.reader-shell.is-fs,.reader-shell:fullscreen{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;justify-content:flex-start;background:radial-gradient(70% 60% at 50% 40%,rgba(45,212,200,.14),transparent 70%),var(--night);padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.reader-shell:fullscreen{width:100%;height:100%}
.reader-shell::backdrop{background:var(--night)}
.is-fs .reader-nav.prev{left:4px}.is-fs .reader-nav.next{right:4px}
.is-fs .reader{flex:1 1 auto;min-height:0;display:flex;align-items:center}
.is-fs .reader-strip{flex:none;width:100%}
.is-fs .reader-status{margin:auto}
.is-fs .reader-bar{flex:none;margin-top:12px;padding-inline:4px}
html.fs-lock,html.fs-lock body{overflow:hidden}
@media (prefers-reduced-motion:no-preference){.reader-shell.is-fs{animation:fsIn .25s cubic-bezier(.2,.8,.2,1)}@keyframes fsIn{from{opacity:0;transform:scale(.98)}}}
.reader-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;outline:none;border-radius:8px}
.reader-strip::-webkit-scrollbar{display:none}
.reader-strip:focus-visible{outline:3px solid var(--sun);outline-offset:6px}
.rpage{position:relative;flex:none;scroll-snap-align:start;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.rpage canvas{display:block;width:100%;height:100%}
.rpage:not(.ready){background:linear-gradient(100deg,#e3f1ef 30%,#f6fbfa 50%,#e3f1ef 70%) 0 0/300% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-150% 0}}
.rlinks{position:absolute;inset:0}
.rlinks a,.rlinks button{position:absolute;display:block;border:0;padding:0;background:transparent;cursor:pointer;border-radius:6px;transition:background .15s,box-shadow .15s}
.rlinks a:hover,.rlinks button:hover,.rlinks a:focus-visible{background:rgba(45,212,200,.14);box-shadow:inset 0 0 0 2px var(--teal)}
.reader-status{color:#b5dcd8;text-align:center;padding:60px 0}
.reader-nav{position:absolute;top:50%;translate:0 -50%;width:54px;height:54px;border-radius:50%;border:0;background:var(--sun);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:4px 5px 0 var(--night);transition:opacity .2s,transform .15s;z-index:2}
.reader-nav:hover{transform:scale(1.06)}
.reader-nav svg{width:26px;height:26px}
.reader-nav.prev{left:-10px}.reader-nav.next{right:-10px}
.reader-nav:disabled{opacity:0;pointer-events:none}
.reader-bar{display:flex;justify-content:space-between;gap:10px 20px;flex-wrap:nowrap;margin-top:18px;color:#b5dcd8;font-size:.9rem}
.reader-count{font-weight:800;color:var(--mint)}
@media (max-width:720px){.reader-hint{display:none}
  .reader-nav{width:40px;height:40px;background:rgba(255,210,63,.45);color:rgba(12,61,56,.85);box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .2s,background .2s}
  .reader-nav:active{background:var(--sun);color:var(--ink)}
  .reader-nav.prev{left:4px}.reader-nav.next{right:4px}}

/* folder deals grid */
.deals-sec{background:var(--mint);color:var(--text)}
.deals-sec .h2{color:var(--ink)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.fchip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border-radius:999px;border:0;background:#fff;font:inherit;font-weight:700;font-size:.92rem;color:var(--ink);cursor:pointer;box-shadow:0 1px 0 var(--line);transition:background .15s,color .15s}
.fchip:first-child{padding-left:16px}
.fchip img{width:26px;height:26px;border-radius:7px;object-fit:contain;background:#fff}
.fchip b{font-weight:800;color:var(--teal-text);font-size:.8rem}
.fchip:hover{background:var(--teal-soft)}
.fchip.on{background:var(--ink);color:#fff}
.fchip.on b{color:var(--sun)}
.deal-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.deal{position:relative;display:flex;flex-direction:column;gap:6px;height:100%;background:#fff;border-radius:18px;padding:12px 14px 14px;text-decoration:none;color:var(--text);box-shadow:0 1px 0 var(--line),0 20px 40px -32px rgba(12,61,56,.55);transition:transform .2s,box-shadow .2s}
.deal:hover{transform:translateY(-4px);box-shadow:0 1px 0 var(--line),0 26px 50px -30px rgba(12,61,56,.6)}
.deal-img{aspect-ratio:1;display:grid;place-items:center;background:#f5faf9;border-radius:12px;overflow:hidden;margin-bottom:4px}
.deal-img img{width:78%;height:78%;object-fit:contain;mix-blend-mode:multiply}
.deal-badge{position:absolute;top:8px;left:8px;background:var(--coral);color:#fff;font-weight:800;font-size:.72rem;padding:4px 9px;border-radius:8px;rotate:-3deg;letter-spacing:.02em;max-width:calc(100% - 16px)}
.deal-store{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--muted)}
.deal-store img{width:22px;height:22px;border-radius:6px;object-fit:contain}
.deal-name{font-weight:800;line-height:1.25;font-size:.98rem}
.deal-name small{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:800}
.deal-size{font-size:.8rem;color:var(--muted)}
.deal-price{display:flex;align-items:baseline;gap:8px;margin-top:auto;padding-top:4px}
.deal-price b{font-family:var(--f-display);font-weight:900;font-size:1.55rem;color:var(--ink);letter-spacing:-.02em}
.deal-price s{color:#8a9ba0;font-size:.9rem;text-decoration-color:var(--coral);text-decoration-thickness:2px}
.deal-valid{font-size:.75rem;font-weight:700;color:var(--teal-text)}
@media (max-width:480px){.deal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.deal-price b{font-size:1.3rem}}

/* folder archive */
.archive-sec{background:var(--mint);color:var(--text)}
.archive-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:32px 24px}
.archive-item{display:grid;gap:8px;text-decoration:none;color:var(--text)}
.archive-item img{width:100%;height:auto;border-radius:8px;box-shadow:0 30px 50px -30px rgba(12,61,56,.6);transition:rotate .3s,scale .3s}
.archive-item:hover img{rotate:-2deg;scale:1.03}
.archive-week{font-family:var(--f-display);font-weight:900;font-size:1.4rem;color:var(--ink);display:flex;gap:8px;align-items:center}
.archive-week em{font-style:normal;font-family:var(--f-body);font-size:.72rem;font-weight:800;background:var(--sun);padding:3px 9px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em}
.archive-meta{font-size:.88rem;color:var(--muted)}

/* supermarkten */
.store-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.tile{position:relative;background:#fff;border-radius:24px;padding:24px;display:grid;gap:4px;justify-items:start;align-content:start;box-shadow:0 1px 0 var(--line),0 24px 50px -36px rgba(12,61,56,.5);transition:transform .2s}
.tile:hover{transform:translateY(-4px) rotate(-1deg)}
.tile img,.tile-mono{width:72px;height:72px;border-radius:16px;object-fit:contain;margin-bottom:10px}
.tile h2{font-family:var(--f-display);font-weight:900;font-size:1.45rem;letter-spacing:-.02em;color:var(--ink);line-height:1.1}
.tile-kind{font-size:.85rem;font-weight:700;color:var(--muted)}
.tile-count{font-weight:800;color:var(--teal-text);font-size:.9rem}
.tile-count:empty{display:none}
.tile-new{position:absolute;right:16px;top:16px;background:var(--sun);color:var(--ink);font-weight:800;font-size:.75rem;padding:4px 10px;border-radius:99px;box-shadow:3px 3px 0 var(--ink);rotate:6deg;text-transform:uppercase;letter-spacing:.06em}
.tile-soon{background:transparent;border:2px dashed rgba(12,61,56,.25);box-shadow:none}
.tile-mono{display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:2rem;color:rgba(12,61,56,.35);border:2px dashed rgba(12,61,56,.25)}
.tile-soon h2{color:rgba(12,61,56,.55)}

/* supermarkt-index */
.picks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.pick{background:#fff;border-radius:22px;padding:22px;display:grid;gap:10px;align-content:start;box-shadow:0 1px 0 var(--line)}
.pick-spread{justify-self:start;background:var(--coral);color:#fff;font-weight:800;font-size:.8rem;padding:5px 11px;border-radius:99px;rotate:-2deg}
.pick h3{font-weight:800;font-size:1.05rem;color:var(--ink);line-height:1.3}
.pick p{color:var(--muted);font-size:.92rem}
.pick p b{color:var(--ink)}
.stat-card{background:var(--ink);color:var(--mint);border-radius:20px;padding:14px 20px;display:flex;gap:14px;align-items:center;max-width:400px}
.stat-card b{font-family:var(--f-display);font-weight:900;font-size:2rem;color:var(--sun);flex:none}
.stat-card span{font-size:.85rem;color:#b5dcd8;line-height:1.35}
.spread{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.spread li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;font-weight:700}
.spread .sbar{grid-row:2;grid-column:1/-1;height:10px;border-radius:9px;background:rgba(255,255,255,.08);overflow:hidden}
.spread .sbar i{display:block;height:100%;width:calc(var(--w) * 1%);background:linear-gradient(90deg,var(--teal),var(--sun));border-radius:9px}
.spread b{font-family:var(--f-mono);color:var(--sun);font-size:.9rem}

/* ==========================================================================
   Product page, app-link pages, legal
   ========================================================================== */
.product-hero{padding-bottom:clamp(40px,5vw,64px)}
.product-hero .crumbs{margin-bottom:22px}
.product-hero .crumbs [aria-current]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40ch}
.product-grid{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:clamp(20px,4vw,40px);align-items:center}
.product-img{position:relative;aspect-ratio:1;border-radius:24px;background:#fff;display:grid;place-items:center;box-shadow:0 30px 60px -36px rgba(0,0,0,.7),0 0 0 1px rgba(45,212,200,.2);overflow:hidden;rotate:-2deg}
.product-img img[data-p-img]{width:82%;height:82%;object-fit:contain}
.product-img-ph{width:30%;opacity:.25}
.product-img.has-img .product-img-ph{display:none}
.product-info{display:grid;gap:10px;align-content:center;justify-items:start}
.product-title{font-size:clamp(1.7rem,3.6vw,2.8rem);text-wrap:balance}
.product-size{color:#9fd9d3;font-weight:600}
.product-size:empty{display:none}
.product-from{font-size:1.05rem;color:#c6ece8;font-weight:600}
.product-from strong{font-family:var(--f-display);font-weight:900;font-size:clamp(2rem,4vw,2.8rem);color:var(--teal);letter-spacing:-.03em;text-shadow:.012em .012em 0 var(--teal-deep),.024em .024em 0 var(--teal-dark),.036em .036em 0 var(--ink-2),.05em .06em .2em rgba(0,0,0,.4);vertical-align:-.08em}
.product-spread{color:var(--sun);font-weight:700}
.product-spread:not(:empty)::before{content:" · "}
.product-status{color:#c6ece8;font-size:1.05rem}
.product-actions{display:flex;flex-wrap:wrap;gap:10px}
.offers-wrap{margin-top:clamp(24px,4vw,36px)}
.offers-label{font-family:var(--f-body);font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}
.offers{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.offer{display:grid;grid-template-columns:52px minmax(0,1.4fr) minmax(0,1fr) auto auto;gap:18px;align-items:center;background:#fff;color:var(--text);text-decoration:none;border-radius:18px;padding:14px 18px;box-shadow:0 18px 40px -30px rgba(0,0,0,.8);transition:transform .15s,box-shadow .15s}
a.offer:hover{transform:translateY(-2px);box-shadow:0 0 0 2px var(--teal),0 24px 44px -28px rgba(0,0,0,.8)}
a.offer:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.offer.best{box-shadow:0 0 0 3px var(--teal),0 18px 40px -26px rgba(0,0,0,.8)}
.offer-logo{width:52px;height:52px;border-radius:12px;object-fit:contain;background:#fff}
.offer-logo-txt{display:grid;place-items:center;background:var(--teal-soft);color:var(--ink);font-weight:900;font-size:1.3rem}
.offer-store{display:grid;gap:2px;min-width:0}
.offer-store b{font-size:1.05rem;color:var(--ink)}
.offer-store span{font-size:.85rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.offer-deal{display:flex;flex-wrap:wrap;gap:6px}
.offer-deal:empty{display:none}
.offer-badge{background:var(--coral);color:#fff;font-weight:800;font-size:.76rem;padding:4px 10px;border-radius:8px}
.offer-cheapest{background:var(--teal);color:var(--ink);font-weight:800;font-size:.72rem;padding:4px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em}
.offer-price{display:grid;justify-items:end;line-height:1.15}
.offer-price b{font-family:var(--f-display);font-weight:900;font-size:1.6rem;color:var(--ink);letter-spacing:-.02em}
.offer-price s{color:#8a9ba0;font-size:.85rem;text-decoration-color:var(--coral);text-decoration-thickness:2px}
.offer-price small{color:var(--muted);font-size:.78rem;font-weight:600}
.offer-none{color:var(--muted);font-weight:600}
.offer-link{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.88rem;color:var(--teal-text);white-space:nowrap}
.offer-link svg{width:16px;height:16px;transition:translate .2s}
a.offer:hover .offer-link svg{translate:3px 0}
.offers-empty{padding:18px;color:#c6ece8}
.offers-note{margin-top:14px;color:#8fbcb7;font-size:.85rem}
@media (max-width:800px){
  .product-grid{grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start}
  .product-img{border-radius:16px}
  .product-title{font-size:clamp(1.4rem,6vw,1.9rem)}
  .product-hero{padding-top:calc(72px + env(safe-area-inset-top,0px));padding-bottom:28px}
  .product-hero .crumbs{display:none}
  .product-info{gap:6px}
  .product-size{font-size:.9rem}
  .product-from{font-size:.95rem}
  .product-from strong{font-size:2rem}
  .product-spread{display:block;font-size:.85rem}
  .product-spread:not(:empty)::before{content:none}
  .product-actions .btn{padding:10px 18px;font-size:.92rem}
  .offers-wrap{margin-top:20px}
  .offer{grid-template-columns:44px minmax(0,1fr) auto;gap:6px 14px;padding:14px}
  .offer-logo{width:44px;height:44px}
  .offer-deal{grid-column:2/-1;grid-row:2}
  .offer-link{grid-column:2/-1;grid-row:3;font-size:.82rem}
  .offer-price{grid-column:3;grid-row:1}
}

/* handoff: /app/login, shared lists, 404 */
.page-hero.handoff{min-height:calc(100vh - 80px);display:grid;align-items:center;padding-bottom:clamp(48px,8vw,96px)}
.handoff-card{max-width:520px;margin-inline:auto;text-align:center;display:grid;gap:18px;justify-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(45,212,200,.2);border-radius:28px;padding:clamp(28px,5vw,48px);box-shadow:0 40px 80px -40px rgba(0,0,0,.8);backdrop-filter:blur(6px)}
.handoff-card p{color:#c6ece8}
.handoff-card [hidden]{display:none!important}
.handoff-card > div{display:grid;gap:18px;justify-items:center}
.handoff-logo{width:64px;height:64px}
.handoff-title{font-family:var(--f-display);font-weight:900;font-stretch:106%;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.03em;line-height:1}
.handoff-or{font-size:.9rem;opacity:.8;margin-top:6px}
.handoff-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.handoff .badges{justify-content:center}
.mail-form{width:100%;display:grid;gap:14px;text-align:left}
.mail-form label{display:grid;gap:6px;font-size:.9rem;font-weight:700;color:#c6ece8}
.mail-form input,.mail-form textarea{width:100%;font:inherit;font-weight:500;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(45,212,200,.3);border-radius:14px;padding:12px 14px;resize:vertical}
.mail-form input:focus-visible,.mail-form textarea:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-color:transparent}
.mail-form .btn{justify-self:center;margin-top:4px}
.spinner{width:44px;height:44px;border-radius:50%;border:4px solid rgba(45,212,200,.25);border-top-color:var(--teal);animation:spin .9s linear infinite}
.page-note{color:var(--sun);font-weight:700;min-height:1.5em}

/* referral */
.code-card{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;justify-self:start;background:rgba(255,255,255,.06);border:2px dashed rgba(45,212,200,.5);border-radius:20px;padding:16px 16px 16px 22px}
.code-label{grid-column:1;font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.code{grid-column:1;font-family:var(--f-mono);font-weight:800;font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:.08em;color:var(--sun);word-break:break-all}
.code-copy{grid-column:2;grid-row:1/3}
.ref-split{align-items:start}
.nsteps-col{grid-template-columns:minmax(0,1fr)}
.benefits{display:grid;gap:22px;background:var(--ink);color:var(--mint);border-radius:28px;padding:clamp(24px,4vw,40px)}
.benefits .h2{color:var(--mint);font-size:clamp(1.8rem,3.4vw,2.6rem)}
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-weight:700;font-size:1.1rem}
.check-list li{display:flex;gap:12px;align-items:center}
.check-list .ck{width:30px;height:30px;border-radius:50%;background:var(--teal);color:var(--ink);display:grid;place-items:center;flex:none}
.check-list .ck svg{width:18px;height:18px}

/* legal text */
.legal{max-width:760px}
.legal h2{font-family:var(--f-display);font-weight:900;font-size:1.4rem;color:var(--ink);letter-spacing:-.02em;margin-top:22px}
.legal p,.legal li{color:#35484f;font-size:1rem}
.legal ul{padding-left:22px;display:grid;gap:6px}
.legal a{color:var(--teal-text);font-weight:700}
.legal hr{border:0;border-top:1px solid var(--line);margin:24px 0}

/* ==========================================================================
   Motion
   ========================================================================== */
@media (prefers-reduced-motion:no-preference){
  .aurora{animation:spin 26s linear infinite}
  @keyframes spin{to{rotate:360deg}}
  .float{animation:float 7s ease-in-out infinite}
  .float-2{animation:float 8s ease-in-out -3s infinite}
  @keyframes float{50%{translate:0 -1.4cqw}}
  .pill i{animation:ping 2s infinite}
  @keyframes ping{70%{box-shadow:0 0 0 10px rgba(45,212,200,0)}100%{box-shadow:0 0 0 0 rgba(45,212,200,0)}}
  .st-burst{animation:wobble 9s ease-in-out infinite}
  @keyframes wobble{50%{rotate:-4deg;scale:1.05}}
  .swoosh path{stroke-dasharray:320;stroke-dashoffset:320;animation:draw .9s .5s cubic-bezier(.6,0,.2,1) forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
  .h1-main .l2{animation:extrude .8s .15s cubic-bezier(.2,.9,.3,1.2) both}
  @keyframes extrude{from{text-shadow:0 0 0 transparent;translate:.08em .08em}}
  .btn-teal{animation:glow 2.6s ease-in-out infinite}
  @keyframes glow{50%{box-shadow:0 0 0 8px rgba(45,212,200,0),0 0 24px rgba(45,212,200,.55)}}
  .js .rv{opacity:0;translate:0 28px;transition:opacity .7s cubic-bezier(.2,.7,.2,1),translate .7s cubic-bezier(.2,.7,.2,1)}
  .js .rv.in{opacity:1;translate:0 0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tape ul[aria-hidden="true"]{display:none}
}
