/* Koperlijn Installatietechniek (demo). Tokens eerst; alles hieronder verwijst naar tokens. */
@font-face{font-family:"Barlow Condensed";font-weight:600;font-display:swap;src:url(fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-display:swap;src:url(fonts/barlow-condensed-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-weight:400;font-display:swap;src:url(fonts/archivo-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-weight:500;font-display:swap;src:url(fonts/archivo-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-weight:600;font-display:swap;src:url(fonts/archivo-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-display:swap;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */

:root{
  --ground:#0E0F10; --surface:#16181A; --surface-2:#202327; --line:#3A3F44;
  --ink:#F0F1EF; --muted:#A4A8AD; --paper:#E2E4E2; --paper-ink:#121315;
  --signal:#F04E0A; --on-signal:#0E0F10;
  --f-display:"Barlow Condensed","Arial Narrow",sans-serif;
  --f-body:"Archivo",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,monospace; /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
  --pad:clamp(20px,4vw,64px);
  --ease:cubic-bezier(.16,1,.3,1);
  --s-display:clamp(5rem,18.5vw,19rem);
  --s-h2:clamp(3.4rem,8.4vw,9rem);
  --s-state:clamp(1.35rem,2.1vw,2.1rem);
  --s-body:1.0625rem; --s-small:1rem;
  --z-header:50;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ground);color:var(--ink);-webkit-text-size-adjust:100%;color-scheme:dark}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{font-family:var(--f-body);font-size:var(--s-body);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:.25em}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--signal);color:var(--on-signal)}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.tone-signal :focus-visible,.tone-paper :focus-visible{outline-color:var(--on-signal)}
html{scrollbar-color:var(--signal) var(--ground)}
p{max-width:68ch}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-80px;background:var(--signal);color:var(--on-signal);padding:12px 18px;z-index:100;font-weight:600}
.skip:focus{top:12px}

/* chapters: elke sectie is een eigen kleurvlak */
.tone-ground{background:var(--ground);color:var(--ink)}
.tone-surface{background:var(--surface);color:var(--ink)}
.tone-signal{background:var(--signal);color:var(--on-signal)}
.tone-paper{background:var(--paper);color:var(--paper-ink)}
.chapter{position:relative;padding:clamp(88px,12vw,200px) var(--pad)}

/* type */
.display,.h2,.h3,.word{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em}
.display{font-size:var(--s-display);line-height:.84}
.h2{font-size:var(--s-h2);line-height:.88}
.h3{font-size:clamp(2rem,3.4vw,3.6rem);line-height:.95;font-weight:700}
.state{font-size:var(--s-state);line-height:1.3;font-weight:500;text-wrap:pretty}
.small{font-size:var(--s-small)}
.mono{font-family:var(--f-mono);font-size:.8125rem;font-weight:500} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
.lines>span{display:block}
.wrap-hide{overflow:hidden;display:block}

/* knoppen: een vorm, hoekig */
.btn{--bg:var(--signal);--fg:var(--on-signal);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.75em;min-height:56px;padding:0 28px;background:var(--bg);color:var(--fg);border:2px solid var(--bg);font-family:var(--f-display);font-weight:800;font-size:1.6rem;line-height:1;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:color .35s var(--ease),scale .2s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--fg);transform:translateX(-101%);transition:transform .45s var(--ease);z-index:-1}
.btn:hover,.btn:focus-visible{color:var(--bg)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:active{scale:.98}
.btn svg{width:22px;height:22px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translate(4px,-4px)}
.btn--dark{--bg:var(--ground);--fg:var(--ink)}
.btn--ghost{--bg:transparent;--fg:currentColor;border-color:currentColor}
.btn--ghost::before{background:currentColor}
.tone-signal .btn--ghost:hover,.tone-paper .btn--ghost:hover{color:var(--ink)}
.link{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.28em;transition:text-underline-offset .25s var(--ease)}
.link:hover{text-underline-offset:.5em}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:var(--z-header);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px var(--pad);color:var(--ink);transition:color .3s ease,background-color .3s ease}
.hdr.is-dark{color:var(--on-signal)}
.hdr.is-solid{background:rgba(14,15,16,.94)}
.hdr.is-solid.is-dark{background:rgba(226,228,226,.96)}
.logo{font-family:var(--f-display);font-weight:800;font-size:1.9rem;line-height:1;text-transform:uppercase;text-decoration:none;letter-spacing:.02em;display:inline-flex;align-items:baseline;gap:.05em}
.logo i{display:inline-block;width:.42em;height:.42em;background:currentColor;transform:translateY(-.05em);margin-right:.18em}
.nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,40px)}
.nav a:not(.btn){text-decoration:none;font-weight:600;position:relative;padding:8px 0}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:not(.btn):hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.nav .btn{min-height:46px;padding:0 20px;font-size:1.3rem}
.hdr .btn{--bg:var(--signal);--fg:var(--on-signal);border-color:var(--on-signal)}
.hdr:not(.is-dark) .btn{border-color:var(--signal)}
.hdr.is-dark .btn{--bg:var(--on-signal);--fg:var(--ink);border-color:var(--on-signal)}
.menu-btn{display:none;min-width:48px;min-height:48px;background:none;border:2px solid currentColor;cursor:pointer;position:relative}
.menu-btn span,.menu-btn span::before{position:absolute;left:12px;right:12px;height:3px;background:currentColor;transition:transform .35s var(--ease)}
.menu-btn span{top:21px}.menu-btn span::before{content:"";left:0;right:0;top:-8px}
.menu-btn[aria-expanded=true] span{transform:rotate(45deg)}.menu-btn[aria-expanded=true] span::before{transform:translateY(8px) rotate(-90deg)}
@media(max-width:900px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:90px var(--pad) 40px;background:var(--signal);color:var(--on-signal);transform:translateY(-102%);transition:transform .6s var(--ease);visibility:hidden}
  .nav.open{transform:none;visibility:visible}
  .nav a:not(.btn){font-family:var(--f-display);font-weight:800;font-size:clamp(3.6rem,17vw,6rem);line-height:1;text-transform:uppercase}
  .nav .btn{margin-top:18px;--bg:var(--on-signal);--fg:var(--ink);border-color:var(--on-signal);font-size:1.6rem}
  .menu-btn{position:relative;z-index:2}
  .hdr.menu-open{color:var(--on-signal)}
  .hdr.menu-open .logo{position:relative;z-index:2}
}

