/* Bladgroen Innovaties - site.css (tokens volgens het Design System) */
/* ---------- Tokens ---------- */
:root{
  /* kleur: palet v2 */
  --paper:#f6f2ea; --paper-2:#efe9dd; --white:#fff; --ink:#0f2a2c; --ink-2:#163638; --soft:#55635f; --line:rgba(15,42,44,.1);
  --midnight:#13505b; --mint:#67a887; --green:#35735a; --celadon:#91caa1; --tint:#dcede2;
  --heart:#c8843f; --heart-d:#9a5a22; --heart-l:#e7bf8a;
  --on-dark:#e9eeeb; --on-dark-soft:#a8b9b3; --on-midnight-soft:#bcd3cd;
  /* type */
  --sans:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono",ui-monospace,monospace;
  --serif:"Instrument Serif",Georgia,serif;
  --fs-h1:clamp(2.75rem,1.5rem + 4vw,4.5rem);
  --fs-h2:clamp(2rem,1.35rem + 2.5vw,3.25rem);
  --fs-h3:clamp(1.5rem,1.25rem + 1vw,2rem);
  --fs-lead:clamp(1.125rem,1rem + .45vw,1.3125rem);
  --fs-body:1.0625rem;
  --fs-small:.9375rem;
  /* ruimte */
  --gutter:clamp(16px,4vw,40px);
  --section:clamp(5rem,3rem + 7vw,9rem);
  --gap:clamp(16px,1.5vw,24px);
  --radius:20px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-body)/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--green);text-underline-offset:3px}
img{display:block;max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--gutter)}
h1,h2,h3{margin:0;font-weight:500;color:inherit;text-wrap:balance}
h1{font-size:var(--fs-h1);line-height:1;letter-spacing:-.045em}
h2{font-size:var(--fs-h2);line-height:1.06;letter-spacing:-.035em}
h3{font-size:var(--fs-h3);line-height:1.15;letter-spacing:-.025em}
em.s{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;font-size:1.08em;line-height:0}
p{margin:0 0 1em;text-wrap:pretty}
.eyebrow{font:500 .75rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin:0 0 22px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--soft);max-width:34em}
.btn{display:inline-flex;align-items:center;gap:10px;font:500 1rem/1 var(--sans);text-decoration:none;padding:16px 24px;border-radius:999px;background:var(--ink);color:var(--paper);transition:background .25s,transform .25s var(--ease)}
.btn:hover{background:var(--midnight);transform:translateY(-1px)}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(15,42,44,.25)}
.btn.ghost:hover{background:rgba(15,42,44,.05)}
.section{padding:var(--section) 0}
.section.aansluitend{padding-top:0}
.head{max-width:44rem;margin-bottom:clamp(40px,5vw,64px)}
.head .lead{margin-top:20px}

/* reveal bij scrollen */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js .reveal.in{opacity:1;transform:none}
/* vertraging per element: klassen in plaats van style-attributen, zodat de CSP geen 'unsafe-inline' nodig heeft */
.d1{--i:1}.d2{--i:2}.d3{--i:3}.d4{--i:4}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ---------- Header ---------- */
.top{position:sticky;top:0;z-index:30;transition:background .3s,box-shadow .3s}
.top.scrolled{background:rgba(246,242,234,.82);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--line)}
.top .wrap{display:flex;justify-content:space-between;align-items:center;height:88px}
@media(max-width:600px){.top .wrap{height:72px}}
/* logo: vlak icoon + woordmerk 3A/3C in Comfortaa. font-display:block en een preload in elke <head>: geen
   kort zichtbaar vervanglettertype (Geist vet) bij het wisselen van pagina */
