/* ==========================================================================
   Bouw en Klusbedrijf Giesberts
   Palette: staal (blauw-antraciet) + kalk + duimstok-geel
   Display: Archivo (expanded grotesque) · Body: Source Sans 3 · Data: IBM Plex Mono
   Signature: de duimstok-schaal (tick rule) onder de hero en boven elke sectie
   ========================================================================== */

/* --- Fonts (self-hosted, variable, latin + latin-ext) -------------------- */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 800;font-stretch:100% 125%;font-display:swap;src:url('/assets/fonts/archivo-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 800;font-stretch:100% 125%;font-display:swap;src:url('/assets/fonts/archivo-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/sourcesans-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/sourcesans-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/plexmono-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/plexmono-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* --- Tokens ------------------------------------------------------------- */
:root{
  --staal:#16202B;
  --staal-2:#22303F;
  --staal-3:#31445A;
  --kalk:#F2F4F6;
  --kalk-2:#E4E8ED;
  --wit:#FFFFFF;
  --duimstok:#F2A20C;
  --duimstok-diep:#B87503;
  --duimstok-zacht:#FFF4E0;
  --ink:#16202B;
  --ink-2:#4A5967;
  --beton:#6B7A88;
  --lijn:#D8DEE5;

  --display:'Archivo',system-ui,sans-serif;
  --body:'Source Sans 3',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1160px;
  --gut:clamp(1.15rem,4vw,2rem);
  --radius:3px;
  --shadow:0 1px 2px rgba(22,32,43,.06),0 8px 24px -12px rgba(22,32,43,.18);
  --shadow-lift:0 2px 4px rgba(22,32,43,.08),0 18px 40px -16px rgba(22,32,43,.28);
}

/* --- Reset / base ------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--wit);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:break-word;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--duimstok-diep);text-underline-offset:3px}
a:hover{color:var(--staal)}
:focus-visible{outline:3px solid var(--duimstok);outline-offset:2px;border-radius:2px}
/* De header blijft staan bij het scrollen, dus een ankerlink moet ruimte
   overhouden of de kop verdwijnt eronder. */
:target,h1,h2,h3,h4{scroll-margin-top:5.5rem}
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:700;
  font-stretch:112%;
  line-height:1.1;
  letter-spacing:-.018em;
  margin:0 0 .5em;
  text-wrap:balance;
}
h1{font-size:clamp(2.05rem,1.35rem + 3.1vw,3.85rem)}
h2{font-size:clamp(1.6rem,1.2rem + 1.75vw,2.5rem)}
h3{font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem);font-stretch:107%}
h4{font-size:1.0625rem;font-stretch:105%}
p{margin:0 0 1.1em}
ul,ol{margin:0 0 1.1em;padding-left:1.15rem}
li{margin-bottom:.4em}
:where(h1,h2,h3,h4) + p{margin-top:0}
.lead{font-size:clamp(1.1rem,1.03rem + .35vw,1.28rem);line-height:1.6;color:var(--ink-2)}
strong{font-weight:700;color:var(--ink)}

/* --- Layout ------------------------------------------------------------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.wrap-narrow{max-width:760px}
.section{padding-block:clamp(3.25rem,2rem + 5.5vw,6rem)}
.section-tight{padding-block:clamp(2.25rem,1.5rem + 3vw,3.75rem)}
.section-kalk{background:var(--kalk)}
.section-staal{background:var(--staal);color:var(--kalk)}
.section-staal h1,.section-staal h2,.section-staal h3{color:var(--wit)}
.section-staal .lead{color:#B9C4CF}
.skip{position:absolute;left:-9999px;top:0;background:var(--duimstok);color:var(--staal);padding:.75rem 1.25rem;font-weight:700;z-index:200}
.skip:focus{left:0}

/* --- Signature: de duimstok-schaal -------------------------------------- */
/* A folding-rule scale: minor ticks every 9px, major ticks every 45px.
   Ferry measures before he cuts; the site opens the same way. */
.tick{
  height:13px;
  color:var(--duimstok);
  background-image:
    repeating-linear-gradient(to right,currentColor 0 1px,transparent 1px 9px),
    repeating-linear-gradient(to right,currentColor 0 1.5px,transparent 1.5px 45px);
  background-repeat:no-repeat,no-repeat;
  background-size:100% 5px,100% 11px;
  background-position:left bottom,left bottom;
}
.tick-short{width:74px;margin-bottom:1rem}
.tick-full{width:100%}

