:root{--o:#e2643a;--o-dark:#c9522b;--c:#0f9fc4;--ink:#16191c;--mut:#5d6670;--line:#e3e6e8;--soft:#fafbfb}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{min-width:0}
body{margin:0;font-family:Manrope,Helvetica,Arial,sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--c);text-decoration:none}
a:hover{color:var(--o)}
h1,h2,h3,.wordmark{font-family:Archivo,Helvetica,Arial,sans-serif;letter-spacing:-.015em}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--o);margin:0 0 18px}

/* header */
.site-head{position:sticky;position:-webkit-sticky;top:0;z-index:40;transform:translateZ(0);background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid #e8eaec}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:clamp(10px,3vw,24px);min-width:0;height:clamp(68px,8vw,88px)}
.logo{display:block;flex:0 1 auto;min-width:0}
.logo img{height:clamp(22px,6vw,34px);width:auto;max-width:100%}
.nav{display:flex;align-items:center;flex-wrap:nowrap;justify-content:flex-end;min-width:0;gap:clamp(2px,1vw,10px)}
.nav a.link{font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);padding:10px 12px;border-radius:6px}
.nav a.link:hover{background:#f4f6f7;color:var(--c)}
.nav a.link[aria-current=page]{color:var(--c);background:#f4f6f7}
.nav .tel{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--mut);padding:10px 12px}
.telicon{display:block;flex:0 0 auto;color:var(--o)}
.nav .tel:hover{color:var(--ink)}
.btn{display:inline-block;border:none;cursor:pointer;font-size:16px;font-weight:600;padding:16px 30px;border-radius:4px;background:var(--o);color:#fff;font-family:inherit}
.btn:hover{background:var(--o-dark);color:#fff}
.btn.sm{font-size:14px;padding:13px 22px;letter-spacing:.04em}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid #d7dbde}
.btn.ghost:hover{border-color:var(--c);color:var(--c);background:#fff}
.btn.light{background:#fff;color:var(--ink);width:100%;text-align:center;font-size:15px;padding:15px}
.btn.light:hover{background:var(--ink);color:#fff}
.brandbar{height:3px;background:linear-gradient(to right,var(--o) 0,var(--o) 38%,var(--c) 38%,var(--c) 100%)}
.burger{display:none;flex:0 0 auto;align-items:center;gap:9px;min-height:46px;padding:0 14px;background:var(--ink);border:none;border-radius:4px;cursor:pointer}
.burger .bars{display:flex;flex-direction:column;justify-content:center;gap:5px;width:22px}
.burger .bars span{display:block;height:2px;background:#fff}
.burger .blabel{display:none;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.callbtn{display:none;flex:0 0 auto;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #d7dbde;border-radius:4px;color:var(--o)}
.callbtn:hover{border-color:var(--o);color:var(--o-dark)}
.callbtn svg{display:block}
.mobile-nav{display:none;border-bottom:1px solid #e8eaec;background:#fff;padding:12px clamp(20px,4vw,48px) 28px}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;border-bottom:1px solid #eef0f1;padding:16px 2px;font-size:17px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.mobile-nav .btn{margin-top:16px;width:100%;text-align:center;border-bottom:none;color:#fff}
.mobile-nav .btn:hover{background:var(--o-dark);color:#fff}
@media(max-width:1040px){.nav a.link{font-size:13px;padding:9px 8px}.nav .tel{font-size:13px;padding:9px 8px}}
@media(max-width:940px){.nav .link,.nav .tel,.nav .btn,.nav .hasdrop{display:none}.burger,.callbtn{display:flex}}

/* hero + sections */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(40px,7vw,88px) 0 clamp(28px,4vw,48px)}
.hero h1{font-size:clamp(30px,4.9vw,52px);line-height:1.08;margin:0 0 22px;font-weight:700}
.hero p.lead{font-size:clamp(16px,1.5vw,19px);line-height:1.65;color:var(--mut);margin:0 0 32px;max-width:46ch;text-wrap:pretty}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.shot{border-radius:6px;overflow:hidden;background:#eef4f7}
.shot img{width:100%;height:100%;object-fit:cover}
.shot.hero-shot{aspect-ratio:4/3.2}
.shot.banner{aspect-ratio:21/8;margin-bottom:clamp(28px,4vw,52px)}
.shot.banner-sm{aspect-ratio:21/9;margin-bottom:clamp(24px,3vw,40px)}
.facts{border-top:1px solid #e8eaec;border-bottom:1px solid #e8eaec;background:var(--soft)}
.facts-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:20px;padding-block:clamp(20px,3vw,30px)}
.facts b{display:block;font-family:Archivo,Helvetica,sans-serif;font-size:26px;color:var(--c);margin-bottom:4px}
.facts span{font-size:14px;color:var(--mut)}
section.block{padding:clamp(48px,7vw,88px) 0}
.head-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:clamp(24px,4vw,40px)}
.head-row h2{font-size:clamp(26px,3.4vw,38px);margin:0;font-weight:700}
.head-row .count{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#9aa3ab}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:clamp(16px,2vw,24px)}
.card{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:clamp(24px,3vw,34px)}
.card:hover{border-color:var(--c);box-shadow:0 10px 30px rgba(22,25,28,.07)}
.card .rule{width:34px;height:3px;background:var(--o)}
.card h3{margin:0;font-size:21px;font-weight:600;color:var(--ink)}
.card p{margin:0;font-size:15px;line-height:1.65;color:var(--mut)}
.card .more{font-size:14px;font-weight:600;color:var(--c)}
.dark{background:var(--ink);color:#fff}
.dark-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(24px,4vw,56px);align-items:center;padding-block:clamp(44px,6vw,76px)}
.dark h2{font-size:clamp(26px,3.4vw,38px);margin:0 0 14px;font-weight:700}
.dark p{font-size:17px;line-height:1.65;color:#b6bec5;margin:0;max-width:48ch}
.dark .btn.ghost{background:transparent;color:#fff;border-color:#454b51}
.dark .btn.ghost:hover{border-color:#fff;color:#fff;background:transparent}

/* content pages */
.page{padding-block:clamp(36px,5vw,64px) clamp(48px,7vw,88px)}
.two-col{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,56px);align-items:flex-start}
.two-col .main{flex:3 1 460px;min-width:0}
.two-col .side{flex:1 1 260px;max-width:340px;min-width:0}
.page h1{font-size:clamp(30px,4.4vw,46px);line-height:1.08;margin:0 0 24px;font-weight:700}
.page p{font-size:17px;line-height:1.7;color:#3c444b;margin:0 0 20px;max-width:66ch;text-wrap:pretty}
.pull{border-left:3px solid var(--c);padding:6px 0 6px 20px;margin-top:32px}
.pull p{font-family:Archivo,Helvetica,sans-serif;font-size:clamp(19px,2.2vw,24px);line-height:1.45;color:var(--ink);margin:0}
.contactcard{background:var(--c);color:#fff;border-radius:6px;padding:clamp(24px,3vw,32px)}
.contactcard h2{font-size:20px;font-weight:600;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.35)}
.contactcard p{color:#fff;font-size:16px;line-height:1.9;margin:0;max-width:none;overflow-wrap:anywhere}
.contactcard a{color:#fff;text-decoration:underline}
.subnav{display:flex;flex-direction:column;border-top:1px solid #e8eaec;margin-bottom:28px}
.subnav a{border-bottom:1px solid #e8eaec;padding:16px 4px;font-size:16px;font-weight:600;color:var(--ink)}
.subnav a:hover{color:var(--c)}
.subnav a[aria-current=page]{color:var(--o)}
.note{background:var(--soft);border:1px solid #e8eaec;border-radius:6px;padding:22px}
.note strong{display:block;font-family:Archivo,Helvetica,sans-serif;font-size:17px;margin-bottom:6px}
.note p{font-size:14px;line-height:1.6;color:var(--mut);margin:0 0 16px;max-width:none}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;margin:30px 0}
.tile{border:1px solid var(--line);border-left:3px solid var(--c);border-radius:4px;padding:18px 20px}
.tile.top{border-left:1px solid var(--line);border-top:3px solid var(--o)}
.tile b{display:block;font-family:Archivo,Helvetica,sans-serif;font-size:16px;font-weight:600;margin-bottom:4px}
.tile span{font-size:14px;line-height:1.6;color:var(--mut)}

/* forms */
.formbox{background:var(--soft);border:1px solid #e8eaec;border-radius:6px;padding:clamp(24px,3vw,36px)}
.formbox h2{font-size:clamp(20px,2.4vw,26px);font-weight:600;color:var(--o);margin:0 0 8px}
.formbox .sub{font-size:15px;line-height:1.6;color:var(--mut);margin:0 0 26px;max-width:60ch}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}
label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600}
input,textarea{font-family:inherit;font-size:16px;padding:14px;border:1px solid #d7dbde;border-radius:4px;background:#fff;color:var(--ink);width:100%}
textarea{resize:vertical}
input:focus,textarea:focus{outline:none;border-color:var(--c)}
::placeholder{color:#9aa3ab}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:22px}
.form-foot .req{font-size:13px;color:#9aa3ab}
.stack{margin-top:16px}
.newsletter{border:1px solid var(--line);border-radius:6px;padding:clamp(22px,3vw,30px);margin-top:18px}
.newsletter h2{font-family:Archivo,Helvetica,sans-serif;font-size:19px;font-weight:600;margin:0 0 8px}
.newsletter p{font-size:14px;line-height:1.6;color:var(--mut);margin:0 0 18px}
.newsletter .row{display:flex;flex-wrap:wrap;gap:10px}
.newsletter input{flex:1 1 160px}
.newsletter .btn{background:var(--ink)}
.newsletter .btn:hover{background:var(--o)}
.hp{position:absolute;left:-9999px}

/* footer */
.site-foot{background:var(--ink);color:#b6bec5;border-top:3px solid var(--o)}
.foot-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:clamp(24px,3vw,48px);padding-top:clamp(36px,5vw,56px);padding-bottom:28px}
.foot-logo{height:30px;width:auto;margin-bottom:16px}
.foot-in p{margin:0;font-size:14px;line-height:1.7}
.foot-in h3{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#6e7780;margin:0 0 14px;font-weight:400}
.foot-links{display:flex;flex-direction:column;gap:10px}
.foot-in a{color:#b6bec5}
.foot-in a:hover{color:#fff}
.foot-bottom{border-top:1px solid #2a2f34;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-size:13px;color:#6e7780;padding-top:20px;padding-bottom:32px}
.foot-bottom a{color:#6e7780}
.foot-bottom a:hover{color:#fff}
.foot-bottom .set{display:flex;flex-wrap:wrap;gap:8px 20px}

/* narrow screens */
@media(max-width:700px){
  .two-col{gap:32px}
  .two-col .side{max-width:none;flex:1 1 100%}
  .page p,.hero p.lead{max-width:none}
}
@media(max-width:420px){
  .btn{padding:15px 22px;font-size:15px}
  .actions .btn{flex:1 1 100%;text-align:center}
}

/* gelijkmatige rijen: 4 blokken worden 2x2 i.p.v. 3+1 */
@media(min-width:701px){
  .tiles:has(> :nth-child(4):last-child),
  .cards:has(> :nth-child(4):last-child),
  .facts-in:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles:has(> :nth-child(5):last-child),
  .cards:has(> :nth-child(5):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles:has(> :nth-child(5):last-child) > :first-child,
  .cards:has(> :nth-child(5):last-child) > :first-child{grid-column:1/-1}
}
@media(min-width:1000px){
  .facts-in:has(> :nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* 3 blokken: 3-op-een-rij vanaf 1000px, daaronder laatste blok over volle breedte */
@media(min-width:701px) and (max-width:999px){
  .tiles:has(> :nth-child(3):last-child),
  .cards:has(> :nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles:has(> :nth-child(3):last-child) > :last-child,
  .cards:has(> :nth-child(3):last-child) > :last-child{grid-column:1/-1}
}
@media(min-width:1000px){
  .tiles:has(> :nth-child(3):last-child),
  .cards:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* diensten: secties onder elkaar */
.svc{scroll-margin-top:clamp(84px,11vw,104px);padding-top:clamp(30px,4vw,44px);margin-top:clamp(30px,4vw,44px);border-top:1px solid var(--line)}
.svc:first-of-type{border-top:none;margin-top:0;padding-top:0}
.svc-h{font-size:clamp(24px,3vw,32px);line-height:1.15;font-weight:700;margin:0 0 18px}
.svc .shot{margin-bottom:clamp(20px,3vw,28px)}
.svc p:last-child{margin-bottom:0}
.formbox{scroll-margin-top:clamp(84px,11vw,104px)}
select{font-family:inherit;font-size:16px;padding:14px;border:1px solid #d7dbde;border-radius:4px;background:#fff;color:var(--ink);width:100%}
select:focus{outline:none;border-color:var(--c)}

/* dropdown hoofdmenu */
.hasdrop{position:relative;display:flex;align-items:center}
.hasdrop > .link{display:flex;align-items:center;gap:6px}
.chev{opacity:.5;transition:transform .15s}
.hasdrop:hover .chev,.hasdrop:focus-within .chev{transform:rotate(180deg);opacity:1}
.drop{position:absolute;top:100%;left:0;min-width:230px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 34px rgba(22,25,28,.12);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s,transform .15s;z-index:50}
.hasdrop:hover .drop,.hasdrop:focus-within .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{padding:11px 12px;border-radius:4px;font-size:14px;font-weight:600;color:var(--ink)}
.drop a:hover{background:#f4f6f7;color:var(--c)}
@media(max-width:940px){.hasdrop{display:none}}
/* menubalk altijd in beeld */
.site-head{position:sticky;top:0}
html{scroll-padding-top:clamp(84px,11vw,104px)}

.shot.square{aspect-ratio:1/1;margin:clamp(22px,3vw,30px) 0}

.shot.banner-wide{aspect-ratio:2039/771;margin:0 0 clamp(22px,3vw,30px)}

.svc-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:clamp(20px,3vw,36px);align-items:start}
.svc-lead > div > p:last-child{margin-bottom:0}
.svc-lead .note{margin:0}
@media(max-width:800px){.svc-lead{grid-template-columns:minmax(0,1fr)}}

.contact-cta{border-top:1px solid var(--line);padding:clamp(20px,2.5vw,32px) 0 clamp(48px,6vw,72px);scroll-margin-top:clamp(84px,11vw,104px)}

/* smalle schermen: volledige afbeelding, geen crop */
@media(max-width:1000px){
  .shot{aspect-ratio:auto !important}
  .shot img{height:auto;display:block;object-fit:contain}
}

.site-head{position:sticky;position:-webkit-sticky;top:0;z-index:60}
.burger{padding:0 12px;justify-content:center;min-width:46px}

/* menubalk altijd vast in beeld op telefoon */
@media(max-width:940px){
  .site-head{position:fixed;top:0;left:0;right:0;width:100%}
  body{padding-top:var(--headh,78px)}
  .mobile-nav{position:fixed;top:var(--headh,78px);left:0;right:0;bottom:0;height:calc(100vh - var(--headh,78px));height:calc(100dvh - var(--headh,78px));max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:55}
}

.sitemap{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:clamp(24px,3vw,40px);margin-top:clamp(24px,3vw,36px)}
.smap-group h2{font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin:0 0 14px;font-weight:600}
.sitemap .foot-links{display:flex;flex-direction:column;gap:10px}
.sitemap .foot-links a{color:var(--ink);font-weight:600;font-size:16px}
.sitemap .foot-links a:hover{color:var(--o)}

/* taalwissel */
.langsel{position:relative;display:flex;align-items:center;flex:0 0 auto}
.flagbtn .chev{display:none}
.flagbtn{display:flex;align-items:center;justify-content:center;gap:6px;height:46px;width:46px;padding:0;background:#fff;border:1px solid #d7dbde;border-radius:4px;cursor:pointer;color:var(--mut)}
.flagbtn:hover{border-color:var(--o);color:var(--o)}
.flag{width:32px;height:21px;display:block;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.langdrop{position:absolute;top:100%;right:0;margin-top:8px;min-width:196px;display:none;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 34px rgba(22,25,28,.14);padding:6px;z-index:70}
.langsel.open .langdrop{display:flex}
.langdrop a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:4px;font-size:14px;font-weight:600;color:var(--ink)}
.langdrop a:hover{background:#f4f6f7;color:var(--c)}
.langdrop a.on{color:var(--o)}

@media(max-width:1000px){
  .hero .shot.hero-shot{order:-1}
}
@media(max-width:940px){
  .nav .langsel{order:-1}
  .nav .callbtn{order:0}
  .nav .burger{order:1}
}
@media(max-width:1000px){
  .hero p.lead{max-width:none}
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero .shot.hero-shot{order:-1}
  .hero h1{font-size:9.8vw;line-height:1.05}
}
@media(max-width:560px){
  .hero h1{font-size:9.8vw;line-height:1.06}
}
body.navopen{overflow:hidden;position:fixed;left:0;right:0;width:100%}

.burger[aria-expanded=true] .bars{position:relative;height:22px;justify-content:center}
.burger[aria-expanded=true] .bars span{position:absolute;left:0;right:0;top:50%;margin-top:-1px}
.burger[aria-expanded=true] .bars span:nth-child(1){transform:rotate(45deg)}
.burger[aria-expanded=true] .bars span:nth-child(2){opacity:0}
.burger[aria-expanded=true] .bars span:nth-child(3){transform:rotate(-45deg)}
.nav .btn.sm,.nav .btn.sm:hover,.nav .btn.sm:visited{color:#fff !important}
.langdrop .flag{width:24px;height:16px}
.nav .btn.sm{display:flex;align-items:center;height:46px;padding:0 18px;font-size:14px;font-weight:600;letter-spacing:.06em;line-height:1;font-family:Manrope,Helvetica,Arial,sans-serif;text-transform:uppercase}
@media(max-width:1040px){.nav .btn.sm{font-size:13px}}
@media(max-width:940px){.nav .btn.sm{display:none}}

.navlang{display:none}
@media(max-width:940px){
  .nav .langsel{display:flex}
  .navlang{display:none;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
  .navlang a{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:4px;font-size:15px;font-weight:600;color:var(--ink)}
  .navlang a.on{border-color:var(--o);color:var(--o)}
  .navlang .flag{width:26px;height:17px}
}

.mob-sub{display:none}
@media(max-width:940px){
  .mob-sub{display:flex;flex-direction:column}
  .mob-sub a{padding-left:18px;font-size:14px;color:var(--mut)}
}