@font-face{font-family:"Comfortaa";src:url(../fonts/comfortaa-bold-logo.woff) format("woff");font-weight:700;font-display:block}
.logo{--h:46px;display:inline-flex;align-items:flex-start;gap:calc(var(--h) * .24);height:var(--h);text-decoration:none}
.logo img{height:100%;width:auto;display:block}
.logo .one{display:flex;align-items:baseline;gap:calc(var(--h) * .14);white-space:nowrap;margin-top:calc(var(--h) * .301)}
.logo .lg-a{font:700 calc(var(--h) * .46)/1 "Comfortaa",var(--sans);color:var(--midnight);letter-spacing:-.01em}
.logo .lg-b{font:700 calc(var(--h) * .19)/1 "Comfortaa",var(--sans);color:var(--green);letter-spacing:.22em}
@media(max-width:600px){.logo{--h:40px}}
@media(max-width:380px){.logo .lg-b{display:none}}
.logo-stacked{--h:72px;display:inline-flex;align-items:center;gap:calc(var(--h) * .22);height:var(--h)}
.logo-stacked img{height:100%;width:auto}
.logo-stacked .t{display:flex;flex-direction:column}
.logo-stacked .lg-a{font:700 calc(var(--h) * .48)/1 "Comfortaa",var(--sans);color:#fff;letter-spacing:-.01em}
.logo-stacked .lg-b{font:700 calc(var(--h) * .17)/1 "Comfortaa",var(--sans);color:var(--celadon);letter-spacing:.28em;margin-top:calc(var(--h) * .12);padding-left:.12em}
.top nav{display:flex;align-items:center;gap:6px}
.top nav a{color:var(--ink);text-decoration:none;font-size:.9375rem;padding:8px 14px;border-radius:999px;transition:background .2s}
.top nav a:hover{background:rgba(15,42,44,.06)}
.top nav a.cta{background:var(--ink);color:var(--paper);margin-left:8px}
.top nav a.cta:hover{background:var(--midnight)}

/* ---------- Hero ---------- */
.hero{padding:clamp(40px,6vw,88px) 0 var(--section)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{max-width:15ch}
.hero h1 em.s{color:var(--heart-d)}
.hero .lead{margin:32px 0 40px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px}
.slice svg{width:100%;display:block;overflow:visible}
.slice text{font-family:var(--sans)}
.slice .ann{opacity:0;transition:opacity .8s var(--ease)}
.slice.in .ann{opacity:1;transition-delay:calc(1.9s + var(--i) * .18s)}
.legend{list-style:none;margin:28px auto 0;padding:0;display:grid;grid-template-columns:1fr;gap:10px;max-width:420px}
.legend li{display:flex;gap:12px;align-items:flex-start;font-size:1rem;line-height:1.4;color:var(--soft)}
.legend span{flex:none;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font:500 .8125rem var(--mono)}
.legend li div{padding-top:3px}.legend b{font-weight:600;color:var(--ink);margin-right:4px}

html,body{overflow-x:clip}
@media(max-width:900px){.hero .wrap{grid-template-columns:minmax(0,1fr)}.slice{max-width:520px;width:100%;margin:8px auto 0}}

/* ---------- Van kern tot klant ---------- */
.dark{background:var(--ink);color:var(--on-dark)}
.dark .eyebrow{color:var(--celadon)}
.dark .lead,.dark p{color:var(--on-dark-soft)}
.model{padding:var(--section) 0 0}
.model .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px)}
/* het ringenbeeld blijft onder de menubalk (88px) en past altijd in zijn vak, ook op lage schermen */
.model .sticky{position:sticky;top:calc(88px + 2vh);height:calc(100vh - 88px - 4vh);display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center}
.model .sticky svg{width:100%;height:100%;max-width:520px;max-height:520px;overflow:visible}
.step{min-height:70vh;display:flex;flex-direction:column;justify-content:center;opacity:.22;transition:opacity .6s var(--ease)}
.step.on{opacity:1}
.step .n{font:500 .75rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--celadon);margin-bottom:14px}
.step .n b{font-weight:500;color:var(--heart-l)}
.step h3{margin-bottom:16px;color:#fff}
.step > p{max-width:30em}
.step h2{margin-bottom:24px;color:#fff}
.svm{margin-top:18px;max-width:30em;display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.svm .dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--heart-l);margin-top:8px}
.svm small{display:block;font:500 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--heart-l);margin-bottom:4px}
.svm p{margin:0;color:var(--on-dark)}
.ring{transition:stroke-dashoffset 1.2s var(--ease)}
.lab{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;fill:var(--on-dark);opacity:0;transition:opacity .5s .45s}
.lab.on{opacity:1}
.core{transition:transform 1s var(--ease);transform-origin:center;transform-box:fill-box;transform:scale(.32)}
.core.on{transform:scale(1)}
.core .ct{opacity:0;transition:opacity .6s var(--ease) .5s}
.core.on .ct{opacity:1}
.kring{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset .9s var(--ease);transition-delay:calc(.25s + var(--i) * 90ms)}
.core.on .kring{stroke-dashoffset:0}
.glow{opacity:0;transform-origin:center;transform-box:fill-box}
.glow.on{animation:pulse 2.6s var(--ease) infinite}
@keyframes pulse{0%{opacity:.5;transform:scale(1)}100%{opacity:0;transform:scale(1.45)}}
@media(prefers-reduced-motion:reduce){.core,.kring,.core .ct{transition:none}.glow.on{animation:none}}
@media(max-width:900px){.model .wrap{grid-template-columns:minmax(0,1fr)}.model .sticky{top:88px;height:42vh;z-index:1;background:var(--ink);padding:10px 0}.step{min-height:62vh;justify-content:flex-end;padding-bottom:6vh}}
@media(max-width:600px){.model .sticky{top:72px}}

