:root{
  --accent:#C23F28;
  --ink:#14171F;
  --grijs:#4A5163;
  --lijn:#DDE2EC;
  --bg:#F3F5F9;
  --wit:#FFFFFF;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.6}
img{display:block;max-width:100%}
a{color:#1D3F8C}
a:hover{color:#122A60}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;letter-spacing:-0.02em}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.wrap-smal{max-width:760px;margin:0 auto;padding:0 24px}

/* knoppen */
.knop-primair{min-height:52px;padding:0 24px;border:0;border-radius:10px;background:var(--ink);
  color:#fff;font:inherit;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;text-decoration:none}
.knop-primair:hover{color:#fff;opacity:.92}
.knop-anker{background:var(--accent)}
.knop-terug{min-height:44px;border:0;background:transparent;color:#1D3F8C;font:inherit;
  font-size:15px;font-weight:600;cursor:pointer;align-self:flex-start;padding:0}

/* home hero */
.hero{background:var(--accent);color:#fff}
.hero-inner{padding:56px 24px 64px}
.hero-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.merk{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px}
.teller{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;
  background:#fff;color:var(--ink);font-size:14px;font-weight:600}
.hero h1{font-size:clamp(2.5rem,6vw,5rem);line-height:1;margin:28px 0 0}
.lead{font-size:19px;max-width:640px;margin:18px 0 0}

/* teken-widget */
.teken{margin-top:28px}
.stap{background:var(--wit);color:var(--ink);border-radius:16px;padding:24px}
.form-gegevens{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}
.rij{display:flex;flex-wrap:wrap;gap:16px;flex:1 1 100%}
.veld{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:6px}
.veld label{font-size:14px;font-weight:600}
.veld input,.veld select{min-height:52px;padding:0 14px;border:1px solid #8B92A3;border-radius:10px;
  font:inherit;font-size:16px;background:#fff}
.code-invoer{font-size:22px;letter-spacing:.3em;text-align:center}
.akkoord{flex:1 1 100%;display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--grijs)}
.akkoord input{width:20px;height:20px;margin:1px 0 0}
.stap .knop-primair{flex:1 1 100%;margin-top:4px}
.stap-form .knop-primair{flex:0 1 220px}
.stap h3{margin:0 0 6px;font-size:24px}
.stap-code form{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.hint{font-size:14px;color:var(--grijs);margin:0}
.fout{color:#B3261E;font-size:14px;margin:4px 0 0;font-weight:600}
.klaar-tekst{color:var(--grijs)}

/* sectietitel + grid */
.sectie-titel{font-size:40px;margin:64px 0 28px}
.grid{display:flex;flex-direction:column;gap:16px;padding-bottom:64px}
.kaart{display:flex;flex-wrap:wrap;gap:18px;background:var(--wit);border-radius:14px;padding:16px;
  text-decoration:none;color:var(--ink);align-items:center}
.kaart:hover{color:var(--ink);box-shadow:0 8px 28px rgba(0,0,0,.07)}
.kaart>img{width:120px;height:120px;flex:0 0 120px;border-radius:12px;object-fit:cover;object-position:top center}
.kaart-tekst{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:6px}
.kaart-nr{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:700;color:var(--grijs)}
.kaart-tekst h3{margin:0;font-size:22px}
.kaart-tekst p{margin:0;font-size:15px;color:#3B4252}
.kaart-link{font-size:15px;font-weight:600;color:#1D3F8C}

/* model: topbar */
.topbar{background:var(--wit);border-bottom:1px solid var(--lijn)}
.topbar-inner{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;padding:12px 24px}
.terug{font-weight:600;text-decoration:none}

/* model: intro */
.intro{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding-top:56px;padding-bottom:56px}
.hoofdfoto{flex:1 1 380px;min-width:0;height:560px;border-radius:20px;object-fit:cover;object-position:top center}
.intro-tekst{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:18px}
.badges{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.badge{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;
  background:#E9EEF8;color:#1D3F8C;font-size:13px;font-weight:600}
.intro-tekst h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1;margin:0}
.quote{font-size:20px;color:#3B4252;margin:0}

/* model: verhaal */
.verhaal-sectie{background:var(--wit)}
.verhaal-sectie .wrap-smal{padding-top:72px;padding-bottom:72px}
.verhaal-sectie h2{font-size:36px;margin:0 0 20px}
.verhaal-sectie p{font-size:18px;line-height:1.75;color:#2A2F3B;margin:0 0 18px}

/* model: galerij */
.galerij-sectie{padding-top:72px}
.galerij-sectie h2{font-size:36px;margin:0 0 28px}
.galerij{display:flex;flex-wrap:wrap;gap:16px}
.galerij img{flex:1 1 300px;min-width:0;height:340px;border-radius:16px;object-fit:cover;object-position:top center}

/* model: teken-sectie */
.teken-sectie{background:var(--accent);color:#fff;margin-top:72px}
.teken-sectie .wrap-smal{padding-top:72px;padding-bottom:72px}
.teken-sectie h2{font-size:40px;margin:0 0 12px}
.teken-lead{font-size:18px;margin:0}

/* voet */
.voet{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:15px;
  padding-top:32px;padding-bottom:48px;color:var(--grijs)}
.voet-nav a{font-weight:600}
