/* ===== SVOH-Expert | shared design system =====
   Brand colors, typography, components used across all pages.
   v2.0 — multi-page architecture
*/

/* Reset & tokens */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-weight:400;font-size:16px;line-height:1.6;color:#1A1A1A;background:#F7F5F0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%;height:auto}
a{color:#1B4332;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:#0B1F17}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
:focus-visible{outline:3px solid #E07A3C;outline-offset:3px;border-radius:4px}

:root{
  --c-primary:#1B4332;--c-accent:#52B788;--c-dark:#0B1F17;--c-bg:#F7F5F0;--c-bg-elev:#FFFFFF;
  --c-text:#1A1A1A;--c-muted:#6B6B6B;--c-cta:#E07A3C;--c-cta-hover:#C56A30;
  --c-border:rgba(11,31,23,.1);
  --shadow-card:0 4px 24px rgba(0,0,0,.06);--shadow-lift:0 12px 32px rgba(0,0,0,.08);
  --radius:8px;--radius-lg:12px;--container:1180px;--pad-section:64px;
}
@media(min-width:900px){:root{--pad-section:96px}}

h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em;color:var(--c-dark)}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:600}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
h3{font-size:clamp(1.3rem,2.4vw,1.6rem)}
p{margin:0 0 1em}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}
@media(min-width:700px){.container{padding:0 32px}}
section{padding:var(--pad-section) 0}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--c-primary);margin-bottom:1rem}
.lead{font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--c-muted);max-width:60ch}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:14px 22px;border-radius:var(--radius);font-weight:600;font-size:.95rem;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;line-height:1;min-height:48px;white-space:nowrap}
.btn-primary{background:var(--c-cta);color:#fff}
.btn-primary:hover{background:var(--c-cta-hover);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-lift)}
.btn-secondary{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.btn-secondary:hover{background:rgba(255,255,255,.08);color:#fff}
.btn-ghost{background:transparent;color:var(--c-primary);border:1.5px solid var(--c-primary)}
.btn-ghost:hover{background:var(--c-primary);color:#fff}
.btn-dark{background:var(--c-primary);color:#fff}
.btn-dark:hover{background:var(--c-dark);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-lift)}
.btn-wa{background:#25D366;color:#fff;border:0}
.btn-wa:hover{background:#1EB955;color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-lift)}
.wa-icon{width:18px;height:18px;flex:0 0 auto}

/* Header */
.header{position:sticky;top:0;z-index:50;background:rgba(247,245,240,.92);backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--c-border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
/* Logo — Woninglabel-stijl: lowercase, bold, vibrant green, met ° suffix */
.logo{display:inline-flex;align-items:center;text-decoration:none;line-height:0}
.logo img{height:34px;width:auto;display:block}
@media(min-width:768px){.logo img{height:38px}}
.nav{display:none;gap:24px}
@media(min-width:1080px){.nav{display:flex}}
.nav a{color:var(--c-text);text-decoration:none;font-size:.92rem;font-weight:500;padding:6px 0;border-bottom:2px solid transparent;transition:border-color .15s,color .15s}
.nav a:hover,.nav a.active{color:var(--c-primary);border-bottom-color:var(--c-accent)}
.header-cta{display:none}
@media(min-width:560px){.header-cta{display:inline-flex}}
.header-cta .btn{padding:10px 18px;min-height:42px}
.menu-toggle{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--c-border)}
@media(min-width:1080px){.menu-toggle{display:none}}
.menu-toggle svg{width:22px;height:22px;stroke:var(--c-dark)}
.mobile-nav{display:none;flex-direction:column;padding:8px 20px 20px;border-bottom:1px solid var(--c-border);background:#fff;max-height:80vh;overflow-y:auto}
.mobile-nav.open{display:flex}
.mobile-nav a{padding:12px 0;border-bottom:1px solid var(--c-border);text-decoration:none;color:var(--c-text);font-weight:500;font-size:.95rem}
.mobile-nav a:last-child{border-bottom:0}
.mobile-nav h5{margin:14px 0 4px;font-family:'Plus Jakarta Sans',sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--c-muted);font-weight:600}

/* Hero (homepage) — Pearl Capital style: centered, photo bg, gradient buttons */
.hero{background:#0B1F17;color:#fff;padding:96px 0 80px;position:relative;overflow:hidden;isolation:isolate;text-align:center}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.32}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(11,31,23,.88) 0%,rgba(20,48,40,.82) 50%,rgba(27,67,50,.72) 100%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 0%,rgba(82,183,136,.22),transparent 55%),radial-gradient(ellipse at 50% 100%,rgba(82,183,136,.14),transparent 55%);pointer-events:none}
.hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;max-width:920px;margin:0 auto}
@media(min-width:980px){.hero{padding:140px 0 110px}}
.hero h1{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:clamp(2.2rem,6vw,4.4rem);line-height:1.08;letter-spacing:-0.02em;color:#fff;margin:0;max-width:18ch}
.hero h1 .accent{color:var(--c-accent);font-weight:700;font-style:normal}
.hero-sub{font-size:clamp(1rem,1.4vw,1.18rem);color:rgba(255,255,255,.85);max-width:62ch;margin:8px auto 12px;line-height:1.7}
.hero-claim{display:inline-block;background:rgba(82,183,136,.14);color:#9CE0BC;border:1px solid rgba(82,183,136,.35);padding:8px 18px;border-radius:99px;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:8px}
.tagline-strip{margin-top:28px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.1rem;color:rgba(255,255,255,.65)}

/* Hero social-proof stats */
.hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:36px auto 0;padding:24px 28px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);max-width:760px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
@media(min-width:700px){.hero-stats{grid-template-columns:repeat(4,1fr)}}
.hero-stat{text-align:center;display:flex;flex-direction:column;gap:4px}
.hero-stat-num{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:clamp(1.6rem,3vw,2rem);color:var(--c-accent);line-height:1;font-variant-numeric:tabular-nums}
.hero-stat-lbl{font-size:.74rem;color:rgba(255,255,255,.72);line-height:1.3}

/* Pill buttons (Pearl Capital style) */
.btn-pill{padding:18px 36px;border-radius:99px;font-weight:600;font-size:1rem;min-height:56px}
.btn-gradient{background:linear-gradient(135deg,#52B788 0%,#1EB955 100%);color:#fff;border:0;box-shadow:0 8px 24px rgba(82,183,136,.28)}
.btn-gradient:hover{background:linear-gradient(135deg,#4DA67B 0%,#1AA449 100%);color:#fff;transform:translateY(-2px);box-shadow:0 12px 32px rgba(82,183,136,.42)}
.btn-dark-pill{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px)}
.btn-dark-pill:hover{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.3);transform:translateY(-2px)}
.hero h1{color:#fff;margin-bottom:.4em}
.hero h1 em{font-style:normal;color:var(--c-accent);font-weight:600}
.hero-sub{font-size:clamp(1.05rem,1.5vw,1.25rem);color:rgba(255,255,255,.85);max-width:60ch;margin-bottom:32px}
.hero-claim{display:inline-block;background:rgba(82,183,136,.15);color:#9CE0BC;border:1px solid rgba(82,183,136,.35);padding:8px 16px;border-radius:99px;font-size:.85rem;font-weight:600;letter-spacing:.02em;margin-bottom:24px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:0}
.tagline-strip{margin-top:32px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.2rem;color:rgba(255,255,255,.7)}

/* Page hero with photo (subpages) */
.page-hero{position:relative;color:#fff;padding:120px 0 80px;background:#0B1F17;overflow:hidden;min-height:380px;display:flex;align-items:center}
.page-hero-img{position:absolute;inset:0;z-index:0}
.page-hero-img img{width:100%;height:100%;object-fit:cover;opacity:.45}
.page-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,31,23,.55) 0%,rgba(11,31,23,.85) 100%)}
.page-hero .container{position:relative;z-index:2;width:100%}
.page-hero h1{color:#fff;max-width:24ch;margin-bottom:.3em}
.page-hero .lead{color:rgba(255,255,255,.85);max-width:55ch}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.82rem;color:rgba(255,255,255,.65);margin-bottom:18px}
.breadcrumb a{color:rgba(255,255,255,.85);text-decoration:none}
.breadcrumb a:hover{color:#fff}
.breadcrumb .sep{color:rgba(255,255,255,.45)}

/* Hero check form */
.hero-form{background:#fff;color:var(--c-text);border-radius:var(--radius-lg);padding:24px;box-shadow:0 16px 48px rgba(0,0,0,.25);position:relative}
@media(min-width:980px){.hero-form{padding:28px}}
.hero-form-head{margin-bottom:16px}
.hero-form-head h2{font-size:1.35rem;margin:0 0 4px;color:var(--c-dark);font-weight:600}
.hero-form-head p{margin:0;font-size:.85rem;color:var(--c-muted)}
.hero-form .field{margin-bottom:12px}
.hero-form .field-row{display:grid;gap:10px;margin-bottom:12px}
@media(min-width:520px){.hero-form .field-row{grid-template-columns:1fr 1fr}}
.hero-form label{display:block;font-size:.78rem;font-weight:600;color:var(--c-dark);margin-bottom:5px}
.hero-form input,.hero-form select{width:100%;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--c-border);background:#fff;font:inherit;font-size:.92rem;color:var(--c-text);transition:border-color .15s,box-shadow .15s}
.hero-form input:focus,.hero-form select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(27,67,50,.12)}
.hero-form button[type="submit"]{width:100%;background:var(--c-cta);color:#fff;padding:13px;border-radius:var(--radius);font-weight:600;font-size:.95rem;margin-top:4px;transition:background .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.hero-form button[type="submit"]:hover{background:var(--c-cta-hover)}
.hero-form-trust{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px;font-size:.72rem;color:var(--c-muted)}
.hero-form-trust span{display:inline-flex;align-items:center;gap:4px}
.hero-form-trust svg{width:11px;height:11px;color:var(--c-accent)}
.hero-form-success{display:none;padding:16px;background:rgba(82,183,136,.12);border:1px solid var(--c-accent);border-radius:var(--radius);color:var(--c-primary);font-size:.92rem;font-weight:500}
.hero-form-success.show{display:block}

/* Floating WhatsApp */
.wa-float{position:fixed;right:16px;bottom:84px;z-index:41;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.45);text-decoration:none;transition:transform .15s,box-shadow .15s}
.wa-float:hover{transform:scale(1.05);background:#25D366;color:#fff;box-shadow:0 12px 32px rgba(37,211,102,.55)}
.wa-float svg{width:28px;height:28px}
@media(min-width:781px){.wa-float{bottom:24px;right:24px}}
.wa-float-label{position:absolute;right:64px;top:50%;transform:translateY(-50%);background:var(--c-dark);color:#fff;padding:8px 14px;border-radius:99px;font-size:.85rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
@media(min-width:980px){.wa-float:hover .wa-float-label{opacity:1}}

/* Budget barometer */
.barometer{background:#fff;border-top:4px solid var(--c-accent);box-shadow:var(--shadow-card)}
.barometer-inner{padding:36px 0 40px}
.barometer-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.barometer-head h2{margin:0;font-size:clamp(1.4rem,2.2vw,1.8rem)}
.barometer-head .meta{font-size:.85rem;color:var(--c-muted)}
.bar{position:relative;height:34px;background:#E8E5DD;border-radius:99px;overflow:hidden}
.bar-fill{position:absolute;inset:0 24% 0 0;background:linear-gradient(90deg,var(--c-primary) 0%,var(--c-accent) 100%);border-radius:99px;display:flex;align-items:center;padding-left:18px;color:#fff;font-weight:700;font-size:.95rem;animation:fillBar 1.4s cubic-bezier(.2,.8,.2,1) both}
@keyframes fillBar{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1)}}
.bar-fill::after{content:"76%";position:absolute;right:14px;top:50%;transform:translateY(-50%);font-weight:700}
.bar-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px;font-size:.9rem}
@media(min-width:700px){.bar-legend{grid-template-columns:repeat(4,1fr)}}
.legend-item{display:flex;flex-direction:column}
.legend-item strong{font-weight:700;color:var(--c-dark);font-size:1.05rem}
.legend-item span{color:var(--c-muted);font-size:.82rem}
.barometer-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--c-border);font-size:.88rem;color:var(--c-muted)}
.barometer-footer strong{color:var(--c-cta)}

/* Problem cards */
.problem{background:var(--c-bg)}
.problem-grid{display:grid;gap:18px;margin-top:36px}
@media(min-width:700px){.problem-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.problem-grid{grid-template-columns:repeat(4,1fr)}}
.problem-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:24px;transition:transform .2s,box-shadow .2s}
.problem-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}
.problem-card .num{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:600;color:var(--c-accent);line-height:1;margin-bottom:8px}
.problem-card h3{font-size:1.15rem;margin-bottom:6px}
.problem-card p{font-size:.92rem;color:var(--c-muted);margin:0}

/* Werkwijze */
.werkwijze{background:#fff}
.toggle{display:inline-flex;background:var(--c-bg);border:1px solid var(--c-border);border-radius:99px;padding:4px;margin:24px 0 28px}
.toggle button{padding:10px 18px;border-radius:99px;font-weight:600;font-size:.88rem;color:var(--c-muted);transition:background .2s,color .2s}
.toggle button.active{background:var(--c-primary);color:#fff}
.steps{display:grid;gap:14px;margin-top:8px}
@media(min-width:800px){.steps{grid-template-columns:repeat(5,1fr);gap:8px;align-items:stretch}}
.step{position:relative;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:20px}
.step-num{position:absolute;top:-12px;left:20px;width:28px;height:28px;border-radius:50%;background:var(--c-primary);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.step h4{font-family:'Plus Jakarta Sans',sans-serif;font-size:.95rem;font-weight:600;margin:.4rem 0 4px;color:var(--c-dark)}
.step p{font-size:.82rem;color:var(--c-muted);margin:0}
.route-info{margin-top:28px;padding:18px 22px;background:#F0EDE5;border-left:4px solid var(--c-accent);border-radius:6px;font-size:.92rem}

/* Tracks */
.tracks{background:var(--c-bg)}
.tracks-grid{display:grid;gap:20px;margin-top:36px}
@media(min-width:760px){.tracks-grid{grid-template-columns:repeat(3,1fr)}}
.track-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.track-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.track-icon{width:48px;height:48px;border-radius:10px;background:rgba(82,183,136,.12);color:var(--c-primary);display:grid;place-items:center;margin-bottom:16px}
.track-icon svg{width:26px;height:26px;stroke-width:1.5}
.track-card h3{margin-bottom:8px}
.track-card .label{font-size:.78rem;font-weight:600;color:var(--c-accent);letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}
.track-card ul{margin:14px 0 0;padding:0;list-style:none}
.track-card li{font-size:.9rem;color:var(--c-muted);padding:6px 0 6px 22px;position:relative}
.track-card li::before{content:"";position:absolute;left:0;top:13px;width:12px;height:2px;background:var(--c-accent)}
.monument-cta{margin-top:36px;padding:28px;background:var(--c-dark);color:#fff;border-radius:var(--radius);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.monument-cta h3{color:#fff;margin:0 0 4px}
.monument-cta p{margin:0;color:rgba(255,255,255,.75);font-size:.95rem}

/* Maatregelen grid */
.maatregelen{background:#fff}
.measures-grid{display:grid;gap:14px;margin-top:36px;grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.measures-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.measures-grid{grid-template-columns:repeat(4,1fr)}}
.measure{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:18px 18px 16px;transition:transform .2s,box-shadow .2s,border-color .2s}
.measure:hover{transform:translateY(-2px);box-shadow:var(--shadow-card);border-color:var(--c-accent)}
.measure-icon{width:36px;height:36px;color:var(--c-primary);margin-bottom:10px}
.measure-icon svg{width:100%;height:100%;stroke-width:1.5}
.measure h4{font-family:'Plus Jakarta Sans',sans-serif;font-size:.95rem;font-weight:600;margin:0 0 4px}
.measure .amount{font-size:.85rem;color:var(--c-cta);font-weight:600}

/* Calculator */
.calc{background:linear-gradient(180deg,#F7F5F0 0%,#EDE9DE 100%)}
.calc-grid{display:grid;gap:24px;margin-top:36px}
@media(min-width:900px){.calc-grid{grid-template-columns:1fr 1fr;gap:32px;align-items:start}}
.calc-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-card)}
.calc-field{margin-bottom:22px}
.calc-field label{display:block;font-size:.88rem;font-weight:600;color:var(--c-dark);margin-bottom:10px}
.calc-field .hint{font-size:.78rem;color:var(--c-muted);font-weight:400;margin-left:6px}
input[type="range"]{width:100%;-webkit-appearance:none;appearance:none;background:transparent;height:32px}
input[type="range"]::-webkit-slider-runnable-track{height:6px;background:#E8E5DD;border-radius:99px}
input[type="range"]::-moz-range-track{height:6px;background:#E8E5DD;border-radius:99px}
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:var(--c-primary);border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.2);margin-top:-9px;cursor:pointer}
input[type="range"]::-moz-range-thumb{width:24px;height:24px;background:var(--c-primary);border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.2);cursor:pointer}
.range-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--c-muted);margin-top:4px}
.range-row strong{color:var(--c-primary);font-weight:700;font-size:1.1rem}
.radio-group{display:grid;gap:8px}
.radio-option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--c-border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s}
.radio-option:hover{border-color:var(--c-accent)}
.radio-option input{margin-top:3px;accent-color:var(--c-primary)}
.radio-option:has(input:checked){border-color:var(--c-primary);background:rgba(82,183,136,.06)}
.radio-option .label{font-size:.92rem;font-weight:500}
.radio-option .sub{font-size:.78rem;color:var(--c-muted);display:block;margin-top:2px}
.checkbox-row{display:flex;align-items:center;gap:10px;font-size:.92rem;cursor:pointer}
.checkbox-row input{width:18px;height:18px;accent-color:var(--c-primary)}
select{width:100%;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--c-border);background:#fff;font:inherit;font-size:.92rem;color:var(--c-text)}
.calc-result{background:linear-gradient(160deg,var(--c-primary) 0%,var(--c-dark) 100%);color:#fff;border-radius:var(--radius-lg);padding:32px;position:sticky;top:88px}
.calc-result .eyebrow{color:var(--c-accent)}
.result-amount{font-size:clamp(2.4rem,5vw,3.4rem);font-weight:700;line-height:1;margin:8px 0 4px;color:#fff;font-variant-numeric:tabular-nums}
.result-per{color:rgba(255,255,255,.8);font-size:.95rem;margin-bottom:24px}
.route-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(82,183,136,.15);border:1px solid rgba(82,183,136,.4);border-radius:99px;font-size:.85rem;font-weight:600;color:#9CE0BC;margin-bottom:18px}
.route-detail{font-size:.88rem;color:rgba(255,255,255,.85);margin-bottom:22px;line-height:1.55}
.snn-note{background:rgba(224,122,60,.15);border:1px solid rgba(224,122,60,.4);color:#F4B98A;padding:12px 14px;border-radius:6px;font-size:.85rem;margin-bottom:18px}
.calc-cta{display:block;width:100%;text-align:center;background:var(--c-cta);color:#fff;padding:14px;border-radius:var(--radius);font-weight:600;text-decoration:none;transition:background .15s}
.calc-cta:hover{background:var(--c-cta-hover);color:#fff}
.calc-disclaimer{font-size:.8rem;color:var(--c-muted);margin-top:18px;line-height:1.5}

/* Cases */
.cases{background:var(--c-bg)}
.cases-grid{display:grid;gap:20px;margin-top:36px}
@media(min-width:760px){.cases-grid{grid-template-columns:repeat(3,1fr)}}
.case{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:28px;transition:transform .2s,box-shadow .2s}
.case:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}
.case .badge{display:inline-block;padding:4px 10px;background:rgba(27,67,50,.08);color:var(--c-primary);font-size:.75rem;font-weight:600;border-radius:99px;margin-bottom:14px}
.case-amount{font-family:'Cormorant Garamond',serif;font-size:2.6rem;font-weight:600;color:var(--c-cta);line-height:1;margin:8px 0 6px;font-variant-numeric:tabular-nums}
.case h3{font-size:1.05rem;margin:0 0 4px}
.case p{margin:0;color:var(--c-muted);font-size:.9rem}
.case .meta{margin-top:14px;padding-top:14px;border-top:1px solid var(--c-border);font-size:.82rem;color:var(--c-muted)}

/* Region block */
.region{background:#fff}
.region-card{background:linear-gradient(135deg,#1B4332 0%,#2D5F4A 100%);color:#fff;border-radius:var(--radius-lg);padding:36px;display:grid;gap:24px}
@media(min-width:800px){.region-card{grid-template-columns:auto 1fr auto;align-items:center;padding:44px}}
.region-icon{width:64px;height:64px;background:rgba(82,183,136,.18);border-radius:50%;display:grid;place-items:center;color:var(--c-accent)}
.region-icon svg{width:32px;height:32px}
.region-card h3{color:#fff;margin:0 0 6px;font-size:clamp(1.4rem,2.2vw,1.7rem)}
.region-card p{margin:0;color:rgba(255,255,255,.85);font-size:.95rem}

/* Over */
.over{background:var(--c-bg)}
.over-grid{display:grid;gap:36px}
@media(min-width:900px){.over-grid{grid-template-columns:1.2fr 1fr;gap:60px;align-items:center}}
.over-text p{color:var(--c-muted);font-size:1rem}
.cert-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px}
.cert{background:#fff;padding:18px;border-radius:var(--radius);border:1px solid var(--c-border);text-align:center}
.cert-name{font-weight:700;color:var(--c-primary);display:block;font-size:.95rem;margin-bottom:2px}
.cert-detail{font-size:.78rem;color:var(--c-muted)}
.over-stats{background:#fff;border-radius:var(--radius-lg);padding:32px;border:1px solid var(--c-border)}
.over-stat{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--c-border)}
.over-stat:last-child{border-bottom:0;padding-bottom:0}
.over-stat:first-child{padding-top:0}
.over-stat .num{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.8rem;color:var(--c-primary);line-height:1}
.over-stat .lbl{color:var(--c-muted);font-size:.9rem;text-align:right;flex:1;margin-left:16px}

/* FAQ */
.faq{background:#fff}
.faq-list{margin-top:36px;max-width:880px}
.faq-item{border-bottom:1px solid var(--c-border)}
.faq-item:first-child{border-top:1px solid var(--c-border)}
.faq-q{width:100%;padding:22px 44px 22px 0;text-align:left;font-size:1.02rem;font-weight:600;color:var(--c-dark);font-family:'Plus Jakarta Sans',sans-serif;position:relative;line-height:1.4;display:block}
.faq-q::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;border-right:2px solid var(--c-primary);border-bottom:2px solid var(--c-primary);transform:translateY(-65%) rotate(45deg);transition:transform .2s}
.faq-item[open] .faq-q::after{transform:translateY(-30%) rotate(-135deg)}
.faq-a{padding:0 0 22px;color:var(--c-muted);font-size:.95rem;line-height:1.65;max-width:75ch}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}

/* End CTA band */
.endcta{background:var(--c-dark);color:#fff;text-align:center}
.endcta h2{color:#fff;margin-bottom:.4em}
.endcta p{color:rgba(255,255,255,.8);max-width:55ch;margin:0 auto 28px}
.endcta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* Contact */
.contact{background:var(--c-bg)}
.contact-grid{display:grid;gap:32px;margin-top:36px}
@media(min-width:900px){.contact-grid{grid-template-columns:1.2fr 1fr;gap:48px}}
.contact-form{background:#fff;border-radius:var(--radius-lg);padding:32px;border:1px solid var(--c-border);box-shadow:var(--shadow-card)}
.field{margin-bottom:18px}
.field label{display:block;font-size:.85rem;font-weight:600;color:var(--c-dark);margin-bottom:6px}
.field label .req{color:var(--c-cta)}
.field input,.field textarea,.field select{width:100%;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--c-border);background:#fff;font:inherit;font-size:.95rem;color:var(--c-text);transition:border-color .15s,box-shadow .15s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(27,67,50,.12)}
.field textarea{min-height:110px;resize:vertical;font-family:inherit}
.field-row{display:grid;gap:18px}
@media(min-width:600px){.field-row{grid-template-columns:1fr 1fr}}
.trust-row{display:flex;flex-wrap:wrap;gap:8px 16px;margin:18px 0;font-size:.78rem;color:var(--c-muted)}
.trust-row span{display:inline-flex;align-items:center;gap:6px}
.trust-row svg{width:14px;height:14px;color:var(--c-accent)}
.form-submit{width:100%;background:var(--c-cta);color:#fff;padding:14px;border-radius:var(--radius);font-weight:600;font-size:1rem;transition:background .15s,transform .1s}
.form-submit:hover{background:var(--c-cta-hover)}
.form-submit:active{transform:scale(.99)}
.form-submit[disabled]{opacity:.6;cursor:not-allowed}
.form-microcopy{text-align:center;font-size:.8rem;color:var(--c-muted);margin-top:10px}
.form-success{display:none;padding:18px;background:rgba(82,183,136,.12);border:1px solid var(--c-accent);border-radius:var(--radius);color:var(--c-primary);font-weight:500}
.form-success.show{display:block}
.contact-info h3{font-size:1.3rem;margin-bottom:18px}
.office{padding:18px 0;border-bottom:1px solid var(--c-border)}
.office:last-of-type{border-bottom:0}
.office strong{display:block;color:var(--c-dark);font-size:.95rem;margin-bottom:4px}
.office address{font-style:normal;color:var(--c-muted);font-size:.9rem;line-height:1.55}
.contact-meta{margin-top:18px;font-size:.85rem;color:var(--c-muted)}
.contact-meta a{color:var(--c-primary);font-weight:500}

/* Footer */
.footer{background:var(--c-dark);color:rgba(255,255,255,.75);padding:48px 0 24px;font-size:.88rem}
.footer-grid{display:grid;gap:28px;margin-bottom:24px}
@media(min-width:760px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.4fr}}
.footer-certs{display:grid;gap:10px;padding:24px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:24px}
@media(min-width:760px){.footer-certs{grid-template-columns:repeat(4,1fr)}}
.footer-certs a{display:flex;align-items:center;gap:10px;padding:12px 16px;background:rgba(82,183,136,.06);border:1px solid rgba(82,183,136,.18);border-radius:6px;color:rgba(255,255,255,.85);font-size:.82rem;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,transform .15s}
.footer-certs a:hover{background:rgba(82,183,136,.14);border-color:rgba(82,183,136,.4);color:#fff;transform:translateY(-1px)}
.footer-certs a::before{content:"\2713";color:var(--c-accent);font-weight:700;font-size:.95rem}

/* Hero video — UHD MP4, achter de hero-gradient overlay (::before/::after) */
.hero-bg video,.hero-bg .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;display:block;pointer-events:none;filter:saturate(.92)}
@media (prefers-reduced-motion:reduce){.hero-bg .hero-video{display:none}.hero-bg{background:url('images/amsterdam-grachten.jpg') center/cover no-repeat}.hero-bg::after{content:"";position:absolute;inset:0;background:rgba(11,31,23,.4)}}

/* Photo wall — alle Nederlandse foto's als visuele inspiratie */
.photo-wall{padding:var(--pad-section) 0;background:var(--c-dark);overflow:hidden}
.photo-wall .container{position:relative;z-index:2}
.photo-wall .eyebrow{color:var(--c-accent)}
.photo-wall h2{color:#fff}
.photo-wall .lead{color:rgba(255,255,255,.75)}
.photo-wall-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:36px}
@media(min-width:600px){.photo-wall-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.photo-wall-grid{grid-template-columns:repeat(5,1fr)}}
@media(min-width:1200px){.photo-wall-grid{grid-template-columns:repeat(7,1fr)}}
.photo-wall-tile{aspect-ratio:1/1;overflow:hidden;border-radius:4px;background:linear-gradient(135deg,var(--c-primary),var(--c-dark));position:relative;transition:transform .3s ease}
.photo-wall-tile:hover{transform:scale(1.04);z-index:5}
.photo-wall-tile img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:opacity .3s ease,transform .3s ease}
.photo-wall-tile:hover img{opacity:1;transform:scale(1.05)}
.photo-wall-tile.tall{aspect-ratio:1/1.6}
.photo-wall-tile.wide{aspect-ratio:1.6/1}
.footer .logo{margin-bottom:14px}
.footer .logo img{height:56px}
@media(min-width:768px){.footer .logo img{height:64px}}
.footer h4{color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px}
.footer ul{list-style:none;margin:0;padding:0}
.footer li{margin-bottom:8px}
.footer a{color:rgba(255,255,255,.75);text-decoration:none}
.footer a:hover{color:#fff}
.footer-bottom{padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.8rem;color:rgba(255,255,255,.55)}

/* Sticky mobile CTA */
.sticky-mobile-cta{position:fixed;bottom:16px;right:16px;z-index:40;display:none}
@media(max-width:780px){.sticky-mobile-cta{display:block}}
.sticky-mobile-cta a{display:inline-flex;align-items:center;gap:8px;background:var(--c-cta);color:#fff;padding:14px 20px;border-radius:99px;text-decoration:none;font-weight:600;box-shadow:0 8px 24px rgba(224,122,60,.4);font-size:.95rem}
.sticky-mobile-cta svg{width:18px;height:18px}

/* Exit intent */
.exit-popup{display:none;position:fixed;inset:0;z-index:100;background:rgba(11,31,23,.6);align-items:center;justify-content:center;padding:20px;animation:fade .2s ease both}
.exit-popup.show{display:flex}
@keyframes fade{from{opacity:0}to{opacity:1}}
.exit-card{background:#fff;border-radius:var(--radius-lg);padding:36px;max-width:480px;width:100%;position:relative;animation:rise .25s ease both}
@keyframes rise{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.exit-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--c-bg);color:var(--c-muted)}
.exit-card h3{margin:0 0 10px}
.exit-card p{color:var(--c-muted);font-size:.95rem;margin-bottom:22px}

/* Cookie banner */
.cookie-banner{display:none;position:fixed;bottom:16px;left:16px;right:16px;z-index:60;background:#fff;border-radius:var(--radius-lg);box-shadow:0 16px 48px rgba(0,0,0,.18);padding:18px;border:1px solid var(--c-border);max-width:520px}
.cookie-banner.show{display:block}
.cookie-banner p{margin:0 0 12px;font-size:.88rem}
.cookie-banner-actions{display:flex;gap:8px}
.cookie-banner button{padding:8px 14px;border-radius:6px;font-weight:600;font-size:.85rem}
.cookie-accept{background:var(--c-primary);color:#fff}
.cookie-decline{background:var(--c-bg);color:var(--c-text)}

/* Reveal — content altijd zichtbaar; JS voegt .in class toe voor optionele animatie */
.reveal{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ===== Multi-page additions ===== */

/* Article/prose layout */
.article{background:#fff}
.article-grid{display:grid;gap:48px}
@media(min-width:980px){.article-grid{grid-template-columns:1fr 280px;gap:64px}}
.prose{max-width:72ch;font-size:1.02rem;line-height:1.75;color:var(--c-text)}
.prose h2{margin-top:2em;margin-bottom:.5em}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:1.6em;margin-bottom:.4em;font-size:1.3rem}
.prose p{margin-bottom:1.1em;color:var(--c-text)}
.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.4em}
.prose li{margin-bottom:.5em;color:var(--c-text)}
.prose strong{color:var(--c-dark);font-weight:600}
.prose blockquote{border-left:4px solid var(--c-accent);padding:14px 22px;margin:1.4em 0;background:var(--c-bg);font-style:italic;color:var(--c-text);border-radius:0 6px 6px 0}
.prose blockquote p:last-child{margin-bottom:0}
.prose .callout{background:rgba(82,183,136,.08);border:1px solid rgba(82,183,136,.3);border-radius:var(--radius);padding:20px 24px;margin:1.6em 0}
.prose .callout strong{display:block;color:var(--c-primary);margin-bottom:6px}
.prose .callout-warn{background:rgba(224,122,60,.08);border-color:rgba(224,122,60,.3)}
.prose .callout-warn strong{color:var(--c-cta)}
.prose hr{border:0;border-top:1px solid var(--c-border);margin:2em 0}

/* TOC sidebar */
.toc{position:sticky;top:88px;align-self:start;background:var(--c-bg);border-radius:var(--radius);padding:22px;border:1px solid var(--c-border);font-size:.88rem}
.toc-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--c-primary);margin:0 0 12px}
.toc ul{list-style:none;margin:0;padding:0}
.toc li{margin-bottom:8px}
.toc a{color:var(--c-text);text-decoration:none;display:block;padding:4px 0;border-left:2px solid transparent;padding-left:10px;margin-left:-10px;transition:border-color .15s,color .15s}
.toc a:hover{color:var(--c-primary);border-left-color:var(--c-accent)}

/* Comparison table */
.compare-table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.94rem}
.compare-table th,.compare-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--c-border)}
.compare-table th{background:var(--c-bg);color:var(--c-dark);font-weight:600;font-family:'Plus Jakarta Sans',sans-serif;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.compare-table td:last-child,.compare-table th:last-child{text-align:right}
.compare-table tbody tr:hover{background:rgba(82,183,136,.04)}

/* Stat block (WWS page) */
.stat-row{display:grid;gap:14px;margin:24px 0}
@media(min-width:700px){.stat-row{grid-template-columns:repeat(3,1fr)}}
.stat-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:22px;text-align:center}
.stat-card .num{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:600;color:var(--c-primary);line-height:1;margin-bottom:6px}
.stat-card .lbl{font-size:.85rem;color:var(--c-muted)}

/* Service card (subsidie-regie) */
.service-grid{display:grid;gap:20px;margin-top:36px}
@media(min-width:760px){.service-grid{grid-template-columns:repeat(2,1fr)}}
.service-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:28px;display:flex;gap:18px;align-items:flex-start}
.service-icon{width:44px;height:44px;border-radius:10px;background:rgba(82,183,136,.12);color:var(--c-primary);display:grid;place-items:center;flex:0 0 auto}
.service-icon svg{width:22px;height:22px;stroke-width:1.5}
.service-card h3{font-size:1.15rem;margin:0 0 6px}
.service-card p{margin:0;color:var(--c-muted);font-size:.92rem}

/* Image with caption */
.figure{margin:1.5em 0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card)}
.figure img{width:100%;height:auto;display:block}
.figure figcaption{padding:12px 16px;font-size:.82rem;color:var(--c-muted);background:#fff;border-top:1px solid var(--c-border)}

/* Photo strip / city showcase */
.photo-strip{display:grid;gap:12px;margin-top:36px}
@media(min-width:700px){.photo-strip{grid-template-columns:repeat(3,1fr)}}
.photo-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;display:block;text-decoration:none;color:#fff;transition:transform .25s ease;background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-dark) 100%)}
.photo-card:hover{transform:translateY(-3px);color:#fff}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;display:block}
.photo-card:hover img{transform:scale(1.05)}
.photo-card-content{position:absolute;inset:0;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,transparent 30%,rgba(11,31,23,.85) 100%);z-index:1}
.photo-card h3{color:#fff;margin:0 0 4px;font-size:1.4rem}
.photo-card p{margin:0;font-size:.85rem;color:rgba(255,255,255,.85)}

/* Defensive fallbacks voor de homepage editoriale en case blokken */
.editorial-row,.editorial-row-r{grid-template-columns:1fr}
@media(min-width:900px){.editorial-row{grid-template-columns:1fr 1.2fr!important}.editorial-row-r{grid-template-columns:1.2fr 1fr!important}}
.editorial-row > figure,.editorial-row-r > figure{background:linear-gradient(135deg,var(--c-bg) 0%,#E8E5DD 100%);min-height:320px;width:100%}
.editorial-row > figure img,.editorial-row-r > figure img{display:block;width:100%;height:100%;object-fit:cover}
.case-row,.case-row-r{grid-template-columns:1fr}
@media(min-width:760px){.case-row,.case-row-r{grid-template-columns:1fr 1fr!important}}
.case-row > div:first-child,.case-row-r > div:last-child{background:linear-gradient(135deg,var(--c-bg) 0%,#E8E5DD 100%);min-height:260px}
.case-row > div:first-child img,.case-row-r > div:last-child img{display:block;width:100%;height:100%;object-fit:cover}
.proof-row{grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.proof-row{grid-template-columns:repeat(4,1fr)!important}}
/* Vragen-index links: prevent flex collapse */
section[id="scan"]{min-height:auto}
.hero-bg img{min-height:100%}

/* City landing page sections */
.local-intro{background:#fff}
.local-intro-grid{display:grid;gap:36px;margin-top:24px}
@media(min-width:900px){.local-intro-grid{grid-template-columns:1.3fr 1fr;gap:60px;align-items:center}}
.local-figure{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lift)}
.local-figure img{width:100%;height:auto;display:block}

/* CTA card (inline) */
.cta-card{background:linear-gradient(160deg,var(--c-primary) 0%,var(--c-dark) 100%);color:#fff;border-radius:var(--radius-lg);padding:36px;margin:2em 0;text-align:center}
.cta-card h3{color:#fff;margin:0 0 8px}
.cta-card p{color:rgba(255,255,255,.85);margin:0 0 20px;max-width:50ch;margin-left:auto;margin-right:auto}
.cta-card .btn{margin:0 6px 6px}

/* Utility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.text-center{text-align:center}
.mt-0{margin-top:0}
.mb-0{margin-bottom:0}

/* ===== Scroll perf: skip rendering offscreen sections + image cards =====
   content-visibility:auto lets the browser skip layout/paint for sections
   that aren't in (or near) the viewport. contain-intrinsic-size reserves
   space so scroll position stays stable. Big win on pages with many images. */
.reveal{content-visibility:auto;contain-intrinsic-size:auto 600px}
.photo-card{content-visibility:auto;contain-intrinsic-size:400px 300px}
.local-figure{content-visibility:auto;contain-intrinsic-size:auto 400px}