.result{padding:clamp(48px,6vw,80px) 0 var(--section)}
.result .grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:var(--gap);align-items:stretch;border-top:1px solid rgba(255,255,255,.12);padding-top:clamp(40px,5vw,64px)}
.result h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);color:#fff}
.stat{padding:28px;border-radius:var(--radius);background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.stat .v{font:400 clamp(3.6rem,2.4rem + 4vw,6rem)/.9 var(--serif);color:var(--heart-l);letter-spacing:-.02em}
.stat .k{font:500 .75rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-soft)}
@media(max-width:860px){.result .grid{grid-template-columns:1fr 1fr}.result .grid > :first-child,.result .grid > :nth-child(4){grid-column:1/-1}}

/* ---------- Ervaring ---------- */
.exp .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.exp h2{margin-bottom:28px}
.exp p{color:var(--soft);max-width:34em;font-size:1.0625rem}
.exp p strong{color:var(--ink);font-weight:600}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.fact{background:var(--white);border-radius:var(--radius);padding:28px 26px;box-shadow:0 0 0 1px var(--line)}
.fact b{display:block;font:400 clamp(2.4rem,2rem + 1.4vw,3.2rem)/1 var(--serif);color:var(--midnight);margin-bottom:14px;letter-spacing:-.02em}
.fact span{font-size:var(--fs-small);color:var(--soft);line-height:1.5;display:block;hyphens:auto}
@media(max-width:900px){.exp .wrap{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.facts{grid-template-columns:minmax(0,1fr)}}

/* ---------- Past het ---------- */
.fit{padding-bottom:var(--section)}
.fit .panel{background:var(--tint);border-radius:calc(var(--radius) + 8px);padding:clamp(32px,5vw,72px)}
.fit ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,4vw,56px)}
.fit li{padding:20px 0 20px 34px;border-top:1px solid rgba(15,42,44,.12);position:relative;font-size:1.0625rem;line-height:1.5}
.fit li::before{content:"";position:absolute;left:0;top:27px;width:12px;height:12px;border-radius:50%;background:var(--heart);box-shadow:0 0 0 5px rgba(200,132,63,.16)}
.fit .not{margin:32px 0 0;font:400 1.5rem/1.3 var(--serif);font-style:italic;color:var(--ink)}
@media(max-width:800px){.fit ul{grid-template-columns:1fr}}

/* ---------- Samenwerken ---------- */
.wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);position:relative}
.card{background:var(--white);border-radius:var(--radius);padding:clamp(24px,2.4vw,34px);box-shadow:0 0 0 1px var(--line);display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.card:hover{transform:translateY(-3px);box-shadow:0 0 0 1px var(--line),0 18px 40px -24px rgba(15,42,44,.35)}
.card .k{font:500 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-bottom:18px}
.card h3{font-size:1.5rem;margin-bottom:12px}
.card > p{color:var(--soft);font-size:var(--fs-small);margin:0 0 24px}
.ex{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}
.ex small{display:block;font:500 .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin-bottom:10px}
.ex ul{margin:0;padding:0;list-style:none}
.ex li{padding:5px 0 5px 18px;position:relative;font-size:var(--fs-small);line-height:1.45}
.ex li::before{content:"";position:absolute;left:0;top:13px;width:7px;height:7px;border-radius:50%;background:var(--mint)}
.grow-arrow{position:absolute;top:50%;left:calc(66.666% + var(--gap)/6);transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:var(--heart);color:#fff;display:grid;place-items:center;font-size:1.05rem;z-index:2;box-shadow:0 0 0 6px var(--paper)}
.capacity{margin-top:28px;display:inline-flex;gap:12px;align-items:center;font-size:var(--fs-small);color:var(--soft);padding:10px 18px 10px 14px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line)}
.capacity i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(53,115,90,.15)}
@media(max-width:900px){.wgrid{grid-template-columns:1fr}.grow-arrow{display:none}}

