:root{
  --tekst:#222222;
  --grijs:#717171;
  --hairline:#EBEBEB;
  --hairline2:#DDDDDD;
  --rood:#DA2F4B;
  --rood-donker:#C0233D;
  --groen:#008A05;
  --r:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Figtree",system-ui,sans-serif;color:var(--tekst);background:#fff;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.btn{border:none;border-radius:10px;padding:13px 24px;font-weight:600;font-size:15px;display:inline-block}
.btn-rood{background:var(--rood);color:#fff}
.btn-rood:hover{background:var(--rood-donker)}
.btn-wit{background:#fff;border:1px solid var(--tekst)}
.btn-wit:hover{background:#F7F7F7}

header.top{border-bottom:1px solid var(--hairline);position:sticky;top:0;background:#fff;z-index:50}
.top-in{display:flex;align-items:center;justify-content:space-between;height:76px;gap:20px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;color:var(--rood);letter-spacing:-.02em;flex-shrink:0}
.logo svg{width:30px;height:30px;stroke:var(--rood);stroke-width:1.7;fill:none;stroke-linecap:round}
.zoekpil{display:flex;align-items:center;border:1px solid var(--hairline2);border-radius:999px;box-shadow:0 1px 6px rgba(0,0,0,.06);padding:7px 7px 7px 22px;cursor:pointer;transition:box-shadow .15s;background:#fff}
.zoekpil:hover{box-shadow:0 3px 12px rgba(0,0,0,.12)}
.zoekpil .deel{font-weight:600;font-size:14px;padding:4px 16px;white-space:nowrap}
.zoekpil .deel.vaag{color:var(--grijs);font-weight:500}
.zoekpil .scheiding{width:1px;height:22px;background:var(--hairline2)}
.zoekpil .zoekknop{width:34px;height:34px;border-radius:50%;background:var(--rood);border:none;display:grid;place-items:center;flex-shrink:0}
.zoekpil .zoekknop svg{width:14px;height:14px;stroke:#fff;stroke-width:2.6;fill:none;stroke-linecap:round}
.top-r{display:flex;align-items:center;gap:8px;flex-shrink:0}
.top-r .tekstknop{background:none;border:none;font-weight:600;font-size:14px;padding:10px 14px;border-radius:999px;display:inline-block}
.top-r .tekstknop:hover{background:#F7F7F7}
@media(max-width:900px){.zoekpil .deel:nth-child(3),.zoekpil .scheiding:nth-child(4){display:none}}
.menuknop{display:none;background:none;border:none;padding:8px;margin-left:auto}
.menuknop svg{width:26px;height:26px;stroke:var(--tekst);stroke-width:2;fill:none;stroke-linecap:round;display:block}
@media(max-width:860px){
  .top-in{position:relative;gap:12px}
  .zoekpil{display:none}
  .menuknop{display:block}
  .top-r{position:absolute;top:100%;left:-24px;right:-24px;background:#fff;border-bottom:1px solid var(--hairline);flex-direction:column;align-items:stretch;gap:0;padding:6px 24px 16px;display:none;box-shadow:0 10px 24px rgba(0,0,0,.10);z-index:60}
  body.menu-open .top-r{display:flex}
  .top-r .tekstknop{display:block;padding:13px 4px;font-size:16px;border-radius:0;border-bottom:1px solid var(--hairline)}
  .top-r .tekstknop:hover{background:none}
  .top-r .btn-rood{margin-top:14px;text-align:center;padding:13px 24px!important;font-size:15px!important}
}

.catbalk{display:flex;gap:34px;overflow-x:auto;padding:14px 0 0;scrollbar-width:none}
.catbalk::-webkit-scrollbar{display:none}
.cat{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--grijs);padding-bottom:12px;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;flex-shrink:0}
.cat svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.cat:hover{color:var(--tekst);border-bottom-color:var(--hairline2)}
.cat.actief{color:var(--tekst);border-bottom-color:var(--tekst)}

.leeg{max-width:560px;margin:0 auto;text-align:center;padding:88px 24px 96px}
.leeg .ikoon{width:72px;height:72px;border-radius:50%;background:#FBF0F1;display:grid;place-items:center;margin:0 auto 22px}
.leeg .ikoon svg{width:32px;height:32px;stroke:var(--rood);stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.leeg h1{font-size:26px;font-weight:700;letter-spacing:-.01em}
.leeg p{color:var(--grijs);margin:12px 0 26px;font-size:15.5px}
.leeg .acties{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.band{border-top:1px solid var(--hairline);padding:48px 0}
.band-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:34px}
.band-item svg{width:28px;height:28px;stroke:var(--tekst);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;margin-bottom:10px}
.band-item b{display:block;font-size:15px;margin-bottom:3px}
.band-item p{color:var(--grijs);font-size:14px}

.wgband{border-top:1px solid var(--hairline);padding:48px 0}
.wgband .binnen{background:#F7F7F7;border-radius:18px;padding:40px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.wgband h2{font-size:24px;font-weight:700;letter-spacing:-.01em}
.wgband p{color:var(--grijs);margin-top:8px;max-width:480px}

footer{border-top:1px solid var(--hairline);background:#F7F7F7;padding:40px 0;font-size:14px}
footer .cols{display:flex;gap:56px;flex-wrap:wrap}
footer h4{font-size:13.5px;margin-bottom:12px}
footer li{list-style:none;margin:8px 0;color:var(--grijs)}
footer li a:hover{text-decoration:underline}
footer .onder{border-top:1px solid var(--hairline2);margin-top:32px;padding-top:20px;color:var(--grijs);font-size:13.5px}
footer .onder a:hover{text-decoration:underline}

/* ---- pagina-kop ---- */
.paginakop{padding:52px 0 8px}
.paginakop h1{font-size:30px;font-weight:800;letter-spacing:-.02em}
.paginakop p.sub{color:var(--grijs);margin-top:8px;max-width:640px;font-size:15.5px}

/* ---- melding / voorbeeldbanner ---- */
.melding{display:flex;gap:12px;align-items:flex-start;background:#FBF0F1;border:1px solid #F3D5DA;border-radius:var(--r);padding:14px 18px;margin:26px 0 6px;font-size:14px}
.melding svg{width:20px;height:20px;stroke:var(--rood);stroke-width:1.8;fill:none;stroke-linecap:round;flex-shrink:0;margin-top:1px}

/* ---- filterchips ---- */
.chips{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 6px}
.chip{border:1px solid var(--hairline2);background:#fff;border-radius:999px;padding:8px 16px;font-size:13.5px;font-weight:600;color:var(--grijs)}
.chip:hover{border-color:var(--tekst);color:var(--tekst)}
.chip.actief{background:var(--tekst);border-color:var(--tekst);color:#fff}

/* ---- vacaturekaarten ---- */
.vacgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;padding:26px 0 64px}
.vac{border:1px solid var(--hairline);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,border-color .15s;position:relative;background:#fff}
.vac:hover{box-shadow:0 4px 18px rgba(0,0,0,.08);border-color:var(--hairline2)}
.vac .badge{position:absolute;top:16px;right:16px;background:#F7F7F7;border:1px solid var(--hairline2);color:var(--grijs);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px}
.vac .categorie{font-size:12.5px;font-weight:700;color:var(--rood);text-transform:uppercase;letter-spacing:.05em}
.vac h3{font-size:17px;font-weight:700;letter-spacing:-.01em;padding-right:86px}
.vac .bedrijf{font-size:14px;color:var(--grijs)}
.vac .regels{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.vac .regel{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--grijs)}
.vac .regel svg{width:15px;height:15px;stroke:var(--grijs);stroke-width:1.7;fill:none;stroke-linecap:round;flex-shrink:0}
.vac .tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}
.vac .tag{background:#F7F7F7;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--grijs)}
.vac .tag.groen{background:#EAF6EB;color:var(--groen)}
.vac .onderkant{margin-top:auto;padding-top:12px;border-top:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center}
.vac .onderkant span{font-size:13px;color:var(--grijs)}
.vac .onderkant a{font-size:14px;font-weight:700;color:var(--rood)}
.vac .onderkant a:hover{text-decoration:underline}

/* ---- stappen ---- */
.stappen{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;padding:30px 0 10px}
.stap{border:1px solid var(--hairline);border-radius:16px;padding:26px}
.stap .nr{width:34px;height:34px;border-radius:50%;background:var(--rood);color:#fff;font-weight:800;display:grid;place-items:center;font-size:15px;margin-bottom:14px}
.stap b{display:block;font-size:16px;margin-bottom:6px}
.stap p{color:var(--grijs);font-size:14px}

/* ---- tekstpagina's ---- */
.prozetekst{max-width:760px;padding:10px 0 70px}
.prozetekst h2{font-size:21px;font-weight:700;letter-spacing:-.01em;margin:36px 0 10px}
.prozetekst h3{font-size:16.5px;font-weight:700;margin:24px 0 8px}
.prozetekst p{color:#444;margin:10px 0;font-size:15px}
.prozetekst ul{margin:10px 0 10px 22px;color:#444}
.prozetekst li{margin:6px 0}
.prozetekst .stil{color:var(--grijs);font-size:13.5px}

/* ---- contactkaarten ---- */
.contactgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;padding:30px 0 60px}
.contactkaart{border:1px solid var(--hairline);border-radius:16px;padding:26px;display:flex;flex-direction:column;gap:8px}
.contactkaart svg{width:26px;height:26px;stroke:var(--rood);stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.contactkaart b{font-size:16px}
.contactkaart p{color:var(--grijs);font-size:14px;flex-grow:1}
.contactkaart a.link{font-weight:700;color:var(--rood);font-size:14.5px}
.contactkaart a.link:hover{text-decoration:underline}

/* ---- brede cta ---- */
.ctaband{padding:14px 0 60px}
.ctaband .binnen{background:#F7F7F7;border-radius:18px;padding:40px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.ctaband h2{font-size:22px;font-weight:700;letter-spacing:-.01em}
.ctaband p{color:var(--grijs);margin-top:8px;max-width:520px}

/* ---- formulieren & app ---- */
.formkaart{max-width:460px;margin:0 auto;border:1px solid var(--hairline);border-radius:16px;padding:32px;margin-bottom:70px}
.formkaart h1{font-size:23px;font-weight:800;letter-spacing:-.01em;margin-bottom:6px}
.formkaart .sub{color:var(--grijs);font-size:14.5px;margin-bottom:22px}
.veld{margin-bottom:16px}
.veld label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.veld input[type=text],.veld input[type=email],.veld input[type=password],.veld input[type=number],.veld select,.veld textarea{width:100%;border:1px solid var(--hairline2);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:15px;background:#fff}
.veld input:focus,.veld select:focus,.veld textarea:focus{outline:2px solid var(--tekst);outline-offset:-1px}
.veld textarea{min-height:110px;resize:vertical}
.veld .hint{font-size:12.5px;color:var(--grijs);margin-top:5px}
.keuze2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.keuze2 input{position:absolute;opacity:0}
.keuze2 label{border:1px solid var(--hairline2);border-radius:12px;padding:14px;cursor:pointer;text-align:center;font-weight:600;font-size:14px}
.keuze2 label small{display:block;font-weight:500;color:var(--grijs);font-size:12px;margin-top:3px}
.keuze2 input:checked + label{border-color:var(--tekst);outline:2px solid var(--tekst);outline-offset:-2px}
.checks{display:flex;gap:10px;flex-wrap:wrap}
.checks input{position:absolute;opacity:0}
.checks label{border:1px solid var(--hairline2);border-radius:999px;padding:8px 15px;font-size:13.5px;font-weight:600;color:var(--grijs);cursor:pointer}
.checks input:checked + label{background:var(--tekst);color:#fff;border-color:var(--tekst)}
.btn-vol{width:100%;text-align:center}
.formkaart .onder-link{text-align:center;margin-top:16px;font-size:14px;color:var(--grijs)}
.formkaart .onder-link a{color:var(--rood);font-weight:700}
.tabel{width:100%;border-collapse:collapse;font-size:14px;margin:18px 0 40px}
.tabel th{text-align:left;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--grijs);border-bottom:1px solid var(--hairline2);padding:10px 12px}
.tabel td{border-bottom:1px solid var(--hairline);padding:11px 12px;vertical-align:top}
.pil{display:inline-block;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:700}
.pil.groen{background:#EAF6EB;color:var(--groen)}
.pil.grijs{background:#F1F1F1;color:var(--grijs)}
.pil.rood{background:#FBF0F1;color:var(--rood)}
.pil.geel{background:#FFF6E5;color:#9A6B00}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:24px 0}
.statkaart{border:1px solid var(--hairline);border-radius:14px;padding:20px}
.statkaart b{font-size:26px;letter-spacing:-.02em;display:block}
.statkaart span{color:var(--grijs);font-size:13.5px}
.tabbalk{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 8px}
.tabbalk a{border:1px solid var(--hairline2);border-radius:999px;padding:8px 16px;font-size:13.5px;font-weight:600;color:var(--grijs)}
.tabbalk a.actief{background:var(--tekst);border-color:var(--tekst);color:#fff}
.actieknop{border:1px solid var(--hairline2);background:#fff;border-radius:8px;padding:5px 11px;font-size:12.5px;font-weight:600;cursor:pointer}
.actieknop:hover{border-color:var(--tekst)}

/* ---- extra mobile-proofing ---- */
img,svg{max-width:100%}
.tabelwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:640px){
  .wrap{padding:0 18px}
  .paginakop{padding:34px 0 6px}
  .paginakop h1{font-size:24px}
  .leeg{padding:56px 18px 64px}
  .leeg h1{font-size:22px}
  .wgband .binnen,.ctaband .binnen{flex-direction:column;align-items:flex-start;padding:26px}
  .wgband .binnen .btn,.ctaband .binnen .btn{width:100%;text-align:center}
  .formkaart{padding:24px 20px}
  .keuze2{grid-template-columns:1fr}
  .band{padding:36px 0}
  .tabel{font-size:13px}
  .tabel th,.tabel td{padding:9px 8px}
}
@media(max-width:400px){
  .logo{font-size:17px}
  .logo svg{width:26px;height:26px}
}

/* ---- vacaturefoto ---- */
.vac .vacfoto{width:calc(100% + 44px);margin:-22px -22px 4px;height:170px;object-fit:cover;border-radius:16px 16px 0 0;display:block}

/* ---- pakketkeuze ---- */
.pakketten{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pakketten input{position:absolute;opacity:0}
.pakketten label{border:1px solid var(--hairline2);border-radius:14px;padding:16px 14px;cursor:pointer;display:flex;flex-direction:column;gap:3px;height:100%}
.pakketten input:checked + label{border-color:var(--tekst);outline:2px solid var(--tekst);outline-offset:-2px}
.pakketten .pak-naam{font-weight:700;font-size:14px}
.pakketten .pak-prijs{font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--rood)}
.pakketten .pak-duur{font-size:12.5px;font-weight:600;color:var(--tekst)}
.pakketten .pak-uitleg{font-size:12px;color:var(--grijs);margin-top:2px}
.vac .pakbadge{position:absolute;top:16px;right:16px;background:var(--tekst);color:#fff;font-size:11px;font-weight:700;letter-spacing:.03em;border-radius:999px;padding:3px 10px}
.vac .pakbadge.spoed{background:var(--rood)}
@media(max-width:560px){.pakketten{grid-template-columns:1fr}}
