/* Bretelli - designsysteem. Kleuren uit het logo, zand als lichte tegenhanger. */
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300 500;font-display:swap;src:url(/assets/fonts/cormorant-italic.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/fonts/cormorant.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/fonts/jost.woff2) format("woff2")}
@font-face{font-family:"Marcellus";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/marcellus.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/fonts/manrope.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:300 400;font-display:swap;src:url(/assets/fonts/fraunces-italic.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:300 400;font-display:swap;src:url(/assets/fonts/fraunces.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/fonts/dmsans.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400 500;font-display:swap;src:url(/assets/fonts/bodoni-italic.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/bodoni.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/fonts/montserrat.woff2) format("woff2")}

:root{
  --font-kop:"Cormorant Garamond",Georgia,serif;
  --font-tekst:"Jost",system-ui,sans-serif;
  --zwart:#0A0A0A; --donker:#141312; --zand:#E7DFD2; --zand-vlak:#DCD3C4; --veld:#EFE9DE;
  --champagne:#D8D2C8; --licht:#F3EEE6; --grijs:#BDB6AB; --dof:#8E877C; --goud:#B49D80;
  --inkt:#161412; --inkt-zacht:#3F3A34; --fout:#8A2B1D;
  --lijn-donker:rgba(216,210,200,.18); --lijn-licht:rgba(22,20,18,.22);
  --gutter:clamp(20px,5vw,80px); --ruimte:clamp(72px,9vw,140px);
  --uit:cubic-bezier(.16,1,.3,1); --deur:cubic-bezier(.76,0,.24,1);
  --z-korrel:20; --z-nav:30; --z-drop:31; --z-balk:40; --z-menu:45; --z-cookie:50; --z-deur:60; --z-concept:70;
}
:root[data-fonts="b"]{--font-kop:"Marcellus",Georgia,serif;--font-tekst:"Manrope",system-ui,sans-serif}
:root[data-fonts="c"]{--font-kop:"Fraunces",Georgia,serif;--font-tekst:"DM Sans",system-ui,sans-serif}
:root[data-fonts="d"]{--font-kop:"Bodoni Moda",Georgia,serif;--font-tekst:"Montserrat",system-ui,sans-serif}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--zwart);color:var(--champagne);font-family:var(--font-tekst);font-weight:300;font-size:17px;line-height:1.65;overflow-x:clip;position:relative}
body::after{content:"";position:absolute;inset:0;z-index:var(--z-korrel);pointer-events:none;background:url(/assets/img/korrel.png) 0 0/220px 220px;opacity:.5;mix-blend-mode:soft-light}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,dl,dd,ol,ul,figure{margin:0}
ol,ul{padding:0;list-style:none}
h1,h2,h3{font-family:var(--font-kop);font-weight:300;text-wrap:balance}
p{text-wrap:pretty}
em{font-style:italic;color:var(--goud)}
:focus-visible{outline:2px solid var(--goud);outline-offset:3px}
.zand :focus-visible{outline-color:var(--inkt)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:var(--gutter);top:-100px;z-index:var(--z-concept);background:var(--champagne);color:var(--zwart);padding:12px 18px}
.skip:focus{top:12px}

/* bouwstenen */
.wrap{max-width:1320px;margin-inline:auto}
.sectie{padding:var(--ruimte) var(--gutter)}
.vlak-donker{background:var(--donker)}
.zand{background:var(--zand);color:var(--inkt)}
.zand p,.zand dd{color:var(--inkt-zacht)}
.h-xl{font-size:clamp(46px,6.6vw,104px);line-height:1;letter-spacing:-.01em;color:var(--licht)}
.h-l{font-size:clamp(38px,4.6vw,70px);line-height:1.06}
.h-m{font-size:clamp(34px,3.8vw,56px);line-height:1.08}
.donker-kop{color:var(--licht)}
.gedempt{color:var(--grijs)}
.intro{font-size:18px;max-width:520px}
.label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400}
.stapel{display:flex;flex-direction:column}
.rij-flex{display:flex;flex-wrap:wrap}
.regel{display:block;overflow:hidden;padding-bottom:.14em}
.regel>span{display:block}

