/* Displaykennis — huisstijl B: donkere kop en opening, lichte leesvlakken, kraftbruin accent, stansmeslijnen */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/bricolage-grotesque-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/bricolage-grotesque-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}

:root{
  --ink:#141a21; --ink-2:#1b232c; --ink-line:#2b3540; --ink-fg:#e9e6df; --ink-muted:#a2abb5;
  --kraft:#d9a866; --kraft-on:#1a140c;
  --paper:#f5f4f0; --paper-2:#ffffff; --paper-fg:#1b2129; --paper-muted:#565f69; --paper-line:#dedbd3;
  --kraft-text:#845a25; --kraft-line:#b88a4f; --kraft-soft:#f2e7d6;
  --warn-bg:#fbeedd; --warn-fg:#7a3f0c;
  --ok:#2f6b3a;
  --f-display:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --gutter-l:max(20px,env(safe-area-inset-left,0px));
  --gutter-r:max(20px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--paper-fg);font:16px/1.7 var(--f-body)}
img,svg{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--kraft);outline-offset:3px}
.nw{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.in{max-width:1080px;margin:0 auto;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}
.narrow{max-width:760px}

/* Kop */
.top{background:var(--ink);color:var(--ink-fg);border-bottom:1px solid var(--ink-line)}
.top .in{display:flex;justify-content:space-between;align-items:center;gap:10px 20px;flex-wrap:wrap;padding-block:16px}
.logo{font:700 20px var(--f-display);letter-spacing:-.01em;text-decoration:none;color:var(--ink-fg)}
.logo span{color:var(--kraft)}
.top nav{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:15px}
.top nav a{text-decoration:none;color:var(--ink-muted);padding-block:4px;border-bottom:2px solid transparent}
.top nav a:hover{color:var(--ink-fg)}
.top nav a[aria-current="page"]{color:var(--ink-fg);border-bottom-color:var(--kraft)}

/* Opening homepage */
.hero{background:var(--ink);color:var(--ink-fg)}
.hero .in{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center;padding-block:40px 64px}
.eyebrow{font:500 12px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--kraft-text)}
.hero .eyebrow,.page-hero .eyebrow,.wait .eyebrow{color:var(--kraft)}
h1{font:700 clamp(34px,6vw,58px)/1.06 var(--f-display);letter-spacing:-.025em;margin:12px 0 0;text-wrap:balance}
h1 em{font-style:normal;color:var(--kraft)}
.hero .lead{color:var(--ink-muted);font-size:18px;max-width:34em;margin:18px 0 0}
.ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.btn{display:inline-block;font:500 15px var(--f-body);text-decoration:none;padding:12px 18px;border-radius:8px;line-height:1.3}
.btn.primary{background:var(--kraft);color:var(--kraft-on)}
.btn.ghost{border:1px solid var(--ink-line);color:var(--ink-fg)}
.dieline{width:100%;max-width:440px;height:auto;justify-self:center}
.cut{fill:none;stroke:var(--ink-fg);stroke-opacity:.75;stroke-width:1.6;stroke-linejoin:round}
.fold{fill:none;stroke:var(--kraft);stroke-width:1.6;stroke-dasharray:7 6;animation:march 6s linear infinite}
.glue{fill:var(--kraft);fill-opacity:.08;stroke:none}
.dim{fill:var(--ink-muted);font:500 11px var(--f-mono)}
.dimline{stroke:var(--ink-muted);stroke-width:1;stroke-opacity:.6}
@keyframes march{to{stroke-dashoffset:-78}}

/* Kerncijfers */
.facts{background:var(--ink-2);color:var(--ink-fg);border-block:1px solid var(--ink-line)}
.facts .in{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-block:20px}
.fact b{display:block;font:700 26px var(--f-display);font-variant-numeric:tabular-nums}
.fact small{color:var(--ink-muted);font-size:14px}

