/* ==========================================================================
   JK BUILDING bv — Stylesheet
   1. Tokens & reset            6. Secties (home)
   2. Typografie                7. Formulieren
   3. Knoppen & badges          8. Footer
   4. Layout & utilities        9. Floating UI (WhatsApp, chat, cookies)
   5. Header & navigatie       10. Animaties & responsive
   ========================================================================== */

/* ============================= 1. TOKENS ================================= */
:root{
  /* merkkleuren uit het logo */
  --blue:#4a5ad4;
  --blue-600:#3d4ec9;
  --blue-700:#3341a8;
  --blue-900:#1b2352;
  --green:#2f8f6b;
  --green-600:#27795b;
  --green-700:#1e6249;
  --amber:#f2a33c;

  /* neutraal */
  --ink:#0d1420;
  --ink-800:#1a2433;
  --slate:#5b6678;
  --slate-400:#8792a4;
  --line:#e4e8f0;
  --line-soft:#eef1f7;
  --bg:#ffffff;
  --bg-soft:#f6f8fc;
  --bg-tint:#f0f3fb;

  /* effecten */
  --shadow-sm:0 1px 2px rgba(13,20,32,.06), 0 1px 3px rgba(13,20,32,.05);
  --shadow:0 4px 12px rgba(13,20,32,.07), 0 12px 32px -12px rgba(13,20,32,.14);
  --shadow-lg:0 12px 28px rgba(13,20,32,.10), 0 40px 70px -30px rgba(27,35,82,.35);
  --shadow-brand:0 10px 30px -10px rgba(74,90,212,.55);
  --shadow-green:0 10px 30px -10px rgba(47,143,107,.55);

  --r-sm:8px; --r:14px; --r-md:18px; --r-lg:26px; --r-full:999px;

  --container:1200px;
  --gutter:clamp(18px, 4vw, 40px);
  --section-y:clamp(64px, 8vw, 116px);

  --ff-display:'Plus Jakarta Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --ff-body:'Inter','Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;

  --ease:cubic-bezier(.22,.9,.28,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --header-h:76px;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  font-family:var(--ff-body);
  font-size:clamp(15.5px,.4vw + 15px,17px);
  line-height:1.65;
  color:var(--ink-800);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
::selection{background:var(--blue);color:#fff}

/* ============================ 2. TYPOGRAFIE ============================== */
h1,h2,h3,h4,h5{font-family:var(--ff-display);color:var(--ink);line-height:1.12;letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(2.1rem,5.2vw,3.85rem)}
h2{font-size:clamp(1.75rem,3.4vw,2.7rem)}
h3{font-size:clamp(1.15rem,1.5vw,1.45rem);font-weight:700;letter-spacing:-.01em}
h4{font-size:1.05rem;font-weight:700}
p{color:var(--slate)}
strong{color:var(--ink);font-weight:650}
.lead{font-size:clamp(1.02rem,1.3vw,1.19rem);line-height:1.68;color:var(--slate)}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--ff-display);font-size:.79rem;font-weight:750;
  letter-spacing:.13em;text-transform:uppercase;color:var(--blue);
  margin-bottom:16px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:2px}
.eyebrow--light{color:#a9b6ff}
.eyebrow--light::before{background:linear-gradient(90deg,#a9b6ff,#5fc79e)}
.eyebrow--center{margin-inline:auto}

.section-head{max-width:720px;margin-bottom:clamp(34px,4vw,56px)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head p{margin-top:16px}
.text-grad{
  background:linear-gradient(100deg,var(--blue) 0%, var(--blue-700) 40%, var(--green) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.u-mark{position:relative;white-space:nowrap;z-index:0}
.u-mark::after{
  content:"";position:absolute;left:-.06em;right:-.06em;bottom:.06em;height:.3em;z-index:-1;
  background:linear-gradient(90deg,rgba(74,90,212,.22),rgba(47,143,107,.3));border-radius:3px;
}

/* ============================ 3. KNOPPEN ================================= */
.btn{
  --btn-bg:var(--blue); --btn-fg:#fff;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 26px;border:0;border-radius:var(--r-full);
  background:var(--btn-bg);color:var(--btn-fg);
  font-family:var(--ff-display);font-weight:700;font-size:.97rem;line-height:1;
  cursor:pointer;white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  box-shadow:var(--shadow-sm);
}
.btn svg{width:18px;height:18px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.985)}

.btn--primary{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-700) 100%);box-shadow:var(--shadow-brand)}
.btn--primary:hover{box-shadow:0 16px 40px -12px rgba(74,90,212,.7)}
.btn--green{background:linear-gradient(135deg,var(--green) 0%,var(--green-700) 100%);box-shadow:var(--shadow-green)}
.btn--green:hover{box-shadow:0 16px 40px -12px rgba(47,143,107,.7)}
.btn--dark{background:var(--ink);box-shadow:0 10px 30px -12px rgba(13,20,32,.7)}
.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);box-shadow:none}
.btn--ghost:hover{border-color:var(--blue);color:var(--blue);background:rgba(74,90,212,.04)}
.btn--ghost-light{background:rgba(255,255,255,.07);color:#fff;border:1.5px solid rgba(255,255,255,.28);box-shadow:none}
.btn--ghost-light:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.55)}
.btn--white{background:#fff;color:var(--blue-900)}
.btn--wa{background:#25D366;color:#073b21;box-shadow:0 10px 30px -12px rgba(37,211,102,.8)}
.btn--wa:hover{background:#1ebe5b;color:#042a17}
.btn--lg{padding:17px 34px;font-size:1.03rem}
.btn--sm{padding:10px 18px;font-size:.87rem}
.btn--block{width:100%}

.link-arrow{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-display);
  font-weight:700;font-size:.94rem;color:var(--blue);
}
.link-arrow svg{width:17px;height:17px;transition:transform .3s var(--ease)}
.link-arrow:hover svg{transform:translateX(5px)}

.badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;border-radius:var(--r-full);
  background:var(--bg-tint);color:var(--blue-700);
  font-size:.8rem;font-weight:650;font-family:var(--ff-display);
}
.badge svg{width:15px;height:15px}
.badge--green{background:rgba(47,143,107,.1);color:var(--green-700)}
.badge--amber{background:rgba(242,163,60,.14);color:#8f5a16}
.badge--light{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2)}
.dot-live{width:8px;height:8px;border-radius:50%;background:var(--green);position:relative;flex:none}
.dot-live::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:ping 2.4s var(--ease) infinite}
@keyframes ping{0%{transform:scale(1);opacity:.7}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}

/* ======================== 4. LAYOUT & UTILITIES ========================== */
.container{width:min(100% - var(--gutter)*2, var(--container));margin-inline:auto}
.container--narrow{width:min(100% - var(--gutter)*2, 880px)}
.section{padding-block:var(--section-y);position:relative}
.section--soft{background:var(--bg-soft)}
.section--tint{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-tint) 100%)}
.section--dark{background:var(--ink);color:#c9d1de}
.section--dark h2,.section--dark h3,.section--dark h4{color:#fff}
.section--dark p{color:#9fabbd}
.grid{display:grid;gap:clamp(18px,2.2vw,28px)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,70px);align-items:center}
.stack>*+*{margin-top:18px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.center{text-align:center}
.mt-1{margin-top:12px}.mt-2{margin-top:22px}.mt-3{margin-top:34px}.mt-4{margin-top:48px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ink);color:#fff;padding:12px 20px;border-radius:0 0 var(--r) 0}
.skip-link:focus{left:0}
.noise{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:24px 24px}

.check-list{display:grid;gap:13px}
.check-list li{display:flex;gap:12px;align-items:flex-start;color:var(--slate)}
.check-list li strong{display:block;color:var(--ink)}
.check-list .ic{
  flex:none;width:23px;height:23px;border-radius:50%;margin-top:2px;
  background:rgba(47,143,107,.12);color:var(--green-700);
  display:grid;place-items:center;
}
.check-list .ic svg{width:13px;height:13px}
.check-list--light li{color:#9fabbd}
.check-list--light li strong{color:#fff}
.check-list--light .ic{background:rgba(95,199,158,.16);color:#5fc79e}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:clamp(22px,2.4vw,30px);box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.card--hover:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:rgba(74,90,212,.25)}

/* ========================= 5. HEADER & NAVIGATIE ========================= */
.topbar{
  background:var(--ink);color:#aab4c4;font-size:.84rem;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.topbar__in{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:42px;flex-wrap:wrap}
.topbar__list{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.topbar a{display:inline-flex;align-items:center;gap:8px;transition:color .2s}
.topbar a:hover{color:#fff}
.topbar svg{width:15px;height:15px;color:var(--green);flex:none}
.topbar__status{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#d5dbe5}

.header{
  position:sticky;top:0;z-index:600;
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease);
}
.header.is-stuck{box-shadow:0 8px 30px -18px rgba(13,20,32,.5);border-color:var(--line-soft);background:rgba(255,255,255,.95)}
.header__in{display:flex;align-items:center;gap:20px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px;flex:none;padding-block:10px}
.brand img{width:auto;height:46px;transition:height .3s var(--ease)}
.header.is-stuck .brand img{height:40px}

.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav__link{
  position:relative;padding:10px 14px;border-radius:var(--r-sm);
  font-family:var(--ff-display);font-weight:650;font-size:.94rem;color:var(--ink-800);
  transition:color .25s var(--ease),background .25s var(--ease);
}
.nav__link::after{
  content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--blue),var(--green));
  transform:scaleX(0);transform-origin:left;transition:transform .32s var(--ease);
}
.nav__link:hover{color:var(--blue)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:var(--blue)}

.has-drop{position:relative}
.drop-toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer}
.drop-toggle svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.has-drop:hover .drop-toggle svg,.has-drop.open .drop-toggle svg{transform:rotate(180deg)}
.drop{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%,10px);
  width:min(92vw,660px);padding:16px;border-radius:var(--r-md);
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-lg);
  display:grid;grid-template-columns:repeat(2,1fr);gap:4px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
}
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.drop a{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border-radius:var(--r-sm);transition:background .2s}
.drop a:hover{background:var(--bg-soft)}
.drop .ic{
  flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(74,90,212,.12),rgba(47,143,107,.12));color:var(--blue-700);
}
.drop .ic svg{width:17px;height:17px}
.drop b{display:block;font-family:var(--ff-display);font-size:.9rem;color:var(--ink);line-height:1.3}
.drop span{font-size:.79rem;color:var(--slate-400);line-height:1.4}
.drop__foot{grid-column:1/-1;margin-top:8px;padding:12px 13px 4px;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

.header__cta{display:flex;align-items:center;gap:10px;flex:none}
.header__phone{
  display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:var(--r-full);
  font-family:var(--ff-display);font-weight:700;font-size:.93rem;color:var(--ink);
  border:1.5px solid var(--line);transition:.25s var(--ease);
}
.header__phone svg{width:16px;height:16px;color:var(--green)}
.header__phone:hover{border-color:var(--green);background:rgba(47,143,107,.06)}

.burger{
  display:none;width:46px;height:46px;border-radius:var(--r-sm);border:1.5px solid var(--line);
  background:#fff;cursor:pointer;position:relative;flex:none;
}
.burger span{position:absolute;left:13px;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:.3s var(--ease)}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:22px}
.burger span:nth-child(3){top:28px}
.burger.is-open span:nth-child(1){top:22px;transform:rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){top:22px;transform:rotate(-45deg)}

.mobile-nav{
  position:fixed;inset:0 0 0 auto;width:min(92vw,420px);z-index:700;
  background:#fff;padding:24px 22px 40px;overflow-y:auto;
  transform:translateX(102%);transition:transform .42s var(--ease-out);
  box-shadow:-20px 0 60px -30px rgba(13,20,32,.5);
}
.mobile-nav.is-open{transform:translateX(0)}
.mobile-nav__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.mobile-nav__close{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center}
.mobile-nav__close svg{width:18px;height:18px}
.mobile-nav a.m-link{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:15px 4px;border-bottom:1px solid var(--line-soft);
  font-family:var(--ff-display);font-weight:700;font-size:1.05rem;color:var(--ink);
}
.mobile-nav a.m-link svg{width:17px;height:17px;color:var(--slate-400)}
.mobile-nav .m-sub{padding:4px 0 14px}
.mobile-nav .m-sub a{display:block;padding:9px 4px;font-size:.93rem;color:var(--slate)}
.mobile-nav__cta{display:grid;gap:12px;margin-top:26px}
.scrim{
  position:fixed;inset:0;z-index:650;background:rgba(13,20,32,.5);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:.35s var(--ease);
}
.scrim.is-on{opacity:1;visibility:visible}
.scroll-progress{position:fixed;top:0;left:0;height:3px;z-index:800;width:0;
  background:linear-gradient(90deg,var(--blue),var(--green));transition:width .1s linear}

/* ============================== 6. HERO ================================== */
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(120% 90% at 82% 8%, rgba(47,143,107,.34) 0%, transparent 55%),
    radial-gradient(100% 80% at 10% 0%, rgba(74,90,212,.42) 0%, transparent 58%),
    linear-gradient(155deg,#141c33 0%,#111a3a 45%,#0d1420 100%);
  padding-block:clamp(56px,7vw,96px) clamp(70px,8vw,110px);
}
.hero__grid-bg{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(90% 70% at 50% 25%,#000 20%,transparent 78%);
  -webkit-mask-image:radial-gradient(90% 70% at 50% 25%,#000 20%,transparent 78%);
}
.hero__blob{
  position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;
  will-change:transform;   /* eigen laag: de blur wordt één keer berekend i.p.v. elk beeldje */
}
.hero__blob--1{width:520px;height:520px;background:rgba(74,90,212,.4);top:-180px;left:-140px;animation:float1 16s ease-in-out infinite}
.hero__blob--2{width:440px;height:440px;background:rgba(47,143,107,.34);bottom:-180px;right:-100px;animation:float2 19s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,50px)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,-40px)}}

.hero__in{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(34px,4vw,62px);align-items:center}
.hero h1{color:#fff;margin-bottom:20px}
.hero h1 .accent{
  background:linear-gradient(100deg,#8f9bf0,#5fc79e);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .lead{color:#b9c3d6;max-width:60ch}
.hero__chips{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}
.chip{
  display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--r-full);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  font-size:.79rem;font-weight:600;color:#dbe2ee;backdrop-filter:blur(4px);
}
.chip svg{width:14px;height:14px;color:#5fc79e}
.hero__cta{margin-top:30px}
.hero__proof{
  display:flex;flex-wrap:wrap;gap:26px;margin-top:34px;padding-top:28px;
  border-top:1px solid rgba(255,255,255,.12);
}
.proof-item{display:flex;flex-direction:column;gap:2px}
.proof-item b{font-family:var(--ff-display);font-size:1.75rem;font-weight:800;color:#fff;line-height:1}
.proof-item span{font-size:.82rem;color:#9aa6bb}
.stars{display:inline-flex;gap:2px;color:#f2a33c}
.stars svg{width:15px;height:15px}

/* hero-formulier */
.hero__form{
  position:relative;background:rgba(255,255,255,.98);border-radius:var(--r-lg);
  padding:clamp(22px,2.4vw,30px);box-shadow:0 40px 90px -40px rgba(0,0,0,.8);
  border:1px solid rgba(255,255,255,.6);
}
.hero__form::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;
  background:linear-gradient(135deg,var(--blue),var(--green));opacity:.5;
}
.hero__form h3{margin-bottom:4px}
.hero__form .form-note{font-size:.85rem;color:var(--slate-400);margin-bottom:18px}
.hero__form .badge{margin-bottom:14px}
.form-foot{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:.78rem;color:var(--slate-400);line-height:1.45}
.form-foot svg{width:15px;height:15px;color:var(--green);flex:none}

.hero__art{position:absolute;right:-4%;bottom:-6%;width:52%;max-width:620px;opacity:.16;pointer-events:none;z-index:1}

/* trustbar */
.trustbar{background:var(--ink-800);color:#fff;padding-block:18px;overflow:hidden;border-top:1px solid rgba(255,255,255,.07)}
.marquee{display:flex;gap:0;width:max-content;animation:marquee 42s linear infinite}
.marquee__group{display:flex;align-items:center;gap:44px;padding-right:44px}
.marquee__item{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-display);font-weight:650;font-size:.92rem;color:#c5cddb;white-space:nowrap}
.marquee__item svg{width:18px;height:18px;color:#5fc79e}
@keyframes marquee{to{transform:translateX(-50%)}}
.trustbar:hover .marquee{animation-play-state:paused}

/* usp-kaarten */
.usp-row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,22px);margin-top:-52px;position:relative;z-index:5}
.usp{
  background:#fff;border-radius:var(--r-md);padding:24px 22px;border:1px solid var(--line);
  box-shadow:var(--shadow);transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.usp:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.usp .ic{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;margin-bottom:14px;
  background:linear-gradient(135deg,rgba(74,90,212,.14),rgba(47,143,107,.14));color:var(--blue-700);
}
.usp .ic svg{width:22px;height:22px}
.usp h3{font-size:1.02rem;margin-bottom:6px}
.usp p{font-size:.88rem;line-height:1.55}

/* ============================ DIENSTEN =================================== */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,24px)}
.svc{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:28px 26px 26px;overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
  display:flex;flex-direction:column;
}
.svc::before{
  content:"";position:absolute;left:0;top:0;height:3px;width:100%;
  background:linear-gradient(90deg,var(--blue),var(--green));
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.svc::after{
  content:"";position:absolute;right:-60px;bottom:-60px;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(circle,rgba(74,90,212,.1),transparent 70%);
  opacity:0;transition:opacity .5s var(--ease);
}
.svc:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg);border-color:rgba(74,90,212,.22)}
.svc:hover::before{transform:scaleX(1)}
.svc:hover::after{opacity:1}
.svc__ic{
  width:54px;height:54px;border-radius:15px;display:grid;place-items:center;margin-bottom:18px;
  background:linear-gradient(135deg,var(--blue) 0%,var(--blue-700) 100%);color:#fff;
  box-shadow:var(--shadow-brand);transition:transform .45s var(--ease);
}
.svc:nth-child(3n+2) .svc__ic{background:linear-gradient(135deg,var(--green),var(--green-700));box-shadow:var(--shadow-green)}
.svc:nth-child(3n) .svc__ic{background:linear-gradient(135deg,var(--blue-700),var(--green-700));box-shadow:0 10px 30px -10px rgba(40,90,150,.5)}
.svc:hover .svc__ic{transform:translateY(-3px) rotate(-4deg) scale(1.05)}
.svc__ic svg{width:26px;height:26px}
.svc h3{margin-bottom:10px}
.svc p{font-size:.92rem;margin-bottom:16px}
.svc__tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.svc__tags span{
  font-size:.76rem;padding:5px 11px;border-radius:var(--r-full);
  background:var(--bg-soft);color:var(--slate);border:1px solid var(--line-soft);
}
.svc__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px}

/* ========================== WERKWIJZE / STAPPEN ========================== */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,26px);position:relative}
.steps::before{
  content:"";position:absolute;top:34px;left:8%;right:8%;height:2px;
  background:linear-gradient(90deg,var(--blue),var(--green));opacity:.25;
}
.step{position:relative;text-align:center;padding:0 6px}
.step__n{
  width:68px;height:68px;border-radius:50%;margin:0 auto 20px;display:grid;place-items:center;
  background:#fff;border:2px solid var(--line);position:relative;z-index:2;
  font-family:var(--ff-display);font-weight:800;font-size:1.3rem;color:var(--blue);
  box-shadow:var(--shadow-sm);transition:.45s var(--ease);
}
.step:hover .step__n{border-color:var(--blue);color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue-700));transform:scale(1.07);box-shadow:var(--shadow-brand)}
.step h3{font-size:1.08rem;margin-bottom:8px}
.step p{font-size:.9rem}
.step__meta{display:inline-block;margin-top:10px;font-size:.76rem;font-weight:700;color:var(--green-700);background:rgba(47,143,107,.1);padding:4px 11px;border-radius:var(--r-full)}