.btn{display:inline-flex;align-items:center;gap:16px;height:58px;padding-inline:32px;border:0;font:500 11.5px/1 var(--font-tekst);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background-repeat:no-repeat;background-size:0% 100%;transition:background-size .6s var(--uit),color .4s}
.btn:hover{background-size:100% 100%}
.btn:active{transform:scale(.985)}
.btn--licht{background-color:var(--champagne);color:var(--zwart);background-image:linear-gradient(var(--licht),var(--licht))}
.btn--lijn{background-color:transparent;color:var(--champagne);border:1px solid rgba(216,210,200,.45);font-weight:400;background-image:linear-gradient(var(--champagne),var(--champagne))}
.btn--lijn:hover{color:var(--zwart)}
.btn--inkt{background-color:var(--inkt);color:var(--licht);background-image:linear-gradient(var(--inkt-zacht),var(--inkt-zacht))}
.btn--klein{height:44px;padding-inline:22px;font-size:11px}
.pijl{flex:none;transition:transform .5s var(--uit)}
.btn:hover .pijl,.pijl-link:hover .pijl,a:hover>.pijl{transform:translateX(7px)}
.pijl-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;align-self:flex-start;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400}
.zand .pijl-link{font-weight:500}
.pijl-link.terug:hover .pijl{transform:translateX(-7px)}
.onderlijn{background:linear-gradient(var(--goud),var(--goud)) 0 100%/0% 1px no-repeat;transition:background-size .45s var(--uit)}
.onderlijn:hover,.onderlijn[aria-current]{background-size:100% 1px}
.titel{align-self:flex-start;padding-bottom:4px;background:linear-gradient(currentColor,currentColor) 0 100%/0% 1px no-repeat;transition:background-size .7s var(--uit)}
a:hover .titel{background-size:100% 1px}
.zoom{overflow:hidden}
.zoom img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--uit)}
a:hover .zoom img,.zoom:hover img{transform:scale(1.045)}
.plek{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;border:1px dashed rgba(216,210,200,.4);color:var(--grijs);font-size:15px;transition:background-color .5s}
.plek b{font-weight:400;font-size:11.5px;letter-spacing:.24em}
.zand .plek{border-color:#6B645B;background:var(--zand-vlak);color:var(--inkt-zacht)}
.zand a:hover .plek{background:#D2C7B5}

/* navigatie */
.nav{position:sticky;top:0;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;gap:32px;height:76px;padding-inline:var(--gutter);background:rgba(10,10,10,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(216,210,200,.1)}
.nav--over{margin-bottom:-76px}
.merk-link{display:flex;align-items:center;gap:14px}
.merk-link img{height:34px;width:auto}
.merk-link span{font-family:var(--font-kop);font-size:21px;letter-spacing:.34em;font-weight:400}
.nav-links{display:flex;align-items:center;gap:34px;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:400}
.nav-links a{padding-block:6px;white-space:nowrap}
.drop{position:relative;display:flex;align-items:center;height:76px}
.drop>a{display:inline-flex;align-items:center;gap:7px}
.drop-menu{position:absolute;top:100%;left:-22px;z-index:var(--z-drop);min-width:230px;padding:10px 0;background:var(--donker);border:1px solid rgba(216,210,200,.16);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,transform .4s var(--uit),visibility .3s}
.drop:hover .drop-menu,.drop:focus-within .drop-menu{opacity:1;visibility:visible;transform:none}
.drop-menu a{display:block;padding:12px 22px;transition:background-color .25s,color .25s}
.drop-menu a:hover{background:rgba(216,210,200,.08);color:var(--licht)}
.menu-btn{display:none;align-items:center;height:44px;padding-inline:16px;background:transparent;border:1px solid rgba(216,210,200,.45);color:var(--champagne);font:400 11px/1 var(--font-tekst);letter-spacing:.24em;text-transform:uppercase;cursor:pointer}
.menu{position:fixed;inset:76px 0 0;z-index:var(--z-menu);background:var(--zwart);padding:32px var(--gutter) 120px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .35s,transform .5s var(--uit),visibility .35s}
.menu-open .menu{opacity:1;visibility:visible;transform:none}
.menu-open{overflow:hidden}
.menu a{font-family:var(--font-kop);font-size:34px;line-height:1.3;color:var(--licht);padding-block:6px}
.menu a.sub{font-size:24px;color:var(--grijs);padding-left:20px}
.menu .btn{align-self:flex-start;margin-top:28px;font-family:var(--font-tekst);font-size:11.5px;color:var(--zwart)}

/* hero (home) */
.hero{position:relative;min-height:max(680px,100svh);display:flex;flex-direction:column;overflow:hidden}
.hero-beeld,.hero-beeld img,.hero-scrim{position:absolute;inset:0;width:100%;height:100%}
.hero-beeld img{object-fit:cover;object-position:70% center}
.hero-scrim{background:linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,0) 24%,rgba(10,10,10,0) 66%,rgba(10,10,10,.85) 100%),linear-gradient(90deg,rgba(10,10,10,.93) 0%,rgba(10,10,10,.7) 36%,rgba(10,10,10,.1) 68%,rgba(10,10,10,0) 100%)}
.hero-inhoud{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:28px;padding:150px var(--gutter) clamp(64px,8vw,112px)}
.hero h1{max-width:900px;font-size:clamp(44px,6.1vw,92px);line-height:1.04;letter-spacing:-.01em;color:var(--licht)}
.hero h1 .regel:first-child{padding-bottom:.08em}
.acties{display:flex;flex-wrap:wrap;align-items:center;gap:30px;margin-top:10px}
.acties .pijl-link{align-self:center;color:var(--licht)}

/* deuren: laadmoment en paginawissel */
.deuren-over{display:none;position:fixed;inset:0;z-index:var(--z-deur);pointer-events:none}
.deuren-over i{position:absolute;top:0;bottom:0;width:50.2%;background:var(--zwart)}
.deuren-over i:first-child{left:0;border-right:1px solid rgba(216,210,200,.5)}
.deuren-over i:last-child{right:0;border-left:1px solid rgba(216,210,200,.5)}

/* stelling */
.stelling{max-width:1180px;margin:0 auto;font-family:var(--font-kop);font-size:clamp(32px,4.5vw,68px);line-height:1.16;color:var(--licht);text-wrap:balance}
.stelling-sectie{padding:clamp(96px,12vw,190px) var(--gutter)}

/* drie deurpanelen */
.kop-blok{max-width:760px;display:flex;flex-direction:column;gap:20px;margin-bottom:clamp(40px,5vw,72px)}
.kop-blok p{max-width:560px}
.panelen{display:flex;gap:5px;height:700px;border:5px double var(--inkt);background:var(--inkt)}
.paneel{position:relative;flex:1 1 0;min-width:0;overflow:hidden;color:var(--licht);transition:flex-grow .9s var(--uit)}
.paneel.actief{flex-grow:3.4}
.paneel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.62) saturate(.8);transition:transform 1.6s var(--uit),filter .9s}
.paneel.actief img{filter:none}
.paneel:hover img{transform:scale(1.04)}
.paneel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0) 42%,rgba(10,10,10,.88) 100%)}
.paneel-tekst{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:clamp(20px,2.4vw,36px);display:flex;flex-direction:column;gap:10px}
.paneel h3{font-weight:400;font-size:clamp(26px,2.5vw,40px);line-height:1.1;white-space:nowrap}
.paneel-info{display:flex;flex-direction:column;gap:14px;max-width:420px;opacity:0;transform:translateY(14px);transition:opacity .5s .15s,transform .7s .1s var(--uit)}
.paneel.actief .paneel-info{opacity:1;transform:none}
.paneel-info p{font-size:16.5px;color:#E4DED4}
.paneel-info .pijl-link{min-height:32px}

/* details, getrapt */
.trio{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(20px,2.6vw,40px)}
.detail{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:18px}
.detail--breed{flex:1.45 1 340px}
.detail figcaption{display:flex;flex-direction:column;gap:6px;font-size:16px;color:var(--grijs)}
.detail .naam{font-family:var(--font-kop);font-size:28px;line-height:1.15;color:var(--licht)}
.trap-1{margin-top:clamp(48px,7vw,110px)}
.trap-2{margin-top:clamp(20px,3vw,48px)}
.v34{aspect-ratio:3/4}.v11{aspect-ratio:1/1}.v32{aspect-ratio:3/2}.v45{aspect-ratio:4/5}.v43{aspect-ratio:4/3}.v54{aspect-ratio:5/4}.v169{aspect-ratio:16/9}.v219{aspect-ratio:21/9}

/* twee kolommen */
.split{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(40px,6vw,110px)}
.split--boven{align-items:flex-start}
.split--onder{align-items:flex-end}
.split>*{flex:1 1 380px;min-width:0}
.split>.ruim{flex:1.25 1 440px}
.split>.smal{flex:1 1 320px;max-width:520px}
.plak{position:sticky;top:116px}
.tekst-blok{display:flex;flex-direction:column;gap:24px}
.tekst-blok p{max-width:540px}
.beeld-uitsnede{overflow:hidden}
.beeld-uitsnede img{width:100%;height:100%;object-fit:cover}
.band-beeld{height:clamp(320px,46vw,660px);overflow:hidden}
.band-beeld img{width:100%;height:100%;object-fit:cover}

/* stappen en lijsten */
.stap{display:flex;flex-direction:column;gap:10px;padding-block:clamp(36px,4.4vw,64px);border-top:1px solid var(--lijn-donker)}
.stap .cijfer{font-family:var(--font-kop);font-style:italic;font-size:clamp(54px,5.4vw,84px);line-height:.9;color:var(--dof)}
.stap h3{font-weight:400;font-size:clamp(28px,2.6vw,38px);line-height:1.15;color:var(--licht)}
.stap p{max-width:440px;color:var(--grijs)}
.lijst>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 40px;padding-block:clamp(26px,3vw,40px);border-top:1px solid var(--lijn-licht)}
.lijst>div:last-child{border-bottom:1px solid var(--lijn-licht)}
.lijst dt,.lijst h3{flex:0 0 200px;font-family:var(--font-kop);font-weight:400;font-size:clamp(30px,3vw,44px);line-height:1.1}
.lijst dd,.lijst p{flex:1 1 260px;max-width:560px}
.lijst--breed h3{flex:1 1 380px}
.lijst--breed p{flex:1.2 1 380px}