/* --- Eyebrow ------------------------------------------------------------ */
.eyebrow{
  font-family:var(--mono);
  font-weight:500;
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--duimstok-diep);
  margin:0 0 .6rem;
}
.section-staal .eyebrow{color:var(--duimstok)}

/* --- Buttons ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.95rem 1.55rem;
  font-family:var(--display);font-weight:700;font-stretch:108%;font-size:1rem;
  letter-spacing:.005em;
  text-decoration:none;border-radius:var(--radius);border:2px solid transparent;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-primary{background:var(--duimstok);color:var(--staal);border-color:var(--duimstok)}
.btn-primary:hover{background:var(--duimstok-diep);border-color:var(--duimstok-diep);color:var(--wit);transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--staal);border-color:var(--staal)}
.btn-outline:hover{background:var(--staal);color:var(--wit);transform:translateY(-1px)}
.btn-onstaal{background:transparent;color:var(--wit);border-color:rgba(255,255,255,.45)}
.btn-onstaal:hover{background:var(--wit);color:var(--staal);border-color:var(--wit);transform:translateY(-1px)}
.btn-row{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.6rem}
/* Een kop die direct op een knoppenrij volgt, heeft eigen lucht nodig,
   anders plakt hij tegen de knoppen aan. */
.btn-row + h2,.btn-row + h3{margin-top:2.75rem}

/* --- Header ------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--staal);border-bottom:1px solid rgba(255,255,255,.09)}
.header-inner{display:flex;align-items:center;gap:1rem;min-height:70px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--wit);margin-right:auto}
.brand-mark{width:34px;height:34px;flex:none}
.brand-name{font-family:var(--display);font-weight:700;font-stretch:112%;font-size:1.02rem;line-height:1.05;letter-spacing:-.01em}
.brand-sub{display:block;font-family:var(--mono);font-weight:500;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--duimstok);margin-top:.16rem}
.nav{display:flex;align-items:center;gap:.15rem}
.nav a{
  font-family:var(--display);font-weight:600;font-stretch:104%;font-size:.94rem;
  color:#C6D0DA;text-decoration:none;padding:.55rem .7rem;border-radius:var(--radius);
  transition:color .15s ease,background-color .15s ease;
}
.nav a:hover{color:var(--wit);background:rgba(255,255,255,.07)}
.nav a[aria-current="page"]{color:var(--wit);box-shadow:inset 0 -2px 0 var(--duimstok)}
.header-call{
  display:inline-flex;align-items:center;gap:.5rem;margin-left:.5rem;
  background:var(--duimstok);color:var(--staal);text-decoration:none;
  font-family:var(--display);font-weight:700;font-stretch:106%;font-size:.94rem;
  padding:.62rem 1.05rem;border-radius:var(--radius);white-space:nowrap;
  transition:background-color .18s ease,color .18s ease;
}
.header-call:hover{background:var(--wit);color:var(--staal)}
.header-call svg{width:1.05em;height:1.05em;flex:none}
.nav-toggle{
  display:none;align-items:center;justify-content:center;gap:.5rem;
  background:transparent;border:2px solid rgba(255,255,255,.3);color:var(--wit);
  font-family:var(--display);font-weight:700;font-size:.85rem;font-stretch:106%;
  padding:.5rem .8rem;border-radius:var(--radius);cursor:pointer;
}
.nav-toggle svg{width:1.15em;height:1.15em}

@media (max-width:930px){
  .header-inner{min-height:64px;flex-wrap:wrap;gap:.5rem}
  .nav-toggle{display:inline-flex;order:2}
  /* De belknop staat in de DOM na de navigatie, maar hoort op mobiel naast de
     menuknop te staan in plaats van op een eigen regel te vallen. */
  .header-call{order:1;margin-left:0}
  .nav{
    display:none;order:3;width:100%;flex-direction:column;align-items:stretch;
    gap:0;padding-bottom:.7rem;
  }
  .nav.is-open{display:flex}
  .nav a{padding:.8rem .4rem;border-bottom:1px solid rgba(255,255,255,.09);border-radius:0}
  .nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--duimstok);padding-left:.8rem}
  .header-call span{display:none}
  .header-call{padding:.62rem .85rem}
}
@media (max-width:430px){
  .brand-mark{width:29px;height:29px}
  .brand-name{font-size:.94rem}
  .brand-sub{font-size:.55rem;letter-spacing:.12em}
  .nav-toggle{padding:.5rem .65rem}
}
/* Without JS the toggle cannot open the menu, so show the links as a wrapped row. */
.no-js .nav{display:flex;flex-direction:row;flex-wrap:wrap}
.no-js .nav-toggle{display:none}