/* ---------- Gebouwd ---------- */
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.b{background:var(--white);border-radius:var(--radius);padding:clamp(24px,2.4vw,32px);box-shadow:0 0 0 1px var(--line);display:flex;flex-direction:column}
.b.wide{grid-column:span 2;background:var(--midnight);color:var(--on-dark);box-shadow:none;justify-content:space-between;gap:28px}
.b.wide h3{font-size:clamp(1.6rem,1.3rem + 1.2vw,2.3rem);color:#fff;max-width:20ch}
.b.wide p{color:var(--on-midnight-soft);font-size:1.0625rem;max-width:36em}
.b.wide .steps{display:flex;flex-wrap:wrap;gap:8px}
.b.wide .steps span{font:500 .72rem var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);color:var(--on-dark)}
.b.wide .steps span:last-child{background:var(--celadon);color:var(--ink);box-shadow:none}
.tag{align-self:flex-start;font:500 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--tint);color:var(--midnight);margin-bottom:20px}
.tag.op-donker{background:rgba(255,255,255,.1);color:var(--on-dark)}
.tag.alt{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--soft)}
.b h3{font-size:1.3rem;margin-bottom:10px;letter-spacing:-.02em}
.b p{color:var(--soft);font-size:var(--fs-small);margin:0;flex:1}
.b a{margin-top:18px;font-weight:500;text-decoration:none;font-size:var(--fs-small)}
@media(max-width:1000px){.bgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.bgrid{grid-template-columns:1fr}.b.wide{grid-column:auto}}