/* projecten */
.kop-rij{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(36px,4vw,56px)}
.galerij{display:flex;gap:clamp(18px,2vw,32px);overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gutter) 28px;scroll-padding-inline:var(--gutter);scrollbar-width:thin;scrollbar-color:var(--inkt) transparent}
.galerij>a{flex:0 0 min(80vw,760px);scroll-snap-align:start}
.kaart{display:flex;flex-direction:column;gap:16px}
.kaart .naam{font-family:var(--font-kop);font-size:clamp(24px,2.2vw,32px);line-height:1.2}
.kaart .soort{font-size:15px;color:var(--inkt-zacht)}
.filterbalk{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(32px,4vw,56px)}
.filters{display:flex;flex-wrap:wrap;gap:10px}
.pil{height:44px;padding-inline:20px;border:1px solid rgba(22,20,18,.35);background:transparent;color:var(--inkt);font:500 11px/1 var(--font-tekst);letter-spacing:.24em;text-transform:uppercase;cursor:pointer;transition:background-color .35s,color .35s,border-color .35s}
.pil:hover{border-color:var(--inkt)}
.pil[aria-pressed="true"]{background:var(--inkt);border-color:var(--inkt);color:var(--licht)}
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:clamp(28px,3vw,48px) clamp(20px,2.4vw,36px)}
.raster [hidden]{display:none}
.duo{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(20px,2.4vw,36px)}
.duo>*{flex:1 1 300px;min-width:0}
.duo>.groot{flex:1.5 1 440px}
.meta{display:flex;gap:48px;margin-bottom:14px}
.meta div{display:flex;flex-direction:column;gap:4px}
.meta dt{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--grijs)}
.meta dd{font-family:var(--font-kop);font-size:24px;color:var(--licht)}
.citaat{max-width:900px;margin:0 auto;font-family:var(--font-kop);font-size:clamp(26px,3vw,44px);line-height:1.28;color:var(--licht)}
.volgende{display:block;padding:clamp(56px,7vw,104px) var(--gutter)}
.volgende .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.volgende .naam{font-family:var(--font-kop);font-weight:300;font-size:clamp(34px,4.4vw,68px);line-height:1.06}