/* hero: een vlak, twee inkten */
.hero{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(96px,11vh,130px) var(--pad) clamp(28px,4vh,48px)}
.hero .display{margin-top:clamp(4px,2vh,28px)}
.hero .l2{color:#fff}
.hero__bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;margin-top:40px}
.hero__txt{max-width:56ch}
.live{max-width:none;display:flex;align-items:center;gap:12px;margin-bottom:14px;font-family:var(--f-mono);font-size:.8125rem;font-weight:500} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
.live b{width:12px;height:12px;background:var(--on-signal);flex:none}
.live.on b{animation:blink 1.6s ease-in-out infinite}
@keyframes blink{50%{opacity:.25}}
.hero__act{display:flex;flex-direction:column;align-items:flex-end;gap:16px}
@media(max-width:700px){
  .hero{--s-display:19.6vw}
  .hero__bottom{grid-template-columns:1fr;gap:26px}
  .hero__act{align-items:stretch}
  .hero__act .btn{width:100%}
}

/* maatlijn */
.dim{display:flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.8125rem;font-weight:500;color:var(--muted)} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
.dim::before,.dim::after{content:"";flex:1;height:2px;background:currentColor;opacity:.6;min-width:14px}
.dim::before{flex:0 0 14px}
.tone-signal .dim,.tone-paper .dim{color:inherit}