/* ============================ STATS ====================================== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,30px);text-align:center}
.stat b{
  display:block;font-family:var(--ff-display);font-weight:800;line-height:1;
  font-size:clamp(2.2rem,4.4vw,3.3rem);
  background:linear-gradient(120deg,#fff,#a9b6ff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat span{display:block;margin-top:10px;font-size:.9rem;color:#9fabbd}
.stat--light b{background:linear-gradient(120deg,var(--blue),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat--light span{color:var(--slate)}

/* ========================== PROJECTEN / GALERIJ ========================== */
.filters{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:34px}
.filter{
  padding:9px 18px;border-radius:var(--r-full);border:1.5px solid var(--line);background:#fff;
  font-family:var(--ff-display);font-weight:650;font-size:.87rem;color:var(--slate);cursor:pointer;
  transition:.28s var(--ease);
}
.filter:hover{border-color:var(--blue);color:var(--blue)}
.filter.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.tile{
  position:relative;border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/3;
  box-shadow:var(--shadow-sm);transition:transform .5s var(--ease),box-shadow .5s var(--ease),opacity .35s,filter .35s;
}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tile__ov{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  padding:22px;color:#fff;
  background:linear-gradient(to top,rgba(10,15,28,.88) 0%,rgba(10,15,28,.25) 45%,transparent 70%);
  opacity:0;transition:opacity .45s var(--ease);
}
.tile:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.tile:hover img{transform:scale(1.07)}
.tile:hover .tile__ov{opacity:1}
.tile__ov b{font-family:var(--ff-display);font-size:1.05rem;display:block;margin-bottom:4px}
.tile__ov span{font-size:.83rem;color:#c5cddb}
.tile.is-hidden{display:none}

/* ============================ REVIEWS ==================================== */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,24px)}
.review{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:28px 26px;
  position:relative;transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.review:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.review__q{position:absolute;top:18px;right:22px;font-family:var(--ff-display);font-size:3.6rem;line-height:1;color:var(--blue);opacity:.12}
.review p{font-size:.96rem;color:var(--ink-800);margin-block:14px 20px}
.review__who{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--line-soft)}
.avatar{
  width:44px;height:44px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-family:var(--ff-display);font-weight:800;font-size:.95rem;color:#fff;
  background:linear-gradient(135deg,var(--blue),var(--green));
}
.review__who b{display:block;font-family:var(--ff-display);font-size:.95rem;color:var(--ink)}
.review__who span{font-size:.81rem;color:var(--slate-400)}