/* overzicht: beeldbanden */
.band{position:relative;display:block;overflow:hidden;border:5px double var(--champagne);color:var(--licht)}
.band--breed{height:clamp(340px,42vw,600px)}
.band--hoog{height:clamp(420px,50vw,720px)}
.band .zoom{position:absolute;inset:0}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0) 44%,rgba(10,10,10,.9) 100%)}
.band--breed::after{background:linear-gradient(90deg,rgba(10,10,10,.88) 0%,rgba(10,10,10,.5) 42%,rgba(10,10,10,0) 72%)}
.band-tekst{position:absolute;z-index:1;left:clamp(24px,3vw,56px);right:clamp(24px,3vw,56px);bottom:clamp(24px,3vw,56px);display:flex;flex-direction:column;gap:12px;transition:transform .9s var(--uit)}
.band:hover .band-tekst{transform:translateX(14px)}
.band-tekst h2{font-size:clamp(34px,4.4vw,72px);line-height:1}
.band-tekst p{max-width:440px;color:#E4DED4}

/* paginakop subpagina's */
.kop{padding:clamp(56px,7vw,120px) var(--gutter) clamp(48px,6vw,88px)}
.kop--beeld{padding-top:clamp(40px,5vw,72px);padding-bottom:var(--ruimte)}
.kop .wrap{display:flex;flex-direction:column;gap:26px}
.kader{border:5px double var(--champagne);overflow:hidden}
.kader img{width:100%;height:100%;object-fit:cover}

/* prijs en vragen */
.prijs{max-width:1100px;margin-inline:auto;display:flex;flex-direction:column;gap:32px}
.prijs .groot{font-family:var(--font-kop);font-size:clamp(30px,4vw,60px);line-height:1.22;color:var(--champagne)}
.vraag{border-top:1px solid var(--lijn-donker)}
.vraag:last-child{border-bottom:1px solid var(--lijn-donker)}
.vraag summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;padding-block:24px;font-family:var(--font-kop);font-size:clamp(22px,2vw,28px);line-height:1.25;color:var(--licht);cursor:pointer;list-style:none}
.vraag summary::-webkit-details-marker{display:none}
.vraag svg{flex:none;transition:transform .5s var(--uit)}
.vraag[open] svg{transform:rotate(45deg)}
.vraag p{padding-bottom:28px;max-width:600px;color:var(--grijs)}