/* ===== scrollmoment: de leiding ===== */
.pipe{padding:0}
.pipe__stage{min-height:100svh;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.5fr);gap:clamp(20px,3vw,56px);align-items:center;padding:clamp(84px,10vh,120px) var(--pad) clamp(28px,5vh,56px)}
.pipe__txt{position:relative;z-index:2}
.pipe__title{font-size:clamp(3.6rem,7.4vw,8.2rem);line-height:.88}
.pipe__meter{display:flex;align-items:baseline;gap:12px;margin:clamp(22px,4vh,44px) 0 0;font-family:var(--f-display);font-weight:800;line-height:.8;color:var(--signal)}
.pipe__meter output{font-size:clamp(4.5rem,9vw,9.5rem);font-variant-numeric:tabular-nums;min-width:2ch;display:inline-block}
.pipe__meter span{font-family:var(--f-mono);font-size:.8125rem;font-weight:500;color:var(--muted);max-width:12ch;line-height:1.35} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
.pipe__list{list-style:none;display:grid;margin-top:clamp(18px,3vh,32px)}
.pipe__list li{grid-area:1/1;max-width:36ch}
.pipe__list h3{margin-bottom:8px}
.pipe__list p{color:var(--ink)}
.pipe__svg{width:100%;height:auto;max-height:78svh;overflow:visible}
.pipe__svg *{vector-effect:non-scaling-stroke}
.sv-line{stroke:var(--line);stroke-width:2;fill:none}
.sv-obj{stroke:var(--ink);stroke-width:2;fill:var(--ground);opacity:.55;transition:opacity .5s var(--ease),stroke .5s var(--ease)}
.sv-lab{font-family:var(--f-mono);font-size:13px;font-weight:500;fill:var(--muted);transition:fill .4s ease} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
.sv-st.on .sv-obj{opacity:1;stroke:var(--signal)}
.sv-st.on .sv-lab{fill:var(--ink)}
.sv-pipe{stroke:var(--signal);stroke-width:7;fill:none;stroke-linejoin:round;stroke-linecap:butt}
.sv-ghost{stroke:var(--surface-2);stroke-width:7;fill:none;stroke-linejoin:round}
.sv-node{fill:var(--ground);stroke:var(--signal);stroke-width:3}
.sv-head{fill:var(--signal)}
.sv-dim{stroke:var(--muted);stroke-width:1.5;fill:none}
.sv-dimt{font-family:var(--f-mono);font-size:13px;fill:var(--muted)} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
@media(max-width:860px){
  .pipe__stage{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:10px;padding-top:84px}
  .pipe__svg{order:-1;max-height:38svh}
  .pipe__title{font-size:clamp(3rem,14vw,5rem)}
  .pipe__meter{margin:10px 0 8px}.pipe__meter output{font-size:4.2rem}
  .pipe__list li{max-width:none}
  .pipe__list h3{font-size:2rem}
}
/* zonder pin (reduced motion of geen script): alle stations onder elkaar */
.pipe:not(.is-pinned) .pipe__list{gap:28px}
.pipe:not(.is-pinned) .pipe__list li{grid-area:auto}
.pipe.is-pinned .pipe__list li{opacity:0;visibility:hidden;transform:translateY(22px);transition:opacity .45s var(--ease),transform .6s var(--ease),visibility 0s .45s}
.pipe.is-pinned .pipe__list li.on{opacity:1;visibility:visible;transform:none;transition-delay:0s}