/* Opening subpagina's */
.page-hero{background:var(--ink);color:var(--ink-fg);border-bottom:2px dashed var(--kraft)}
.page-hero .in{padding-block:28px 40px}
.crumbs{font-size:13px;color:var(--ink-muted);margin-bottom:18px}
.crumbs a{color:var(--ink-muted)}
.crumbs a:hover{color:var(--ink-fg)}
.page-hero h1{font-size:clamp(30px,5vw,46px)}
.page-hero .lead{color:var(--ink-muted);font-size:18px;margin:14px 0 0;max-width:38em}

/* Leesgedeelte */
main{display:block}
.article .in{padding-block:36px 56px;display:flex;flex-direction:column;gap:36px}
.section-head{margin-bottom:4px}
.article h2{font:700 clamp(23px,3vw,28px)/1.2 var(--f-display);letter-spacing:-.01em;margin:0 0 12px;text-wrap:balance}
.article h3{font:500 17px/1.4 var(--f-body);margin:0}
.article p{margin:0}
.article section > p + p{margin-top:12px}
.sub{color:var(--paper-muted);margin:-4px 0 10px}

.answer{background:var(--kraft-soft);border:1px solid var(--kraft-line);border-radius:12px;padding:20px 22px}
.answer .eyebrow{margin-bottom:6px}
.answer p{font-size:18px;line-height:1.55}
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px}
.num{background:var(--paper-2);border-radius:8px;padding:12px 14px}
.num b{display:block;font:700 23px var(--f-display);font-variant-numeric:tabular-nums}
.num small{display:block;font-size:13px;color:var(--paper-muted)}
.note{font-size:14px;color:var(--paper-muted);margin-top:10px}

ol.steps{list-style:none;margin:0;padding:0;border-left:2px solid var(--paper-line)}
ol.steps li{position:relative;padding:0 0 22px 22px}
ol.steps li:last-child{padding-bottom:0}
ol.steps li::before{content:"";position:absolute;left:-7px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--kraft-line)}
ol.steps li.key::before{background:var(--kraft-line)}
.step-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.dur{font:500 12px var(--f-mono);color:var(--kraft-text);background:var(--kraft-soft);padding:2px 8px;border-radius:4px;font-variant-numeric:tabular-nums}
ol.steps p{color:var(--paper-muted);margin-top:4px}
.total{color:var(--paper-muted);margin-top:16px !important}

ul.check{margin:0;padding:0;list-style:none;display:grid;gap:10px}
ul.check li{display:grid;grid-template-columns:22px 1fr;gap:8px}
ul.check li::before{content:"✓";color:var(--kraft-text);font-weight:500}

.warn{background:var(--warn-bg);color:var(--warn-fg);border-radius:12px;padding:18px 22px}
.warn h2{color:var(--warn-fg);font-size:20px;margin-bottom:6px}
.tip{background:var(--paper-2);border:1px solid var(--paper-line);border-radius:12px;padding:18px 22px}
.tip h2{font-size:20px;margin-bottom:6px}

.factors,.types,.methods{display:flex;flex-direction:column}
.factor,.type,.method{padding-block:14px;border-top:1px solid var(--paper-line)}
.factor:last-child,.type:last-child,.method:last-child{border-bottom:1px solid var(--paper-line)}
.factor{display:grid;grid-template-columns:120px 1fr;gap:4px 16px}
.factor > div,.type > div{min-width:0}
.impact{font:500 12px var(--f-mono);color:var(--kraft-text);padding-top:3px}
.factor p,.type p,.method p{color:var(--paper-muted);margin-top:4px}
.type-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.aka{font:500 12px var(--f-mono);color:var(--kraft-text);background:var(--kraft-soft);padding:2px 8px;border-radius:4px}
.type p b{color:var(--paper-fg);font-weight:500}