/* afsluitblok en footer */
.cta{position:relative;overflow:hidden;padding:clamp(96px,12vw,190px) var(--gutter);text-align:center}
.cta-merk{position:absolute;top:50%;left:50%;width:min(64vw,600px);margin:max(-41.5vw,-389px) 0 0 max(-32vw,-300px);opacity:.07;pointer-events:none}
.cta-inhoud{position:relative;max-width:900px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:26px}
.cta .lijn,.streep{width:120px;height:1px;background:var(--goud)}
.cta h2{font-size:clamp(44px,6.4vw,96px);line-height:1.02;color:var(--licht)}
.cta p{max-width:480px;font-size:18px;color:var(--grijs)}
.cta .acties{justify-content:center}
.bel{display:inline-flex;align-items:center;min-height:44px;font-size:18px;color:var(--licht);font-weight:400}
.voet{border-top:1px solid rgba(216,210,200,.16);padding:clamp(48px,6vw,80px) var(--gutter) 28px;font-size:15px;color:var(--grijs)}
.voet-kolommen{display:flex;flex-wrap:wrap;gap:48px clamp(40px,7vw,110px);margin-bottom:48px}
.voet-logo{flex:1 1 220px}
.voet-logo img{width:190px;margin-left:-12px}
.voet-kolom{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.voet-kolom h2{margin-bottom:6px;font:500 11px/1.65 var(--font-tekst);letter-spacing:.24em;text-transform:uppercase;color:var(--licht)}
.voet-onder{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 32px;padding-top:22px;border-top:1px solid rgba(216,210,200,.16);font-size:13.5px}
.voet-onder div{display:flex;flex-wrap:wrap;gap:8px 26px}
.voet-onder button{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
.mob-bar{display:none;position:sticky;bottom:0;z-index:var(--z-balk);gap:1px;background:rgba(216,210,200,.2);border-top:1px solid rgba(216,210,200,.2)}
.mob-bar a{flex:1;display:flex;align-items:center;justify-content:center;height:56px;background:var(--zwart);color:var(--licht);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500}
.mob-bar a:last-child{background:var(--champagne);color:var(--zwart)}

/* formulier */
.form{display:flex;flex-direction:column;gap:26px}
.form-rij{display:flex;flex-wrap:wrap;gap:26px clamp(20px,2.4vw,36px)}
.veld{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:8px}
.veld label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500}
.veld label small{letter-spacing:.04em;text-transform:none;font-weight:300;font-size:14px;color:var(--inkt-zacht)}
.veld input,.veld select,.veld textarea{width:100%;height:56px;padding-inline:18px;border:1px solid rgba(22,20,18,.35);border-radius:0;background:var(--veld);color:var(--inkt);font:300 17px/1.5 var(--font-tekst);transition:border-color .3s,background-color .3s}
.veld textarea{height:auto;padding-block:16px;resize:vertical}
.veld input:hover,.veld select:hover,.veld textarea:hover{border-color:#6B645B}
.veld input:focus,.veld select:focus,.veld textarea:focus{outline:none;border-color:var(--inkt);background:var(--licht);box-shadow:0 0 0 2px var(--goud)}
.veld ::placeholder{color:#5A534A}
.veld.fout input,.veld.fout textarea{border-color:var(--fout)}
.veld .melding{font-size:15px;color:var(--fout)}
.veld--hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-voet{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;margin-top:6px}
.form-voet span{flex:1 1 260px;font-size:14.5px;color:var(--inkt-zacht)}
.form-voet a,.cookie a,.proza a{text-decoration:underline;text-underline-offset:3px}
.zand .form-status{font-size:16px;color:var(--fout);min-height:1.65em}
.zand .form-status.bezig{color:var(--inkt-zacht)}
.direct{display:flex;flex-direction:column;gap:12px}
.direct a{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding-inline:24px}
.direct a b{font-family:var(--font-kop);font-weight:400;font-size:26px;letter-spacing:0;text-transform:none}
.gegevens{display:flex;flex-direction:column;gap:20px;padding-top:28px;border-top:1px solid var(--lijn-licht);font-size:16px}
.gegevens dt{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--inkt)}

/* juridisch */
.inhoud-nav{flex:0 1 260px !important;display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:15.5px}
.proza{flex:1 1 520px !important;max-width:720px;display:flex;flex-direction:column;gap:44px;color:#2B2722}
.proza section{display:flex;flex-direction:column;gap:12px;scroll-margin-top:110px}
.proza h2{font-weight:400;font-size:clamp(28px,2.8vw,38px);line-height:1.15;color:var(--inkt)}
.proza p,.proza li{color:#2B2722}
.proza ul{list-style:disc;padding-left:22px;display:flex;flex-direction:column;gap:6px}
.proza table{border-collapse:collapse;width:100%;font-size:15.5px}
.proza th,.proza td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--lijn-licht);vertical-align:top}
.proza th{font-weight:500}

/* melding (bedankt, 404) */
.melding-pagina{position:relative;overflow:hidden;min-height:max(620px,calc(100svh - 76px));display:flex;align-items:center;padding:clamp(80px,10vw,160px) var(--gutter)}
.melding-pagina .cta-merk{left:auto;right:clamp(-80px,4vw,120px);margin:0;transform:translateY(-50%);width:min(60vw,520px)}
.melding-pagina .wrap{position:relative;width:100%;display:flex;flex-direction:column;gap:26px}

/* cookiebanner */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-cookie);background:var(--donker);border-top:1px solid rgba(216,210,200,.22);padding:22px var(--gutter)}
.cookie[hidden]{display:none}
.cookie .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 48px}
.cookie p{flex:1 1 420px;max-width:640px;font-size:15.5px}
.cookie div div{display:flex;flex-wrap:wrap;gap:12px}
.cookie .btn{height:48px;min-width:150px;justify-content:center;padding-inline:24px;font-size:11px;font-weight:500}