/* tabel als tekst (features) */
.tbl{margin-top:clamp(48px,7vw,96px)}
.tbl__head,.tbl__row{display:grid;grid-template-columns:minmax(150px,1.1fr) repeat(3,minmax(0,1.3fr))}
.tbl__sp{display:none}
.tbl__head>*{padding:18px 22px;font-weight:700;display:flex;align-items:flex-end}
.tbl__head>.hot{background:var(--signal);color:var(--on-signal);margin-top:-24px;padding-top:42px}
.tbl__row>*{padding:20px 22px;min-height:78px;display:flex;align-items:center;font-size:1.0625rem}
.tbl__row:nth-of-type(odd)>*:not(.hot){background:#D4D7D5}
.tbl__row>.tbl__n{font-family:var(--f-display);font-weight:800;font-size:clamp(1.7rem,2.2vw,2.2rem);text-transform:uppercase;line-height:1}
.tbl__row>.hot{background:var(--signal);color:var(--on-signal);font-weight:600}
.tbl__row:nth-of-type(odd)>.hot{background:#E2480A}
.tbl__row:last-child>.hot,.tbl__head~.tbl__row:last-of-type>.hot{padding-bottom:20px}
@media(max-width:900px){
  .tbl__head{display:none}
  .tbl__row{grid-template-columns:minmax(128px,.8fr) 1.7fr}
  .tbl__sp{display:block;height:28px;background:var(--paper)}
  .tbl__row>*{min-height:0;padding:12px 16px}
  .tbl__row>.tbl__n{grid-row:1/4;grid-column:1;font-size:clamp(1.3rem,5.4vw,2.3rem);align-items:flex-start;padding-right:6px}
  .tbl__row>span{grid-column:2;display:block;font-size:1.15rem}
  .tbl__row>span::before{content:attr(data-col) ": ";font-weight:700}
}

/* beeldband */
.band{position:relative;overflow:hidden;height:clamp(320px,72vh,820px)}
.band img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;will-change:transform}
.duo{display:grid;grid-template-columns:5fr 7fr;gap:clamp(12px,2vw,28px);align-items:end}
.duo figure{overflow:hidden}
.duo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.duo figure:hover img{transform:scale(1.04)}
.duo .a{aspect-ratio:3/4}.duo .b{aspect-ratio:16/10}
.duo figcaption{margin-top:12px}
@media(max-width:700px){.duo{grid-template-columns:1fr}}

/* twee reuzenwoorden */
.cmp{overflow:hidden}
.cmp__top{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}
.cmp__top .h2{grid-column:1/8;font-size:clamp(2.6rem,5vw,5rem)}
.cmp__top p{grid-column:8/13}
.cmp__words{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:clamp(40px,10vh,120px);height:calc(min(18.5vw,22rem) * .64 + 10px);overflow:hidden}
.cmp__w .cap{display:block;margin-bottom:6px;color:var(--muted)}
.word{display:block;font-size:min(18.5vw,22rem);line-height:.8;color:var(--ink);white-space:nowrap}
.cmp__w:last-child .word{color:var(--signal)}
@media(max-width:700px){
  .cmp__top{display:block}.cmp__top p{margin-top:18px}
  .cmp__words{grid-template-columns:1fr;height:auto;gap:18px}
  .cmp__w{height:28svh;overflow:hidden;padding:12px 14px}
  .cmp__w:first-child{background:var(--surface-2)}.cmp__w:last-child{background:var(--paper);color:var(--paper-ink)}
  .cmp__w:last-child .cap{color:#4a4d51}
  .cmp__w:last-child .word{color:var(--signal)}
  .word{font-size:32vw}
}

/* de bon */
.slipwrap{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.slipwrap__l{grid-column:1/6}
.slipwrap__l .h2{font-size:clamp(3rem,6.2vw,6.6rem);margin-bottom:24px}
.slipwrap__l .state{max-width:26ch}
.slipwrap__l img{margin-top:32px;width:100%;aspect-ratio:4/5;object-fit:cover}
.slip{align-self:start;position:sticky;top:96px;grid-column:7/13;font-size:1.125rem;background:var(--paper);color:var(--paper-ink);padding:36px 32px 64px;clip-path:polygon(0 0,100% 0,100% 100%,95.45% calc(100% - 14px),90.91% 100%,86.36% calc(100% - 14px),81.82% 100%,77.27% calc(100% - 14px),72.73% 100%,68.18% calc(100% - 14px),63.64% 100%,59.09% calc(100% - 14px),54.55% 100%,50% calc(100% - 14px),45.45% 100%,40.91% calc(100% - 14px),36.36% 100%,31.82% calc(100% - 14px),27.27% 100%,22.73% calc(100% - 14px),18.18% 100%,13.64% calc(100% - 14px),9.09% 100%,4.55% calc(100% - 14px),0 100%);font-variant-numeric:tabular-nums}
.slip h3{font-family:var(--f-body);font-weight:700;font-size:1.0625rem;margin:28px 0 8px;text-transform:none;letter-spacing:0}
.slip h3:first-child{margin-top:0}
.slip .r{display:flex;align-items:baseline;gap:8px;padding:5px 0}
.slip .r i{flex:1;border-bottom:4px dotted #777;transform:translateY(-4px);min-width:12px}
.slip .r em{font-style:normal;font-weight:600;white-space:nowrap}
.slip .end{display:flex;justify-content:space-between;gap:12px;background:var(--paper-ink);color:var(--paper);margin:30px -32px 0;padding:0 32px;min-height:48px;align-items:center;font-weight:600}
@media(max-width:900px){.slipwrap{display:block}.slip{margin-top:36px;padding:28px 18px 56px}.slip .end{margin:26px -18px 0;padding:0 18px}.slipwrap__l img{display:none}}

/* prijs als zin */
.price{min-height:80svh;display:flex;flex-direction:column;justify-content:center}
.price .h2{font-size:clamp(3.4rem,8.8vw,10.5rem);line-height:.96}
.price .tag{display:inline-block;background:var(--signal);color:var(--on-signal);padding:0 .12em;line-height:.9}
.price__row{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end;margin-top:64px}
.price__row p{grid-column:1/8}.price__act{grid-column:9/13;display:flex;flex-direction:column;align-items:flex-end;gap:16px}
@media(max-width:900px){.price__row{display:block}.price__row p{margin-bottom:28px}.price__act{align-items:stretch}.price__act .btn{width:100%}.price .tag{display:inline-block}}

/* cta-band: een woord is de knop */
.cta{display:block;position:relative;min-height:60svh;overflow:hidden;background:var(--signal);color:var(--on-signal);text-decoration:none;padding:28px var(--pad) 0;transition:background-color .2s,color .2s}
.cta:hover,.cta:focus-visible{background:var(--ground);color:var(--signal)}
.cta__top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.cta__top p{max-width:26ch;font-size:1.25rem;font-weight:600;line-height:1.3}
.cta__top svg{width:48px;height:48px;flex:none;transition:transform .5s var(--ease)}
.cta:hover .cta__top svg{transform:translate(8px,-8px)}
.cta .word{position:absolute;left:var(--pad);bottom:24px;color:inherit;font-size:clamp(8rem,29vw,34rem);line-height:.74}
@media(max-width:700px){.cta{min-height:46svh}.cta .word{font-size:26.5vw;bottom:12px}.cta__top p{font-size:1.0625rem}.cta__top svg{width:32px;height:32px}}

/* footer: uitnodiging en afgesneden naam */
.foot{position:relative;overflow:hidden;min-height:100svh;display:flex;flex-direction:column;padding:clamp(70px,10vw,140px) var(--pad) 0;background:var(--paper);color:var(--paper-ink)}
.foot__top{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.foot__inv{grid-column:1/8}
.foot__inv .h2{font-size:clamp(3rem,6vw,6.4rem);margin-bottom:32px}
.foot__links{grid-column:10/13;display:flex;flex-direction:column;gap:6px;font-weight:500}
.foot__links a{text-decoration:none;width:fit-content;padding:4px 0}
.foot__links a:hover{text-decoration:underline}
.foot__credits span{max-width:62ch}
.foot__credits{margin-top:auto;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:56px;font-size:var(--s-small);position:relative;z-index:1}
.foot__credits a{text-underline-offset:.25em}
.foot .word{font-size:clamp(6rem,23vw,34rem);line-height:.78;white-space:nowrap;transform:translateY(24%);margin-left:-.02em;color:var(--paper-ink)}
@media(max-width:900px){.foot__top{display:block}.foot__links{margin-top:32px}.foot .word{font-size:22.5vw}}

/* subpagina-koppen */
.page-hero{min-height:62svh;display:flex;flex-direction:column;justify-content:flex-end;padding:140px var(--pad) 48px}
.page-hero .display{font-size:clamp(6rem,21vw,22rem)}
.page-hero .state{max-width:34ch;margin-top:28px}
.dienst{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(24px,4vw,64px)}
.dienst__nav{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:2px}
.dienst__nav a{font-family:var(--f-display);font-weight:800;font-size:clamp(1.8rem,2.6vw,2.8rem);line-height:1.1;text-transform:uppercase;text-decoration:none;color:var(--muted);transition:color .3s,transform .4s var(--ease);width:fit-content}
.dienst__nav a:hover,.dienst__nav a.on{color:var(--signal);transform:translateX(10px)}
.blk{padding-bottom:clamp(72px,10vw,150px)}
.blk img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:28px}
.blk .h2{font-size:clamp(3.4rem,8vw,8.4rem);margin-bottom:22px}
.blk__cols{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:clamp(20px,3vw,48px);margin-top:26px}
.blk ul{list-style:none;display:grid;gap:0}
.blk li{padding:11px 0 11px 28px;position:relative;font-weight:500}
.blk li::before{content:"";position:absolute;left:0;top:1.05em;width:14px;height:6px;background:var(--signal)}
.blk .price-line{max-width:60ch;background:var(--surface-2);padding:20px 22px;font-weight:600}
.blk .price-line span{display:block;font-family:var(--f-display);font-weight:800;font-size:2.4rem;line-height:1;color:var(--ink);text-transform:uppercase;margin-bottom:4px;border-bottom:6px solid var(--signal);width:fit-content;padding-bottom:2px}
.blk .link{display:inline-block;margin-top:22px}
@media(max-width:900px){.dienst{display:block}.dienst__nav{display:none}.blk__cols{grid-template-columns:1fr}}

/* stapformulier */
.flow-page{padding:clamp(110px,14vh,150px) var(--pad) 90px;min-height:100svh}
.flow{max-width:980px;margin:0 auto}
.flow h1{font-size:clamp(4rem,11vw,10rem);line-height:.86;margin-bottom:16px}
.flow__intro{max-width:44ch;margin-bottom:36px}
.pbar{display:flex;align-items:center;gap:16px;margin-bottom:36px} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
.pbar__track{flex:1;height:10px;background:var(--surface-2);position:relative;overflow:hidden}
.pbar__fill{position:absolute;inset:0;background:var(--signal);transform:scaleX(var(--p,.25));transform-origin:left;transition:transform .7s var(--ease)}
.flow__pic{margin:0 0 40px;display:grid;grid-template-columns:1.6fr 1fr;gap:6px;aspect-ratio:21/8;overflow:hidden}.flow__pic img{width:100%;height:100%;object-fit:cover;min-width:0}
@media(max-width:600px){.flow__pic{aspect-ratio:16/9}}
.step[hidden]{display:none}
.step{animation:stepin .6s var(--ease) both}
@keyframes stepin{from{opacity:0;transform:translateY(24px)}}
.step h2{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.6rem,5vw,4.6rem);line-height:.92;margin-bottom:26px}
fieldset{border:0;min-width:0}
.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.choice span{display:flex;flex-direction:column;gap:2px;min-height:96px;padding:18px 20px;background:var(--surface);transition:background-color .25s,color .25s,transform .25s var(--ease)}
.choice b{font-family:var(--f-display);font-weight:800;font-size:1.9rem;text-transform:uppercase;line-height:1}
.choice small{font-size:.9375rem;color:var(--muted);transition:color .25s}
.choice:hover span{background:var(--surface-2)}
.choice input:checked+span{background:var(--signal);color:var(--on-signal)}
.choice input:checked+span small{color:var(--on-signal)}
.choice input:focus-visible+span{outline:3px solid var(--ink);outline-offset:3px}
.choice input:active+span{transform:scale(.985)}
.fields{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field--w{grid-column:1/-1}
.field label,.field .lbl{font-weight:600}
.field input,.field select,.field textarea{min-height:56px;padding:12px 16px;background:var(--surface);border:2px solid var(--surface-2);border-radius:0;transition:border-color .2s,background-color .2s;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--muted)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--signal);background:var(--surface-2)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#FF8A5C}
.err{color:#FF9E78;font-weight:600;min-height:0;font-size:.9375rem}
.err:empty{display:none}
.field .hint{color:var(--muted);font-size:.9375rem}
.range{display:flex;align-items:center;gap:18px}
.range input{padding:0;min-height:44px;accent-color:var(--signal);background:none;border:0}
.range output{font-family:var(--f-display);font-weight:800;font-size:2.4rem;min-width:4.5ch;text-align:right}
.alert{background:var(--signal);color:var(--on-signal);padding:18px 22px;font-weight:600;margin-top:16px}
.alert[hidden]{display:none}
.flow__nav{display:flex;justify-content:space-between;gap:16px;margin-top:38px;flex-wrap:wrap}
.flow__nav .btn{white-space:nowrap}
@media(max-width:480px){.flow__nav{flex-direction:column-reverse}.flow__nav .btn{flex:none;justify-content:center}.flow__nav>span:empty{display:none}}
.sum{display:grid;grid-template-columns:minmax(120px,.5fr) 1fr;gap:0;background:var(--surface)}
.sum dt,.sum dd{padding:14px 20px}
.sum dt{color:var(--muted);font-weight:500}
.sum dd{font-weight:600}
.sum dt:nth-of-type(even),.sum dd:nth-of-type(even){background:var(--surface-2)}
.notice{max-width:68ch;margin-top:22px;padding:18px 22px;background:var(--surface-2);font-weight:500}
.done h2{font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:.9;font-size:clamp(4rem,10vw,9rem);color:var(--signal)}
.done .ref{font-family:var(--f-mono);font-size:1.4rem;font-weight:500;margin:10px 0 24px;display:block} /* taste-skill-ignore: monospace voor maatlijnen en meterstanden, door de klantbrief gevraagd */
@media(max-width:700px){.choices,.fields{grid-template-columns:1fr}.field--w{grid-column:auto}.flow__nav .btn{flex:1}.sum{grid-template-columns:1fr}.sum dt{padding-bottom:0}.sum dt:nth-of-type(even),.sum dd:nth-of-type(even){background:none}.sum dd{padding-top:2px}}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .live.on b{animation:none}
}
