  :root{
    --spiegel:#F4F7F6;   /* pagina-achtergrond */
    --wit:#FFFFFF;
    --inkt:#18211F;      /* tekst */
    --grijs:#5B6764;     /* tweede tekst */
    --lijn:#DCE3E0;
    --groen:#1D6B58;     /* hoofdkleur, knoppen */
    --groen-donker:#145243;
    --groen-licht:#E3EFEB;
    --roze:#F3D5CC;      /* geboekt-slot */
    --roze-donker:#8C3B28;
    --r-s:6px; --r-m:12px; --r-l:22px;
    --max:1120px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--spiegel);color:var(--inkt);font:400 17px/1.6 "Instrument Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;line-height:1.08;letter-spacing:-.02em;margin:0}
  h1{font-size:clamp(40px,6.2vw,72px)}
  h2{font-size:clamp(30px,4vw,44px)}
  h3{font-size:21px;letter-spacing:-.01em;line-height:1.2}
  p{margin:0}
  a{color:inherit}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
  section{padding:96px 0}
  .lead{font-size:19px;color:var(--grijs);max-width:56ch}
  :focus-visible{outline:3px solid var(--groen);outline-offset:3px;border-radius:4px}

  /* knoppen */
  .btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font:600 16px/1 "Instrument Sans",sans-serif;text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:background .15s,border-color .15s}
  .btn-hoofd{background:var(--groen);color:#fff}
  .btn-hoofd:hover{background:var(--groen-donker)}
  .btn-rand{background:transparent;border-color:var(--inkt);color:var(--inkt)}
  .btn-rand:hover{background:var(--wit)}
  .btn svg{width:18px;height:18px;flex:none}

  /* header */
  header{position:sticky;top:0;z-index:50;background:rgba(244,247,246,.9);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
  header.scrolled{border-color:var(--lijn)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:72px}
  .logo{display:flex;align-items:center;gap:10px;font:700 21px "Bricolage Grotesque",sans-serif;text-decoration:none;letter-spacing:-.02em}
  .logo-mark{width:32px;height:32px;display:block;flex:none}
    .nav-links{display:flex;gap:28px;font-weight:500;font-size:16px}
  .nav-links a{text-decoration:none;color:var(--grijs)}
  .nav-links a:hover{color:var(--inkt)}
  .nav-cta{display:flex;gap:10px}
  .nav-cta .btn{padding:11px 18px;font-size:15px}

  /* hero */
  .hero{padding:72px 0 88px}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
  .hero h1{max-width:12ch}
  .hero .lead{margin-top:24px}
  .hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
  .hero-note{margin-top:20px;font-size:15px;color:var(--grijs)}
  .hero-note a{color:var(--groen);font-weight:600}

  /* afsprakenboek */
  .boek{background:var(--wit);border:1px solid var(--lijn);border-radius:var(--r-l);padding:22px 22px 18px;box-shadow:0 30px 60px -30px rgba(24,33,31,.25)}
  .boek-kop{display:flex;justify-content:space-between;align-items:baseline;padding:0 4px 14px;border-bottom:1px solid var(--lijn)}
  .boek-kop strong{font:700 19px "Bricolage Grotesque",sans-serif}
  .boek-kop span{font-size:14px;color:var(--grijs)}
  .slots{list-style:none;margin:0;padding:6px 0 0}
  .slot{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;min-height:48px;border-bottom:1px dashed var(--lijn);font-size:15px}
  .slot:last-child{border-bottom:0}
  .slot time{color:var(--grijs);font-variant-numeric:tabular-nums;padding-left:4px}
  .afspraak{border-radius:var(--r-s);padding:7px 12px;background:var(--groen-licht);color:var(--groen-donker)}
  .afspraak small{display:block;font-size:13px;opacity:.8}
  .slot.nieuw .afspraak{background:var(--roze);color:var(--roze-donker);position:relative}
  .gebeld{display:flex;gap:12px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:var(--r-m);background:var(--spiegel);font-size:14px;color:var(--grijs)}
  .gebeld svg{width:20px;height:20px;flex:none;color:var(--groen)}
  @media (prefers-reduced-motion:no-preference){
    .slot.nieuw .afspraak{animation:inkt 1s .6s both cubic-bezier(.2,.8,.2,1)}
    .gebeld{animation:op .5s 1.5s both}
    @keyframes inkt{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0 0 0)}}
    @keyframes op{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  }

  /* probleem */
  .probleem{background:var(--wit);border-block:1px solid var(--lijn)}
  .probleem-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
  .probleem p + p{margin-top:16px}
  .probleem .lead{color:var(--inkt)}

  /* gesprek */
  .gesprek-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
  .gesprek-grid .lead{margin-top:18px}
  .tijdlijn{list-style:none;margin:0;padding:0;border-left:2px solid var(--lijn)}
  .tijdlijn li{position:relative;padding:0 0 26px 26px}
  .tijdlijn li:last-child{padding-bottom:0}
  .tijdlijn li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--spiegel);border:2px solid var(--groen)}
  .tijdlijn li:last-child::before{background:var(--groen)}
  .tijdlijn time{display:block;font-size:14px;color:var(--grijs);font-variant-numeric:tabular-nums}
  .tijdlijn .wie{font-weight:600}
  .bubbel{display:inline-block;margin-top:6px;padding:10px 14px;border-radius:4px 14px 14px 14px;background:var(--wit);border:1px solid var(--lijn);max-width:48ch}
  .bubbel.emma{background:var(--groen-licht);border-color:transparent}

  /* stappen */
  .stappen{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid var(--inkt)}
  .stap{padding:28px 28px 0 0}
  .stap + .stap{padding-left:28px;border-left:1px solid var(--lijn)}
  .stap-nr{font:700 44px/1 "Bricolage Grotesque",sans-serif;color:var(--groen);display:block;margin-bottom:18px}
  .stap p{margin-top:10px;color:var(--grijs)}

  /* wat het doet */
  .doet{background:var(--wit);border-block:1px solid var(--lijn)}
  .doet-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px}
  .doet-lijst{list-style:none;margin:0;padding:0}
  .doet-lijst li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--lijn)}
  .doet-lijst li:first-child{padding-top:0}
  .doet-lijst li:last-child{border-bottom:0}
  .icoon{width:44px;height:44px;border-radius:12px;background:var(--groen-licht);color:var(--groen);display:grid;place-items:center}
  .icoon svg{width:22px;height:22px}
  .doet-lijst p{color:var(--grijs);margin-top:4px}

  /* vergelijking */
  .tabel-wrap{margin-top:40px;overflow-x:auto;border:1px solid var(--lijn);border-radius:var(--r-m);background:var(--wit)}
  table{width:100%;border-collapse:collapse;min-width:620px;font-size:16px}
  th,td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--lijn);vertical-align:top}
  tr:last-child td{border-bottom:0}
  thead th{font:700 17px "Bricolage Grotesque",sans-serif;background:var(--spiegel)}
  thead th.met{background:var(--groen);color:#fff}
  td.met{background:#F6FAF8}
  td:first-child{font-weight:600;width:22%}
  td.zonder{color:var(--grijs)}

  /* agenda */
  .agenda{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .tool-rij{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
  .tool{padding:10px 16px;border:1px solid var(--lijn);border-radius:999px;background:var(--wit);font-weight:500;font-size:15px}
  .agenda-kaart{background:var(--groen);color:#fff;border-radius:var(--r-l);padding:36px}
  .agenda-kaart p{opacity:.85;margin-top:12px}
  .agenda-kaart a{color:#fff;font-weight:600}

  /* faq */
  .faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:56px}
  details{border-bottom:1px solid var(--lijn)}
  details:first-of-type{border-top:1px solid var(--lijn)}
  summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font-weight:600;font-size:18px;position:relative}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;border-right:2px solid var(--inkt);border-bottom:2px solid var(--inkt);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
  details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
  details p{padding:0 0 22px;color:var(--grijs);max-width:62ch}

  /* slot-cta */
  .slot-cta{padding:0 0 96px}
  .slot-kaart{background:var(--inkt);color:#fff;border-radius:28px;padding:64px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end}
  .slot-kaart p{color:#C9D3D0;margin-top:16px;max-width:46ch}
  .contact-lijst{display:grid;gap:10px}
  .contact-lijst a{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--r-m);background:rgba(255,255,255,.07);text-decoration:none;font-weight:500}
  .contact-lijst a:hover{background:rgba(255,255,255,.13)}
  .contact-lijst svg{width:20px;height:20px;flex:none}
  .slot-kaart .btn-hoofd{background:#fff;color:var(--inkt);margin-top:32px}
  .slot-kaart .btn-hoofd:hover{background:var(--groen-licht)}

  footer{border-top:1px solid var(--lijn);padding:32px 0 48px;font-size:15px;color:var(--grijs)}
  .footer-rij{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}
  .footer-rij a{text-decoration:none}
  .footer-rij a:hover{color:var(--inkt)}

  /* modal */
  .overlay{position:fixed;inset:0;background:rgba(24,33,31,.45);display:none;align-items:center;justify-content:center;z-index:100;padding:16px}
  .overlay.open{display:flex}
  .modal{background:var(--wit);border-radius:var(--r-l);max-width:420px;width:100%;padding:32px;position:relative}
  .modal h3{font-size:26px}
  .modal > p{color:var(--grijs);margin:10px 0 22px}
  .sluit{position:absolute;top:16px;right:16px;width:36px;height:36px;border:0;border-radius:50%;background:var(--spiegel);cursor:pointer;font-size:20px;color:var(--grijs)}
  .veld{display:block;margin-bottom:14px}
  .veld-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
  .invoer{display:flex;align-items:center;border:1.5px solid var(--lijn);border-radius:var(--r-m);padding:0 14px;background:#fff}
  .invoer:focus-within{border-color:var(--groen)}
  .invoer b{font-weight:500;color:var(--grijs);margin-right:8px}
  .invoer input{border:0;outline:0;padding:14px 0;font:inherit;width:100%;background:transparent}
  .modal .btn{width:100%;justify-content:center;margin-top:6px}
  .modal .btn:disabled{opacity:.6;cursor:default}
  .melding{margin-top:12px;font-size:15px;min-height:22px}
  .melding.fout{color:#B42318}.melding.goed{color:var(--groen)}
  .hp{position:absolute;left:-9999px}
  .modal-noot{font-size:13px;color:var(--grijs);margin-top:12px}

  @media (max-width:900px){
    section{padding:72px 0}
    .nav-links{display:none}
    .hero-grid,.probleem-grid,.gesprek-grid,.doet-grid,.agenda,.faq-grid,.slot-kaart{grid-template-columns:1fr;gap:36px}
    .stappen{grid-template-columns:1fr}
    .stap,.stap + .stap{padding:24px 0;border-left:0;border-bottom:1px solid var(--lijn)}
    .slot-kaart{padding:40px 28px}
    .hero{padding:40px 0 64px}
  }
  @media (max-width:520px){
    .nav-cta .btn-rand{display:none}
    body{font-size:16px}
    .lead{font-size:17px}
    .hero-ctas .btn{width:100%;justify-content:center}
  }

  /* subpagina's */
  .pagina-kop{padding:72px 0 40px}
  .pagina-kop .lead{margin-top:20px}
  .smal{max-width:760px}
  .tekst h2{font-size:26px;margin:44px 0 12px}
  .tekst h2:first-child{margin-top:0}
  .tekst p,.tekst ul{color:var(--grijs);margin:0 0 14px;max-width:68ch}
  .tekst ul{padding-left:20px}
  .tekst li{margin-bottom:6px}
  .tekst a{color:var(--groen);font-weight:600}
  .nav-links a[aria-current="page"]{color:var(--inkt);font-weight:600}

  /* prijzen */
  .pakketten{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
  .pakket{background:var(--wit);border:1px solid var(--lijn);border-radius:var(--r-l);padding:32px;display:flex;flex-direction:column}
  .pakket.uitgelicht{border:2px solid var(--groen)}
  .pakket .voor{color:var(--grijs);font-size:15px;margin-top:6px}
  .prijs{font:700 48px/1 "Bricolage Grotesque",sans-serif;margin:24px 0 4px;letter-spacing:-.02em}
  .prijs small{font:500 16px "Instrument Sans",sans-serif;color:var(--grijs);letter-spacing:0}
  .pakket ul{list-style:none;padding:0;margin:20px 0 28px;flex:1}
  .pakket li{padding:10px 0 10px 28px;border-top:1px solid var(--lijn);position:relative;font-size:16px}
  .pakket li::before{content:"";position:absolute;left:4px;top:16px;width:10px;height:6px;border-left:2px solid var(--groen);border-bottom:2px solid var(--groen);transform:rotate(-45deg)}
  .pakket .btn{justify-content:center}
  .uitgelicht-label{align-self:flex-start;font-size:13px;font-weight:600;background:var(--groen-licht);color:var(--groen-donker);padding:4px 10px;border-radius:999px;margin-bottom:14px}

  /* over */
  .over-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start}
  .feitjes{background:var(--wit);border:1px solid var(--lijn);border-radius:var(--r-l);padding:28px}
  .feitjes dl{margin:0;display:grid;gap:18px}
  .feitjes dt{font-size:14px;color:var(--grijs)}
  .feitjes dd{margin:2px 0 0;font-weight:600}

  /* formulier */
  .form-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start}
  .formulier{background:var(--wit);border:1px solid var(--lijn);border-radius:var(--r-l);padding:36px}
  .rij{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .formulier select{border:0;outline:0;padding:14px 0;font:inherit;width:100%;background:transparent}
  .formulier textarea{border:0;outline:0;padding:14px 0;font:inherit;width:100%;background:transparent;resize:vertical;min-height:90px}
  .vinkje{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--grijs);margin:8px 0 18px}
  .vinkje input{margin-top:4px;width:18px;height:18px;accent-color:var(--groen);flex:none}
  .vinkje a{color:var(--groen)}
  .formulier .btn{width:100%;justify-content:center}
  .formulier .btn:disabled{opacity:.6;cursor:default}
  .verplicht{color:var(--roze-donker)}
  .zij-lijst{list-style:none;margin:0;padding:0;counter-reset:s}
  .zij-lijst li{counter-increment:s;padding:0 0 22px 44px;position:relative}
  .zij-lijst li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--groen-licht);color:var(--groen-donker);display:grid;place-items:center;font-weight:600;font-size:15px}
  .zij-lijst p{color:var(--grijs);margin-top:4px}
  .bedankt{display:none;text-align:left}
  .bedankt.toon{display:block}

  @media (max-width:900px){
    .pakketten,.over-grid,.form-grid{grid-template-columns:1fr}
    .pagina-kop{padding:40px 0 24px}
  }
  @media (max-width:520px){ .rij{grid-template-columns:1fr;gap:0} .formulier{padding:24px} }
  .slot-kaart .btn-rand{border-color:#fff;color:#fff}
  .slot-kaart .btn-rand:hover{background:rgba(255,255,255,.1)}
  .tekst a.btn-hoofd{color:#fff;font-weight:600}
  .tekst a.btn-rand{color:var(--inkt)}
  .periode{display:inline-flex;gap:4px;padding:4px;background:var(--wit);border:1px solid var(--lijn);border-radius:999px;margin-bottom:24px}
  .periode-knop{border:0;background:transparent;padding:10px 18px;border-radius:999px;font:600 15px "Instrument Sans",sans-serif;color:var(--grijs);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
  .periode-knop.actief{background:var(--inkt);color:#fff}
  .besparing{font-size:12px;font-weight:600;background:var(--roze);color:var(--roze-donker);padding:3px 8px;border-radius:999px}
  .jaar-noot{font-size:14px;color:var(--grijs);min-height:21px}