/* conceptschakelaar voor lettertypen (verdwijnt bij livegang) */
.concept-fonts{position:fixed;right:0;top:38%;z-index:var(--z-concept);display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--licht);color:var(--inkt);border:1px solid var(--inkt);font:400 12px/1 system-ui,sans-serif}
.concept-fonts span{padding:4px 6px 8px;font-weight:600;letter-spacing:.06em}
.concept-fonts button i{font-style:normal}
.concept-fonts button{padding:9px 10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.concept-fonts button[aria-pressed="true"]{background:var(--inkt);color:var(--licht)}

/* responsive */
@media (max-width:1180px){
  .nav-links,.nav-cta{display:none}
  .menu-btn{display:inline-flex}
}
@media (max-width:900px){
  .plak{position:static}
}
@media (max-width:720px){
  .concept-fonts{top:76px;right:0;flex-direction:row;align-items:center;padding:4px}
  .concept-fonts span,.concept-fonts button i{display:none}
  .concept-fonts button{padding:10px 14px}
  .mob-bar{display:flex}
  .trap-1,.trap-2,.trap{margin-top:0 !important}
  .panelen{flex-direction:column;height:auto}
  .paneel{flex:none;height:440px}
  .paneel-info{opacity:1;transform:none}
  .paneel img{filter:none}
  .lijst dt,.lijst h3{flex-basis:100%}
  .meta{gap:28px}
  .cookie{bottom:57px}
}

/* beweging */
@media (prefers-reduced-motion:no-preference){
  .js .deuren-over{display:block}
  .deuren-over i:first-child{animation:openL var(--duur,1s) var(--deur) var(--wacht,.1s) both}
  .deuren-over i:last-child{animation:openR var(--duur,1s) var(--deur) var(--wacht,.1s) both}
  .home .deuren-over{--duur:1.9s;--wacht:.35s}
  .deuren-over.open i{animation:none;transition:transform .5s var(--deur)}
  .deuren-over.open i:first-child{transform:translateX(-101%)}
  .deuren-over.open i:last-child{transform:translateX(101%)}
  .deuren-over.sluit i{animation:none;transform:none;transition:transform .5s var(--deur)}
  @keyframes openL{to{transform:translateX(-101%)}}
  @keyframes openR{to{transform:translateX(101%)}}

  .js .regel>span{animation:rijs 1.2s var(--uit) var(--start,.45s) both}
  .js .regel+.regel>span{animation-delay:calc(var(--start,.45s) + .13s)}
  .js .na{animation:vervaag 1.1s var(--uit) calc(var(--start,.45s) + .4s) both}
  .js .na+.na{animation-delay:calc(var(--start,.45s) + .6s)}
  .home{--start:1.25s}
  .js .hero-beeld img{animation:zoomUit 4.2s var(--uit) .35s both}
  .js .laad-beeld{animation:beeldIn 1.6s var(--deur) .5s both}
  .js .laad-beeld img{animation:zoomUit 2.6s var(--uit) .5s both}
  @keyframes rijs{from{transform:translateY(108%)}}
  @keyframes vervaag{from{opacity:0;transform:translateY(18px)}}
  @keyframes zoomUit{from{transform:scale(1.16)}}
  @keyframes beeldIn{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}

  /* Standaard is alles zichtbaar. main.js zet .wacht alleen op wat bij het laden nog buiten beeld is. */
  .rv{transition:opacity 1.1s var(--uit),transform 1.3s var(--uit)}
  .rv.wacht{opacity:0;transform:translateY(40px)}
  .rv2{transition-delay:.12s}.rv3{transition-delay:.24s}
  .onthul{clip-path:inset(0 0 0 0);transition:clip-path 1.5s var(--deur)}
  .onthul.wacht{clip-path:inset(0 0 100% 0)}
  .lijn{transition:transform 1.4s var(--uit) .2s}
  .lijn.wacht{transform:scaleX(0)}

  @supports (animation-timeline:view()){
    .zweef{animation:zweef linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes zweef{from{transform:translateY(-7%) scale(1.12)}to{transform:translateY(7%) scale(1.12)}}
    .cta-merk.beweeg{animation:merk linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes merk{from{transform:translateY(90px)}to{transform:translateY(-90px)}}
    .stelling{view-timeline-name:--st}
    .stelling span{animation:licht linear both;animation-timeline:--st}
    .stelling span:nth-child(1){animation-range:cover 12% cover 26%}
    .stelling span:nth-child(2){animation-range:cover 20% cover 34%}
    .stelling span:nth-child(3){animation-range:cover 28% cover 42%}
    .stelling span:nth-child(4){animation-range:cover 36% cover 50%}
    .stelling span:nth-child(5){animation-range:cover 44% cover 58%}
    @keyframes licht{from{opacity:.16}}
    .hero-beeld{animation:heroPar linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    @keyframes heroPar{to{transform:translateY(14%)}}
  }
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

@media (max-width:360px){
  .btn{white-space:normal;height:auto;min-height:58px;padding-block:14px;line-height:1.5}
  .btn--klein{min-height:44px}
}

@media print{
  .nav,.mob-bar,.cookie,.concept-fonts,.deuren-over,body::after{display:none !important}
  body{background:#fff;color:#000}
}