/* --- Hero --------------------------------------------------------------- */
.hero{background:var(--staal);color:var(--kalk);position:relative;overflow:hidden}
.hero-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4vw,3.75rem);
  align-items:center;padding-block:clamp(2.75rem,2rem + 4vw,4.75rem);
}
.hero h1{color:var(--wit);margin-bottom:.55rem}
.hero .lead{color:#BCC7D2;max-width:34em}
.hero-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.9rem}
.badge{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--mono);font-weight:500;font-size:.72rem;letter-spacing:.06em;
  color:#C9D3DD;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.13);border-radius:var(--radius);
  padding:.42rem .72rem;
}
.badge svg{width:.95rem;height:.95rem;color:var(--duimstok);flex:none}
.hero-figure{position:relative}
.hero-figure img{
  width:100%;border-radius:var(--radius);
  box-shadow:0 30px 60px -26px rgba(0,0,0,.7);
}
.hero-figure figcaption{
  position:absolute;left:0;bottom:0;
  background:var(--staal);color:#C9D3DD;
  font-family:var(--mono);font-weight:500;font-size:.68rem;letter-spacing:.05em;
  padding:.55rem .8rem;border-top:2px solid var(--duimstok);
  max-width:80%;
}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:2rem;padding-block:2.5rem 2.75rem}
  .hero-figure{order:-1}
  .hero-figure img{max-height:46vh;object-fit:cover}
}

/* --- Signature: vakmanschap-band ---------------------------------------- */
/* One person, five trades. The band states the whole proposition in one line. */
.trades{background:var(--staal-2);border-top:1px solid rgba(255,255,255,.08)}
.trades-inner{
  display:flex;flex-wrap:wrap;align-items:center;
  gap:.55rem 1.35rem;padding-block:1rem;
}
.trades-label{
  font-family:var(--mono);font-weight:500;font-size:.68rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--duimstok);margin-right:.35rem;
}
.trades-list{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;list-style:none;margin:0;padding:0}
.trades-list li{
  display:flex;align-items:center;gap:1.1rem;margin:0;
  font-family:var(--display);font-weight:600;font-stretch:106%;font-size:.93rem;
  color:#DCE3EA;
}
.trades-list li::after{
  content:"";width:1px;height:14px;background:rgba(255,255,255,.22);
}
.trades-list li:last-child::after{display:none}

/* --- Cards -------------------------------------------------------------- */
.grid{display:grid;gap:clamp(1rem,2vw,1.5rem)}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(275px,1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}

.card{
  display:flex;flex-direction:column;
  background:var(--wit);border:1px solid var(--lijn);border-radius:var(--radius);
  padding:1.6rem 1.5rem;position:relative;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.card::before{
  content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;
  background:var(--duimstok);border-radius:var(--radius) var(--radius) 0 0;
  opacity:0;transition:opacity .18s ease;
}
a.card{text-decoration:none;color:inherit}
a.card:hover{border-color:var(--kalk-2);box-shadow:var(--shadow-lift);transform:translateY(-2px)}
a.card:hover::before{opacity:1}
.card h3{margin-bottom:.35rem}
.card p{color:var(--ink-2);font-size:.98rem;margin-bottom:0}
.card-icon{width:34px;height:34px;color:var(--duimstok-diep);margin-bottom:.9rem;flex:none}
.card-more{
  margin-top:auto;padding-top:1rem;
  font-family:var(--display);font-weight:700;font-stretch:106%;font-size:.9rem;
  color:var(--duimstok-diep);display:inline-flex;align-items:center;gap:.4rem;
}
a.card:hover .card-more{color:var(--staal)}
.card-more svg{width:.9em;height:.9em;transition:transform .18s ease}
a.card:hover .card-more svg{transform:translateX(3px)}

/* Reason cards sit on kalk, so they invert to white with no hover lift. */
.reason{background:var(--wit);border:1px solid var(--lijn);border-radius:var(--radius);padding:1.5rem 1.4rem}
.reason h3{font-size:1.08rem;margin-bottom:.3rem}
.reason p{color:var(--ink-2);font-size:.97rem;margin-bottom:0}
.reason-num{
  font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.14em;
  color:var(--duimstok-diep);display:block;margin-bottom:.7rem;
}

/* --- Projects ----------------------------------------------------------- */
.project{
  margin:0;background:var(--wit);border:1px solid var(--lijn);
  border-radius:var(--radius);overflow:hidden;
}
.project img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--kalk-2)}
.project figcaption{padding:.9rem 1.1rem 1.05rem}
.project-title{font-family:var(--display);font-weight:700;font-stretch:107%;font-size:1rem;display:block;margin-bottom:.2rem}
.project-meta{font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.08em;color:var(--beton);text-transform:uppercase}
.project-tall img{aspect-ratio:3/4}