/* ---------- CTA ---------- */
.cta{background:var(--midnight);color:var(--on-dark);padding:var(--section) 0}
.cta .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,5vw,72px);align-items:end}
.cta h2{font-size:clamp(2.4rem,1.6rem + 3.4vw,4.5rem);color:#fff;letter-spacing:-.04em}
.cta p{color:var(--on-midnight-soft);font-size:var(--fs-lead);margin:0 0 28px}
.cta .btn{background:var(--celadon);color:var(--ink)}
.cta .btn:hover{background:#fff}
@media(max-width:860px){.cta .wrap{grid-template-columns:1fr}}
footer{background:var(--ink);color:var(--on-dark-soft);font-size:.875rem;padding:48px 0}
footer .wrap{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}

footer a{color:var(--on-dark)}
.foot-links{line-height:1.8;text-align:right}
.foot-nav{display:block}
@media(max-width:700px){.foot-links{text-align:left}}
/* tekstpagina's (privacy, 404) */
.page{padding:clamp(48px,6vw,96px) 0 var(--section)}
.page .wrap{max-width:760px}
.page h1{font-size:clamp(2.2rem,1.5rem + 2.6vw,3.4rem);margin-bottom:28px}
.page h2{font-size:1.5rem;margin:40px 0 12px}
.page p,.page li{color:var(--soft)}
.page .meta{font:500 .75rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green)}

/* ---------- Menu op kleine schermen ---------- */
.top nav a[aria-current]{background:rgba(15,42,44,.08)}
.menuknop{display:none;font:500 .9375rem/1 var(--sans);color:var(--ink);background:transparent;border:0;border-radius:999px;padding:11px 16px;box-shadow:inset 0 0 0 1px rgba(15,42,44,.25);cursor:pointer}
.menuknop[aria-expanded="true"]{background:var(--ink);color:var(--paper);box-shadow:none}
@media(max-width:860px){
  .top .wrap{position:relative;flex-wrap:wrap}
  /* zonder JavaScript blijft het menu gewoon zichtbaar (loopt door op een tweede regel) */
  .top nav{flex-wrap:wrap}
  .js .top .wrap{flex-wrap:nowrap}
  .js .menuknop{display:inline-flex}
  .js .top nav{display:none;position:absolute;top:calc(100% - 8px);left:var(--gutter);right:var(--gutter);flex-direction:column;align-items:stretch;gap:2px;padding:10px;background:var(--white);border-radius:var(--radius);box-shadow:0 0 0 1px var(--line),0 24px 48px -24px rgba(15,42,44,.4)}
  .js .top nav.open{display:flex}
  .js .top nav a{padding:14px 16px;font-size:1.0625rem}
  .js .top nav a.cta{margin:6px 0 0;text-align:center}
}

/* ---------- Onderliggende pagina's (diensten, case, over) ---------- */
.kruimel{display:flex;align-items:center;gap:10px;font:500 .75rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:0 0 clamp(32px,5vw,56px)}
.kruimel a{color:var(--green);text-decoration:none}
.kruimel b{font-weight:500}
.subhero{padding:clamp(24px,4vw,56px) 0 var(--section)}
.subhero h1{max-width:19ch}
.subhero h1 em.s{color:var(--heart-d)}
.subhero .lead{margin:32px 0 28px}
.subhero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
/* het kader: elke dienst is een deel van één aanpak */
.kader{max-width:38rem;margin:0;padding:14px 18px;border-left:3px solid var(--heart);background:rgba(200,132,63,.07);border-radius:0 12px 12px 0;font-size:var(--fs-small);color:var(--ink)}
.kader a{font-weight:500;text-decoration:none;white-space:nowrap}
.tekst .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(32px,6vw,96px);align-items:start}
.tekst p{color:var(--soft);max-width:36em}
@media(max-width:900px){.tekst .wrap{grid-template-columns:minmax(0,1fr)}}
.verder{font-weight:500;text-decoration:none}
.verder:hover{text-decoration:underline}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--green)}
.card > p a{font-weight:500}
.card > .verder{margin-top:auto;font-size:var(--fs-small)}
.dark a{color:var(--celadon)}
.dark h2{color:#fff}
.dark.blok{padding:var(--section) 0}
.b.wide a{color:var(--celadon);margin-top:0}
.lagen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}
.lagen li{padding:24px 22px;border-radius:var(--radius);background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.lagen .n{font:500 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--celadon);margin-bottom:14px}
.lagen li:first-child .n{color:var(--heart-l)}
.lagen h3{font-size:1.25rem;line-height:1.2;color:#fff;margin-bottom:10px;hyphens:auto}
.lagen p{font-size:var(--fs-small);line-height:1.5;margin:0}
@media(max-width:1100px){.lagen{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.lagen{grid-template-columns:minmax(0,1fr)}}
/* twee dienstkaarten naast elkaar */
.wgrid.twee{grid-template-columns:repeat(2,minmax(0,1fr))}
.wgrid.twee .card h3{font-size:var(--fs-h3)}
@media(max-width:900px){.wgrid.twee{grid-template-columns:minmax(0,1fr)}}
.fact b{overflow-wrap:anywhere}
/* invulplek: zichtbaar in de testversie; de controle op main faalt zolang er een staat */
.invullen{border:1.5px dashed var(--heart);border-radius:16px;padding:18px 20px;background:rgba(200,132,63,.07);color:var(--heart-d);font-size:var(--fs-small);line-height:1.5;max-width:44rem}
.invullen b{display:block;font:500 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.result .grid[data-invullen]{outline:1.5px dashed var(--heart-l);outline-offset:14px;border-radius:4px}

/* ---------- Homepage: verwijzing naar beneden ---------- */
.btn .arr.omlaag{display:inline-block;animation:knik 1.8s var(--ease) infinite}
.scrollhint{margin-top:28px;font:500 .75rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.dark .scrollhint{color:var(--celadon)}
.scrollhint span{display:inline-block;margin-left:6px;animation:knik 1.8s var(--ease) infinite}
@keyframes knik{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){.scrollhint span,.btn .arr.omlaag{animation:none}}

/* ---------- Productontwikkeling: het V-model ---------- */
.vmodel{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:20px 16px;margin-top:clamp(32px,4vw,56px)}
.vlijn{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.vlijn polyline{fill:none;stroke:var(--celadon);stroke-width:2;stroke-dasharray:6 6;vector-effect:non-scaling-stroke;opacity:.55}
.vstap{position:relative;padding:22px;border-radius:var(--radius);background:var(--ink-2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.vstap .n{font:500 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--celadon);margin-bottom:12px}
.v1 .n,.v2 .n{color:var(--heart-l)}
.v3 .n{color:var(--mint)}
.vstap h3{font-size:1.2rem;line-height:1.25;color:#fff;margin-bottom:8px}
.vstap p{font-size:var(--fs-small);line-height:1.5;margin:0}
.v1{grid-area:1/1/2/3}.v2{grid-area:2/2/3/4}.v3{grid-area:3/3/4/6}.v4{grid-area:2/5/3/7}.v5{grid-area:1/6/2/8}
.vpaar{align-self:center;margin:0 6px;padding-top:8px;border-top:1px dashed rgba(145,202,161,.55);text-align:center;font:500 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--celadon)}
.dark .vpaar{color:var(--celadon)}
.p1{grid-area:1/3/2/6}.p2{grid-area:2/4/3/5}
.trl{margin-top:clamp(32px,4vw,48px)}
.trl > p{font-size:var(--fs-small);margin:0 0 14px}
.trl > p b{font:500 .75rem var(--mono);letter-spacing:.08em;color:var(--heart-l);margin-right:8px}
.trl ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.trl li{padding-top:12px;border-top:4px solid var(--celadon);font-size:.875rem;line-height:1.35;color:var(--on-dark-soft)}
.trl li:nth-child(1){border-top-color:rgba(145,202,161,.25)}.trl li:nth-child(2){border-top-color:rgba(145,202,161,.45)}.trl li:nth-child(3){border-top-color:rgba(145,202,161,.65)}.trl li:nth-child(4){border-top-color:rgba(145,202,161,.85)}
.trl li b{display:block;font:500 .8rem var(--mono);color:#fff;margin-bottom:4px}
.vna-kop{margin:clamp(40px,5vw,64px) 0 16px;font:500 .75rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.dark .vna-kop{color:var(--heart-l)}
.vna{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
@media(max-width:900px){
  .vmodel{grid-template-columns:minmax(0,1fr);gap:12px}
  .vlijn,.vpaar{display:none}
  .v1,.v2,.v3,.v4,.v5{grid-area:auto}
  .v2,.v4{margin:0 5%}.v3{margin:0 10%}
}
@media(max-width:700px){.trl ol{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.vna{grid-template-columns:minmax(0,1fr)}}
.cestappen{list-style:none;margin:20px 0 24px;padding:0;counter-reset:ce}
.cestappen li{counter-increment:ce;position:relative;padding:0 0 14px 40px;color:var(--soft);max-width:36em}
.cestappen li::before{content:counter(ce);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--tint);color:var(--green);font:500 .8rem/26px var(--mono);text-align:center}
.cestappen b{color:var(--ink);font-weight:600}

/* ---------- Klikbare kaart: de link in de kop dekt de hele kaart ---------- */
.card.klik{position:relative}
.card.klik h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card.klik h3 a:focus-visible{outline:none}
.card.klik:has(h3 a:focus-visible){outline:2px solid var(--green);outline-offset:4px}
.card.klik:hover h3 a{color:var(--green)}
.card.klik span.verder{color:var(--green)}
.card.klik:hover span.verder{text-decoration:underline}

/* ---------- Over: portret naast de introductie ---------- */
.subhero-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(32px,5vw,72px);align-items:center}
.portret{margin:0}
.portret img{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:calc(var(--radius) + 8px)}
@media(max-width:900px){.subhero-grid{grid-template-columns:minmax(0,1fr)}.portret{max-width:360px}}

/* ---------- Tussenkoppen in een verhaal ---------- */
.tussenkop{font-size:1.25rem;margin:32px 0 10px}
.tussenkop:first-child{margin-top:0}
/* "Over Wessel van Haarlem" op één regel: de kop is ongeveer 11 keer zo breed als zijn lettergrootte */
@media(min-width:520px){
  .subhero-grid > div{container-type:inline-size}
  .met-foto h1{max-width:none;white-space:nowrap;font-size:min(var(--fs-h1),calc(100cqi / 11.2))}
}
/* opsomming zonder volgorde, met dezelfde bolletjes als "Past het?" */
.punten{list-style:none;margin:16px 0 24px;padding:0}
.punten li{position:relative;padding:0 0 12px 30px;color:var(--soft);max-width:36em}
.punten li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:12px;border-radius:50%;background:var(--heart);box-shadow:0 0 0 5px rgba(200,132,63,.16)}
.punten b{color:var(--ink);font-weight:600}
/* "Past het?" direct na een donkere sectie (interim): ruimte erboven */
.dark + .fit{padding-top:var(--section)}