figure{margin:0;background:var(--paper-2);border:1px solid var(--paper-line);border-radius:12px;padding:18px}
.fig-title{font-size:14px;color:var(--paper-muted);text-align:center;margin:0 0 8px}
.pallets{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px}
.pallets svg{display:block;flex:1 1 240px;max-width:300px;height:auto}
figcaption{font-size:14px;color:var(--paper-muted);margin-top:10px}
.pal{fill:var(--kraft-soft);stroke:var(--kraft-line);stroke-width:2}
.disp{fill:var(--paper-2);stroke:var(--paper-fg);stroke-width:1.5}
.lbl{fill:var(--paper-fg);font:500 13px var(--f-mono)}
.lbl-m{fill:var(--paper-muted);font:400 12px var(--f-body)}

.tbl{overflow-x:auto;border:1px solid var(--paper-line);border-radius:12px;background:var(--paper-2)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--paper-line);vertical-align:top}
th{font:500 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--kraft-text)}
tr:last-child td{border-bottom:0}
td{color:var(--paper-muted)}
td:first-child{color:var(--paper-fg);font-weight:500}

details{border-top:1px solid var(--paper-line);padding-block:12px}
details:last-of-type{border-bottom:1px solid var(--paper-line)}
summary{cursor:pointer;font-weight:500}
details p{color:var(--paper-muted);margin-top:8px !important}

.cta-box{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;background:var(--paper-2);border:1px solid var(--paper-line);border-radius:12px;padding:18px 22px}
.cta-box p{flex:1 1 260px;min-width:0}
.cta-box a{font-weight:500;color:var(--kraft-text);text-decoration:none}
.cta-box a:hover{text-decoration:underline}

/* Kaarten */
.section-head .eyebrow{display:block}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{display:flex;flex-direction:column;gap:8px;background:var(--paper-2);border:1px solid var(--paper-line);border-radius:12px;padding:20px;text-decoration:none;color:var(--paper-fg);transition:border-color .15s}
.card:hover{border-color:var(--kraft-line)}
.card .tag{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--kraft-text)}
.card h3{font:500 19px/1.3 var(--f-body);margin:0}
.card p{margin:0;color:var(--paper-muted);font-size:15px}
.card .more{margin-top:auto;padding-top:6px;font-size:14px;color:var(--kraft-text)}
.card.tool{background:var(--kraft-soft);border-color:transparent}
.card.tool:hover{border-color:var(--kraft-line)}
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:8px}
.why div{border-top:2px solid var(--kraft-line);padding-top:12px}
.why b{display:block;font-weight:500;margin-bottom:4px}
.why p{color:var(--paper-muted);font-size:15px}

/* Rekentool */
.tool{background:var(--paper-2);border:1px solid var(--paper-line);border-radius:12px;padding:20px 22px}
.tool label{font-weight:500;display:block;margin-bottom:6px}
input[type=text],input[type=date],input[type=email],textarea{font:inherit;padding:10px 12px;border:1px solid var(--paper-line);border-radius:8px;background:var(--paper);color:var(--paper-fg);max-width:100%}
.big{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:18px}
.big div{background:var(--kraft-soft);border-radius:8px;padding:12px 14px}
.big small{display:block;font-size:13px;color:var(--paper-muted)}
.big b{display:block;font:700 22px var(--f-display);font-variant-numeric:tabular-nums}
.timeline{list-style:none;margin:18px 0 0;padding:0}
.timeline li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding-block:9px;border-top:1px solid var(--paper-line)}
.timeline li.hl{font-weight:500}
.timeline li.hl .d{color:var(--kraft-text)}
.timeline .t{min-width:0}
.timeline .d{font:500 13px var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.timeline small{grid-column:1/-1;color:var(--paper-muted);font-size:13px;font-weight:400}

/* Briefing-checklist */
.sec{background:var(--paper-2);border:1px solid var(--paper-line);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:18px}
.sec h2{display:flex;gap:10px;align-items:baseline;margin:0}
.sec h2 .n{font:500 13px var(--f-mono);color:var(--kraft-text)}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field > label,.field legend{font-weight:500;padding:0}
fieldset{border:0;margin:0;padding:0;min-width:0}
.hint{font-size:14px;color:var(--paper-muted)}
.field input[type=text],.field input[type=date],.field textarea{width:100%}
textarea{min-height:76px;resize:vertical}
.opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt span{display:inline-block;padding:7px 12px;border:1px solid var(--paper-line);border-radius:999px;font-size:14px;background:var(--paper);cursor:pointer}
.opt input:checked + span{background:var(--kraft-soft);border-color:var(--kraft-line);font-weight:500}
.opt input:focus-visible + span{outline:2px solid var(--kraft-line);outline-offset:2px}
#brief{display:flex;flex-direction:column;gap:16px}
.has-bar{padding-bottom:150px}
.bar{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--ink);color:var(--ink-fg);border-top:1px solid var(--ink-line);
  padding:12px var(--gutter-r) calc(12px + env(safe-area-inset-bottom,0px)) var(--gutter-l)}