/* --- Bedrijfsbus: de enige foto van Ferry zelf die bewaard is gebleven --- */
/* De foto is een banneruitsnede van 1260 bij 239, dus hij wordt als volle
   band getoond en bijgesneden vanuit het midden, waar Ferry en de belettering
   staan. */
.vanband{position:relative;background:var(--staal-2);overflow:hidden}
.vanband img{
  width:100%;height:clamp(150px,23vw,270px);object-fit:cover;object-position:52% 50%;
}
.vanband figcaption{
  position:absolute;left:0;bottom:0;
  background:var(--staal);color:#C9D3DD;
  font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.06em;
  padding:.6rem .95rem;border-top:2px solid var(--duimstok);max-width:min(92%,46ch);
}
@media (max-width:620px){
  .vanband img{object-position:56% 50%}
  .vanband figcaption{font-size:.64rem;padding:.5rem .75rem}
}

/* --- Quote block (offerteblok) ------------------------------------------ */
.offerte{background:var(--duimstok);color:var(--staal)}
.offerte-inner{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1.75rem;padding-block:clamp(2.25rem,1.5rem + 3vw,3.5rem);
}
.offerte h2{color:var(--staal);margin-bottom:.35rem;max-width:20ch}
.offerte p{color:#5A4104;margin-bottom:0;max-width:44ch;font-size:1.06rem}
.offerte .btn-row{margin-top:0}
.btn-onduimstok{background:var(--staal);color:var(--wit);border-color:var(--staal)}
.btn-onduimstok:hover{background:var(--wit);color:var(--staal);border-color:var(--staal);transform:translateY(-1px)}
.btn-onduimstok-ghost{background:transparent;color:var(--staal);border-color:rgba(22,32,43,.4)}
.btn-onduimstok-ghost:hover{background:var(--staal);color:var(--wit);border-color:var(--staal);transform:translateY(-1px)}

/* --- FAQ ---------------------------------------------------------------- */
.faq{border-top:1px solid var(--lijn)}
.faq details{border-bottom:1px solid var(--lijn);padding:.35rem 0}
.faq summary{
  cursor:pointer;list-style:none;padding:1.05rem 2.5rem 1.05rem 0;position:relative;
  font-family:var(--display);font-weight:700;font-stretch:106%;
  font-size:clamp(1.02rem,.98rem + .2vw,1.13rem);color:var(--staal);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:.35rem;top:50%;width:11px;height:11px;
  border-right:2.5px solid var(--duimstok-diep);border-bottom:2.5px solid var(--duimstok-diep);
  transform:translateY(-65%) rotate(45deg);transition:transform .2s ease;
}
.faq details[open] summary::after{transform:translateY(-25%) rotate(-135deg)}
.faq details > *:not(summary){margin-bottom:1.05rem;color:var(--ink-2);max-width:70ch}

/* --- Contact / NAP ------------------------------------------------------ */
.nap{list-style:none;margin:0;padding:0}
.nap li{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1.15rem}
.nap svg{width:1.25rem;height:1.25rem;color:var(--duimstok-diep);flex:none;margin-top:.2rem}
.nap-label{
  display:block;font-family:var(--mono);font-weight:500;font-size:.66rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--beton);margin-bottom:.1rem;
}
.nap-value{font-size:1.06rem;font-weight:600;color:var(--staal);text-decoration:none}
a.nap-value:hover{color:var(--duimstok-diep)}
.map-link{display:block;text-decoration:none;border:1px solid var(--lijn);border-radius:var(--radius);overflow:hidden;background:var(--kalk)}
.map-link img{width:100%;aspect-ratio:16/9;object-fit:cover}
.map-link span{
  display:flex;align-items:center;gap:.45rem;padding:.8rem 1rem;
  font-family:var(--display);font-weight:700;font-stretch:106%;font-size:.92rem;color:var(--staal);
}
.map-link:hover span{color:var(--duimstok-diep)}
.map-link svg{width:1em;height:1em}
.map-placeholder{
  display:flex;align-items:center;justify-content:center;text-align:center;
  aspect-ratio:16/9;background:var(--kalk-2);color:var(--beton);
  font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;padding:1rem;
}