/* ============================== FAQ ====================================== */
.faq{max-width:840px;margin-inline:auto;display:grid;gap:12px}
.acc{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.acc.is-open{border-color:rgba(74,90,212,.3);box-shadow:var(--shadow)}
.acc__btn{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:20px 24px;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--ff-display);font-weight:700;font-size:1rem;color:var(--ink);
}
.acc__ic{
  flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:var(--bg-soft);color:var(--blue);transition:.35s var(--ease);
}
.acc__ic svg{width:15px;height:15px}
.acc.is-open .acc__ic{background:var(--blue);color:#fff;transform:rotate(180deg)}
.acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease)}
.acc.is-open .acc__panel{grid-template-rows:1fr}
.acc__panel>div{overflow:hidden}
.acc__panel p{padding:0 24px 22px;font-size:.95rem}

/* =========================== CTA-BANNER ================================== */
.cta-band{
  position:relative;overflow:hidden;border-radius:var(--r-lg);color:#fff;
  padding:clamp(34px,4.6vw,62px);
  background:
    radial-gradient(90% 120% at 90% 10%, rgba(47,143,107,.55) 0%, transparent 60%),
    linear-gradient(135deg,#232f7a 0%,#1b2352 55%,#0d1420 100%);
  box-shadow:var(--shadow-lg);
}
.cta-band h2{color:#fff;max-width:18ch}
.cta-band p{color:#b9c3d6;max-width:52ch;margin-top:14px}
.cta-band__in{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:center;position:relative;z-index:2}
.cta-band__side{display:grid;gap:12px}

/* =========================== WERKGEBIED ================================== */
.area-wrap{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(30px,5vw,64px);align-items:center}
.area-list{display:flex;flex-wrap:wrap;gap:9px}
.area-list span{
  padding:9px 16px;border-radius:var(--r-full);background:#fff;border:1px solid var(--line);
  font-size:.86rem;font-weight:600;color:var(--slate);transition:.3s var(--ease);
}
.area-list span:hover{border-color:var(--green);color:var(--green-700);transform:translateY(-2px)}
.map-card{
  position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:340px;
  background:
    radial-gradient(70% 70% at 40% 35%, rgba(74,90,212,.25) 0%, transparent 60%),
    linear-gradient(135deg,#1b2352,#0d1420);
  display:grid;place-items:center;box-shadow:var(--shadow-lg);
}
.map-card__grid{
  position:absolute;inset:0;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:38px 38px;
}
.map-card__pin{
  position:relative;z-index:2;display:grid;place-items:center;text-align:center;color:#fff;padding:26px;
}
.pin-dot{
  width:22px;height:22px;border-radius:50%;background:var(--green);margin:0 auto 18px;position:relative;
  box-shadow:0 0 0 8px rgba(47,143,107,.25);
}
.pin-dot::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--green);animation:ping 2.6s var(--ease) infinite}
.map-card__pin b{font-family:var(--ff-display);font-size:1.25rem;display:block;margin-bottom:6px}
.map-card__pin span{color:#9fabbd;font-size:.9rem}

/* ============================ 7. FORMULIEREN ============================= */
.field{display:block;margin-bottom:14px}
.field>label,.field-label{
  display:block;font-family:var(--ff-display);font-weight:650;font-size:.85rem;
  color:var(--ink);margin-bottom:7px;
}
.field .req{color:#d64545}
.input,.select,.textarea{
  width:100%;padding:13px 15px;border-radius:var(--r);border:1.5px solid var(--line);
  background:#fff;font-size:.95rem;color:var(--ink);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s;
}
.textarea{min-height:120px;resize:vertical}
.select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6678' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:17px;padding-right:42px;
}
.input:hover,.select:hover,.textarea:hover{border-color:var(--slate-400)}
.input:focus,.select:focus,.textarea:focus{
  outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(74,90,212,.14);
}
.input.is-error,.select.is-error,.textarea.is-error{border-color:#d64545;box-shadow:0 0 0 4px rgba(214,69,69,.1)}
input[type="checkbox"].is-error{outline:2px solid #d64545;outline-offset:3px;border-radius:3px}
.err-msg{display:none;font-size:.79rem;color:#d64545;margin-top:6px;font-weight:600}
.is-error ~ .err-msg,.err-msg.show{display:block}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;width:0;height:0}
.choice span{
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  padding:16px 10px;border-radius:var(--r);border:1.5px solid var(--line);background:#fff;
  font-size:.83rem;font-weight:650;font-family:var(--ff-display);color:var(--slate);
  cursor:pointer;transition:.28s var(--ease);height:100%;
}
.choice span svg{width:22px;height:22px;color:var(--slate-400);transition:.28s var(--ease)}
.choice span:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.choice input:checked + span{
  border-color:var(--blue);background:rgba(74,90,212,.07);color:var(--blue-700);
  box-shadow:0 0 0 3px rgba(74,90,212,.1);
}
.choice input:checked + span svg{color:var(--blue)}
.choice input:focus-visible + span{outline:3px solid var(--blue);outline-offset:2px}
.choice-grid.has-error .choice span{border-color:#d64545;background:rgba(214,69,69,.03)}
.choice-grid.has-error .choice input:checked + span{border-color:var(--blue);background:rgba(74,90,212,.07)}

.checkbox{display:flex;gap:11px;align-items:flex-start;font-size:.83rem;color:var(--slate);line-height:1.5;cursor:pointer}
.checkbox input{width:19px;height:19px;flex:none;margin-top:2px;accent-color:var(--blue);cursor:pointer}
.checkbox a{color:var(--blue);text-decoration:underline}

/* meerstaps-formulier */
.steps-bar{display:flex;align-items:center;gap:8px;margin-bottom:22px}
.steps-bar__i{flex:1;height:5px;border-radius:3px;background:var(--line);overflow:hidden}
.steps-bar__i i{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .5s var(--ease)}
.steps-bar__i.done i{width:100%}
.fstep{display:none;animation:fadeUp .45s var(--ease) both}
.fstep.is-active{display:block}
.fstep__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;gap:12px}
.fstep__head span{font-size:.78rem;font-weight:700;color:var(--slate-400);font-family:var(--ff-display);white-space:nowrap}
.form-nav{display:flex;gap:10px;margin-top:18px}
.form-nav .btn{flex:1}
.form-msg{
  display:none;margin-top:14px;padding:14px 16px;border-radius:var(--r);
  font-size:.88rem;line-height:1.5;
}
.form-msg.ok{display:block;background:rgba(47,143,107,.1);color:var(--green-700);border:1px solid rgba(47,143,107,.25)}
.form-msg.err{display:block;background:rgba(214,69,69,.08);color:#a63232;border:1px solid rgba(214,69,69,.25)}

/* contactblok */
.contact-card{
  display:flex;gap:16px;align-items:flex-start;padding:22px;border-radius:var(--r-md);
  background:#fff;border:1px solid var(--line);transition:.38s var(--ease);
}
.contact-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(74,90,212,.25)}
.contact-card .ic{
  flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(74,90,212,.13),rgba(47,143,107,.13));color:var(--blue-700);
}
.contact-card .ic svg{width:21px;height:21px}
.contact-card b{display:block;font-family:var(--ff-display);font-size:.95rem;color:var(--ink);margin-bottom:3px}
.contact-card a,.contact-card p{font-size:.93rem;color:var(--slate)}
.contact-card a:hover{color:var(--blue)}

.hours-table{width:100%;border-collapse:collapse;font-size:.92rem}
.hours-table td{padding:11px 0;border-bottom:1px solid var(--line-soft);color:var(--slate)}
.hours-table td:last-child{text-align:right;font-weight:650;color:var(--ink)}
.hours-table tr.today td{color:var(--green-700)}
.hours-table tr.today td:last-child{color:var(--green-700)}
.hours-table tr:last-child td{border-bottom:0}

/* ============================== 8. FOOTER ================================ */
.footer{background:var(--ink);color:#93a0b4;padding-top:clamp(50px,6vw,84px);position:relative;overflow:hidden}
.footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--blue),var(--green),transparent);opacity:.6;
}
.footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.25fr;gap:clamp(26px,3vw,48px);padding-bottom:44px}
.footer h4{color:#fff;font-size:.93rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:18px}
.footer img.flogo{height:56px;width:auto;margin-bottom:18px}
.footer p{font-size:.9rem;color:#8d9aae;line-height:1.7}
.footer__links{display:grid;gap:10px}
.footer__links a{font-size:.9rem;color:#93a0b4;transition:color .25s var(--ease),transform .25s var(--ease);display:inline-block}
.footer__links a:hover{color:#fff;transform:translateX(4px)}
.footer__contact{display:grid;gap:14px}
.footer__contact a,.footer__contact div{display:flex;gap:11px;align-items:flex-start;font-size:.9rem;color:#93a0b4}
.footer__contact svg{width:17px;height:17px;color:var(--green);flex:none;margin-top:3px}
.footer__contact a:hover{color:#fff}
.socials{display:flex;gap:10px;margin-top:22px}
.socials a{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#c5cddb;
  transition:.3s var(--ease);
}
.socials a:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-3px)}
.socials svg{width:18px;height:18px}
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.08);padding-block:22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.83rem;color:#7c8899;
}
.footer__bottom nav{display:flex;gap:20px;flex-wrap:wrap}
.footer__bottom a:hover{color:#fff}
.footer__services{columns:2;column-gap:24px}
.footer__services a{display:block;margin-bottom:9px;font-size:.87rem;color:#93a0b4;break-inside:avoid}
.footer__services a:hover{color:#fff}

/* ========================= 9. FLOATING UI ================================ */
.fab-stack{position:fixed;right:20px;bottom:20px;z-index:520;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.fab{
  width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  box-shadow:0 12px 30px -8px rgba(13,20,32,.45);position:relative;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.fab:hover{transform:translateY(-3px) scale(1.05)}
.fab svg{width:27px;height:27px}
.fab--wa{background:#25D366;color:#fff}
.fab--chat{background:linear-gradient(135deg,var(--blue),var(--blue-700));color:#fff}
.fab--top{width:46px;height:46px;background:#fff;color:var(--ink);border:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(10px)}
.fab--top svg{width:20px;height:20px}
.fab--top.show{opacity:1;visibility:visible;transform:translateY(0)}
.fab__ring{position:absolute;inset:0;border-radius:50%;border:2px solid currentColor;opacity:.5;animation:ping 2.8s var(--ease) infinite}
.fab__label{
  position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(6px);
  background:var(--ink);color:#fff;padding:8px 14px;border-radius:var(--r-full);
  font-size:.82rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;
  transition:.3s var(--ease);box-shadow:var(--shadow);
}
.fab:hover .fab__label{opacity:1;transform:translateY(-50%) translateX(0)}
.fab__badge{
  position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;
  background:#e5484d;color:#fff;font-size:.7rem;font-weight:800;display:grid;place-items:center;
  border:2px solid #fff;
}

/* proactieve chatbubbel */
.chat-nudge{
  position:fixed;right:20px;bottom:148px;z-index:519;max-width:290px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 4px var(--r-md);
  padding:16px 18px;box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.96);
  transition:.45s var(--ease-out);
}
.chat-nudge.show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.chat-nudge p{font-size:.88rem;color:var(--ink-800);line-height:1.5}
.chat-nudge b{font-family:var(--ff-display);display:block;margin-bottom:4px;color:var(--ink);font-size:.92rem}
.chat-nudge__close{
  position:absolute;top:-9px;right:-9px;width:26px;height:26px;border-radius:50%;
  background:var(--ink);color:#fff;border:0;cursor:pointer;display:grid;place-items:center;
}
.chat-nudge__close svg{width:13px;height:13px}

/* chatvenster */
.chat{
  position:fixed;right:20px;bottom:20px;z-index:540;
  width:min(calc(100vw - 32px),392px);height:min(calc(100vh - 40px),620px);
  background:#fff;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 30px 70px -20px rgba(13,20,32,.55);
  display:flex;flex-direction:column;
  opacity:0;visibility:hidden;transform:translateY(24px) scale(.97);
  transition:opacity .35s var(--ease-out),transform .35s var(--ease-out),visibility .35s;
}
.chat.is-open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.chat__head{
  padding:16px 18px;color:#fff;display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,var(--blue-700) 0%,var(--blue) 55%,var(--green) 160%);
}
.chat__avatar{
  width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:rgba(255,255,255,.18);border:1.5px solid rgba(255,255,255,.35);
  font-family:var(--ff-display);font-weight:800;font-size:.85rem;
}
.chat__who b{display:block;font-family:var(--ff-display);font-size:.98rem;line-height:1.25}
.chat__who span{font-size:.77rem;color:rgba(255,255,255,.82);display:flex;align-items:center;gap:6px}
.chat__who span::before{content:"";width:7px;height:7px;border-radius:50%;background:#5fe3a1;box-shadow:0 0 0 3px rgba(95,227,161,.3)}
.chat__actions{margin-left:auto;display:flex;gap:6px}
.chat__ibtn{
  width:34px;height:34px;border-radius:10px;border:0;cursor:pointer;display:grid;place-items:center;
  background:rgba(255,255,255,.14);color:#fff;transition:.25s var(--ease);
}
.chat__ibtn:hover{background:rgba(255,255,255,.28)}
.chat__ibtn svg{width:16px;height:16px}
.chat__body{
  flex:1;overflow-y:auto;padding:20px 18px;background:var(--bg-soft);
  display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;
}
.chat__body::-webkit-scrollbar{width:7px}
.chat__body::-webkit-scrollbar-thumb{background:#cfd6e4;border-radius:4px}
.msg{max-width:86%;padding:12px 15px;border-radius:16px;font-size:.9rem;line-height:1.55;animation:msgIn .34s var(--ease-out) both}
.msg a{color:var(--blue);text-decoration:underline;font-weight:600}
.msg--bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px;align-self:flex-start;color:var(--ink-800)}
.msg--user{
  background:linear-gradient(135deg,var(--blue),var(--blue-700));color:#fff;
  border-bottom-right-radius:5px;align-self:flex-end;box-shadow:var(--shadow-brand);
}
.msg--user a{color:#fff}
.msg strong{color:inherit;font-weight:700}
.msg ul{margin:8px 0 0;display:grid;gap:5px}
.msg ul li{position:relative;padding-left:16px;font-size:.87rem}
.msg ul li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--green)}
@keyframes msgIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.typing{display:flex;gap:4px;padding:15px 16px;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 5px;align-self:flex-start;width:fit-content}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--slate-400);animation:blink 1.35s infinite}
.typing i:nth-child(2){animation-delay:.18s}
.typing i:nth-child(3){animation-delay:.36s}
@keyframes blink{0%,60%,100%{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.chips{display:flex;flex-wrap:wrap;gap:7px;padding:0 18px 12px;background:var(--bg-soft)}
.chips button{
  padding:8px 13px;border-radius:var(--r-full);border:1.5px solid var(--blue);background:#fff;
  color:var(--blue-700);font-size:.81rem;font-weight:650;font-family:var(--ff-display);cursor:pointer;
  transition:.25s var(--ease);
}
.chips button:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.chat__foot{padding:12px 14px;border-top:1px solid var(--line);background:#fff}
.chat__form{display:flex;gap:9px;align-items:flex-end}
.chat__input{
  flex:1;padding:11px 14px;border-radius:var(--r-full);border:1.5px solid var(--line);
  font-size:.9rem;max-height:96px;resize:none;line-height:1.4;
}
.chat__input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(74,90,212,.12)}
.chat__send{
  width:44px;height:44px;flex:none;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--blue),var(--blue-700));color:#fff;transition:.25s var(--ease);
}
.chat__send:hover{transform:scale(1.07)}
.chat__send:disabled{opacity:.45;cursor:not-allowed;transform:none}
.chat__send svg{width:19px;height:19px}
.chat__legal{text-align:center;font-size:.7rem;color:var(--slate-400);margin-top:9px}
.chat__legal a{text-decoration:underline}

/* sticky mobiele actiebalk */
.mobile-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:530;display:none;
  background:rgba(255,255,255,.97);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 30px -18px rgba(13,20,32,.5);
  transform:translateY(110%);transition:transform .4s var(--ease-out);
}
.mobile-bar.show{transform:translateY(0)}
.mobile-bar__in{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.mobile-bar .btn{padding:13px 12px;font-size:.9rem}

/* cookiebanner */
.cookie{
  position:fixed;left:20px;bottom:20px;z-index:560;width:min(calc(100vw - 40px),420px);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:22px;
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(18px);transition:.45s var(--ease-out);
}
.cookie.show{opacity:1;visibility:visible;transform:translateY(0)}
.cookie h4{margin-bottom:8px;display:flex;align-items:center;gap:9px}
.cookie h4 svg{width:19px;height:19px;color:var(--blue)}
.cookie p{font-size:.85rem;line-height:1.55}
.cookie p a{color:var(--blue);text-decoration:underline}
.cookie__btns{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap}
.cookie__btns .btn{flex:1;min-width:120px}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:900;background:rgba(8,12,22,.92);
  display:grid;place-items:center;padding:24px;
  opacity:0;visibility:hidden;transition:.35s var(--ease);
}
.lightbox.show{opacity:1;visibility:visible}
.lightbox img{max-width:min(96vw,1100px);max-height:86vh;border-radius:var(--r-md);box-shadow:var(--shadow-lg)}
.lightbox__cap{color:#fff;text-align:center;margin-top:16px;font-family:var(--ff-display);font-weight:600}
.lightbox__close{
  position:absolute;top:22px;right:22px;width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;
  display:grid;place-items:center;
}
.lightbox__close svg{width:20px;height:20px}

/* ====================== PAGINA-HEADER (subpagina's) ====================== */
.page-hero{
  position:relative;overflow:hidden;color:#fff;padding-block:clamp(48px,6vw,88px);
  background:
    radial-gradient(110% 100% at 88% 0%, rgba(47,143,107,.3) 0%, transparent 58%),
    linear-gradient(140deg,#16203c 0%,#141c33 50%,#0d1420 100%);
}
.page-hero h1{color:#fff;max-width:20ch}
.page-hero p{color:#b9c3d6;max-width:62ch;margin-top:16px}
.crumbs{display:flex;gap:9px;align-items:center;font-size:.83rem;color:#8d9aae;margin-bottom:18px;flex-wrap:wrap}
.crumbs a:hover{color:#fff}
.crumbs svg{width:13px;height:13px;opacity:.6}
.crumbs [aria-current]{color:#fff}

/* juridische tekstpagina's */
.legal{max-width:820px}
.legal h2{font-size:clamp(1.35rem,2.2vw,1.8rem);margin-top:46px;margin-bottom:14px;scroll-margin-top:100px}
.legal h3{margin-top:28px;margin-bottom:10px;font-size:1.08rem}
.legal p,.legal li{color:var(--slate);font-size:.97rem}
.legal p+p{margin-top:14px}
.legal ul{margin-top:12px;display:grid;gap:9px}
.legal ul li{position:relative;padding-left:22px}
.legal ul li::before{content:"";position:absolute;left:4px;top:11px;width:6px;height:6px;border-radius:50%;background:var(--green)}
.legal ol{margin-top:12px;display:grid;gap:9px;counter-reset:l}
.legal ol li{position:relative;padding-left:30px;counter-increment:l}
.legal ol li::before{
  content:counter(l);position:absolute;left:0;top:1px;width:21px;height:21px;border-radius:50%;
  background:var(--bg-tint);color:var(--blue-700);font-size:.74rem;font-weight:800;display:grid;place-items:center;
}
.legal table{width:100%;border-collapse:collapse;margin-top:16px;font-size:.92rem}
.legal th,.legal td{border:1px solid var(--line);padding:11px 14px;text-align:left;vertical-align:top}
.legal th{background:var(--bg-soft);font-family:var(--ff-display);color:var(--ink);font-weight:700}
.legal-note{
  background:var(--bg-soft);border-left:3px solid var(--blue);border-radius:0 var(--r) var(--r) 0;
  padding:18px 22px;margin-top:22px;
}
.legal-note p{font-size:.9rem;margin:0}
.toc{
  position:sticky;top:calc(var(--header-h) + 24px);background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);padding:22px;box-shadow:var(--shadow-sm);
}
.toc h4{margin-bottom:14px;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;color:var(--slate-400)}
.toc a{display:block;padding:7px 0;font-size:.88rem;color:var(--slate);border-left:2px solid transparent;padding-left:12px;margin-left:-2px;transition:.25s}
.toc a:hover{color:var(--blue);border-color:var(--blue)}
.legal-layout{display:grid;grid-template-columns:270px 1fr;gap:clamp(28px,4vw,60px);align-items:start}

/* dienstdetail (diensten.html) */
.svc-block{scroll-margin-top:calc(var(--header-h) + 24px)}
.svc-block+.svc-block{margin-top:clamp(40px,5vw,72px);padding-top:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.svc-block__head{display:flex;gap:18px;align-items:flex-start;margin-bottom:22px}
.svc-block__ic{
  flex:none;width:62px;height:62px;border-radius:17px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,var(--blue),var(--blue-700));box-shadow:var(--shadow-brand);
}
.svc-block:nth-child(even) .svc-block__ic{background:linear-gradient(135deg,var(--green),var(--green-700));box-shadow:var(--shadow-green)}
.svc-block__ic svg{width:30px;height:30px}
.svc-block__head h2{font-size:clamp(1.4rem,2.5vw,2rem)}
.svc-block__head p{margin-top:8px}
.svc-detail{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,3vw,44px);align-items:start}
.svc-items{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.svc-item{
  display:flex;gap:11px;align-items:flex-start;padding:14px 16px;border-radius:var(--r);
  background:#fff;border:1px solid var(--line);transition:.32s var(--ease);
}
.svc-item:hover{border-color:rgba(74,90,212,.3);transform:translateX(3px);box-shadow:var(--shadow-sm)}
.svc-item .ic{flex:none;width:20px;height:20px;border-radius:50%;background:rgba(47,143,107,.12);color:var(--green-700);display:grid;place-items:center;margin-top:2px}
.svc-item .ic svg{width:12px;height:12px}
.svc-item b{display:block;font-family:var(--ff-display);font-size:.93rem;color:var(--ink);line-height:1.35}
.svc-item span{font-size:.81rem;color:var(--slate-400);line-height:1.45}
.svc-aside{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-md);padding:24px}
.svc-aside h4{margin-bottom:14px}

/* tijdlijn (over-ons) */
.timeline{position:relative;padding-left:34px}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--blue),var(--green))}
.tl-item{position:relative;padding-bottom:34px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{
  content:"";position:absolute;left:-30px;top:5px;width:16px;height:16px;border-radius:50%;
  background:#fff;border:3px solid var(--blue);box-shadow:0 0 0 4px rgba(74,90,212,.12);
}
.tl-item b{display:block;font-family:var(--ff-display);color:var(--blue);font-size:.86rem;margin-bottom:5px;letter-spacing:.04em}
.tl-item h4{margin-bottom:6px}
.tl-item p{font-size:.93rem}

/* team */
.team-card{text-align:center;padding:30px 24px}
.team-card .avatar{width:82px;height:82px;font-size:1.5rem;margin:0 auto 16px}
.team-card b{display:block;font-family:var(--ff-display);font-size:1.05rem;color:var(--ink)}
.team-card span{font-size:.85rem;color:var(--blue);font-weight:650}
.team-card p{font-size:.88rem;margin-top:10px}

/* prijsindicatie-tabel */
.price-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.93rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.price-table th,.price-table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line-soft)}
.price-table th{background:var(--bg-soft);font-family:var(--ff-display);font-weight:700;color:var(--ink);font-size:.86rem}
.price-table td:last-child{font-weight:700;color:var(--ink);white-space:nowrap}
.price-table tr:last-child td{border-bottom:0}
.price-table tbody tr:hover{background:var(--bg-soft)}

/* ========================= HUISSTIJL 2026 ================================
   Rustige, architecturale vormgeving: antraciet, warm gebroken wit en het
   logogroen als enige actiekleur. Geen verlopen, geen zwevende effecten.
   Staat bewust vóór het responsive deel, zodat breakpoints blijven winnen.
   ========================================================================= */
:root{
  --blue:#1f2a44; --blue-600:#27345a; --blue-700:#161f33; --blue-900:#0f1626;
  --green:#226b4e; --green-600:#1d5d44; --green-700:#174b37; --green-soft:#e7efea; --green-light:#8fcaae;
  --ink:#121417; --ink-800:#2a2e35; --slate:#5d636d; --slate-400:#8b9099;
  --line:#e2ded5; --line-soft:#ece8e0;
  --bg:#ffffff; --bg-soft:#f5f2ec; --bg-tint:#efebe3;
  --shadow-sm:0 1px 2px rgba(18,20,23,.05);
  --shadow:0 1px 2px rgba(18,20,23,.04),0 12px 32px -20px rgba(18,20,23,.28);
  --shadow-lg:0 2px 4px rgba(18,20,23,.04),0 34px 64px -34px rgba(18,20,23,.42);
  --shadow-brand:none; --shadow-green:none;
  --r-sm:3px; --r:5px; --r-md:7px; --r-lg:10px; --r-full:5px;
  --ff-display:'Archivo','Helvetica Neue',Arial,sans-serif;
}
body{color:var(--ink-800)}
::selection{background:var(--ink);color:#fff}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}

/* typografie */
h1,h2,h3,h4,h5{font-weight:700;font-stretch:108%;letter-spacing:-.022em}
h1{font-size:clamp(2.3rem,4.4vw,3.75rem);line-height:1.03;letter-spacing:-.035em}
h2{font-size:clamp(1.85rem,3.5vw,3rem);line-height:1.06;letter-spacing:-.03em}
h3{font-size:clamp(1.12rem,1.4vw,1.3rem);font-weight:650;letter-spacing:-.015em}
h4{font-weight:650}
.eyebrow{font-family:var(--ff-body);font-size:.74rem;font-weight:600;letter-spacing:.16em;color:var(--slate)}
.eyebrow::before{width:28px;height:1px;background:currentColor;border-radius:0}
.eyebrow--light{color:#9aa1ab}
.eyebrow--light::before{background:currentColor}
.text-grad{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--green)}
.u-mark::after{background:var(--green);height:.07em;bottom:.02em;border-radius:0;left:0;right:0}

/* knoppen */
.btn{border-radius:var(--r);font-weight:600;letter-spacing:-.005em;box-shadow:none;padding:15px 24px}
.btn:hover{transform:none}
.btn:active{transform:none}
.btn--primary,.btn--dark{background:var(--ink);box-shadow:none}
.btn--primary:hover,.btn--dark:hover{background:#000;box-shadow:none}
.btn--green{background:var(--green);box-shadow:none}
.btn--green:hover{background:var(--green-600);box-shadow:none}
.btn--ghost{border:1px solid var(--ink);color:var(--ink)}
.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn--ghost-light{background:transparent;border:1px solid rgba(255,255,255,.34)}
.btn--ghost-light:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn--wa{background:#25D366;color:#062e19;box-shadow:none}
.btn--lg{padding:17px 28px;font-size:1rem}
.link-arrow{color:var(--ink);font-weight:600}
.badge{border-radius:var(--r-sm);background:var(--bg-soft);color:var(--ink-800);font-family:var(--ff-body);font-weight:600}
.badge--green{background:var(--green-soft);color:var(--green-700)}
.dot-live::after{display:none}

/* vlakken en kaarten */
.section--dark{background:var(--ink);color:#c3c8d0}
.section--dark p{color:#9aa1ab}
.noise,.scroll-progress{display:none}
.card{border-radius:var(--r-lg);box-shadow:none}
.card--hover:hover{transform:none;box-shadow:none;border-color:var(--ink)}
.check-list .ic{background:transparent;color:var(--green);border:1px solid rgba(34,107,78,.35)}
.check-list--light .ic{color:var(--green-light);border-color:rgba(143,202,174,.4);background:transparent}

/* header */
.topbar{background:var(--ink);color:#9aa1ab}
.topbar svg{color:var(--green-light)}
.header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.header.is-stuck{box-shadow:none;border-color:var(--line);background:rgba(255,255,255,.98)}
.nav__link{font-family:var(--ff-body);font-weight:500;font-size:.93rem}
.nav__link::after{background:var(--ink);height:1px;bottom:6px;border-radius:0}
.nav__link:hover,.nav__link[aria-current="page"]{color:var(--ink)}
.header__phone{border-radius:var(--r);border:1px solid var(--line);font-family:var(--ff-body);font-weight:600}
.header__phone svg{color:var(--green)}
.header__phone:hover{border-color:var(--ink);background:transparent}
.drop{border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}
.drop .ic{background:var(--bg-soft);color:var(--ink);border-radius:var(--r)}
.burger{border-radius:var(--r);border:1px solid var(--line)}
.mobile-nav a.m-link{font-weight:650}

/* hero */
.hero{background:var(--ink)}
.hero__grid-bg,.hero__blob{display:none}
.hero__art{opacity:.2;right:-3%;bottom:-8%;width:60%;max-width:780px}
.hero h1 .accent{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--green-light)}
.hero .lead{color:#b4bac4}
.hero__chips{gap:10px 24px;margin-bottom:28px}
.hero .lead + .hero__chips{margin:24px 0 0}
.hero .eyebrow{margin-bottom:22px}
.hero h1{margin-bottom:22px;font-size:clamp(2.3rem,4vw,3.4rem)}
.hero__proof{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:20px 36px}
.usp-row{margin-top:clamp(28px,4vw,48px)}
section:has(> .container > .usp-row){padding-bottom:0}
.chip{background:none;border:0;padding:0;backdrop-filter:none;font-size:.85rem;font-weight:500;color:#c6ccd5;border-radius:0}
.chip svg{color:var(--green-light)}
.hero__proof{border-top:1px solid rgba(255,255,255,.14)}
.proof-item b{font-weight:650;font-size:1.6rem;letter-spacing:-.02em}
.proof-item span{color:#9aa1ab}
.hero__form{border:0;border-radius:var(--r-lg);box-shadow:0 40px 90px -45px rgba(0,0,0,.95)}
.hero__form::before{display:none}

/* vaste strook met kernactiviteiten */
.trustbar{background:#1a1d22;border-top:1px solid rgba(255,255,255,.06);padding-block:16px}
.trust-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 0}
.trust-list li{font-family:var(--ff-body);font-weight:500;font-size:.86rem;color:#c3c8d0;white-space:nowrap}
.trust-list li+li::before{content:"";display:inline-block;width:4px;height:4px;margin:0 16px 3px;background:var(--green-light);vertical-align:middle}

/* usp-strook */
.usp-row{gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.usp{border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:none;padding:30px 28px}
.usp:first-child{border-left:0}
.usp:hover{transform:none;box-shadow:none}
.usp .ic{background:var(--bg-soft);color:var(--ink);border-radius:var(--r)}

/* diensten */
.svc-grid{counter-reset:svc}
.svc{counter-increment:svc;border-radius:var(--r-lg);padding:30px 28px 26px;box-shadow:none}
.svc::before{height:2px;background:var(--green)}
.svc::after{
  content:counter(svc,decimal-leading-zero);top:32px;right:28px;bottom:auto;width:auto;height:auto;
  border-radius:0;background:none;opacity:1;
  font:600 .78rem/1 var(--ff-display);letter-spacing:.08em;color:var(--slate-400);
}
.svc:hover{transform:none;box-shadow:var(--shadow);border-color:var(--line)}
.svc:hover::after{opacity:1}
.svc__ic,.svc:nth-child(3n+2) .svc__ic,.svc:nth-child(3n) .svc__ic{
  background:var(--bg-soft);color:var(--ink);box-shadow:none;border-radius:var(--r);width:48px;height:48px
}
.svc:hover .svc__ic{transform:none;background:var(--ink);color:#fff}
.svc__ic svg{width:23px;height:23px}
.svc__tags span{border-radius:var(--r-sm);background:var(--bg-soft);border:0}

/* werfopvolging */
.wo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,72px);align-items:start}
.wo__list{border-top:1px solid var(--line);counter-reset:wo}
.wo__list li{counter-increment:wo;display:grid;grid-template-columns:56px 1fr;gap:6px 18px;padding:22px 0;border-bottom:1px solid var(--line)}
.wo__list li::before{content:counter(wo,decimal-leading-zero);grid-row:span 2;font:600 .82rem/1.9 var(--ff-display);letter-spacing:.08em;color:var(--green)}
.wo__list b{font-family:var(--ff-display);font-weight:650;font-size:1.08rem;color:var(--ink);letter-spacing:-.01em}
.wo__list span{font-size:.94rem;color:var(--slate)}
.wo__note{margin-top:26px;padding:20px 22px;background:var(--bg-soft);border-radius:var(--r-md);font-size:.95rem;color:var(--ink-800)}

/* werkwijze, cijfers, faq */
.steps::before{background:var(--line);opacity:1;height:1px}
.step__n{border-radius:var(--r);border:1px solid var(--line);font-weight:650;color:var(--ink);box-shadow:none;background:#fff}
.step:hover .step__n{background:var(--ink);color:#fff;border-color:var(--ink);transform:none;box-shadow:none}
.step__meta{border-radius:var(--r-sm);background:var(--green-soft);color:var(--green-700)}
.stats{gap:0}
.stat{padding:6px 18px;border-left:1px solid rgba(255,255,255,.12)}
.stat:first-child{border-left:0}
.stat b{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#fff;font-weight:650;letter-spacing:-.03em}
.stat span{color:#9aa1ab}
.stat--light b{color:var(--ink)}
.stats[style] .stat:nth-child(odd){border-left:0}
.acc{border-radius:var(--r-md)}
.acc.is-open{border-color:var(--ink);box-shadow:none}
.acc__btn{font-weight:650}
.acc__ic{background:none;border:1px solid var(--line);border-radius:var(--r);color:var(--ink)}
.acc.is-open .acc__ic{background:var(--ink);color:#fff;border-color:var(--ink)}

/* cta, werkgebied */
.cta-band{background:var(--ink);border-radius:var(--r-lg);box-shadow:none}
.cta-band::after{
  content:"";position:absolute;right:-60px;bottom:-70px;width:560px;height:390px;pointer-events:none;
  background:url("../assets/img/hero-blueprint.svg") no-repeat center/contain;opacity:.13;
}
.area-list span{border-radius:var(--r-sm);font-weight:500}
.area-list span:hover{transform:none;border-color:var(--ink);color:var(--ink)}
.map-card{background:var(--ink);border-radius:var(--r-lg);box-shadow:none}
.pin-dot::after{animation:none;opacity:.35}

/* formulieren */
.field>label,.field-label{font-family:var(--ff-body);font-weight:600;font-size:.83rem}
.input,.select,.textarea{border:1px solid #d9d5cb;border-radius:var(--r)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--slate-400)}
.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(18,20,23,.08)}
.choice span{border:1px solid var(--line);border-radius:var(--r);font-family:var(--ff-body);font-weight:600}
.choice span:hover{border-color:var(--ink);color:var(--ink);transform:none}
.choice input:checked + span,.choice-grid.has-error .choice input:checked + span{border-color:var(--ink);background:var(--bg-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.choice input:checked + span svg{color:var(--green)}
.checkbox input{accent-color:var(--green)}
.checkbox a{color:var(--ink)}
.steps-bar__i i{background:var(--ink)}
.contact-card{border-radius:var(--r-lg)}
.contact-card:hover{transform:none;box-shadow:none;border-color:var(--ink)}
.contact-card .ic{background:var(--bg-soft);color:var(--ink);border-radius:var(--r)}
.contact-card a:hover{color:var(--green)}

/* footer en zwevende elementen */
.footer::before{background:rgba(255,255,255,.08);opacity:1}
.footer h4{font-family:var(--ff-body);font-size:.74rem;letter-spacing:.16em;color:#8b9099;font-weight:600}
.footer__links a:hover{transform:none}
.footer__contact svg{color:var(--green-light)}
.fab{box-shadow:0 12px 30px -14px rgba(0,0,0,.55)}
.fab:hover{transform:none}
.fab--chat{background:var(--ink)}
.fab__ring,.fab__badge,.chat-nudge{display:none !important}
.fab__label{border-radius:var(--r)}
.chat{border-radius:var(--r-lg)}
.chat__head{background:var(--ink)}
.msg--user{background:var(--ink);box-shadow:none}
.msg a{color:var(--green)}
.chat__send{background:var(--ink)}
.chips button{border:1px solid var(--line);color:var(--ink);border-radius:var(--r);font-family:var(--ff-body);font-weight:500}
.chips button:hover{background:var(--ink);border-color:var(--ink);color:#fff;transform:none}
.chat__input{border-radius:var(--r)}
.chat__input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(18,20,23,.08)}
.cookie{border-radius:var(--r-lg)}
.cookie h4 svg{color:var(--green)}
.cookie p a{color:var(--ink)}

/* subpagina's */
.page-hero{background:var(--ink)}
.page-hero::after{
  content:"";position:absolute;right:-40px;bottom:-60px;width:600px;height:414px;pointer-events:none;
  background:url("../assets/img/hero-blueprint.svg") no-repeat center/contain;opacity:.12;
}
.page-hero .container{position:relative;z-index:1}
.legal ul li::before{background:var(--slate-400)}
.legal ol li::before{background:var(--bg-soft);color:var(--ink);border-radius:var(--r-sm)}
.legal-note{border-left-color:var(--ink)}
.toc{border-radius:var(--r-lg);box-shadow:none}
.toc a:hover{color:var(--ink);border-color:var(--ink)}
.svc-block__ic,.svc-block:nth-child(even) .svc-block__ic{background:var(--bg-soft);color:var(--ink);box-shadow:none;border-radius:var(--r)}
.svc-item{border-radius:var(--r)}
.svc-item:hover{transform:none;box-shadow:none;border-color:var(--ink)}
.svc-item .ic{background:none;color:var(--green)}
.svc-aside{border-radius:var(--r-lg)}
.timeline::before{background:var(--line)}
.tl-item::before{border:2px solid var(--ink);box-shadow:none;border-radius:2px}
.tl-item b{color:var(--green)}
.team-card span{color:var(--green)}
.price-table{border-radius:var(--r-lg)}

.pull-quote{
  margin-top:34px;padding:26px 0 0;border-top:1px solid var(--line);
  font-family:var(--ff-display);font-stretch:108%;font-weight:600;font-size:clamp(1.25rem,2vw,1.6rem);
  line-height:1.3;letter-spacing:-.02em;color:var(--ink);
}
.values .card{padding:28px 26px}
.values h3{margin-bottom:8px}
.values p{font-size:.93rem}
.val__ic{width:46px;height:46px;border-radius:var(--r);display:grid;place-items:center;margin-bottom:18px;background:var(--bg-soft);color:var(--ink)}
.val__ic svg{width:22px;height:22px}
.brand img{height:52px}
.header.is-stuck .brand img{height:46px}

/* ====================== 10. ANIMATIES & RESPONSIVE ======================= */
/* De verborgen begintoestand geldt enkel als JavaScript draait (html.js).
   Zonder JS — of als er iets misloopt — blijft alle inhoud gewoon zichtbaar. */
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .75s var(--ease-out),transform .75s var(--ease-out)}
.js [data-reveal="left"]{transform:translateX(-30px)}
.js [data-reveal="right"]{transform:translateX(30px)}
.js [data-reveal="zoom"]{transform:scale(.95)}
.js [data-reveal].in{opacity:1;transform:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.float-y{animation:floatY 6s ease-in-out infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

@media (max-width:1100px){
  .hero__in{grid-template-columns:1fr;gap:38px}
  .hero__art{display:none}
  .usp-row{grid-template-columns:repeat(2,1fr)}
  .footer__top{grid-template-columns:1fr 1fr}
  .legal-layout{grid-template-columns:1fr}
  .toc{position:static}
}
@media (max-width:980px){
  .nav,.header__phone{display:none}
  .burger{display:block}
  .svc-grid,.gallery,.reviews,.g-3,.g-4{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr);gap:34px}
  .steps::before{display:none}
  .stats{grid-template-columns:repeat(2,1fr)}
  .split,.area-wrap,.cta-band__in,.svc-detail{grid-template-columns:1fr}
  .cta-band__in{gap:26px}
  .mobile-bar{display:block}
  .fab-stack{bottom:84px}
  .chat-nudge{bottom:212px}
  .chat{bottom:12px;right:12px;height:min(calc(100vh - 96px),600px)}
  .cookie{left:12px;right:12px;width:auto;bottom:84px}
}
@media (max-width:680px){
  :root{--header-h:66px}
  .svc-grid,.gallery,.reviews,.g-2,.g-3,.g-4,.usp-row,.stats,.svc-items,.field-row,.choice-grid{grid-template-columns:1fr}
  .choice-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr;gap:26px;text-align:left}
  .step{display:grid;grid-template-columns:56px 1fr;gap:16px;text-align:left;align-items:start}
  .step__n{width:56px;height:56px;margin:0;font-size:1.1rem}
  .footer__top{grid-template-columns:1fr;gap:34px}
  .footer__services{columns:2}
  .topbar__list{gap:14px;font-size:.78rem}
  .topbar__in{justify-content:center;padding-block:8px}
  .hero__proof{gap:20px}
  .proof-item b{font-size:1.45rem}
  .brand img{height:38px}
  .drop{display:none}
  .tile{aspect-ratio:3/2}
  .legal h2{margin-top:34px}
}
@media (max-width:420px){
  .fab{width:52px;height:52px}
  .fab svg{width:24px;height:24px}
  .chat-nudge{max-width:calc(100vw - 40px)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  [data-reveal]{opacity:1 !important;transform:none !important}
}

@media print{
  .header,.topbar,.footer,.fab-stack,.chat,.chat-nudge,.mobile-bar,.cookie,.hero__form{display:none !important}
  body{color:#000}
  .section{padding-block:18px}
}

/* teller-getal in een cijferblok: niet als label opmaken */
.stat b span,.proof-item b span{display:inline;margin:0;font:inherit;color:inherit}

/* ===== MOBIEL GEBRUIKSGEMAK ===== */
.btn--wa{background:#25D366;box-shadow:0 10px 30px -12px rgba(37,211,102,.6)}
/* gesloten menu niet bereikbaar met tab of schermlezer */
.mobile-nav{visibility:hidden;transition:transform .42s var(--ease-out),visibility 0s linear .42s}
.mobile-nav.is-open{visibility:visible;transition:transform .42s var(--ease-out),visibility 0s}

@media (max-width:980px){
  /* bellen, WhatsApp en offerte zitten in de onderste balk: minder zwevende knoppen */
  .fab--wa,.fab--top{display:none}
  .chat-nudge{bottom:152px}
  .mobile-bar__in{grid-template-columns:repeat(3,1fr);gap:8px}
  .mobile-bar .btn{padding:12px 6px;font-size:.86rem;gap:6px}
  .mobile-bar .btn svg{width:17px;height:17px}
  .footer{padding-bottom:76px}
}

@media (max-width:680px){
  :root{--section-y:56px}
  .topbar{display:none}

  .hero{padding-block:34px 46px}
  .hero__chips{gap:6px;margin-bottom:18px}
  .chip{font-size:.72rem;padding:5px 10px;gap:5px}
  .chip svg{width:12px;height:12px}
  .hero__cta{margin-top:24px}
  .hero__cta .btn{flex:1 1 100%}
  .hero__proof{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;margin-top:26px;padding-top:22px}

  .usp-row{gap:12px}
  .usp{display:grid;grid-template-columns:42px 1fr;column-gap:14px;padding:18px}
  .usp .ic{grid-row:span 2;width:42px;height:42px;margin:0}
  .usp h3{margin-bottom:2px}

  .svc{padding:22px 20px 20px}
  .svc__ic{width:46px;height:46px;border-radius:13px;margin-bottom:14px}
  .svc__ic svg{width:22px;height:22px}
  .svc p{margin-bottom:14px}
  .svc__tags{display:none}

  .stats{grid-template-columns:1fr 1fr;row-gap:30px}

  /* galerij: veegbare rij i.p.v. 12 tegels onder elkaar */
  .filters{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin:0 calc(-1 * var(--gutter)) 22px;padding:0 var(--gutter) 4px;scrollbar-width:none}
  .filters::-webkit-scrollbar,.gallery::-webkit-scrollbar{display:none}
  .filter{flex:none}
  .gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) 8px;scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .tile{flex:0 0 80%;scroll-snap-align:start;aspect-ratio:4/3}
  .js .gallery [data-reveal]{opacity:1;transform:none}
  .tile__ov{opacity:1;padding:16px}
  .tile:hover,.tile:hover img{transform:none}

  /* 16px voorkomt dat iPhones inzoomen bij het invullen */
  .input,.select,.textarea{font-size:16px}

  /* dienstenlijst staat al in het menu */
  .footer__top > div:has(.footer__services){display:none}
  .footer__top{gap:28px}
}

/* huisstijl: responsive aanvullingen */
@media (max-width:1100px){
  .usp{border-left:0;border-top:1px solid var(--line)}
  .usp:nth-child(-n+2){border-top:0}
  .usp:nth-child(even){border-left:1px solid var(--line)}
}
@media (max-width:980px){
  .stat:nth-child(odd){border-left:0}
  .wo{grid-template-columns:1fr}
}
@media (max-width:680px){
  .usp,.usp:nth-child(even){border-left:0}
  .usp:nth-child(2){border-top:1px solid var(--line)}
  .trustbar .trust-list{width:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-inline:var(--gutter);scrollbar-width:none}
  .trust-list::-webkit-scrollbar{display:none}
  .stat{padding:6px 10px}
  .wo__list li{grid-template-columns:40px 1fr}
  .cta-band::after,.page-hero::after{width:340px;height:235px;opacity:.1}
}
@media (min-width:681px){.choice-grid .choice:last-child{grid-column:1/-1}}
.badge{white-space:nowrap}
@media (max-width:680px){.hero h1{font-size:2.1rem}.page-hero h1{font-size:2rem}}
