:root{
  --ink:#1A1A18; --muted:#68675F; --zacht:#98968C;
  --lijn:#E8E6E0; --lijn-d:#D4D2C9;
  --bg:#FFFFFF; --vlak:#F7F6F2;
  --kobalt:#1447E6; --kobalt-d:#0F35AE; --kobalt-08:#EEF2FE;
  --amber:#F59E0B; --amber-d:#B45309; --amber-bg:#FFF4E0;
  --groen:#0E7A46; --groen-bg:#EDF9F2;
  --rood:#C2410C; --rood-bg:#FDF1EA;
  --nacht:#0F1B3D;
  --r:12px; --schaduw:0 1px 2px rgba(20,20,15,.05);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;font-size:16px}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:1rem}
input,select,textarea{font-family:inherit;font-size:1rem}
a{color:inherit}
img,svg{max-width:100%;display:block}
:focus-visible{outline:2.5px solid var(--kobalt);outline-offset:2px;border-radius:6px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
h1,h2,h3{letter-spacing:-.025em}

/* ---------- woordmerk ---------- */
.merk{font-weight:800;letter-spacing:-.04em;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.merk .punt{color:var(--kobalt)}

/* ---------- header ---------- */
.kop{border-bottom:1px solid var(--lijn);background:rgba(255,255,255,.94);backdrop-filter:blur(8px);position:sticky;top:0;z-index:40}
.kop-in{display:flex;align-items:center;gap:22px;padding:13px 0}
.kop .merk{font-size:1.4rem;flex-shrink:0}
.kop-zoek{flex:1;display:flex;max-width:560px}
.zoekveld{flex:1;display:flex;align-items:center;gap:10px;border:1.5px solid var(--lijn-d);border-radius:26px;padding:9px 8px 9px 16px;background:var(--bg);transition:border-color .15s, box-shadow .15s}
.zoekveld:focus-within{border-color:var(--kobalt);box-shadow:0 0 0 3px var(--kobalt-08)}
.zoekveld > svg{width:17px;height:17px;color:var(--zacht);flex-shrink:0}
.zoekveld input{flex:1;border:none;background:none;min-width:0}
.zoekveld input:focus{outline:none}
.zoekveld .ai-mini{color:var(--kobalt);font-weight:700;font-size:.84rem;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;background:var(--kobalt-08);border-radius:18px;padding:7px 13px}
.zoekveld .ai-mini:hover{background:#E2E9FD}
.kop-links{display:flex;gap:22px;font-size:.92rem;font-weight:600;color:var(--muted);margin-left:auto;white-space:nowrap}
.kop-links a{text-decoration:none;padding:4px 0}
.kop-links a:hover{color:var(--ink)}

/* ---------- flash ---------- */
.flash-rij{padding-top:16px}
.flash{border-radius:var(--r);padding:13px 17px;font-weight:600;font-size:.92rem;margin-bottom:8px;border:1px solid}
.flash.ok{background:var(--groen-bg);color:#14532D;border-color:#C4E8D2}
.flash.fout{background:var(--rood-bg);color:#7C2D12;border-color:#F0D3C2}

/* ---------- knoppen ---------- */
.knop{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:.95rem;padding:12px 22px;border-radius:11px;text-decoration:none;transition:background .12s,border-color .12s,transform .08s;white-space:nowrap}
.knop:active{transform:scale(.985)}
.knop svg{width:17px;height:17px}
.knop-primair{background:var(--kobalt);color:#fff}
.knop-primair:hover{background:var(--kobalt-d)}
.knop-donker{background:var(--ink);color:#fff}
.knop-donker:hover{background:#000}
.knop-stil{background:var(--bg);border:1.5px solid var(--lijn-d);color:var(--ink)}
.knop-stil:hover{border-color:var(--ink)}
.knop-amber{background:var(--amber);color:#3D2600}
.knop-amber:hover{background:#E08E06}
.knop-wit-rand{background:transparent;border:1.5px solid rgba(255,255,255,.45);color:#fff}
.knop-wit-rand:hover{border-color:#fff}

/* ---------- hero ---------- */
.hero{background:linear-gradient(180deg,#FDFCF9 0%,#FFFFFF 100%);border-bottom:1px solid var(--lijn)}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;padding:52px 0 56px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--amber-bg);color:var(--amber-d);font-weight:700;font-size:.8rem;border-radius:999px;padding:6px 14px;margin-bottom:16px}
.hero h1{font-size:clamp(2rem,4.6vw,2.9rem);font-weight:800;line-height:1.12;margin-bottom:14px}
.hero h1 .streep{position:relative;display:inline-block}
.hero h1 .streep::after{content:"";position:absolute;left:-2%;right:-2%;bottom:4px;height:.34em;background:var(--amber);opacity:.4;z-index:-1;border-radius:3px}
.hero .sub{color:var(--muted);font-size:1.08rem;max-width:520px;margin-bottom:26px}
.hero-zoek{display:flex;align-items:center;gap:8px;border:1.5px solid var(--lijn-d);border-radius:16px;padding:8px 8px 8px 18px;background:var(--bg);box-shadow:var(--schaduw);max-width:560px;transition:border-color .15s,box-shadow .15s}
.hero-zoek:focus-within{border-color:var(--kobalt);box-shadow:0 0 0 4px var(--kobalt-08)}
.hero-zoek > svg{width:20px;height:20px;color:var(--zacht);flex-shrink:0}
.hero-zoek input{flex:1;border:none;background:none;font-size:1.05rem;min-width:0;padding:8px 0}
.hero-zoek input:focus{outline:none}
.hero-zoek .knop{padding:12px 20px;border-radius:11px}
.hero-ai{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font-weight:700;color:var(--kobalt);text-decoration:none;font-size:.98rem;background:none;padding:4px 0}
.hero-ai:hover{text-decoration:underline}
.hero-chips{margin-top:20px;font-size:.9rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.hero-chips button{border:1px solid var(--lijn-d);border-radius:999px;padding:7px 15px;font-size:.86rem;font-weight:600;background:var(--bg);transition:border-color .12s,background .12s}
.hero-chips button:hover{border-color:var(--kobalt);color:var(--kobalt);background:var(--kobalt-08)}

/* demo-venster */
.demo{border:1.5px solid var(--lijn);border-radius:18px;background:var(--bg);box-shadow:0 18px 44px -18px rgba(15,27,61,.18);overflow:hidden;position:relative}
.demo-kop{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--lijn);background:var(--vlak)}
.demo-kop .titel{font-weight:800;font-size:.92rem;display:flex;align-items:center;gap:9px}
.demo-kop .live{margin-left:auto;font-size:.72rem;font-weight:700;color:var(--groen);background:var(--groen-bg);border-radius:999px;padding:4px 11px}
.demo-body{padding:18px;min-height:318px}
.demo-vraag{display:flex;align-items:center;gap:10px;border:1.5px solid var(--lijn-d);border-radius:12px;padding:11px 14px;font-size:.94rem;color:var(--ink);background:var(--bg);min-height:46px}
.demo-vraag svg{width:16px;height:16px;color:var(--zacht);flex-shrink:0}
.demo-vraag .caret{display:inline-block;width:2px;height:1.05em;background:var(--kobalt);margin-left:1px;animation:knip 1s steps(1) infinite}
@keyframes knip{50%{opacity:0}}
.demo-denkt{display:none;align-items:center;gap:9px;color:var(--muted);font-size:.86rem;font-weight:600;padding:16px 4px 4px}
.demo-denkt .bolletjes{display:inline-flex;gap:5px}
.demo-denkt .bolletjes i{width:7px;height:7px;border-radius:50%;background:var(--kobalt);animation:stuiter 1s infinite}
.demo-denkt .bolletjes i:nth-child(2){animation-delay:.15s}
.demo-denkt .bolletjes i:nth-child(3){animation-delay:.3s}
.demo-res{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.demo-kaart{display:flex;align-items:center;gap:12px;border:1.5px solid var(--lijn);border-radius:12px;padding:11px 14px;opacity:0;transform:translateY(7px);transition:opacity .3s,transform .3s}
.demo-kaart.zichtbaar{opacity:1;transform:none}
.demo-kaart.beste{border-color:var(--kobalt);background:var(--kobalt-08)}
.demo-kaart .dk-ill{width:40px;height:40px;border-radius:9px;background:var(--bg);border:1px solid var(--lijn);display:grid;place-items:center;flex-shrink:0}
.demo-kaart .dk-ill svg{width:26px;height:26px}
.demo-kaart .dk-mid{flex:1;min-width:0}
.demo-kaart h4{font-size:.88rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.demo-kaart .dk-sub{font-size:.76rem;color:var(--muted)}
.demo-kaart .dk-prijs{font-weight:800;font-size:.95rem;white-space:nowrap}
.demo-kaart .dk-badge{font-size:.66rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--kobalt);background:#fff;border:1px solid var(--kobalt);border-radius:5px;padding:2px 7px;margin-bottom:3px;display:inline-block}
.demo-voet{font-size:.74rem;color:var(--zacht);text-align:center;padding:0 18px 14px}

/* ---------- trustbar ---------- */
.trust{padding:22px 0;border-bottom:1px solid var(--lijn)}
.trust-in{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.trust .winkels{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;color:var(--zacht);font-weight:700;font-size:.95rem}
.trust .winkels .lbl{font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.trust .usps{display:flex;gap:8px 18px;flex-wrap:wrap}
.trust .usps span{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:600;color:var(--muted)}
.trust .usps svg{width:16px;height:16px;color:var(--groen)}

/* ---------- secties ---------- */
.sectie{padding:44px 0 8px}
.sectie-kop{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:20px}
.sectie-kop h2{font-size:clamp(1.35rem,3vw,1.6rem);font-weight:800}
.sectie-kop .sub{color:var(--muted);font-size:.95rem;margin-top:4px}
.sectie-kop a{font-size:.9rem;font-weight:700;color:var(--kobalt);text-decoration:none;white-space:nowrap}
.sectie-kop a:hover{text-decoration:underline}
.pagina-kop{padding:38px 0 10px}
.pagina-kop h1{font-size:clamp(1.6rem,4vw,2.1rem);font-weight:800}
.pagina-kop p{color:var(--muted);margin-top:8px;max-width:640px}

/* ---------- speurtocht-kaarten ---------- */
.grid-speur{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.speur-kaart{display:flex;align-items:center;gap:14px;border:1.5px solid var(--lijn);border-radius:var(--r);padding:16px 18px;text-align:left;transition:border-color .12s,transform .12s;background:var(--bg)}
.speur-kaart:hover{border-color:var(--kobalt);transform:translateY(-2px)}
.speur-kaart .sk-ill{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;flex-shrink:0}
.speur-kaart h3{font-size:.95rem;font-weight:700;line-height:1.35}
.speur-kaart .sk-sub{font-size:.8rem;color:var(--kobalt);font-weight:700;display:inline-flex;align-items:center;gap:5px;margin-top:3px}
.speur-kaart .sk-sub svg{width:13px;height:13px}

/* tinten */
.tint-amber{background:var(--amber-bg)}
.tint-kobalt{background:var(--kobalt-08)}
.tint-lime{background:#F2FAE4}
.tint-roze{background:#FDEFF3}
.tint-oranje{background:#FEF0E4}
.tint-staal{background:#EDF3F8}
.tint-mint{background:#EAF8F1}
.tint-paars{background:#F2EFFE}
.tint-zand{background:#F8F2E7}

/* ---------- producten ---------- */
.grid-product{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.product{border:1.5px solid var(--lijn);border-radius:var(--r);overflow:hidden;text-decoration:none;display:flex;flex-direction:column;background:var(--bg);transition:border-color .12s,transform .12s}
.product:hover{border-color:var(--lijn-d);transform:translateY(-2px)}
.product-foto{aspect-ratio:1;background:#fff;display:grid;place-items:center;padding:14px;border-bottom:1px solid var(--lijn)}
.product-foto img{max-height:100%;object-fit:contain}
.product-foto .geen-foto{color:var(--zacht);font-size:.8rem;text-align:center;font-weight:600}
.product-info{padding:12px 14px 14px;display:flex;flex-direction:column;flex:1}
.product-info h3{font-size:.9rem;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:6px}
.product-prijs{font-size:1.08rem;font-weight:800;margin-top:auto}
.product-prijs s{font-size:.8rem;color:var(--zacht);font-weight:500;margin-left:7px}
.product-winkel{font-size:.78rem;color:var(--muted);margin-top:3px;font-weight:600}
.product-label{display:inline-block;background:var(--amber-bg);color:var(--amber-d);font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:6px;margin-bottom:7px;align-self:flex-start}
.scroll-rij{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);gap:14px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
@media(min-width:900px){.scroll-rij{grid-auto-flow:row;grid-template-columns:repeat(5,1fr);overflow:visible}}

/* ---------- categorie-grid ---------- */
.grid-cat{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.cat-kaart{border:1.5px solid var(--lijn);border-radius:var(--r);padding:16px 14px;display:flex;flex-direction:column;gap:11px;text-decoration:none;transition:border-color .12s,transform .12s;background:var(--bg)}
.cat-kaart:hover{border-color:var(--kobalt);transform:translateY(-2px)}
.cat-kaart .ck-ill{width:56px;height:56px;border-radius:13px;display:grid;place-items:center}
.cat-kaart h3{font-size:.93rem;font-weight:700}
.cat-kaart span{font-size:.78rem;color:var(--muted)}

/* ---------- zo werkt het ---------- */
.stappen{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:6px 0}
.stap{border:1.5px solid var(--lijn);border-radius:var(--r);padding:22px;background:var(--bg);position:relative}
.stap .nr{position:absolute;top:18px;right:18px;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:.82rem;display:grid;place-items:center}
.stap .st-ill{width:56px;height:56px;border-radius:13px;background:var(--vlak);display:grid;place-items:center;margin-bottom:13px}
.stap h3{font-size:1.02rem;font-weight:800;margin-bottom:5px}
.stap p{font-size:.9rem;color:var(--muted)}

/* ---------- eerlijk speurwerk ---------- */
.eerlijk{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;border:1.5px solid var(--lijn);border-radius:18px;padding:30px 34px;background:var(--vlak)}
.eerlijk .mascotte-vak{width:150px;height:150px;border-radius:50%;background:var(--bg);border:1.5px solid var(--lijn);display:grid;place-items:center}
.eerlijk h2{font-size:1.4rem;font-weight:800;margin-bottom:8px}
.eerlijk p{color:var(--muted);font-size:.95rem;max-width:620px;margin-bottom:14px}
.eerlijk ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px}
.eerlijk li{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700}
.eerlijk li svg{width:17px;height:17px;color:var(--groen)}

/* ---------- bedrijven ---------- */
.grid-bedrijf{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bedrijf-kaart{border:1.5px solid var(--lijn);border-radius:var(--r);padding:18px;text-decoration:none;display:flex;flex-direction:column;gap:4px;position:relative;transition:border-color .12s,transform .12s;background:var(--bg)}
.bedrijf-kaart:hover{border-color:var(--lijn-d);transform:translateY(-2px)}
.bedrijf-kaart h3{font-size:1rem;font-weight:700;padding-right:88px}
.bedrijf-kaart .meta{font-size:.85rem;color:var(--muted)}
.gesponsord{position:absolute;top:14px;right:14px;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--zacht);border:1px solid var(--lijn);border-radius:6px;padding:3px 8px;background:var(--vlak)}
.sterren{display:inline-flex;align-items:center;gap:5px;font-size:.86rem;font-weight:800}
.sterren svg{width:14px;height:14px;color:var(--amber-d);fill:var(--amber)}
.sterren span{color:var(--muted);font-weight:500}
.logo-blok{width:46px;height:46px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:1rem;color:#fff;margin-bottom:8px}

/* ---------- CTA-strook bedrijven ---------- */
.cta-strook{background:var(--nacht);border-radius:20px;padding:38px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:44px 0 8px;color:#fff}
.cta-strook h2{font-size:clamp(1.3rem,3vw,1.6rem);font-weight:800;margin-bottom:6px}
.cta-strook p{color:rgba(255,255,255,.75);font-size:.95rem;max-width:520px}
.cta-strook .knoppen{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- zoekresultaten / AI-balk ---------- */
.ai-balk{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1.5px solid var(--lijn);background:linear-gradient(90deg,var(--kobalt-08),#FFFFFF 70%);border-radius:var(--r);padding:17px 20px;margin:18px 0 4px;flex-wrap:wrap}
.ai-balk .tekst{display:flex;align-items:center;gap:13px}
.ai-balk p{font-size:.95rem}
.ai-balk p b{font-weight:800}
.lege-staat{text-align:center;padding:54px 20px;color:var(--muted)}
.lege-staat .ls-mascotte{display:inline-grid;place-items:center;width:120px;height:120px;border-radius:50%;background:var(--vlak);margin-bottom:16px}
.lege-staat h2{color:var(--ink);font-size:1.25rem;font-weight:800;margin-bottom:6px}
.lege-staat .knop{margin-top:18px}

/* ---------- bedrijfspagina ---------- */
.bedrijf-top{display:flex;gap:18px;align-items:flex-start;padding:34px 0 8px;flex-wrap:wrap}
.bedrijf-top .logo-blok{width:70px;height:70px;font-size:1.5rem;border-radius:16px;margin:0}
.bedrijf-top h1{font-size:clamp(1.5rem,4vw,1.9rem);font-weight:800}
.bedrijf-meta{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);font-size:.9rem;margin-top:6px}
.bedrijf-meta a{color:var(--kobalt);text-decoration:none;font-weight:600}
.bedrijf-meta a:hover{text-decoration:underline}
.twee-kolom{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;padding:16px 0 40px;align-items:start}
.blok{border:1.5px solid var(--lijn);border-radius:var(--r);padding:24px;background:var(--bg)}
.blok h2{font-size:1.08rem;font-weight:800;margin-bottom:12px}
.blok p.tekst{font-size:.95rem;white-space:pre-line}
.review{border-top:1px solid var(--lijn);padding:14px 0}
.review:first-of-type{border-top:none;padding-top:2px}
.review-kop{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:3px}
.review-kop strong{font-size:.92rem;font-weight:700}
.review p{font-size:.9rem;color:var(--muted)}

/* ---------- formulieren ---------- */
.formulier{display:flex;flex-direction:column;gap:13px}
.formulier label{font-size:.85rem;font-weight:700}
.formulier input,.formulier textarea,.formulier select{width:100%;border:1.5px solid var(--lijn-d);border-radius:10px;padding:11px 14px;background:var(--bg);color:var(--ink)}
.formulier input:focus,.formulier textarea:focus,.formulier select:focus{outline:none;border-color:var(--kobalt);box-shadow:0 0 0 3px var(--kobalt-08)}
.formulier textarea{min-height:96px;resize:vertical}
.veld-verborgen{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.score-keuze{display:flex;gap:6px}
.score-keuze label{border:1.5px solid var(--lijn-d);border-radius:10px;padding:8px 15px;font-weight:700;cursor:pointer}
.score-keuze input{display:none}
.score-keuze label:has(input:checked){border-color:var(--kobalt);background:var(--kobalt-08);color:var(--kobalt)}
.filterbalk{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.filterbalk input,.filterbalk select{border:1.5px solid var(--lijn-d);border-radius:10px;padding:11px 14px;background:var(--bg)}
.filterbalk input{flex:1;min-width:180px}
.hint{font-size:.82rem;color:var(--muted)}
.hint a{color:var(--kobalt);font-weight:600}

/* ---------- pakketten ---------- */
.grid-pakket{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:12px 0 30px}
.pakket{border:1.5px solid var(--lijn);border-radius:16px;padding:26px;display:flex;flex-direction:column;background:var(--bg);position:relative}
.pakket.top{border-color:var(--kobalt);box-shadow:0 12px 34px -16px rgba(20,71,230,.3)}
.pakket .populair-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--kobalt);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.03em;border-radius:999px;padding:5px 14px;white-space:nowrap}
.pakket h3{font-size:1.05rem;font-weight:800}
.pakket .voor{font-size:.85rem;color:var(--muted);margin-bottom:14px}
.pakket .prijs-groot{font-size:1.8rem;font-weight:800}
.pakket .prijs-groot span{font-size:.85rem;color:var(--muted);font-weight:500}
.pakket ul{list-style:none;margin:14px 0 20px;display:flex;flex-direction:column;gap:9px}
.pakket li{display:flex;gap:9px;font-size:.9rem;color:var(--muted)}
.pakket li svg{width:17px;height:17px;color:var(--groen);flex-shrink:0;margin-top:2px}
.pakket .knop{margin-top:auto}

/* ---------- footer ---------- */
footer{background:var(--vlak);border-top:1px solid var(--lijn);margin-top:52px;padding:44px 0 26px;font-size:.9rem;color:var(--muted)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;margin-bottom:30px}
.footer-grid h4{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink);margin-bottom:12px}
.footer-grid nav{display:flex;flex-direction:column;gap:9px}
.footer-grid a{text-decoration:none}
.footer-grid a:hover{color:var(--ink)}
.footer-merk p{margin-top:12px;font-size:.86rem;max-width:280px}
.footer-onder{border-top:1px solid var(--lijn);padding-top:20px;font-size:.78rem;line-height:1.65;color:var(--zacht);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.footer-onder .transparantie{max-width:680px}

/* ---------- speurhulp modal ---------- */
.overlay{position:fixed;inset:0;background:rgba(15,27,61,.5);display:none;z-index:100;padding:16px;overflow-y:auto}
.overlay.open{display:flex;align-items:flex-start;justify-content:center}
.modal{background:var(--bg);border-radius:18px;width:100%;max-width:620px;margin:5vh auto;overflow:hidden;box-shadow:0 24px 60px rgba(15,27,61,.3)}
.modal-kop{padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--lijn);background:var(--vlak)}
.modal-titel{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem}
.modal-sluit{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--muted)}
.modal-sluit:hover{background:var(--lijn);color:var(--ink)}
.modal-sluit svg{width:18px;height:18px}
.modal-body{padding:20px;max-height:64vh;overflow-y:auto}
.m-query{font-size:.85rem;color:var(--muted);margin-bottom:14px;font-weight:600}
.m-vraag{font-size:1.08rem;font-weight:800;margin-bottom:12px}
.m-opties{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.m-opties button{border:1.5px solid var(--lijn-d);border-radius:11px;padding:10px 17px;font-weight:600;font-size:.92rem;background:var(--bg)}
.m-opties button:hover{border-color:var(--kobalt);background:var(--kobalt-08);color:var(--kobalt)}
.m-opties button:disabled{opacity:.45;cursor:default}
.m-antwoord{display:flex;justify-content:flex-end;margin-bottom:14px}
.m-antwoord span{background:var(--kobalt-08);border:1px solid #DCE5FC;border-radius:12px;padding:8px 15px;font-size:.88rem;max-width:85%;font-weight:600}
.m-loader{text-align:center;padding:24px 0;display:none}
.m-loader .bolletjes{display:inline-flex;gap:6px;margin-bottom:10px}
.m-loader .bolletjes i{width:8px;height:8px;border-radius:50%;background:var(--kobalt);animation:stuiter 1s infinite}
.m-loader .bolletjes i:nth-child(2){animation-delay:.15s}
.m-loader .bolletjes i:nth-child(3){animation-delay:.3s}
@keyframes stuiter{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}
.m-loader p{font-size:.88rem;color:var(--muted);font-weight:600}
.m-res-intro{font-weight:800;font-size:1.02rem;margin:2px 0 12px}
.m-res{border:1.5px solid var(--lijn);border-radius:14px;padding:14px;margin-bottom:10px;display:grid;grid-template-columns:78px 1fr;gap:14px}
.m-res.beste{border-color:var(--kobalt);background:linear-gradient(180deg,var(--kobalt-08),#fff 55%)}
.m-res .foto{width:78px;height:78px;border:1px solid var(--lijn);border-radius:11px;background:#fff;display:grid;place-items:center;padding:6px;overflow:hidden}
.m-res .foto img{max-height:100%;object-fit:contain}
.m-res .foto svg{width:26px;height:26px;color:var(--zacht)}
.m-res h4{font-size:.96rem;font-weight:700;line-height:1.3}
.m-res .m-sub{font-size:.8rem;color:var(--muted);margin:2px 0 4px;font-weight:600}
.m-res .m-prijs{font-size:1.08rem;font-weight:800;margin-bottom:5px}
.m-res .m-waarom{font-size:.87rem;margin-bottom:8px}
.m-res ul{list-style:none;display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
.m-res li{display:flex;gap:7px;font-size:.82rem;color:var(--muted)}
.m-res li svg{width:14px;height:14px;color:var(--groen);flex-shrink:0;margin-top:2px}
.m-res .knop{padding:9px 15px;font-size:.87rem;width:100%}
.beste-badge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--kobalt);background:#fff;border:1px solid var(--kobalt);border-radius:6px;padding:2px 9px;margin-bottom:6px}
.m-fout{display:none;background:var(--rood-bg);border:1px solid #F0D3C2;border-radius:12px;padding:15px;text-align:center;font-size:.9rem;color:#7C2D12;margin-bottom:12px;font-weight:600}
.m-fout .knop{margin-top:10px}
.m-tekst-antwoord{background:var(--vlak);border:1px solid var(--lijn);border-radius:12px;padding:13px 16px;font-size:.92rem;margin-bottom:10px}
.m-voet{border-top:1px solid var(--lijn);padding:14px 20px;display:none;gap:8px}
.m-voet input{flex:1;border:1.5px solid var(--lijn-d);border-radius:10px;padding:11px 14px;min-width:0}
.m-voet input:focus{outline:none;border-color:var(--kobalt)}
.m-demo{font-size:.74rem;color:var(--zacht);text-align:center;padding:0 20px 14px}

#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(80px);background:var(--ink);color:#fff;font-weight:600;font-size:.9rem;padding:12px 20px;border-radius:11px;opacity:0;transition:all .25s;z-index:200;max-width:90vw;text-align:center}
#toast.zichtbaar{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- admin ---------- */
.admin-wrap{max-width:1140px;margin:0 auto;padding:24px 20px 60px}
.admin-kop{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.admin-kop h1{font-size:1.35rem;font-weight:800}
.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:24px}
.stat{border:1.5px solid var(--lijn);border-radius:var(--r);padding:14px;text-align:center;background:var(--bg)}
.stat b{display:block;font-size:1.4rem;font-weight:800}
.stat span{font-size:.72rem;color:var(--muted);font-weight:700}
.admin-sectie{margin-bottom:28px}
.admin-sectie h2{font-size:1.08rem;font-weight:800;margin-bottom:10px}
.tabel-wrap{overflow-x:auto;border:1.5px solid var(--lijn);border-radius:var(--r)}
table.admin{width:100%;border-collapse:collapse;background:var(--bg);font-size:.87rem}
table.admin th{background:var(--vlak);text-align:left;padding:10px 12px;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}
table.admin td{padding:10px 12px;border-top:1px solid var(--lijn);vertical-align:middle}
table.admin form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.thumb{width:44px;height:44px;border:1px solid var(--lijn);border-radius:8px;object-fit:contain;background:#fff}
.mini-knop{background:var(--ink);color:#fff;font-weight:700;font-size:.76rem;padding:7px 12px;border-radius:8px}
.mini-knop.groen{background:var(--groen)}
.mini-knop.rood{background:#B91C1C}
.mini-knop.grijs{background:var(--muted)}
select.mini,input.mini{border:1.5px solid var(--lijn-d);border-radius:8px;padding:7px 10px;font-size:.84rem;background:var(--bg)}
.login-kaart{max-width:390px;margin:12vh auto;padding:30px;border:1.5px solid var(--lijn);border-radius:16px}
.login-kaart h1{font-size:1.25rem;font-weight:800;margin-bottom:14px}
.status-pil{display:inline-block;font-size:.7rem;font-weight:800;padding:3px 10px;border-radius:999px}
.status-pil.actief{background:var(--groen-bg);color:#14532D}
.status-pil.geweigerd{background:var(--rood-bg);color:#7C2D12}
.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.import-blok{border:1.5px solid var(--lijn);border-radius:var(--r);padding:18px;background:var(--bg)}
.import-blok h3{font-size:.98rem;font-weight:800;margin-bottom:4px}
.import-blok p{font-size:.82rem;color:var(--muted);margin-bottom:12px}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .hero-in{grid-template-columns:1fr;gap:30px;padding:36px 0 40px}
  .grid-product,.grid-cat{grid-template-columns:repeat(3,1fr)}
  .grid-bedrijf,.grid-speur{grid-template-columns:repeat(2,1fr)}
  .twee-kolom{grid-template-columns:1fr}
  .stappen{grid-template-columns:1fr}
  .grid-pakket{grid-template-columns:1fr;gap:22px}
  .stat-grid{grid-template-columns:repeat(3,1fr)}
  .import-grid{grid-template-columns:1fr}
  .kop-links{display:none}
  .eerlijk{grid-template-columns:1fr;text-align:center;justify-items:center}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .grid-product{grid-template-columns:repeat(2,1fr)}
  .grid-cat{grid-template-columns:repeat(2,1fr)}
  .grid-bedrijf,.grid-speur{grid-template-columns:1fr}
  .kop-in{gap:12px}
  .hero-zoek .knop{padding:11px 15px}
  .m-res{grid-template-columns:60px 1fr;gap:10px}
  .m-res .foto{width:60px;height:60px}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .cta-strook{padding:28px 22px}
  .demo-body{min-height:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