/* --- Prose (service / legal pages) -------------------------------------- */
.prose{max-width:70ch}
.prose h2{margin-top:2.4rem}
.prose h3{margin-top:1.8rem}
.prose > :first-child{margin-top:0}
.prose ul{padding-left:1.2rem}
.prose li::marker{color:var(--duimstok-diep)}
.checklist{list-style:none;padding-left:0}
.checklist li{position:relative;padding-left:1.85rem;margin-bottom:.55rem}
.checklist li::before{
  content:"";position:absolute;left:.1rem;top:.52em;width:9px;height:5px;
  border-left:2.5px solid var(--duimstok-diep);border-bottom:2.5px solid var(--duimstok-diep);
  transform:rotate(-45deg);
}
.factbox{
  background:var(--kalk);border-left:3px solid var(--duimstok);
  border-radius:0 var(--radius) var(--radius) 0;padding:1.25rem 1.4rem;margin:1.75rem 0;
}
.factbox p:last-child{margin-bottom:0}
.factbox dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.2rem}
.factbox dt{font-family:var(--mono);font-weight:500;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--beton);padding-top:.15rem}
.factbox dd{margin:0;font-weight:600;color:var(--staal)}

/* --- Steps (HowTo) ------------------------------------------------------ */
.steps{list-style:none;padding:0;counter-reset:step;margin:0}
.steps li{
  counter-increment:step;position:relative;padding-left:3.1rem;
  padding-bottom:1.6rem;margin-bottom:0;
}
.steps li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;left:0;top:0;
  font-family:var(--mono);font-weight:500;font-size:.78rem;letter-spacing:.06em;
  color:var(--duimstok-diep);background:var(--duimstok-zacht);
  width:2.15rem;height:2.15rem;display:flex;align-items:center;justify-content:center;
  border-radius:50%;
}
.steps li::after{
  content:"";position:absolute;left:1.07rem;top:2.35rem;bottom:.2rem;width:1px;background:var(--lijn);
}
.steps li:last-child{padding-bottom:0}
.steps li:last-child::after{display:none}
.steps h3{font-size:1.08rem;margin-bottom:.25rem}
.steps p{color:var(--ink-2);margin-bottom:0;font-size:.99rem}

/* --- Breadcrumbs -------------------------------------------------------- */
.crumbs{
  font-family:var(--mono);font-weight:500;font-size:.72rem;letter-spacing:.06em;
  padding-block:1rem;color:var(--beton);
}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0}
.crumbs li{margin:0;display:flex;gap:.4rem;align-items:center}
.crumbs li:not(:last-child)::after{content:"/";color:var(--lijn)}
.crumbs a{color:var(--beton);text-decoration:none}
.crumbs a:hover{color:var(--duimstok-diep)}
.crumbs [aria-current="page"]{color:var(--staal)}

/* --- Page header (inner pages) ------------------------------------------ */
.pagehead{background:var(--kalk);border-bottom:1px solid var(--lijn)}
.pagehead-inner{padding-block:clamp(1.75rem,1.25rem + 2.5vw,3.25rem)}
.pagehead h1{margin-bottom:.5rem;max-width:19ch}
.pagehead .lead{max-width:60ch;margin-bottom:0}

/* --- Footer ------------------------------------------------------------- */
.site-footer{background:var(--staal);color:#AEBAC6;font-size:.97rem}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.25rem;
  padding-block:clamp(2.5rem,2rem + 2vw,3.5rem);
}
.site-footer h2{
  font-size:.7rem;font-family:var(--mono);font-weight:500;font-stretch:100%;
  letter-spacing:.16em;text-transform:uppercase;color:var(--duimstok);
  margin-bottom:1rem;letter-spacing:.16em;
}
.site-footer a{color:#CBD5DF;text-decoration:none}
.site-footer a:hover{color:var(--wit);text-decoration:underline}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.55rem}
.footer-brand .brand-name{font-size:1.1rem;color:var(--wit);display:block;margin-bottom:.6rem}
.footer-brand p{max-width:38ch;color:#9FACB9}
.footer-legal{
  border-top:1px solid rgba(255,255,255,.1);
  padding-block:1.25rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;
  font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.07em;color:#8593A1;
}
.footer-legal a{color:#8593A1}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.footer-brand{grid-column:1/-1}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* --- Utilities ---------------------------------------------------------- */
.stack-lg > * + *{margin-top:clamp(2.25rem,1.75rem + 2vw,3.25rem)}
.center{text-align:center;margin-inline:auto}
.mono{font-family:var(--mono);font-weight:500}
.visually-hidden{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.section-head{max-width:62ch;margin-bottom:clamp(1.75rem,1.25rem + 1.5vw,2.5rem)}
.section-head p:last-child{margin-bottom:0}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .btn:hover,a.card:hover{transform:none}
}
