:root{
  --bg:#EFF3EA; --cream:#FBFAF5; --green:#2F6E43; --green2:#4F8F5C;
  --apricot:#F0A25C; --ink:#28381F; --white:#fff; --line:#dfe6d5;
  color-scheme: light;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{background:var(--bg);}
body{background:var(--bg); color:var(--ink); font-family:'Source Sans 3',sans-serif; line-height:1.65;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1100px; margin:0 auto; padding:0 28px;}

/* ---------- Header ---------- */
header.site-header{position:relative; z-index:20; padding:16px 0;}
.headerbar{display:flex; justify-content:space-between; align-items:center;}
.logo img{height:96px; width:auto;}
nav.main-nav{display:flex; gap:4px; align-items:center;}
nav.main-nav > ul{display:flex; gap:4px; align-items:center; list-style:none;}
nav.main-nav a.nav-link{padding:9px 15px; border-radius:100px; font-size:14px; font-weight:600; color:var(--ink); display:inline-block;}
nav.main-nav a.nav-link:hover{background:rgba(47,110,67,.08);}
nav.main-nav .cta-nav{background:var(--green); color:var(--white)!important;}
nav.main-nav .cta-nav:hover{background:var(--ink);}
nav.main-nav .lang-switch{border:1px solid var(--line); font-size:12.5px; font-weight:700; padding:7px 12px; letter-spacing:.03em;}
nav.main-nav .lang-switch:hover{background:var(--bg); border-color:var(--green);}
li.has-dropdown{position:relative;}
.dropdown{display:none; position:absolute; top:100%; left:0; padding-top:10px; z-index:30; min-width:200px;}
li.has-dropdown:hover .dropdown{display:block;}
.dropdown-inner{background:var(--white); border-radius:14px; box-shadow:0 12px 30px rgba(40,60,30,.14); padding:8px;}
.dropdown a{display:block; padding:9px 14px; border-radius:8px; font-size:13.5px; font-weight:500;}
.dropdown a:hover{background:var(--bg);}
.menu-toggle{display:none; background:none; border:none; font-size:24px; color:var(--green);}

/* ---------- Hero (homepage) ---------- */
.hero{position:relative; padding:20px 0 36px; overflow:hidden;}
.blob{position:absolute; border-radius:50%; z-index:0;}
.blob1{width:520px; height:520px; background:radial-gradient(circle at 30% 30%, #cfe0c6, transparent 70%); top:-160px; right:-140px;}
.blob2{width:340px; height:340px; background:radial-gradient(circle at 40% 40%, #f7dcb8, transparent 70%); bottom:-100px; left:-80px;}
.hero-inner{position:relative; z-index:1; max-width:640px; padding-top:20px;}
.eyebrow{display:inline-block; background:var(--white); padding:7px 16px; border-radius:100px; font-size:13px; color:var(--green); font-weight:600; margin-bottom:24px; box-shadow:0 2px 10px rgba(40,60,30,.06);}
.hero h1{font-family:'Spectral',serif; font-weight:600; font-size:46px; line-height:1.15; color:#1e3018; margin-bottom:20px;}
.hero-body{font-size:17px; color:#455a3a; margin-bottom:24px; max-width:560px;}
.hero-body p{margin-bottom:14px;}
.btnrow{display:flex; gap:14px; flex-wrap:wrap;}
.btn{display:inline-block; background:var(--green); color:var(--white); padding:14px 26px; border-radius:100px; font-size:14.5px; font-weight:600; box-shadow:0 6px 18px rgba(47,110,67,.25); border:none; cursor:pointer;}
.btn:hover{background:var(--ink);}
.btn.ghost{background:var(--white); color:var(--green); box-shadow:none; border:1px solid var(--line);}

/* ---------- Cards grid (doelgroepen) ---------- */
.cards{padding:10px 0 70px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; position:relative; z-index:1;}
.card{background:var(--cream); border-radius:28px; padding:34px 28px; box-shadow:0 4px 20px rgba(40,60,30,.05); display:flex; flex-direction:column;}
.card .icon{width:46px; height:46px; border-radius:14px; background:var(--green2); margin-bottom:20px;}
.card:nth-child(2) .icon{background:var(--apricot);}
.card:nth-child(3) .icon{background:#7B9E62;}
.card .tag{font-size:12.5px; font-weight:700; color:var(--green); text-transform:uppercase; letter-spacing:.03em; margin-bottom:8px;}
.card h3{font-family:'Spectral',serif; font-weight:600; font-size:21px; margin-bottom:10px; color:#1e3018;}
.card p{font-size:14.5px; color:#516445; margin-bottom:16px; flex:1;}
.card a.card-link{font-size:13.5px; font-weight:600; color:var(--green);}

/* ---------- Generic page content ---------- */
.page-header{padding:40px 0 18px;}
.page-header h1{font-family:'Spectral',serif; font-weight:600; font-size:38px; color:#1e3018;}
.content-section{padding:0;}
.content-block{background:var(--cream); border-radius:28px; padding:38px 40px; margin-bottom:20px;}
.content-block h2{font-family:'Spectral',serif; font-style:italic; font-weight:500; font-size:26px; color:var(--green); margin-bottom:16px;}
.content-block p{font-size:15.5px; color:#455a3a; margin-bottom:14px;}
.content-block p:last-child{margin-bottom:0;}
.content-block a{color:var(--green); font-weight:600; text-decoration:underline;}
.content-block a.btn, .contact-form a.btn, .text-image a.btn{color:var(--white); text-decoration:none;}
.content-block ul{margin:10px 0 14px 20px;}
.content-block li{font-size:15.5px; color:#455a3a; margin-bottom:6px;}
.content-block .btn{margin-top:8px; display:inline-block;}
.content-block figure{margin:16px 0;}
.content-block figure img{border-radius:16px; width:100%;}
.content-block figcaption{font-size:12.5px; color:#6d7c62; margin-top:6px;}
.content-block img{border-radius:16px; max-width:100%; height:auto;}
.map-embed-block{padding:0; overflow:hidden;}
.map-embed-block h2{padding:38px 40px 0;}
.map-embed-frame{width:100%; aspect-ratio:16/9; border-radius:28px; overflow:hidden;}
.map-embed-frame iframe{width:100%; height:100%; display:block;}

.text-image{display:grid; grid-template-columns:1fr 300px; gap:40px; align-items:center;}
.text-image.layout-left{grid-template-columns:300px 1fr;}
.text-image.layout-left .txt{order:2;}
.text-image.layout-left .text-image-frame{order:1;}
.text-image.layout-stack{grid-template-columns:1fr;}
.text-image.layout-stack .text-image-frame{aspect-ratio:16/9; margin-bottom:8px;}
.text-image-frame{border-radius:20px; overflow:hidden; aspect-ratio:4/5; background:linear-gradient(160deg,#dce8d2,#8fae74);}
.text-image-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.text-image .txt h2{margin-bottom:14px;}

/* ---------- Pricing table ---------- */
.pricing-table{width:100%; border-collapse:collapse; background:var(--cream); border-radius:20px; overflow:hidden;}
.pricing-table td{padding:18px 24px; font-size:15px; border-bottom:1px solid var(--line);}
.pricing-table tr:last-child td{border-bottom:none;}
.pricing-table td:first-child{color:var(--ink); font-weight:500;}
.pricing-table td:last-child{color:var(--green); font-weight:700; text-align:right; white-space:nowrap;}

/* ---------- Contact form ---------- */
.contact-form{background:var(--cream); border-radius:28px; padding:38px 40px;}
.form-row{margin-bottom:18px;}
.form-row label{display:block; font-size:13.5px; font-weight:600; margin-bottom:6px; color:var(--ink);}
.form-row input, .form-row textarea{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font-family:inherit; font-size:14.5px; background:var(--white);}
.form-row input:focus, .form-row textarea:focus{outline:none; border-color:var(--green);}
.form-row textarea{min-height:130px; resize:vertical;}
.form-check{display:flex; align-items:flex-start; gap:10px; font-size:13px; color:#516445; margin-bottom:20px;}
.form-check input{margin-top:3px;}
.form-success{background:#e5f3e6; color:#1e4a2c; padding:16px 20px; border-radius:14px; margin-bottom:20px; font-size:14.5px;}
.form-error{background:#fbeae5; color:#8a3520; padding:16px 20px; border-radius:14px; margin-bottom:20px; font-size:14.5px;}
.honeypot{position:absolute; left:-9999px; opacity:0; height:0;}
.intake-h3{font-family:'Spectral',serif; font-weight:600; color:var(--green); font-size:19px; margin:26px 0 14px; padding-top:18px; border-top:1px solid var(--line);}
.intake-h3:first-child{margin-top:0; padding-top:0; border-top:none;}
.intake-two-col{display:grid; grid-template-columns:1fr 1fr; gap:30px;}
.intake-col-label{font-weight:700; color:var(--ink); margin-bottom:10px; font-size:14.5px;}
@media(max-width:700px){ .intake-two-col{grid-template-columns:1fr;} }

/* ---------- Footer ---------- */
footer.site-footer{padding:44px 0 46px; text-align:center; font-size:13.5px; color:#6d7c62; margin-top:30px;}
footer.site-footer .logo img{height:40px; margin:0 auto 16px;}
footer.site-footer .fbadge{height:52px; width:auto; margin:0 auto 16px;}
footer.site-footer .flinks{display:flex; justify-content:center; gap:22px; flex-wrap:wrap;}

/* ---------- Responsive ---------- */
/* ---------- Responsive: tablet ---------- */
@media(max-width:1024px){
  .wrap{padding:0 24px;}
  .cards{grid-template-columns:repeat(2,1fr);}
}

/* ---------- Responsive: telefoon/kleine tablet ---------- */
@media(max-width:820px){
  .logo img{height:64px;}
  nav.main-nav{display:none;}
  .menu-toggle{display:block;}
  .hero{padding:10px 0 28px;}
  .hero h1{font-size:32px;}
  .hero-body{font-size:16px;}
  .blob1{width:340px; height:340px; top:-100px; right:-120px;}
  .blob2{width:220px; height:220px; bottom:-60px; left:-70px;}
  .cards{grid-template-columns:1fr;}
  .card{padding:28px 22px;}
  .page-header h1{font-size:30px;}
  .text-image{grid-template-columns:1fr;}
  .text-image-frame{aspect-ratio:16/10;}
  .text-image.layout-left .txt, .text-image.layout-left .text-image-frame{order:0;}
  .content-block{padding:26px 22px;}
  .content-block h2{font-size:22px;}
  .content-block p, .content-block li{font-size:14.5px;}
  .content-block img{float:none !important; width:100% !important; margin:14px 0 !important;}
  .pricing-table td{padding:14px 16px; font-size:13.5px;}
  .pricing-table, .pricing-table tbody, .pricing-table tr, .pricing-table td{display:block; width:100%;}
  .pricing-table tr{padding:14px 16px 12px; border-bottom:1px solid var(--line);}
  .pricing-table tr:last-child{border-bottom:none;}
  .pricing-table td{padding:0; border-bottom:none; white-space:normal;}
  .pricing-table td:first-child{margin-bottom:5px;}
  .pricing-table td:last-child{text-align:left; font-size:14.5px; white-space:normal;}
  .contact-form{padding:26px 22px;}
  .btnrow{flex-direction:column; align-items:stretch;}
  .btn{text-align:center;}
  footer.site-footer{padding:36px 0 40px;}
  footer.site-footer .flinks{gap:14px 18px;}
}

/* ---------- Responsive: kleine telefoons ---------- */
@media(max-width:480px){
  .wrap{padding:0 18px;}
  .logo img{height:52px;}
  .hero h1{font-size:26px;}
  .eyebrow{font-size:12px; padding:6px 13px;}
  .page-header h1{font-size:25px;}
  .content-block{padding:22px 18px; border-radius:20px;}
  .card{border-radius:22px;}
  .form-row input, .form-row textarea{font-size:16px;} /* voorkomt automatisch inzoomen op iOS */
}

nav.main-nav.mobile-open{display:block; position:absolute; top:100%; left:0; right:0; background:var(--white); border-radius:0 0 20px 20px; box-shadow:0 12px 30px rgba(40,60,30,.14); padding:14px; max-height:calc(100vh - 90px); overflow-y:auto;}
nav.main-nav.mobile-open > ul{flex-direction:column; align-items:stretch;}
nav.main-nav.mobile-open a.nav-link{padding:13px 14px;}
nav.main-nav.mobile-open .dropdown{display:block; position:static; padding-top:0;}
nav.main-nav.mobile-open .dropdown-inner{box-shadow:none; padding-left:14px;}