.bar-in{max-width:1040px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.prog{flex:1 1 180px;min-width:0}
.prog small{font-size:13px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.track{height:6px;background:var(--ink-line);border-radius:3px;margin-top:6px;overflow:hidden}
.track i{display:block;height:100%;width:0;background:var(--kraft);transition:width .2s}
.btns{display:flex;gap:8px}
.bar button{font:500 15px var(--f-body);padding:10px 16px;border-radius:8px;cursor:pointer}
.bar .primary{background:var(--kraft);color:var(--kraft-on);border:0}
.bar .ghost{background:transparent;color:var(--ink-fg);border:1px solid var(--ink-line)}
#status{font-size:14px;color:var(--ink-fg);width:100%;margin:0}
#status:empty{display:none}
#fallback{width:100%;min-height:140px;font:13px var(--f-mono);background:var(--ink-2);color:var(--ink-fg);border:1px solid var(--ink-line)}

/* Aanmelden */
.wait{background:var(--ink);color:var(--ink-fg)}
.wait .in{padding-block:52px}
.wait-box{border:1px dashed var(--kraft);border-radius:14px;padding:28px;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center}
.wait h2{font:700 28px/1.15 var(--f-display);margin:6px 0 8px;text-wrap:balance}
.wait p{margin:0;color:var(--ink-muted)}
.wait form{display:flex;flex-wrap:wrap;gap:8px}
.wait input{flex:1 1 200px;min-width:0;border-color:var(--ink-line);background:var(--ink-2);color:var(--ink-fg)}
.wait input::placeholder{color:var(--ink-muted)}
.wait button{font:500 15px var(--f-body);padding:12px 18px;border:0;border-radius:8px;background:var(--kraft);color:var(--kraft-on);cursor:pointer}
.wl-msg{font-size:14px;color:var(--ink-muted);margin-top:8px !important;min-height:1.2em}

/* Voet */
footer.foot{background:var(--ink);color:var(--ink-muted);border-top:1px solid var(--ink-line);font-size:13px}
footer.foot .in{padding-block:24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}
footer.foot .mail{color:var(--ink-fg);font-weight:500;user-select:all}

@media (max-width:560px){
  .tbl table{min-width:0}
  .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl tr{display:block;padding:12px 16px;border-bottom:1px solid var(--paper-line)}
  .tbl tr:last-child{border-bottom:0}
  .tbl td{display:block;padding:2px 0;border:0}
  .tbl td[data-label]::before{content:attr(data-label) ": ";font-weight:500;color:var(--paper-fg)}
}
@media (max-width:760px){
  .hero .in{grid-template-columns:1fr;padding-block:20px 44px}
  .dieline{max-width:320px;order:-1}
  .facts .in{grid-template-columns:1fr;gap:10px}
  .wait-box{grid-template-columns:1fr;padding:22px}
  .factor{grid-template-columns:1fr}
  .factor .impact{padding-top:0}
  .top nav{font-size:14px;gap:4px 14px}
}
@media (prefers-reduced-motion:reduce){.fold{animation:none}.track i,.card{transition:none}}
