/* DuraPlus 2.0 in de Sitebuilder (plan C B2): wat nodig is om de blokken van type duraplus net zo te laten tekenen als de
   mockups van Design. Staat in het blad vóór duraplus.css (die volgt 1-op-1, ongewijzigd). Alleen op sites met
   duraplus-blokken. Elk duraplus-blok staat in een omhulsel met data-dp (display: contents).

   1. De mockups hebben alleen de standaardopmaak van de browser plus duraplus.css. Een Sitebuilder-pagina heeft ook de
      basis van Tailwind (marges, lijsten, svg als blok, knoppen) en de hulpklassen, allebei in een cascade-laag. Deze laag
      komt daarna en zet binnen de blokken terug naar de browser wat de basislaag van Tailwind zet; duraplus.css (zonder laag)
      gaat daar weer boven.
      C3-golf1d (snelheid): niet meer met "all: revert" op elk element en zijn ::before/::after. Dat zette honderden
      eigenschappen per element terug en kostte op het mobiele profiel 0,3–0,4 s stijlberekening vóór de eerste paint (de LCP).
      Nu precies de eigenschappen van de basislaag van Tailwind v4 (preflight), per element zoals daar; dezelfde uitkomst, want
      geen klasse binnen de blokken is een hulpklasse van Tailwind (duraplus.css en de renderer gebruiken eigen namen). */
[data-dp] { display: contents; }
@layer dp-basis {
  :where([data-dp]) :where(:not(svg *)), :where([data-dp]) :where(:not(svg *))::before, :where([data-dp]) :where(:not(svg *))::after { box-sizing: revert; margin: revert; padding: revert; border: revert; }
  :where([data-dp]) :where(hr) { height: revert; color: revert; }
  :where([data-dp]) :where(abbr[title]) { text-decoration: revert; }
  :where([data-dp]) :where(h1, h2, h3, h4, h5, h6) { font-size: revert; font-weight: revert; }
  :where([data-dp]) :where(a) { color: revert; text-decoration: revert; }
  :where([data-dp]) :where(b, strong) { font-weight: revert; }
  :where([data-dp]) :where(code, kbd, pre, samp) { font-family: revert; font-feature-settings: revert; font-variation-settings: revert; font-size: revert; }
  :where([data-dp]) :where(small, sub, sup) { font-size: revert; vertical-align: revert; line-height: revert; position: revert; top: revert; bottom: revert; }
  :where([data-dp]) :where(table) { text-indent: revert; border-color: revert; border-collapse: revert; }
  :where([data-dp]) :where(summary) { display: revert; }
  :where([data-dp]) :where(menu, ol, ul) { list-style: revert; }
  /* ook de maat uit de attributen (width/height: presentatie-hints, die "all: revert" ook terugzette): de maat komt uit duraplus.css */
  :where([data-dp]) :where(audio, canvas, embed, iframe, img, object, svg, video) { vertical-align: revert; display: revert; width: revert; height: revert; aspect-ratio: revert; }
  :where([data-dp]) :where(img, video) { max-width: revert; }
  :where([data-dp]) :where(button, input, optgroup, select, textarea) { font: revert; font-feature-settings: revert; font-variation-settings: revert; letter-spacing: revert; color: revert; opacity: revert; background-color: revert; border-radius: revert; appearance: revert; }
  :where([data-dp]) :where(button, input, optgroup, select, textarea)::placeholder { opacity: revert; color: revert; }
  :where([data-dp]) :where(textarea) { resize: revert; }
  :where([data-dp]) :where(progress) { vertical-align: revert; }
}

/* Niet binnen een svg (E2, keuring 03-11): de presentatie-attributen van svg (fill="none", stroke="currentColor",
   stroke-width) tellen ook als attribuut-opmaak; teruggezet werd elk pad zwart gevuld zonder lijn (onzichtbare iconen in
   het mobiele menu, zwarte driehoekjes in WebKit). De basis van Tailwind raakt de onderdelen van een svg niet. */

/* Het hidden-attribuut verbergt
   altijd (panelen van de megamenu, het mobiele menu), ook waar geen Tailwind is (het canvas van de editor). */
:where([data-dp]) [hidden] { display: none !important; }

/* 2. global.css geeft h1–h4 de kopletter van het thema en een eigen focusrand; binnen de blokken telt duraplus.css. */
:where([data-dp]) h1, :where([data-dp]) h2, :where([data-dp]) h3, :where([data-dp]) h4 { font-family: revert; font-weight: revert; letter-spacing: revert; text-transform: revert; }
:where([data-dp]) :is(a, button, input, select, textarea):focus-visible, :where([data-dp]) [tabindex]:focus-visible { outline: 2px solid var(--blauw); outline-offset: 3px; border-radius: 4px; }

/* 3. De brugkaart is een eigen blok vóór de voet en hangt over de rand pagina | voet met de algemene optie zweven (7). Zijn
      eigen negatieve marge uit duraplus.css (--brug-over) telt hier niet: zonder zweven staat hij gewoon boven de voet. */
.dp-brugvak .brug { margin-top: 0; }
/* het omhulsel van de brug heeft al de 1px van .voet; de voet zelf dus niet. Ook geen lijn (verbeterronde punt 10): duraplus.css geeft
   een voet zonder brug erin (.voet:not(:has(.brug))) een lijn als grens; in de mockup staat de brug ín de voet, hier is hij een eigen
   blok ervoor, dus liep die lijn langs de onderrand van de groene kaart (links ervan zichtbaar, "de kaart staat op een streep") */
html[data-zw~="brugkaart"][data-zw] footer.voet { padding-top: 0; border-top: 0; }
/* QA 04-11 (42): tikdoelen op mobiel minstens 44 x 44 px (WCAG 2.5.5; de keuring toetst het, livegangkeuring.mjs › tikFouten): de
   links van de inhoudsopgave ("Op deze pagina", 36 px hoog, onder elkaar) en de korte links in de voet (Assen, Privacy: smaller dan
   44 px naast elkaar). Alleen de maat van het klikvlak; de tekst en de lijst staan op dezelfde plek (de inhoudsopgave: 4 px meer padding
   boven en onder en evenveel negatieve marge, dus 44 px klikvlak bij dezelfde hoogte als de mockup). */
@media (max-width: 760px) {
  .toc ol a { padding-block: 12px; margin-block: -4px; }
  .toc summary { padding-block: 16px; margin-block: -16px; }
  .voet .prov a, .voet .onder a { min-width: 44px; }
}
/* QA 04-11 (13): een kop met een lang samengesteld woord (render.ts › metKopPas: <span class="kop-pas" style="--kop-em:X">, X = de
   breedte van het breedste woord in em, Rubik 900) past op een smal scherm: de letter hooguit zo groot dat dat woord in de container past;
   nooit groter dan de kop zelf (1em = de letter van de kop), dus een woord dat past blijft gelijk. Als vangnet breekt een woord dat
   toch niet past (overflow-wrap; geen hyphens: auto, dat breekt ook woorden die passen anders af dan de mockup: 33 px per sectie op 390). */
@media (max-width: 760px) {
  [data-dp] .kop-pas { font-size: min(1em, calc((100vw - 2 * var(--rand, 16px)) / var(--kop-em))); }
  :where([data-dp]) :is(h1, h2, h3) { overflow-wrap: break-word; }
}
/* punt 6, aanvulling (Richard 04-11): per kaart de foto van de reviewer (rond, 40 px) of de initialen in de lichte merktint, de naam en
   de relatieve datum eronder; het woordmerk van Google alleen bij de score */
.rk .rev .wie { display: flex; align-items: center; gap: 12px; }
.rk .rev-foto { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; }
.rk .rev-init { display: grid; place-items: center; background: var(--lichtgroen); color: var(--groen-tekst); font: 700 17px/1 var(--f-tekst); }
.rk .rev-init[data-k="1"] { background: #E6EFFA; color: var(--blauw); }
.rk .rev-init[data-k="2"] { background: var(--groen-tekst); color: #fff; }
.rk .rev-init[data-k="3"] { background: var(--blauw); color: #fff; }
.rk .rev-naam { display: grid; gap: 2px; min-width: 0; }
.rk .rev-datum { font: 500 13px/1.3 var(--f-tekst); color: var(--stil); }
/* verbeterronde punt 6: de focus van de reviewbaan staat op .revs (het vak dat scrolt, axe); de rand op de baan zoals de mockup */
.rk .revs:focus-visible { outline: none; }
.rk .rk-baan:has(> .revs:focus-visible) { box-shadow: 0 0 0 3px var(--groen-diep); }
/* verbeterronde punt 11: "DuraGo Sitebuilder" is een link (zoals onderdelen/FooterGebouwdMet.vue: halfvet, in de koptekstkleur) */
.voet .onder [data-sb-gebouwd] a { font-weight: 600; color: var(--inkt); }

/* 4. Het mobiele menu (position: fixed) mag nooit opgesloten worden in een voorouder met transform, translate of filter
      (incident 01-11). De kop staat niet in .dg-sticky; voor de zekerheid ook hier. */
html.dcm-slot .dg-sticky { translate: none !important; transform: none !important; will-change: auto !important; }

/* 5. Keuring Design 03-11 (C1). E1: een artikel zonder inhoudsopgave heeft één kolom (de tekstkolom houdt max. 760 px en
      staat links op de container). Vangnet tabellen: de houder van elke tabel scrolt zijwaarts, de pagina wordt nooit
      breder dan het scherm. E6: op mobiel verbergt duraplus.css de pluspunten van de topbalk; zonder reviewsregel geen
      lege band. E7: de vaste knop onderaan (lib/vasteknop.ts) in de actiekleur blauw, zoals de knop in het mobiele menu. */
.artikel.zonder-toc { grid-template-columns: minmax(0, 1fr); }
.dp-tabelhouder { overflow-x: auto; max-width: 100%; min-width: 0; }
/* QA 04-11 (24): een brede tabel in de tekstkolom (/bouwfysica 918 px in 760) werd afgeknipt. Een tabel past in zijn kolom: is hij breder
   dan zijn houder, dan zet het gedragsscript (gedrag.ts › dpTabellen) .te-breed en breken lange woorden in een cel af (afbreekstreep, nl;
   anders ergens in het woord). Alleen dan: een tabel die past (de mockups) blijft precies zo. Zonder script scrolt hij in de houder. */
.dp-tabelhouder.te-breed .tabel :is(td, th) { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; }
/* op mobiel de kaartvorm van Design (blokken, geen tabelopmaak): een woord dat niet op de regel past, breekt (alleen dan) */
@media (max-width: 760px) { .dp-tabelhouder .tabel:not(.smal):not(.compact) td { overflow-wrap: anywhere; } .dp-tabelhouder .tabel:not(.smal):not(.compact) td.nr::before { white-space: normal; overflow-wrap: anywhere; } } /* het getal blijft heel, zijn label breekt: lange labels liepen over elkaar (/warmteverliesberekening) */
/* een getal breekt nooit (Drenthe op 390: "30.7" en "49" op twee regels): een getalcel (.nr) en een bedrag blijven heel; past de tabel
   dan niet, dan scrolt hij in zijn houder (keuring: mobiel.mjs, getal over twee regels) */
.dp-tabelhouder .tabel td.nr, .dp-tabelhouder .tabel:not(.smal):not(.compact) td.nr { overflow-wrap: normal; hyphens: manual; -webkit-hyphens: manual; white-space: nowrap; } /* de kop (th) breekt zoals elke tekst */
@media (max-width: 760px) { .topbalk:not(:has(.reviews, .reviewregel)) { display: none; } } /* de reviewregel heet .reviewregel sinds C2 (C3-golf1b: de score op 390) */
.dg-sticky-cta .dg-sticky-cta-knop { background: var(--blauw); }
.dg-sticky-cta:focus-visible .dg-sticky-cta-knop { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--blauw); }

/* 6. C2 (bouwkaarten): de tekst van een dienstkaart en de titel van een kennisbankkaart hooguit 3 regels (line-clamp); de
      volle tekst blijft in de link (de naam van de link). Een beetje ruimte onder de regels, zodat overflow: hidden de
      staarten van g, j en p niet afknipt. De link om een pijl van de labelschaal (SEO S3, labels.ts) vult de rij. */
.dienst .txt p, .art .txt h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.schaal .pijlen .rij > a { display: block; border-radius: 6px; }

/* 7. Zweven (algemene blokoptie, schema.ts › ZWEVEN; Richard 03-11). duraplus.css van Design zet de overlap (.zweef-kwart,
      .zweef-half: margin-top = -¼ of -½ van --zweef-h); dpZweef (gedrag.ts) meet --zweef-h, zoals ontwerp/zweven.js. Hier wat de
      Sitebuilder er omheen doet:
      - het blok zelf heeft geen eigen afstand boven en onder en geen eigen achtergrond (verbeterronde punt 2, Richard 04-11: "nu
        … blijf je die hele witte balk over de hele breedte zien"): de kaart ligt over de naad, het deel eronder (--zweef-onder)
        op de volgende sectie (duraplus.css: margin-bottom); alleen de brugkaart houdt zijn vlak (de voet erna, zie onder);
      - de sectie ervoor krijgt onderaan precies het deel dat over haar valt erbij (--zweef-ruimte, dpZweef), als ruimte in
        haar eigen vlak (::after), zodat haar laatste inhoud even ver van de kaart staat als elders van de volgende sectie;
      - de sectie erna krijgt bovenaan de sectieruimte plus het deel onder de naad (--zweef-volgende, dpZweef; zoals .zweef-half +
        .sectie in duraplus.css, dat door de omhulsels hier niet grijpt), zodat haar kop even ver van de kaart staat als elders;
      - zonder script: een schatting per blok (de vertrouwensbalk: de gemeten hoogte van Design per breekpunt, 83/136/257 px).
      Geen beweging: bij prefers-reduced-motion verandert er niets. */
.bg-wit { --zweef-vlak: var(--wit); } .bg-warm { --zweef-vlak: var(--warm); } .bg-lichtgroen { --zweef-vlak: var(--lichtgroen); } .dp-brugvak { --zweef-vlak: var(--voet, #fff); }
[data-dp] :is(.zweef-half, .zweef-kwart) { padding-block: 0; background: none; }
[data-dp] :is(.zweef-half, .zweef-kwart) { z-index: 3; }
/* de brugkaart: de voet erna staat niet in <main> (geen sectie om op te liggen); het omhulsel houdt zijn vlak onder de rand in de
   kleur van de voet (--voet, Richard 06-11: geen witte strook) en trekt de voet niet op */
[data-dp] .dp-brugvak:is(.zweef-half, .zweef-kwart) { margin-bottom: 0; background: linear-gradient(transparent var(--zweef-over), var(--zweef-vlak, transparent) var(--zweef-over)); }
/* het laatste blok van zijn rij: geen sectie erna, dus ook niets optrekken (de voet schuift anders onder de kaart) */
[data-dp]:last-child > * > :is(.zweef-half, .zweef-kwart) { margin-bottom: 0; }
/* de sectie erna (een duraplus-blok, of een omhulsel met een duraplus-weergave als eerste kind) */
:where([data-zw~="zweeft-half"]) + * { --zweef-f-na: .5; }
:where([data-zw~="zweeft-kwart"]) + * { --zweef-f-na: .75; }
:where([data-dp="labelcheck"]) + * { --zweef-schat-na: var(--schat-labelcheck); }
:where([data-dp="vertrouwensbalk"]) + * { --zweef-schat-na: var(--schat-vertrouwensbalk); }
:where([data-dp="tussen-actie"]) + * { --zweef-schat-na: var(--schat-tussen-actie); }
/* --zweef-na op de sectie zelf (daar zet dpZweef --zweef-volgende; een var() wordt opgelost waar hij staat). Op het eerste element van
   het blok erna, ook als dat geen .sectie is (Richard 04-11, huurwoning op 390: de vertrouwensbalk lag over de antwoordzin, want
   .antwoord-sectie kreeg geen ruimte) */
:where([data-zw~="zweeft-rand"]) + [data-dp] > * > :first-child,
:where([data-zw~="zweeft-rand"]) + :not([data-dp]) > [data-dp]:first-child > * > :first-child {
  --zweef-na: var(--zweef-volgende, calc(var(--zweef-schat-na, 112px) * var(--zweef-f-na, .5))); }
/* een eerste element dat geen .sectie is (eigen padding, bv. .antwoord-sectie): het deel onder de naad komt erbij als een doorzichtige
   rand bovenaan; de achtergrond van het element loopt onder de rand door (background-clip: border-box), dus geen eigen strook */
:where([data-zw~="zweeft-rand"]) + [data-dp] > * > :first-child:not(.sectie),
:where([data-zw~="zweeft-rand"]) + :not([data-dp]) > [data-dp]:first-child > * > :first-child:not(.sectie) {
  border-top: var(--zweef-na) solid transparent; background-clip: border-box; }
:where([data-zw~="zweeft-rand"]) + [data-dp] > * > .sectie,
:where([data-zw~="zweeft-rand"]) + :not([data-dp]) > [data-dp]:first-child > * > .sectie { padding-top: calc(var(--sectie) + var(--zweef-na)); }
:where([data-zw~="zweeft-rand"]) + [data-dp] > * > .sectie:is(.afstand-kort-boven, .kort-na-kop),
:where([data-zw~="zweeft-rand"]) + :not([data-dp]) > [data-dp]:first-child > * > .sectie:is(.afstand-kort-boven, .kort-na-kop) { /* kort-na-kop: formulier-taak (duraplus.css, 0,2,0) */ padding-top: calc(clamp(24px, 3vw, 48px) + var(--zweef-na)); }
:where([data-zw~="zweeft-rand"]) + [data-dp] > * > .sectie.afstand-kort,
:where([data-zw~="zweeft-rand"]) + :not([data-dp]) > [data-dp]:first-child > * > .sectie.afstand-kort { padding-top: calc(var(--s5) + var(--zweef-na)); }
:where([data-zw~="zweeft-rand"]) + [data-dp] > * > .sectie.afstand-aansluiten,
:where([data-zw~="zweeft-rand"]) + :not([data-dp]) > [data-dp]:first-child > * > .sectie.afstand-aansluiten { padding-top: var(--zweef-na); }
/* een ander blok erna (geen duraplus-sectie): het deel onder de naad als ruimte bovenin (in zijn eigen vlak), boven zijn eigen afstand */
[data-zw~="na-zweef-los"][data-zw][data-zw]::before {
  content: ""; display: block; height: var(--zweef-volgende, calc(var(--zweef-schat-na, 112px) * var(--zweef-f-na, .5))); pointer-events: none; }
/* de ruimte in de sectie ervoor; de stand en de schatting van het zwevende blok bepalen hem (--zweef-f, --zweef-schat) */
[data-zw~="voor-half"][data-zw] { --zweef-f: .5; }
[data-zw~="voor-kwart"][data-zw] { --zweef-f: .25; }
[data-zw~="voor-labelcheck"][data-zw] { --zweef-schat: var(--schat-labelcheck); }
[data-zw~="voor-vertrouwensbalk"][data-zw] { --zweef-schat: var(--schat-vertrouwensbalk); }
[data-zw~="voor-brugkaart"][data-zw] { --zweef-schat: var(--schat-brugkaart); }
[data-zw~="voor-tussen-actie"][data-zw] { --zweef-schat: var(--schat-tussen-actie); }
/* een duraplus-blok ervoor: in zijn eigen vlak (het buitenste element); ook in een omhulsel zonder data-dp met een duraplus-weergave
   als laatste kind (faq/groep weergave duraplus, C3); een ander blok ervoor: onder dat blok */
:where([data-dp][data-zw~="voor-zweef"]) > * > :last-child::after,
:where(:not([data-dp])[data-zw~="voor-zweef"] > [data-dp]:last-child) > * > :last-child::after,
:where([data-zw~="voor-zweef-los"])::after {
  content: ""; display: block; height: var(--zweef-ruimte, calc(var(--zweef-schat, 112px) * var(--zweef-f))); pointer-events: none; }
/* de schattingen (de kaarthoogte zonder script), ook als --zweef-h op het blok zelf */
:root { --schat-labelcheck: clamp(150px, calc(340px - 13vw), 300px); --schat-vertrouwensbalk: 80px; --schat-brugkaart: clamp(230px, calc(520px - 20vw), 480px); --schat-tussen-actie: 112px; }
/* de vertrouwensbalk zwevend: de gemeten hoogte van Design (duraplus.css: --zweef-h 83/136/257 px, verbeterronde 04-11) */
@media (max-width: 1100px) { :root { --schat-vertrouwensbalk: 74px; } }
@media (max-width: 760px) { :root { --schat-vertrouwensbalk: 190px; } }
[data-dp="labelcheck"] :is(.zweef-half, .zweef-kwart) { --zweef-h: var(--schat-labelcheck); }
[data-dp="vertrouwensbalk"] :is(.zweef-half, .zweef-kwart) { --zweef-h: var(--schat-vertrouwensbalk); }
[data-dp="brugkaart"] :is(.zweef-half, .zweef-kwart) { --zweef-h: var(--schat-brugkaart); }
[data-dp="tussen-actie"] :is(.zweef-half, .zweef-kwart) { --zweef-h: var(--schat-tussen-actie); }

/* 7b. Zonder zweven (geen, of op een plek waar het niet kan: het eerste blok) nooit over de sectie erboven: de eigen negatieve
       marge van de check-kaart in duraplus.css (.check, de home van de mockup) telt in de Sitebuilder niet; dat doet zweven. */
[data-dp] .check:not(.zweef-half):not(.zweef-kwart) { margin-top: 0; }

/* 8. De check-kaart (duraplus/labelcheck): de uitslag van de labelcheck (role=status) onder het formulier over de hele
      breedte van de kaart; zolang hij leeg is neemt hij geen plaats in (hij blijft voor schermlezers bestaan). */
.check .kaart > .dg-lc-uit { grid-column: 1 / -1; margin: 0; }
.check .kaart > .dg-lc-uit:empty { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* de knop in de uitslag (geen of een verlopen label) in de knopstijl van duraplus.css (.knop.blauw); labelcheck.css kent hem
   alleen in de oude kaart (.dg-lc) */
.check .dg-lc-uit .dg-lc-cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 46px; margin-top: 12px; padding: 0 26px; border-radius: var(--pill); font: 600 16px/1 var(--f-tekst); background: var(--blauw); color: #fff; text-decoration: none; }
.check .dg-lc-uit .dg-lc-cta:hover { background: var(--blauw-diep); }
/* C3 afstand aansluiten (algemene blokoptie, schema.ts): het blok sluit zonder tussenruimte aan op het blok erboven (zelfde vlak,
   zoals de zakelijke strook onder de situaties in energielabel-aanvragen.html: alleen de marge van het blok zelf). Heeft het blok
   erboven zelf een korte onderafstand (kort-onder, kort), dan blijft die (C3-golf1, home: de check-kaart onder de keuzekaarten) */
/* flow-root: de bovenmarge van het eerste kind (de zakelijke strook) blijft binnen het vlak van de sectie, anders valt zij erdoorheen en
   staat er een streep van de pagina-achtergrond tussen de twee blokken (C3-golf1, gezien op de hub) */
.afstand-aansluiten { padding-top: 0; display: flow-root; }
[data-dp][data-zw~="voor-aansluit"][data-zw] > * > .sectie:not(.afstand-kort-onder):not(.afstand-kort) { padding-bottom: 0; }
/* de FAQ staat in de bouw in een eigen omhulsel zonder data-dp: het blok ervoor sluit net zo aan (één band; de ruimte staat boven de FAQ, duraplus.css) */
[data-dp][data-zw~="voor-aansluit-omhulsel"][data-zw][data-zw][data-zw] > * > .sectie:not(.afstand-kort-onder):not(.afstand-kort) { padding-bottom: 0; }
/* Richard 06-11 ("lekker sticky"): een blok zonder eigen marge plakte aan de inhoud erboven (de labelcheck onder het proces: 13 px; de zoekbalk onder de artikelen en feitjes onder feitjes: 0 px).
   Zelfde band, de korte stap van het ritme ertussen, net als kort-onder + aansluiten op de home. De keuring meet het (ritme.mjs › AFSTAND_IN_PAGINA). */
[data-dp][data-zw~="voor-plak"][data-zw][data-zw][data-zw] > * > .sectie:not(.afstand-kort-onder):not(.afstand-kort) { padding-bottom: var(--s5); }

/* 9. De labelbalk (epstat op een duraplus-site, C3-golf1d, lib/epstat.ts). Het widget (duraplus.nl/widget/ep-stat) rendert in de
      browser, na de hydratie; tot dan is het blok leeg. De ruimte is vooraf gereserveerd, zodat er niets verschuift (CLS 0): de
      hoogte van het gerenderde widget in de letter van de site (data-font="inherit"), per band de grootste, naar boven afgerond.
      Per vorm: twee balken (een gebied met de landelijke vergelijking: de 11 provincies en 44 plaatsen, gemeten van 320 tot 2560 px)
      en één balk (het land zelf of zonder vergelijking: de dienstpagina's). tools/lokaal/widgets.mjs toetst het in de paginatest en
      de keuring (rood als het widget groter wordt). Een SSR-terugval (de balk al in de HTML) komt in golf 2. */
.dp-epstat { display: block; }
.dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 188px; }
.dp-epstat[data-scope="land"], .dp-epstat[data-vergelijk="0"] { min-height: 94px; }
@media (max-width: 1129px) { .dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 213px; } }
@media (max-width: 1089px) { .dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 238px; } .dp-epstat[data-scope="land"], .dp-epstat[data-vergelijk="0"] { min-height: 119px; } }
@media (max-width: 579px) { .dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 262px; } }
@media (max-width: 559px) { .dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 287px; } .dp-epstat[data-scope="land"], .dp-epstat[data-vergelijk="0"] { min-height: 144px; } }
@media (max-width: 399px) { .dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 337px; } .dp-epstat[data-scope="land"], .dp-epstat[data-vergelijk="0"] { min-height: 169px; } }
@media (max-width: 369px) { .dp-epstat[data-vergelijk="1"]:not([data-scope="land"]) { min-height: 354px; } }
/* met een titel (Labelverdeling in Nederland, 0611t): de regel erbij, gemeten op /energielabel-aanvragen/woning */
.dp-epstat[data-scope="land"]:not([data-titel=""]) { min-height: 138px; }
@media (max-width: 1089px) { .dp-epstat[data-scope="land"]:not([data-titel=""]) { min-height: 163px; } }
@media (max-width: 559px) { .dp-epstat[data-scope="land"]:not([data-titel=""]) { min-height: 188px; } }
@media (max-width: 399px) { .dp-epstat[data-scope="land"]:not([data-titel=""]) { min-height: 213px; } }

/* Een bedrag is één onbreekbaar geheel, in elke context: tussenbalk, kaart, tabel, kop en knop (Richard 04-11: in de tussenbalk
   stond "Vanaf € 192" met ",50" op een nieuwe regel, want .mini-cta span{display:block} van duraplus.css raakte ook de prijs en
   zijn centen). Het bedrag breekt niet (ook niet tussen € en het getal), de centen staan altijd in de regel van het bedrag. Een
   prijs die in de tussenbalk in de lopende tekst staat, blijft een inline-element. Keuring: mobiel.mjs (bedrag op één regel). */
[data-dp] :is([data-sb-prijs], [data-sb-pakket]) { white-space: nowrap; }
[data-dp] :is([data-sb-prijs], [data-sb-pakket]) .cent { display: inline; margin-top: 0; }
/* de drie afstammelingsregels van duraplus.css die elke span als blok zetten (.mini-cta span, .tab-project span, .mm-kol a span;
   Design: daar hoort een kindselector) raken een geneste prijs niet */
[data-dp] :is(.mini-cta span, .tab-project span, .mm-kol a span) :is(span[data-sb-prijs], span[data-sb-pakket]) { display: inline; margin: 0; font-size: inherit; }

/* keuzelijst (punt 1, review): versturen zonder keuze geeft een zichtbare rand, ook na een muisklik (het veld krijgt aria-invalid) */
[data-dp] .kl-veld[aria-invalid="true"] { border-color: #D83028; box-shadow: 0 0 0 3px rgba(216, 48, 40, .18); }

/* Coördinator 05-11 (mobiel op de proefsite):
   1. het widget van de labelbalk laadt niet (of zonder JS): geen lege gereserveerde vlakte, het blok valt weg (gedrag.ts › dpWidgetsVroeg) */
.sectie:has(> .in > .dp-epstat.dp-epstat-leeg) { display: none; }
/* coördinator 05-11 (Assen op 390: witte vlakken van 100-120 px boven en onder de labelbalk): het blok van de labelbalk heeft de korte
   sectieruimte (zoals .kort-na-kop), voor elke pagina met een labelbalk */
[data-dp="epstat"] .sectie:has(> .in > .dp-epstat) { --sectie: clamp(24px, 3vw, 48px); } /* via --sectie: de ruimte onder een zwevend blok erboven telt nog mee */
/* en het blok erna in dezelfde achtergrond begint ook kort (anders twee sectieruimtes wit op wit, "een leeg wit vlak") */
:is([data-dp="epstat"]:has(.sectie.bg-wit) + [data-dp] > * > .sectie.bg-wit, [data-dp="epstat"]:has(.sectie.bg-warm) + [data-dp] > * > .sectie.bg-warm, [data-dp="epstat"]:has(.sectie.bg-lichtgroen) + [data-dp] > * > .sectie.bg-lichtgroen) { --sectie-boven: clamp(24px, 3vw, 48px); padding-top: var(--sectie-boven); }
/* home op 390: zonder de sterrenregel geen lijn boven het eerste punt van de vertrouwensbalk */
@media (scripting: none) { .sectie:has(> .in > .dp-epstat) { display: none; } }
/* 2 en 3. een strook of tabel die verder loopt dan het scherm: bolletjes, teller en "Veeg voor meer" (gedrag.ts › dpVeeg), en een
   vervaging aan de rechterrand tot het eind */
[data-dp] .veegbaar:not(.aan-eind) { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent); }
[data-dp] .veegbaar:focus-visible { -webkit-mask-image: none; mask-image: none; } /* review: de mask knipte de focusring weg */
[data-dp] .dp-veeg { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: 12px; margin-top: 4px; font: 500 13px/1.2 var(--f-tekst); color: var(--stil); }
/* de carrousel (mobiel-richtlijn §3): t/m 6 kaarten knoppen van 44 × 44 op elkaar aansluitend, het bolletje zelf 10 px (actief 28 px) als
   ::before; vanaf 7 alleen een indicator; rechts de teller; eronder de hint die 3× zacht beweegt en na de eerste veeg verdwijnt */
[data-dp] .dp-veeg-punten { display: flex; align-items: center; gap: 0; margin-left: -17px; }
[data-dp] .dp-veeg-punten button { position: relative; width: 44px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
[data-dp] .dp-veeg-punten button::before { content: ""; width: 10px; height: 10px; border-radius: 999px; background: #B9D8BF; transition: width .25s, background .25s; }
[data-dp] .dp-veeg-punten button[aria-current=true]::before { width: 28px; background: var(--groen-diep); }
[data-dp] .dp-veeg-punten button:focus-visible { outline: 3px solid var(--groen-diep); outline-offset: -6px; border-radius: 12px; }
[data-dp] .dp-veeg-indicator { gap: 8px; margin-left: 0; min-height: 44px; }
[data-dp] .dp-veeg-punten i { width: 10px; height: 10px; border-radius: 999px; background: #B9D8BF; transition: width .25s, background .25s; }
[data-dp] .dp-veeg-punten i.aan { width: 28px; background: var(--groen-diep); }
[data-dp] .dp-veeg-teller { font: 600 14px/1 var(--f-tekst); font-variant-numeric: tabular-nums; }
[data-dp] .dp-veeg-vh, [data-dp] .rk-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
[data-dp] .dp-veeg-tekst { flex-basis: 100%; font: 600 13px/1 var(--f-tekst); color: var(--groen-tekst); margin-top: 6px; animation: dp-veeg-hint 1.6s ease-in-out 3; animation-play-state: paused; } /* pas in beeld (gedrag.ts › dpHintInBeeld) */
[data-dp] .dp-veeg-tekst.hint-aan { animation-play-state: running; }
[data-dp] .dp-veeg-tekst::after { content: " \2192"; }
[data-dp] .dp-veeg.dp-geveegd .dp-veeg-tekst { display: none; }
@keyframes dp-veeg-hint { 0%, 100% { transform: none; } 50% { transform: translateX(6px); } }
@media (prefers-reduced-motion: reduce) { [data-dp] .dp-veeg-tekst { animation: none; } [data-dp] .dp-veeg-punten > *, [data-dp] .dp-veeg-punten button::before { transition: none; } }
/* Prijskaarten (de coördinator 07-11, keuring 1024): tot 1100 px twee kolommen, ook de rij van drie; een knop groeit mee en breekt, een lang woord breekt, nooit afgesneden tekst */
@media (max-width: 1100px) { [data-dp] .prijzen.drie { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
[data-dp] .prijs { min-width: 0; overflow-wrap: break-word; hyphens: auto; }
[data-dp] .prijs .knop { height: auto; min-height: 48px; padding-block: 10px; white-space: normal; text-align: center; justify-content: center; line-height: 1.25; }
/* de halve volgende kaart: (baan − tussenruimte) / 1,5 (§3), ook de reviews */
@media (max-width: 760px) {
  [data-dp] .prijzen.drie { display: flex; gap: var(--s2); margin-top: 0; } /* keuring 05-11: .drie van een ander blok (duraplus.css) hield 3 prijskaarten in een raster van 103 px per kaart */
  [data-dp] .prijzen .prijs { flex: 0 0 calc((100% - var(--s2)) / 1.5); }
  [data-dp] .af-kaarten > .af-kaart { flex: 0 0 calc((100% - 16px) / 1.5); }
  [data-dp] .rk .rev, [data-dp] .rk-raster .rev { flex: 0 0 calc((100% - var(--s2)) / 1.5); }
  [data-dp] .prijzen .prijs .knop, [data-dp] .af-kaarten .af-kaart .knop { padding-inline: 14px; font-size: 15px; line-height: 1.25; white-space: normal; text-align: center; justify-content: center; min-height: 48px; height: auto; padding-block: 10px; }
  /* de reviewcarrousel: dezelfde 44 px-knoppen; vanaf 7 de indicator */
  [data-dp] .rk-bolletjes:not(.rk-indicator) { gap: 0; margin-left: -17px; }
  [data-dp] .rk-bolletjes:not(.rk-indicator) button { width: 44px; height: 44px; background: none; display: grid; place-items: center; }
  [data-dp] .rk-bolletjes:not(.rk-indicator) button::before { content: ""; width: 10px; height: 10px; border-radius: 999px; background: #B9D8BF; transition: width .25s, background .25s; }
  [data-dp] .rk-bolletjes:not(.rk-indicator) button[aria-selected=true]::before { width: 28px; background: var(--groen-diep); }
}
[data-dp] .rk-bolletjes.rk-indicator button { pointer-events: none; cursor: default; }
/* passen alle kaarten, dan geen bediening (gedrag.ts meet het, ook bij een resize); zonder JS ook niet */
[data-dp] .rk[data-een-scherm] :is(.rk-bediening, .rk-hint) { display: none !important; }
@media (scripting: none) { [data-dp] .rk :is(.rk-bediening, .rk-hint) { display: none !important; } }
/* de pijlen: uitgeschakeld met aria-disabled (de focus blijft) */
[data-dp] .rk-pijlen button[aria-disabled=true] { opacity: .35; cursor: default; }
[data-dp] .rk-pijlen button[aria-disabled=true]:hover { border-color: rgba(26, 42, 32, .18); background: #fff; }
/* 2. een tabel in tabelvorm (.smal, .compact) op een telefoon: geen woorden in stukken ("No-or-der-park"); past hij niet, dan veegt hij
   in zijn houder, met de aanwijzing van dpVeeg (bolletjes niet: "Veeg voor meer kolommen") */
@media (max-width: 600px) { .dp-tabelhouder.te-breed .tabel:is(.smal, .compact) :is(td, th) { overflow-wrap: normal; hyphens: manual; -webkit-hyphens: manual; } }
/* 3. tabs (de woningtypen van de pakketkaarten) op een telefoon onder elkaar in twee kolommen, nooit een verborgen strook */
@media (max-width: 760px) {
  [data-dp] .schakel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; border-radius: var(--r-m); }
  [data-dp] .schakel button { height: auto; min-height: 44px; padding: 10px 12px; white-space: normal; line-height: 1.2; }
}
/* 4. de duimbalk (.dg-sticky-cta) pas als de knop in de kop uit beeld is en geen formulier in beeld (gedrag.ts › dpDuimbalk) */
html.dp-duim .dg-sticky-cta { transition: transform .25s ease, visibility .25s; }
html.dp-duim .dg-sticky-cta:not(.dp-toon) { transform: translateY(110%); visibility: hidden; }
@media (prefers-reduced-motion: reduce) { html.dp-duim .dg-sticky-cta { transition: none; } }
/* 5. Google één keer per scherm op een telefoon: staat de score met het woordmerk al in de topbalk, dan in de vertrouwensbalk de score
   zonder het woordmerk */
/*    coördinator 05-11 (home op 390): ook de sterrenregel zelf niet, de waardering staat al in de topbalk; BRL, levering en het derde
      punt blijven */

/* C3-golf1g: een anker op een duraplus-blok (de blokoptie anchor, render.ts › metAnker) valt niet onder de vaste kop */
:where([data-dp]) > * > [id] { scroll-margin-top: calc(var(--kop-balk, 72px) + 38px); }

/* Megamenu, het actievak als keuze (Design 05-11, na-golf1/megamenu-voorstel/bouwkaart-actie-keuze.md › CSS; variant C, Omgevingsvergunning).
   Tot de stand van Design deze regels in duraplus.css heeft. Desktop: .mm-keuzevak in .mm-actie; mobiel: .dcm-promo.dcm-keuzepromo */
[data-dp] .mm-keuze { display: grid; gap: 10px; margin-top: 12px; }
[data-dp] .mm-keuze a { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; align-items: center; padding: 12px 14px; border-radius: 14px; background: #fff; border: 1px solid var(--lijn); transition: border-color .15s; }
[data-dp] .mm-keuze a:hover { border-color: var(--groen); }
[data-dp] .mm-keuze .oog { grid-column: 1; margin: 0; }
[data-dp] .mm-keuze b { grid-column: 1; font: 700 15px/1.3 var(--f-kop); }
[data-dp] .mm-keuze span:not(.oog) { grid-column: 1; font-size: 13px; color: var(--stil); }
[data-dp] .mm-keuze .ico { grid-column: 2; grid-row: 1 / 4; }
[data-dp] .dcm-keuze { display: grid; gap: 8px; margin-top: 12px; }
[data-dp] .dcm-keuze a { display: block; padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, .14); color: #fff; }
[data-dp] .dcm-keuze b { display: block; }
[data-dp] .dcm-keuze span { font-size: 13px; opacity: .85; }

/* De sterren van een score vullen zich (coördinator 05-11, zoals live: style#dp-sterren-animatie; render.ts › dpSterren, gedrag.ts ›
   dpSterren). Twee lagen van vijf sterren: onder leeg, boven in de kleur van .sterren (het thema), afgeknipt tot de score. De html is de
   eindstand: zonder JS, en met prefers-reduced-motion, staan de sterren meteen goed. Met JS begint de bovenste laag van de sterren die het
   script volgt (.dp-ster-wacht) leeg en loopt één keer vol als ze in beeld komen (.dp-ster-aan); afdrukken toont de eindstand. */
[data-dp] .dp-sterren { position: relative; width: max-content; max-width: 100%; }
[data-dp] .dp-sterren > span { display: flex; gap: inherit; }
[data-dp] .dp-ster-leeg { color: var(--dp-ster-leeg, #dadce0); }
[data-dp] .dp-ster-vol { position: absolute; left: 0; top: 0; clip-path: inset(0 var(--dp-ster-rest, 0%) 0 0); }
@media screen and (prefers-reduced-motion: no-preference) {
  [data-dp] .dp-sterren.dp-ster-wacht:not(.dp-ster-aan) .dp-ster-vol { clip-path: inset(0 100% 0 0); }
  [data-dp] .dp-sterren.dp-ster-wacht.dp-ster-aan .dp-ster-vol { animation: dp-ster-vullen .62s cubic-bezier(.2, .7, .3, 1) .12s both; }
}
@keyframes dp-ster-vullen { from { clip-path: inset(0 100% 0 0); } }

/* De inhoudsopgave in een artikel op warm (coördinator 05-11: het plaatsblok rendert al zijn delen in de achtergrond van het blok, warm).
   duraplus.css geeft het vak van de inhoudsopgave op ≤ 1100 px en de hover de kleur warm: op een warme sectie wit, anders verdwijnt het vak */
[data-dp] .bg-warm .toc a:hover { background: var(--wit); }
@media (max-width: 1100px) { [data-dp] .bg-warm .toc details { background: var(--wit); } }

/* Een reviewplek (tekstMetReviews, data-sb-reviews) geeft geen eigen ruimte in een flex-link met gap (Design 05-11, zoals de mockups) */
[data-dp] [data-sb-reviews] { display: contents; }

/* Proces, "Zo werkt het" (golf1h, Design 05-11, blokken/proces.md): de regels van de mockup na-golf1/pagina/hub-aanvragen/v3.html,
   1-op-1, tot de stand van Design ze in duraplus.css heeft. Desktop 3 + 2 (subgrid), 761–1100 tekst links en scherm rechts, ≤ 760 onder elkaar */
.pr-stappen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:auto;column-gap:var(--s4);row-gap:var(--s3)}
.pr-stappen li{display:grid;grid-column:span 2;grid-row:span 2;grid-template-rows:subgrid;row-gap:var(--s3);min-width:0}
.pr-stappen li:nth-child(4){grid-column:2 / span 2}
.pr-stappen li:nth-child(4),.pr-stappen li:nth-child(5){margin-top:var(--s4)}
.pr-tekst{display:grid;gap:12px;align-content:start;position:relative}
.pr-stappen li:nth-child(1) .pr-tekst::before,.pr-stappen li:nth-child(2) .pr-tekst::before,.pr-stappen li:nth-child(4) .pr-tekst::before{content:"";position:absolute;left:56px;right:calc(-1 * var(--s4) + 12px);top:21px;height:2px;background:repeating-linear-gradient(90deg,var(--lijn) 0 8px,transparent 8px 14px)}
.pr-tekst h3{margin:0 0 4px}.pr-tekst p{margin:0}
.pr .nr{width:44px;height:44px;border-radius:50%;background:var(--wit);border:2px solid var(--groen);display:grid;place-items:center;font:800 18px/1 var(--f-kop);color:var(--groen-diep);position:relative}
.pr-stappen li:last-child .nr{background:var(--groen);color:var(--inkt)}
.pr-scherm{margin:0;align-self:start;background:var(--wit);border:1px solid var(--lijn);border-radius:14px;overflow:hidden;box-shadow:0 18px 36px -24px rgba(22,44,28,.35)}
.pr-scherm img{display:block;width:100%;height:auto}
.pr-noot{margin:var(--s3) 0 0;font-size:14px;color:#475569}
/* 6 stappen 3 + 3, 4 stappen 2 + 2 (na-golf1/pagina/proces/varianten/beng.html en mwa.html, 1-op-1) */
@media (min-width:1101px){.pr-stappen.pr-aantal-6 li:nth-child(4){grid-column:span 2}.pr-stappen.pr-aantal-6 li:nth-child(n+4){margin-top:var(--s4)}}
.pr-stappen.pr-aantal-6 li:nth-child(5) .pr-tekst::before{content:"";position:absolute;left:56px;right:calc(-1 * var(--s4) + 12px);top:21px;height:2px;background:repeating-linear-gradient(90deg,var(--lijn) 0 8px,transparent 8px 14px)}
.pr-stappen.pr-aantal-4{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s4)}
.pr-stappen.pr-aantal-4 li,.pr-stappen.pr-aantal-4 li:nth-child(4){grid-column:auto;margin-top:0}
.pr-stappen.pr-aantal-4 li:nth-child(n+3){margin-top:var(--s4)}
.pr-stappen.pr-aantal-4 .pr-scherm{max-width:420px}
.pr-stappen.pr-aantal-4 li:nth-child(even) .pr-tekst::before{display:none}
.pr-stappen.pr-aantal-4 li:nth-child(3) .pr-tekst::before{content:"";position:absolute;left:56px;right:calc(-1 * var(--s4) + 12px);top:21px;height:2px;background:repeating-linear-gradient(90deg,var(--lijn) 0 8px,transparent 8px 14px)}
@media (max-width:1100px){
  .pr-stappen{grid-template-columns:minmax(0,1fr);row-gap:var(--s4);position:relative}
  .pr-stappen::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:repeating-linear-gradient(180deg,var(--lijn) 0 8px,transparent 8px 14px)}
  .pr-stappen li,.pr-stappen li:nth-child(4){grid-column:auto;grid-row:auto;grid-template-rows:none;grid-template-columns:minmax(0,1fr) minmax(0,360px);column-gap:var(--s4);align-items:start;margin-top:0}
  .pr-stappen li .pr-tekst::before{display:none!important}
  .pr-tekst .nr{z-index:1}
  .pr-tekst{grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}
}
@media (max-width:1100px){.pr-stappen.pr-aantal-4{grid-template-columns:minmax(0,1fr)}.pr-stappen.pr-aantal-4 li:nth-child(n+3){margin-top:0}}
@media (min-width:761px) and (max-width:1100px){.pr-stappen.pr-aantal-4 .pr-scherm{max-width:none}.pr-stappen li:not(:has(.pr-scherm)){grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .pr-stappen.pr-aantal-4 li,.pr-stappen.pr-aantal-4 li:nth-child(4){grid-template-columns:minmax(0,1fr);row-gap:14px}
  .pr-stappen.pr-aantal-4 .pr-scherm{max-width:358px}
  .pr-stappen{row-gap:var(--s4)}
  .pr-stappen::before{display:none}
  .pr-stappen li,.pr-stappen li:nth-child(4){grid-template-columns:minmax(0,1fr);row-gap:14px}
  .pr-tekst{grid-template-columns:40px minmax(0,1fr);gap:14px}
  .pr .nr{width:40px;height:40px;font-size:17px}
  .pr-scherm{max-width:358px}
}

/* Kennisbank 2.0 (Sitebuilder 05-11, blok 4; blokken/kennisbank-overzicht.md, zoek-kennisbank.md, hero.md): de regels van de mockup
   na-golf1/pagina/kennisbank/v1.html (<style id="kennisbank">), 1-op-1, tot de stand van Design ze in duraplus.css heeft. De mockup zet ze
   NA duraplus.css; dit blad staat ervoor, daarom elke selector met [data-dp] ervoor (dezelfde uitkomst: o.a. .kb-hero .kruimel boven
   .hero .kruimel en op <= 760 het lichtere verloop .40 -> .90 boven dat van de gewone hero). Hero met zoekveld en chips, het element
   kennisbank (filterbalk, onderwerpen, uitgelicht, feitjes-bank, actueel, alle artikelen, advies) en het gedeelde zoekveld. */
[data-dp] .vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[data-dp] .kb-hero .in{padding-bottom:clamp(56px,6vw,88px)}
[data-dp] .kb-hero .kruimel{display:flex;gap:8px;align-items:center;font:500 14px/1 var(--f-tekst);color:rgb(255 255 255 / .85)}[data-dp] .kb-hero .kruimel a{color:inherit}
[data-dp] .kb-zoek{display:flex;gap:8px;align-items:center;background:var(--wit);border-radius:var(--pill);padding:6px 6px 6px 22px;max-width:560px;box-shadow:0 18px 40px -20px rgb(0 0 0 / .45);margin-top:var(--s1)}
[data-dp] .kb-zoek input{flex:1;min-width:0;border:0;outline:0;font:400 16px/1.2 var(--f-tekst);color:var(--inkt);background:transparent;padding:12px 0}
[data-dp] .kb-zoek input::placeholder{color:#64748B}[data-dp] .kb-zoek:focus-within{outline:3px solid var(--groen);outline-offset:2px}
[data-dp] .kb-zoek .knop{flex:none}
[data-dp] .kb-zoek.compact{margin-top:0;max-width:520px;width:100%;justify-self:end;box-shadow:none;border:1px solid var(--lijn);padding:4px 4px 4px 18px}[data-dp] .kb-zoek.compact input{padding:10px 0}
[data-dp] .kb-snel{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
[data-dp] .kb-snel a{display:inline-flex;min-height:44px;align-items:center;padding:0 16px;border-radius:var(--pill);background:rgb(16 32 22 / .55);border:1px solid rgb(255 255 255 / .28);color:var(--wit);font:600 14px/1 var(--f-tekst);text-decoration:none;backdrop-filter:blur(6px)}
[data-dp] .kb-snel a:hover{background:rgb(16 32 22 / .75)}
[data-dp] .kb-filter{background:var(--wit);border-bottom:1px solid var(--lijn)}
[data-dp] .kb-filter-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:14px}
[data-dp] .kb-tabs{display:flex;flex-wrap:wrap;gap:8px}
[data-dp] .kb-tab{min-height:44px;padding:0 18px;border-radius:var(--pill);border:1px solid var(--lijn);background:var(--wit);font:600 15px/1 var(--f-tekst);color:var(--inkt);display:inline-flex;align-items:center;gap:8px;cursor:pointer}
[data-dp] .kb-tab:hover{border-color:var(--groen)}[data-dp] .kb-tab[aria-pressed=true]{background:var(--inkt);border-color:var(--inkt);color:var(--wit)}
[data-dp] .kb-tab .cnt{font-weight:500;font-size:13px;color:#64748B}[data-dp] .kb-tab[aria-pressed=true] .cnt{color:rgb(255 255 255 / .8)}
[data-dp] .kb-tab .stip{width:8px;height:8px;border-radius:50%;background:var(--groen)}[data-dp] .kb-tab .stip.nieuws{background:#1E5BD8}
[data-dp] .kb-ond{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
[data-dp] .kb-ok{position:relative;display:block;aspect-ratio:7/6;border-radius:var(--r-l);overflow:hidden;color:var(--wit);text-decoration:none;isolation:isolate}
[data-dp] .kb-ok img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s var(--zacht)}[data-dp] .kb-ok:hover img{transform:scale(1.04)}
[data-dp] .kb-ok::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(16 32 22 / 0) 35%,rgb(16 32 22 / .82) 100%)}
[data-dp] .kb-ok-t{position:absolute;left:var(--s3);right:var(--s3);bottom:var(--s3);display:grid;gap:6px}
[data-dp] .kb-ok .ko{font:700 12px/1 var(--f-tekst);letter-spacing:.1em;text-transform:uppercase;color:#D9F0C9}
[data-dp] .kb-ok b{font:800 clamp(20px,1.8vw,24px)/1.15 var(--f-kop);letter-spacing:-.01em}
[data-dp] .kb-ok .meta,[data-dp] .kb-mini .meta{font:500 14px/1.3 var(--f-tekst)}
[data-dp] .kb-pijl{position:absolute;right:var(--s3);top:var(--s3);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgb(255 255 255 / .22);backdrop-filter:blur(6px);color:var(--wit)}
[data-dp] .kb-pijl.licht{background:var(--wit);color:var(--inkt);box-shadow:0 1px 3px rgb(0 0 0 / .12)}
[data-dp] .kb-mini{position:relative;display:grid;gap:8px;align-content:end;min-height:180px;padding:var(--s3);border-radius:var(--r-l);background:var(--lichtgroen);color:var(--inkt);text-decoration:none;border:1px solid transparent}
[data-dp] .kb-mini:hover{border-color:var(--groen)}
[data-dp] .kb-mini-ico{position:absolute;left:var(--s3);top:var(--s3);width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--wit);color:var(--groen-diep)}
[data-dp] .kb-mini b{font:800 20px/1.2 var(--f-kop)}[data-dp] .kb-mini .meta{color:#475569}
[data-dp] .kb-spot{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--wit);border-radius:var(--r-l);overflow:hidden;text-decoration:none;color:var(--inkt);box-shadow:0 30px 60px -40px rgba(22,44,28,.45)}
[data-dp] .kb-spot-beeld{position:relative;min-height:380px}[data-dp] .kb-spot-beeld img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
[data-dp] .kb-spot-beeld .chip{position:absolute;left:var(--s3);top:var(--s3);display:inline-flex;gap:6px;align-items:center}
[data-dp] .kb-spot-t{display:grid;gap:var(--s2);align-content:center;padding:var(--s5) var(--s5)}
[data-dp] .kb-spot-t .oog{margin:0}[data-dp] .kb-spot .h3{font:800 clamp(26px,2.6vw,38px)/1.1 var(--f-kop);letter-spacing:-.02em}
[data-dp] .kb-spot .p{color:var(--stil);font-size:17px;line-height:1.6}
[data-dp] .kb-spot-meta{display:flex;flex-wrap:wrap;gap:var(--s3);font:500 14px/1 var(--f-tekst);color:#475569}[data-dp] .kb-spot-meta span{display:inline-flex;gap:6px;align-items:center}
[data-dp] .kb-spot .knop{justify-self:start;margin-top:var(--s1)}
[data-dp] .kb-feit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
[data-dp] .kb-f{display:grid;gap:10px;align-content:start;padding:var(--s3);border:1px solid var(--lijn);border-radius:var(--r-l);background:var(--wit)}
[data-dp] .kb-ftag{display:flex;gap:6px;align-items:flex-start;font:700 12px/1.35 var(--f-tekst);letter-spacing:.08em;text-transform:uppercase;color:var(--groen-tekst)}[data-dp] .kb-ftag .ico{flex:none;width:14px;height:14px;margin-top:1px}
[data-dp] .kb-fnum{font:800 clamp(32px,3vw,42px)/1 var(--f-kop);color:var(--groen-diep);letter-spacing:-.02em}
[data-dp] .kb-f h3{font:800 18px/1.25 var(--f-kop);margin:0}[data-dp] .kb-f p{margin:0;color:var(--stil);font-size:15px;line-height:1.55}
[data-dp] .kb-bron{display:inline-flex;gap:6px;align-items:center;font:500 13px/1 var(--f-tekst);color:#475569;margin-top:4px}[data-dp] .kb-bron .ico{width:14px;height:14px}
[data-dp] .kb-kopknop{align-items:end}[data-dp] .kb-kopknop .knop{justify-self:end}
[data-dp] .kb-raster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
[data-dp] .kb-kaart{display:flex;flex-direction:column;background:var(--wit);border:1px solid var(--lijn);border-radius:var(--r-l);overflow:hidden;text-decoration:none;color:var(--inkt);transition:border-color .2s,box-shadow .2s}
[data-dp] .kb-kaart:hover{border-color:var(--groen);box-shadow:0 18px 40px -28px rgba(22,44,28,.4)}
[data-dp] .kb-kaart .kb-beeld{position:relative;height:200px;overflow:hidden}[data-dp] .kb-kaart .kb-beeld img{width:100%;height:100%;object-fit:cover}
[data-dp] .kb-kaart .kb-beeld .chip{position:absolute;left:var(--s3);top:var(--s3)}
[data-dp] .kb-kaart.zonder{padding-top:var(--s3)}[data-dp] .kb-kaart.zonder>.chip{margin-left:var(--s3);background:var(--lichtgroen)}[data-dp] .kb-kaart.zonder>.chip.nieuws{background:#E8EEFB;color:#1E4FB8}
[data-dp] .kb-kaart-t{display:grid;gap:8px;padding:var(--s3);flex:1;align-content:start}
[data-dp] .kb-datum{font:500 13px/1 var(--f-tekst);color:#475569}
[data-dp] .kb-kaart .h3{font:800 19px/1.25 var(--f-kop)}[data-dp] .kb-kaart .p{color:var(--stil);font-size:15px;line-height:1.55}
[data-dp] .kb-kaart .meer{margin-top:auto;padding-top:6px;display:inline-flex;gap:6px;align-items:center;font:700 15px/1 var(--f-tekst);color:var(--groen-tekst)}
[data-dp] .kb-telling{margin:calc(-1 * var(--s3)) 0 var(--s3);font:500 15px/1.4 var(--f-tekst);color:#475569;min-height:1.4em}
[data-dp] .kb-leeg{padding:var(--s4);border:1px dashed var(--lijn);border-radius:var(--r-l);text-align:center;color:var(--stil)}
[data-dp] .kb-advies{margin-top:var(--s6);display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:var(--s4);align-items:center;padding:var(--s5);border-radius:var(--r-l);background:var(--lichtgroen)}
[data-dp] .kb-advies h2{font-size:clamp(28px,3vw,40px);margin:0 0 var(--s1)}[data-dp] .kb-advies p{margin:0;color:var(--stil);max-width:52ch}[data-dp] .kb-advies .knoppen{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:1100px){[data-dp] .kb-ond{grid-template-columns:repeat(2,minmax(0,1fr))}[data-dp] .kb-feit{grid-template-columns:repeat(2,minmax(0,1fr))}[data-dp] .kb-raster{grid-template-columns:repeat(2,minmax(0,1fr))}[data-dp] .kb-spot{grid-template-columns:minmax(0,1fr)}[data-dp] .kb-spot-beeld{min-height:300px}[data-dp] .kb-advies{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  [data-dp] .kb-hero .foto img{object-position:66% 50%}
  [data-dp] .kb-hero .foto::after{background:linear-gradient(180deg,rgba(22,48,31,.4) 0%,rgba(22,48,31,.62) 38%,rgba(22,48,31,.8) 70%,rgba(22,48,31,.9) 100%)} /* lichter dan de standaard-hero (.55→.92): de woning blijft zichtbaar, zoals live. tools/contrast-foto.mjs @390: kruimel 5,22 · H1 5,39 · lead 7,74 */
  [data-dp] .kb-zoek{padding-left:16px}[data-dp] .kb-zoek .knop{padding-inline:16px}
  [data-dp] .kb-filter-in{flex-direction:column;align-items:stretch}
  [data-dp] .kb-ond,[data-dp] .kb-feit,[data-dp] .kb-raster{grid-template-columns:minmax(0,1fr)}
  [data-dp] .kb-ok{aspect-ratio:auto;height:240px}
  [data-dp] .kb-mini{min-height:150px}
  [data-dp] .kb-spot-beeld{min-height:220px}[data-dp] .kb-spot-t{padding:var(--s3)}
  [data-dp] .kb-kopknop .knop{justify-self:start}
  [data-dp] .kb-zoek.compact{justify-self:stretch;max-width:none}
  [data-dp] .kb-advies{padding:var(--s3)}[data-dp] .kb-advies .knoppen .knop{flex:1 1 100%;justify-content:center}
}

/* Het element kennisbank: één omhulsel om alle delen, zonder eigen vak (de zweefregels van 7. gaan uit van één kind per blok) */
[data-dp] .kb-overzicht{display:contents}
/* Feitjes (Kennisbank 2.0, blok 4; tools/bouwkaarten-data.mjs feitjes): de kaart van de feitjes-bank (.kb-feit .kb-f hierboven), 1-3 kolommen
   naar het aantal (fj-1, fj-2, fj-3); op <= 1100 hooguit twee, op <= 760 onder elkaar. Een enkel feitje niet breder dan de tekstkolom. */
[data-dp] .fj .kopje{margin-bottom:var(--s4)}
[data-dp] .fj .kb-feit.fj-1{grid-template-columns:minmax(0,760px)}
[data-dp] .fj .kb-feit.fj-2{grid-template-columns:repeat(2,minmax(0,1fr))}
[data-dp] .fj .kb-feit.fj-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){[data-dp] .fj .kb-feit.fj-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){[data-dp] .fj .kb-feit.fj-1,[data-dp] .fj .kb-feit.fj-2,[data-dp] .fj .kb-feit.fj-3{grid-template-columns:minmax(0,1fr)}}
/* Zoek in de kennisbank (blokken/zoek-kennisbank.md): het compacte veld als eigen sectie; desktop max 520 px, mobiel de volle breedte */
[data-dp] .zk h2{margin:0 0 var(--s3)}
[data-dp] .zk .kb-zoek.compact{justify-self:start}
@media (max-width:760px){[data-dp] .zk .kb-zoek.compact{max-width:none}}
/* Kennisbankkaarten weergave gerelateerd ("Lees ook", blok 4): 2-3 kaarten van de home (.kb .art) in een gelijk raster, zonder uitgelichte kaart;
   twee kaarten elk de helft, op een smal scherm onder elkaar */
[data-dp] .kb.kb-rel{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
/* Offertesjabloon (hub v3 en Offerte energielabel v3, na-golf1/pagina/bouwkaart-offertesjabloon.md; Sitebuilder 05-11). De CSS van de mockup
   (hub-aanvragen/v3.html, .of-* en het merkplus van merkplus.mjs) 1-op-1, elke selector met [data-dp] ervoor (de mockup zet de regels na
   duraplus.css). Alleen wat de blokken tonen: de offertekop (subpagina-kop met verwijsregels), het merkplus en formulier-taak met zijpaneel.
   Afwijkend: de kop van het zijpaneel is een h2 (de h3 van de mockup; de formulierkaart heeft hier geen h2). */
[data-dp] .mp{display:inline-block;flex:none;overflow:visible}
[data-dp] .subkop .usps li .mp{width:16px;height:16px}
[data-dp] .topbalk li .mp{width:13px;height:13px;margin-right:2px}
[data-dp] .of-kop .in{padding-block:clamp(40px,4.6vw,64px) clamp(44px,5vw,72px)}
[data-dp] .of-kop .tekst{max-width:760px;gap:var(--s2)}
[data-dp] .of-kop h1{font-size:clamp(34px,4vw,54px)}
[data-dp] .of-door{display:flex;gap:10px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:rgba(255,255,255,.86);margin-top:2px}
[data-dp] .of-door .ico{flex:none;width:18px;height:18px;margin-top:3px;color:var(--mint)}
[data-dp] .of-door a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
[data-dp] .of-kopvoet{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:var(--s1)}
[data-dp] .of-kop .usps{margin:0}
[data-dp] .of-aanvraag{padding-block:clamp(40px,4.6vw,72px) var(--sectie)}
[data-dp] .of-twee{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:var(--s4);align-items:start}
[data-dp] .of-links{display:grid;gap:var(--s3);min-width:0}
[data-dp] .of-aanvraag .formkaart{background:#fff;border-radius:var(--r-l);padding:var(--s4) var(--s4) var(--s3);display:grid;gap:var(--s2);box-shadow:0 24px 48px -36px rgba(22,44,28,.45);min-width:0}
[data-dp] .of-zij{display:grid;gap:var(--s2);min-width:0}
[data-dp] .of-waarom{background:#fff;border-radius:var(--r-l);padding:var(--s3);display:grid;gap:var(--s2)}
[data-dp] .of-waarom h2{font:700 18px/1.2 var(--f-kop)}
[data-dp] .of-onderscheid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
[data-dp] .of-onderscheid li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start}
[data-dp] .of-onderscheid .of-o-ico{display:grid;place-items:center;color:var(--groen-diep);padding-top:3px}
[data-dp] .of-onderscheid .of-o-ico .mp{width:15px;height:15px}
[data-dp] .of-onderscheid b{display:block;font:700 16px/1.25 var(--f-kop);margin-bottom:4px}
[data-dp] .of-onderscheid span{font-size:14.5px;line-height:1.5;color:var(--stil)}
[data-dp] .of-persoon{background:#fff;border-radius:var(--r-l);padding:var(--s3);display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px 14px;align-items:center}
[data-dp] .of-persoon img{width:64px;height:64px;border-radius:18px;object-fit:cover;object-position:50% 30%}
[data-dp] .of-persoon b{display:block;font:700 16px/1.25 var(--f-kop)}
[data-dp] .of-persoon span{font-size:14px;color:var(--stil)}
[data-dp] .of-door-onder{display:none}
/* lang formulier: het zijpaneel kleeft onder de kop, alleen vanaf 1101 px; daaronder formulier en zijpaneel onder elkaar, het zijpaneel in twee kolommen */
@media (min-width:1101px){[data-dp] .of-zij{position:sticky;top:96px;align-self:start}}
@media (max-width:1100px){[data-dp] .of-twee{grid-template-columns:minmax(0,1fr)}[data-dp] .of-zij{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
@media (max-width:760px){[data-dp] .of-kop .in{padding-block:20px 28px}[data-dp] .of-kopvoet{gap:12px}[data-dp] .of-kop .lead{font-size:15.5px}[data-dp] .of-aanvraag{padding-top:20px}[data-dp] .of-aanvraag .formkaart{padding:var(--s3) 14px var(--s2);border-radius:var(--r-m)}[data-dp] .of-zij{grid-template-columns:minmax(0,1fr)}[data-dp] .of-zij .of-persoon{display:none}}
/* verwijzingMobiel onder-formulier: op de telefoon de verwijsregels onder de formulierkaart en de kop zonder kruimelpad, strakker, zodat het postcodeveld in het eerste scherm staat */
@media (max-width:600px){[data-dp] .of-kop-onder .of-door-kop{display:none}[data-dp] .of-kop-onder .kruimel{display:none}[data-dp] .of-kop-onder .in{padding-bottom:20px}[data-dp] .of-onder{padding-top:12px}[data-dp] .of-onder .formkaart{padding-top:16px;gap:12px}[data-dp] .of-door-onder{display:grid;gap:10px;margin-top:16px;padding-inline:4px}[data-dp] .of-door-onder p{margin:0;font-size:15.5px;line-height:1.55;color:var(--inkt)}[data-dp] .of-door-onder a{color:var(--groen-tekst);font-weight:600;text-decoration:underline;text-underline-offset:3px}}

/* ROULEREN: de roulerende vertrouwenskaart (A-rouleren, Richard 05-11; mobiel-richtlijn §2b, na-golf1/vertrouwen-mobiel/rouleren-lib.mjs). Boven
   600 px het rondje en de kaart zoals altijd. Op ≤ 600 px één regel van 52 px, de items op elkaar (grid-area 1 / 1, CLS 0): oud uit in 600 ms,
   nieuw in 900 ms na 500 ms (100 ms overlap). Richard 06-11: de sterren staan op de telefoon altijd in de topbalk; de kaart rouleert daar alleen de usp's. Zonder JS (en vóór de eerste stap) de eerste usp. Het gedrag: gedrag.ts › dpRouleren. */
[data-dp] .vertrouwen.rouleren .mp { display: none; }
@media (max-width: 600px) {
  /* Google één keer per scherm: op de telefoon staan de sterren in de topbalk (Richard 06-11, de afspraak van 097341f); de regel in een kop is dan weg */
  html[data-zw~="reviewregel"][data-zw] :is(.hero, .subkop) .reviewregel { display: none; }
  /* de kop reserveerde 104–120 px voor de kaart van 257 px; de kaart is nu 52 px */
  [data-dp][data-zw~="voor-rouleren"][data-zw][data-zw] :is(.hero, .subkop) .in { padding-bottom: 32px; }
  [data-dp] .vertrouwen.zwevend.rouleren { --zweef-h: 52px; }
  :root[data-zw~="rouleren"][data-zw] { --zweef-terugval: 26px; --schat-vertrouwensbalk: 52px; }
  [data-dp] .vertrouwen.zwevend.rouleren ul { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 0; height: 52px; align-items: center; padding: 0 18px; border-radius: 18px; box-shadow: 0 12px 28px -20px rgba(22, 44, 28, .32); }
  [data-dp] .vertrouwen.zwevend.rouleren li, [data-dp] .vertrouwen.zwevend.rouleren li + li { grid-area: 1 / 1; display: flex; align-items: center; min-width: 0; border: 0; padding: 0; gap: 10px; white-space: nowrap; overflow: hidden; font: 600 14.5px/1.35 var(--f-tekst); color: var(--inkt); opacity: 0; visibility: hidden; transform: translateY(6px); filter: blur(2px); }
  [data-dp] .vertrouwen.rouleren ul:not([data-rouleert]) li:first-child, [data-dp] .vertrouwen.zwevend.rouleren li.nu { opacity: 1; visibility: visible; transform: none; filter: none; }
  [data-dp] .vertrouwen.zwevend.rouleren li.nu { transition: opacity 900ms cubic-bezier(.22,.61,.36,1) 500ms, transform 900ms cubic-bezier(.22,.61,.36,1) 500ms, filter 900ms cubic-bezier(.22,.61,.36,1) 500ms, visibility 0s 500ms; }
  [data-dp] .vertrouwen.zwevend.rouleren li.weg { visibility: visible; opacity: 0; transform: translateY(-6px); filter: blur(2px); transition: opacity 600ms cubic-bezier(.22,.61,.36,1), transform 600ms cubic-bezier(.22,.61,.36,1), filter 600ms cubic-bezier(.22,.61,.36,1); }
  [data-dp] .vertrouwen.rouleren .rond { display: none; }
  [data-dp] .vertrouwen.rouleren .mp { display: inline-block; width: 14px; height: 14px; }
}
/* reduced motion: alleen opacity, 200 ms, geen verschuiving en geen blur */
@media (max-width: 600px) and (prefers-reduced-motion: reduce) {
  [data-dp] .vertrouwen.zwevend.rouleren li, [data-dp] .vertrouwen.zwevend.rouleren li.weg { transform: none; filter: none; }
  [data-dp] .vertrouwen.zwevend.rouleren li.nu { transition: opacity 200ms linear, visibility 0s; }
  [data-dp] .vertrouwen.zwevend.rouleren li.weg { transition: opacity 200ms linear; }
}
/* /ROULEREN */

/* De megamenu-panelen (Richard 05-11 "ja zo", ontwerp/home.html <style id="menu-c">, na-golf1/megamenu-vier): vier gelijke kolommen over de volle
   breedte met het actievak eronder; twee kolommen + actievak over de volle breedte; elke kolom stapelt van boven af. */
[data-dp] #mm-energielabels .mm-inhoud.mm-vier, [data-dp] .mm-inhoud.mm-vier { grid-template-columns: repeat(4, minmax(0, 1fr)); }
[data-dp] .mm-vier > .mm-kol { align-self: start; }
[data-dp] .mm-vier > .mm-tools { display: grid; gap: 12px; align-content: start; }
[data-dp] .mm-vier > .mm-actie { grid-column: 1 / -1; }
[data-dp] .mm-inhoud.mm-drie { grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 1.2fr); }
[data-dp] .mm-drie > .mm-actie { max-width: none; }
[data-dp] .mm-stil { visibility: hidden; }
[data-dp] .nav .balk > :first-child { flex: none; }
[data-dp] .nav .links > *, [data-dp] .nav .balk > .knop { white-space: nowrap; }
[data-dp] .nav .links { gap: clamp(16px, 1.8vw, 32px); }
[data-dp] .nav .balk { gap: 24px; }

/* Tikdoelen ≥ 44 px op de telefoon (coördinator 05-11): de reviewlink in de bovenbalk en "Home" in het kruimelpad; de negatieve marge houdt de opmaak op zijn plek */
@media (max-width: 760px) {
  [data-dp] .topbalk .reviewregel { display: inline-flex; align-items: center; min-height: 44px; padding-block: 0; margin-block: -12px; }
  [data-dp] .kruimel a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0 8px 0 0; margin: -12px -8px -12px 0; }
}

/* De koppen in 2.0-blokken (coördinator 05-11): preset dura kleurt h2/h3 in primair; in de blokken en de elementen staan ze in inkt, zoals de mockups.
   Hier en niet in presets/dura.css: dat blad heeft artus (live) ook, en die moet byte-gelijk blijven. Dit blad laadt alleen op een site met duraplus-blokken. */
.preset-dura [data-dp] :is(h2, h3):not(.text-white), .preset-dura .dpc-vak :is(h2, h3):not(.text-white) { color: inherit; }

/* De kop boven het formulier (hub v3 .of-fkop, golf1i: bedrijfspand en project) */
[data-dp] .of-fkop { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px solid var(--lijn); }
[data-dp] .of-fkop h2 { font: 800 clamp(22px, 2vw, 28px)/1.15 var(--f-kop); letter-spacing: -.015em; }
[data-dp] .of-fstap { display: inline-flex; align-items: center; gap: 7px; font: 600 14px/1 var(--f-tekst); color: var(--groen-tekst); background: var(--groen-zacht); padding: 8px 12px; border-radius: var(--pill); }
[data-dp] .of-fstap .ico { width: 15px; height: 15px; }

/* 6. Eindscan 05-11: tikdoelen van minstens 44 px op touch (huisregel en WCAG 2.5.8). Alleen op een aanraakscherm: met de muis en in de
   mockups verandert er niets. Negatieve marges houden de regelafstand gelijk waar dat kan; de pil van de reviewregel wordt op touch echt 44 px hoog. */
@media (pointer: coarse) {
  [data-dp] .nav .logo { display: inline-flex; align-items: center; min-height: 44px; }
  [data-dp] .reviewregel.pil, [data-dp] .reviewregel.gestapeld, [data-dp] .naar-google, [data-dp] .meer { min-height: 44px; }
  [data-dp] .buurt a { height: 44px; }
  [data-dp] .pijlen .rij > a { display: flex; align-items: center; min-height: 44px; margin-block: -7px; }
  [data-dp] .kb-zoek input { min-height: 44px; }
  [data-dp] .punten strong a { padding-block: 11px; }
  [data-dp] .contactkaart .lijn, [data-dp] .hulp .lijn { min-height: 44px; }
  [data-dp] .tabel td a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; margin-block: -11px; }
}
/* 7. De sterren staan op elke breedte in de topbalk, rechts, zoals live (Richard 06-11); de vertrouwenskaart heeft drie usp's en geen Google-item meer. Logo en sterren even groot als live
      (gemeten op duraplus.nl: logo 79,4 x 25, ster 14 px om de 16 px; onze ster vult 14 van de 20 px van zijn svg). Boven 760 px zoveel usp's als er passen: de lijst is één rij hoog, wat niet past
      valt op een tweede rij en is afgeknipt; nooit de sterren. Dit gaat vóór de regel van 1100 px die de tweede en derde usp verbergt. */
/* de sterren in de brugkaart goud, zoals overal (Richard 06-11): ze staan in een witte pil; duraplus.css van Design zegt nog inkt */
[data-dp] .brug .vertrouw .reviewregel .sterren { color: #F5B301; }
[data-dp] .topbalk .reviewregel { flex: none; }
[data-dp] .topbalk .reviewregel .google { height: 25px; }
[data-dp] .topbalk .reviewregel .sterren { gap: 0; }
[data-dp] .topbalk .reviewregel .sterren svg { width: 20px; height: 20px; margin-inline: -2px; }
@media (min-width: 761px) {
  [data-dp] .topbalk ul { flex: 1 1 0; min-width: 0; flex-wrap: wrap; height: 40px; overflow: hidden; column-gap: var(--s4); row-gap: 0; margin-right: var(--s4); }
  [data-dp] .topbalk ul li:nth-child(n) { display: flex; height: 40px; white-space: nowrap; }
}
/* Coördinator 06-11: alinea's in een kopje hebben ruimte onderling (/energielabel-d), en de hint onder de keuzes in de configurator plakt niet (--s2); de vraag boven de keuzes --s1 */
[data-dp] .kopje p + p { margin-top: var(--s2); }
[data-dp] .cf-keuzes + .cf-hint { margin-top: var(--s2); }
[data-dp] .cf-subkop + .cf-keuzes { margin-top: var(--s1); }
/* Menu B (Richard 06-11): op de telefoon blijft het menu staan. Bij kop-vast wordt alleen .balk lager; .nav .in houdt zijn hoogte, dus de pagina schuift niet. Geen transform op .nav: die sluit de vaste panelen op
   (memory reference_vaste_kop_menu_valkuilen). De lege rand onder het lage menu vangt geen tikken. --kop-balk-laag is ook de maat voor dpFormScroll. De menuknop blijft 48 x 48, de tegel 40. */
@media (max-width: 760px) {
  :root { --kop-balk-laag: 52px; }
  [data-dp] .nav { pointer-events: none; }
  [data-dp] .nav .in { height: var(--kop-balk); }
  [data-dp] .nav .balk { pointer-events: auto; transition: border-radius .2s var(--zacht), height .2s var(--zacht); }
  [data-dp] .nav .logo img { transition: height .2s var(--zacht); }
  html.kop-vast [data-dp] .nav .balk { height: var(--kop-balk-laag); }
  html.kop-vast [data-dp] .nav .logo img { height: 28px; }
  :where([data-dp]) > * > [id] { scroll-margin-top: calc(var(--kop-balk-laag) + var(--kop-rand) + 24px); }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) { [data-dp] .nav .balk, [data-dp] .nav .logo img { transition: none; } }
/* De offerteknop op de telefoon (Richard 06-11, vorm 2 uit het voorbeeld): alleen de blauwe pil zweeft boven de pagina, geen strook. Alleen hier: sticky-cta.css blijft zoals de andere sites hem hebben. */
@media (max-width: 47.999rem) {
  html .dg-sticky-cta { left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); min-height: 48px; padding: 0; background: none; border-top: 0; box-shadow: none; }
  html .dg-sticky-cta .dg-sticky-cta-knop { gap: 8px; width: 100%; min-height: 48px; padding: 0 20px; justify-content: center; border-radius: var(--pill); background: var(--blauw); font: 700 16px/1.2 var(--f-tekst); box-shadow: 0 8px 22px rgba(11, 98, 188, .38); }
  html .dg-sticky-cta .dg-sticky-cta-knop::after { content: ""; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
  html .dg-sticky-cta:focus-visible { outline: 0; }
  html .dg-sticky-cta:focus-visible .dg-sticky-cta-knop { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--blauw), 0 8px 22px rgba(11, 98, 188, .38); }
  html.dp-duim .dg-sticky-cta:not(.dp-toon) { transform: translateY(calc(100% + 44px + env(safe-area-inset-bottom, 0px))); }
}
/* 8. De micro-animaties van live (Richard: wat live heeft, komt terug). De namen en maten zijn die van live.
   Megamenu dicht: gedrag.ts zet mm-uit op het paneel en verbergt het daarna. Labelcheck: het zoeken toont een glans in plaats van de spinner en
   het antwoord schuift in; de markup is gedeeld met duracheck.nl (lib/labelcheck.ts, labelcheck.css), daarom alleen hier in de stijl. */
[data-dp] .mm-paneel.mm-uit { animation: dp-mm-uit .15s ease-in both; pointer-events: none; }
@keyframes dp-mm-uit { from { opacity: 1; translate: 0 0; } to { opacity: 0; translate: 0 -6px; } }
[data-dp] .dg-lc-uit > :not(:has(.dg-lc-spin)) { animation: dp-lck-in .3s ease-out; }
@keyframes dp-lck-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
[data-dp] .dg-lc-uit .dg-lc-spin { display: none; }
[data-dp] .dg-lc-uit:has(.dg-lc-spin)::before { content: ""; display: block; width: 112px; height: 76px; margin-bottom: 12px; border-radius: 12px; background: linear-gradient(90deg, #eef1f5 25%, #f7f9fb 50%, #eef1f5 75%); background-size: 200% 100%; animation: dp-lck-glans 1.2s linear infinite; }
@keyframes dp-lck-glans { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { [data-dp] .mm-paneel.mm-uit, [data-dp] .dg-lc-uit > :not(:has(.dg-lc-spin)), [data-dp] .dg-lc-uit:has(.dg-lc-spin)::before { animation: none; } }

/* MENUKNOP variant B1 (Richard 06-11): klikgebied 48 × 48 (duraplus.css) zonder eigen achtergrond, daarin een vlak van 40 × 40 met drie lijnen. De rechterkant van het vlak ligt op de marge van de kop. */
[data-dp] .burger { width: 48px; height: 48px; background: none; place-items: center end; }
[data-dp] .burger svg { display: none; }
[data-dp] .burger::before, [data-dp] .burger::after { content: ""; grid-area: 1 / 1; }
[data-dp] .burger::before { width: 40px; height: 40px; border-radius: 10px; background: var(--groen-zacht); }
[data-dp] .burger::after { width: 20px; height: 2.5px; margin-right: 10px; border-radius: 2px; background: var(--groen-diep); box-shadow: 0 -7.5px 0 var(--groen-diep), 0 7.5px 0 var(--groen-diep); }
/* /MENUKNOP */

/* Richard 06-11: de logo's in de voet zoals live: grijs en niet opvallend, in kleur bij hover en focus */
[data-dp] .voet .keur-logos img { filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
[data-dp] .voet .keur-logos :is(img:hover, a:hover img, a:focus-visible img) { filter: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { [data-dp] .voet .keur-logos img { transition: none; } }
/* Richard 06-11: de blauwe knop niet over het gele plus: vanaf 761 px staan de knoppen onder de tekst, links; het plus houdt de rechterkant */
@media (min-width: 761px) { [data-dp] .of-afsluiter .in { flex-direction: column; align-items: flex-start; } }
/* de voorwaarden in één keer in beeld (blok pdfweergave, Richard 06-11): alle pagina's onder elkaar, geen werkbalk */
[data-dp] .dp-pdf-knop { margin: 0 0 var(--s3); }
[data-dp] .dp-pdf-vellen { display: grid; gap: var(--s2); max-width: 900px; min-height: 50vh; }
[data-dp] .dp-pdf-vellen canvas { display: block; width: 100%; height: auto; background: #fff; border-radius: var(--r-s); box-shadow: 0 18px 40px -28px rgba(22, 44, 28, .4), 0 0 0 1px var(--lijn); }
[data-dp] .dp-pdf-vellen:not([aria-busy]) { min-height: 0; }

/* 0611q: de opbouw van live op de rekentool en de labelcheck (referentie na-golf1/pagina/rekentool/intro.html) */
[data-dp] .rk-intro .in { max-width: 760px; text-align: center; display: grid; gap: var(--s2); justify-items: center; }
[data-dp] .rk-intro h2 { text-wrap: balance; }
[data-dp] .rk-letters { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin-top: var(--s1); }
[data-dp] .rk-letter { width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; font: 800 18px/1 var(--f-kop); }
[data-dp] .rk-letter.vraag { background: var(--groen-zacht); color: var(--blauw); }
[data-dp] .rk-micro { font-size: 14px; color: #475569; }
[data-dp] .rk-wist { background: var(--warm); border-radius: var(--r-m); padding: 12px 18px; }
[data-dp] :is(.rk-punten, .lc-punten, .af-sfeer-punten) { display: flex; gap: 8px 24px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; font-weight: 600; font-size: 15px; }
[data-dp] .rk-punten { justify-content: center; }
[data-dp] :is(.rk-punten, .lc-punten, .af-sfeer-punten) li { display: inline-flex; align-items: center; gap: 8px; }
[data-dp] :is(.rk-punten, .lc-punten) .ico { width: 16px; height: 16px; color: var(--groen-diep); }
[data-dp] .af-sfeer-punten { margin-bottom: var(--s3); }
[data-dp] .af-sfeer-punten .ico { width: 16px; height: 16px; color: var(--mint); }
[data-dp] .check .kaart.lc-zonderkop { grid-template-columns: minmax(0, 1fr); gap: var(--s2); } /* geen kop naast het formulier: het formulier over de hele breedte */
[data-dp] .lc-punten { margin-top: 0; }
[data-dp] .lb-rijen { display: grid; gap: 6px; list-style: none; padding: 0; margin: var(--s2) 0 0; }
[data-dp] .lb-rij { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--lijn); }
[data-dp] .lb-chip { min-width: 56px; height: 30px; padding: 0 8px; border-radius: 7px; display: grid; place-items: center; font: 800 14px/1 var(--f-kop); }
[data-dp] :is(.lb-na, .ks-na) { margin-top: var(--s3); }
[data-dp] .lb-noot { margin-top: var(--s2); font-size: 14px; color: var(--stil); }
[data-dp] .ks-titelpijl { color: var(--blauw); }

/* Richard 06-11: geen rechterkant leeg en geen tekstmuur: een los hoofdstuk heeft de kop links en de tekst rechts; labelrijen naast de uitleg; links in de tekst zien eruit als links */
@media (min-width: 1001px) {
  [data-dp] .artikel.kop-links .tekstkolom { max-width: none; }
  /* de kop drijft links naast de tekst; een raster met rijen gaf ruimte per lege rij */
  [data-dp] .artikel.kop-links .tekstkolom > section { display: flow-root; }
  [data-dp] .artikel.kop-links .tekstkolom > section > h2 { float: left; width: 38%; text-wrap: balance; }
  [data-dp] .artikel.kop-links .tekstkolom > section > :not(h2) { margin-left: calc(38% + var(--s5)); }
  [data-dp] .artikel.kop-links .tekstkolom > section > :not(h2) + :not(h2) { margin-top: var(--s3); }
  [data-dp] .in.lb { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto 1fr; column-gap: var(--s5); align-items: start; }
  [data-dp] .in.lb .lb-rechts { grid-column: 2; grid-row: 1 / span 2; }
  [data-dp] .in.lb .lb-onder { grid-column: 1; }
}
[data-dp] .artikel.kop-links .tekstkolom p { color: var(--inkt); }
[data-dp] .in.duo-boven { align-items: start; }
[data-dp] .lb-kop { display: grid; gap: var(--s2); }
[data-dp] .lb-onder { margin-top: var(--s3); }
[data-dp] .sectie.sectie-s6 { --sectie: var(--s6); padding-block: var(--s6); }
[data-dp] .lb .rk-letters { justify-content: flex-start; margin: 0 0 var(--s1); }
[data-dp] .lb .lb-rijen { margin-top: 0; }
[data-dp] :is(.voetnoot, .ks-na, .lb-na, .lb-kop, .tv-kol, .kop-links .tekstkolom, .rk-intro, .vragen details) a:not(.knop) { color: var(--blauw); text-decoration: underline; text-underline-offset: 3px; }
[data-dp] :is(.voetnoot, .ks-na, .lb-na, .lb-kop, .tv-kol, .kop-links .tekstkolom, .rk-intro, .vragen details) a:not(.knop):hover { color: var(--blauw-diep); }

/* sfeerband zonder kaart (Design 06-11): de foto is een eigen vlak rechts, zo blijft ook een kleiner bronbeeld scherp; op de telefoon boven de tekst, want onder de waas zag je hem niet */
[data-dp] .af-sfeer.zonder-kaart { background: var(--bos); }
@media (min-width: 1101px) {
  [data-dp] .af-sfeer.zonder-kaart .af-sfeer-foto { left: 50%; }
  [data-dp] .af-sfeer.zonder-kaart .af-sfeer-foto::after { background: linear-gradient(90deg, var(--bos) 0%, rgba(22, 44, 28, 0) 38%); }
  [data-dp] .af-sfeer.zonder-kaart .in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  [data-dp] .af-sfeer.zonder-kaart .af-sfeer-tekst { grid-column: 1; }
}
@media (max-width: 1100px) {
  [data-dp] .af-sfeer.zonder-kaart .af-sfeer-foto { position: relative; inset: auto; height: clamp(200px, 40vw, 320px); }
  [data-dp] .af-sfeer.zonder-kaart .af-sfeer-foto::after { background: linear-gradient(180deg, rgba(22, 44, 28, 0) 62%, var(--bos) 100%); }
  [data-dp] .af-sfeer.zonder-kaart .in { padding-block: var(--s3) var(--s5); }
}

/* een eigen tabel uit de data (Design 06-11): rijkoppen als gewone eerste cel; op de telefoon de kaartjes, er valt geen kolom weg */
[data-dp] .tv-kol p.tabel-bijschrift { margin: var(--s1) 0 -4px; font: 700 18px/1.3 var(--f-kop); color: var(--inkt); }
[data-dp] .tabel caption { caption-side: top; text-align: left; font: 700 18px/1.3 var(--f-kop); color: var(--inkt); padding: 0 0 12px; }
[data-dp] .tabel tbody th { padding: 14px 20px; border-bottom: 1px solid var(--lijn); font: 600 15.5px/1.5 var(--f-tekst); letter-spacing: 0; text-transform: none; color: var(--inkt); text-align: left; vertical-align: top; }
[data-dp] .tabel tbody tr:last-child th { border-bottom: 0; }
@media (max-width: 760px) {
  [data-dp] .tabel:not(.smal):not(.compact) caption { display: block; }
  [data-dp] .tabel:not(.smal):not(.compact) tbody th { display: block; grid-column: 1 / -1; padding: 0 0 10px; border-bottom: 1px solid var(--lijn); font: 700 18px/1.3 var(--f-kop); }
}
[data-dp] .tv > .in > .oog { margin-bottom: calc(var(--s2) - var(--s4)); }
/* de oogregel op de plaatskop (0611v): op de foto in mint, zoals de usp's; de tekstkolom heeft zijn eigen rijafstand */
[data-dp] .subkop .oog { margin: 0; color: var(--mint); }
[data-dp] :is(.pt-k2, .pt-k3) .oog { margin-top: var(--s2); }
/* DE UITSLAG VAN DE LABELCHECK (Richard 07-11: alles van live, in de huisstijl; labelcheck-vol.ts). Geen kaart in een kaart: de uitslag ligt in de kaart van het blok, gescheiden met lijnen en een tintvlak. */
.check .kaart > .dg-lc-uit:not(:empty) { order: 5; padding-top: var(--s3); border-top: 1px solid var(--lijn); } /* onder de vinkjes, die horen bij het formulier (zoals live) */
[data-dp] .lck-laden { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--stil); }
[data-dp] .lck { display: grid; gap: var(--s3); text-align: left; }
[data-dp] .lck-boven { display: flex; gap: var(--s3); align-items: flex-start; }
[data-dp] .lck-info { flex: 1; min-width: 0; }
[data-dp] .lck-pijl { flex: none; display: inline-flex; align-items: center; height: 76px; min-width: 112px; padding: 0 34px 0 20px; background: var(--lck-kleur, #94a3b8); border-radius: 12px 0 0 12px; clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%); font: 800 34px/1 var(--f-kop); letter-spacing: -.01em; }
[data-dp] .lck-pijl--leeg { background: var(--warm); color: var(--stil); }
[data-dp] .lck h3 { margin: 0; font: 700 22px/1.25 var(--f-kop); letter-spacing: -.01em; color: var(--inkt); }
[data-dp] .lck-titel:focus { outline: none; }
[data-dp] .lck .lck-plaats { margin: 2px 0 0; color: var(--stil); }
[data-dp] .lck-feiten { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 10px 0 0; padding: 0; }
[data-dp] .lck-feiten li { padding: 4px 12px; border-radius: var(--pill); background: var(--warm); font-size: 14px; color: var(--inkt); }
[data-dp] .lck-status { display: inline-flex; align-items: center; gap: 8px; margin: 12px 0 0; padding: 6px 14px; border-radius: var(--pill); font: 700 15px/1.3 var(--f-tekst); }
[data-dp] .lck-stip { flex: none; width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
[data-dp] .lck-status.is-geldig { background: var(--groen-zacht); color: var(--groen-tekst); }
[data-dp] .lck-status.is-verloopt { background: #FFF4E0; color: #8A5200; }
[data-dp] .lck-status.is-verlopen { background: #FDECEA; color: #A91F14; }
[data-dp] .lck-status.is-geen { background: var(--warm); color: #475569; }
[data-dp] .lck .lck-herkomst { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: var(--stil); }
[data-dp] .lck-herkomst strong { color: var(--inkt); }
[data-dp] .lck-meer { border-top: 1px solid var(--lijn); padding-top: 4px; }
[data-dp] .lck-meer summary { display: flex; align-items: center; gap: 10px; min-height: 48px; font-weight: 600; color: var(--inkt); cursor: pointer; list-style: none; }
[data-dp] .lck-meer summary::-webkit-details-marker { display: none; }
[data-dp] .lck-meer summary::before { content: "+"; flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--groen-zacht); color: var(--groen-tekst); font: 700 18px/1 var(--f-tekst); }
[data-dp] .lck-meer[open] summary::before { content: "–"; }
[data-dp] .lck-meer dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px 20px; margin: 8px 0 0; }
[data-dp] .lck-meer dt { color: var(--stil); font-weight: 400; }
[data-dp] .lck-meer dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
[data-dp] .lck .lck-bron { margin: 12px 0 0; font-size: 13px; color: #475569; }
[data-dp] .lck-advies { padding: var(--s3); border-radius: var(--r-m); background: var(--warm); }
[data-dp] .lck-advies--goed { background: var(--lichtgroen); }
[data-dp] .lck-advies h3 { margin-bottom: 6px; font-size: 20px; }
[data-dp] .lck-advies p { margin: 0; line-height: 1.55; }
[data-dp] .lck-advies .lck-advies-prijs { margin-top: 10px; }
[data-dp] .lck-prijs { font-weight: 800; color: var(--inkt); white-space: nowrap; }
[data-dp] .lck-prijs small { font-weight: 400; font-size: 14px; color: var(--stil); white-space: normal; }
[data-dp] .lck-knoppen { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--s2); }
[data-dp] .lck-knoppen .knop { min-height: 48px; height: auto; padding-block: 10px; white-space: normal; text-align: center; justify-content: center; line-height: 1.25; }
[data-dp] .lck-knoppen a.knop { text-decoration: none; }
[data-dp] .lck-knoppen .knop.blauw { color: #fff; }
[data-dp] .lck-knoppen .knop.lijn-donker { color: var(--inkt); }
[data-dp] .lck-advies .lck-verder { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: var(--s2); font-size: 15px; }
[data-dp] .lck-verder a { color: var(--blauw); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; min-height: 28px; }
[data-dp] .lck-verder a::before { content: "\2192"; display: inline-block; margin-right: 6px; text-decoration: none; }
[data-dp] .lck-buurt { border-top: 1px solid var(--lijn); padding-top: var(--s3); }
[data-dp] .lck-buurt h3 { margin-bottom: 6px; font-size: 20px; }
[data-dp] .lck-buurt p { margin: 0; line-height: 1.55; }
[data-dp] .lck-staven { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 6px; height: 170px; list-style: none; margin: var(--s2) 0 0; padding: 0; }
[data-dp] .lck-staven li { display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; gap: 6px; min-width: 0; height: 100%; }
[data-dp] .lck-baan { display: flex; align-items: flex-end; justify-content: center; width: 100%; height: 100%; padding-top: 22px; box-sizing: border-box; min-height: 0; }
[data-dp] .lck-staaf { position: relative; display: block; width: 100%; max-width: 36px; height: var(--lck-h); }
[data-dp] .lck-staaf::before { content: ""; position: absolute; inset: 0; border-radius: 6px 6px 2px 2px; background: var(--lck-kleur); opacity: .35; }
[data-dp] .lck-staven li.is-hier .lck-staaf::before { opacity: 1; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--inkt); }
[data-dp] .lck-pct { position: absolute; bottom: calc(100% + 5px); left: 50%; transform: translateX(-50%); font-size: 12px; color: #475569; white-space: nowrap; }
[data-dp] .lck-letter { font-size: 12px; font-weight: 700; color: var(--inkt); white-space: nowrap; }
[data-dp] .lck-staven li.is-hier .lck-pct { color: var(--inkt); font-weight: 800; }
[data-dp] .lck-staven li.is-hier .lck-letter { padding: 1px 7px; border-radius: var(--pill); background: var(--inkt); color: #fff; }
[data-dp] .lck-deel { display: flex; align-items: center; gap: 10px; margin: 0; }
[data-dp] .lck-deelknop { min-height: 48px; padding: 0 4px; border: 0; background: none; color: var(--blauw); font: 600 15px/1.3 var(--f-tekst); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; text-align: left; }
[data-dp] .lck-deelok { color: var(--groen-tekst); font-weight: 600; font-size: 14px; }
[data-dp] .lck-melding { padding: 14px 18px; border-radius: var(--r-s); background: #FDECEA; color: #7A271A; }
[data-dp] .lck-melding--kies { background: var(--warm); color: var(--inkt); }
[data-dp] .lck-melding p { margin: 0 0 10px; }
[data-dp] .lck-toev { display: flex; flex-wrap: wrap; gap: 8px; }
[data-dp] .lck-toevknop { min-height: 48px; padding: 0 18px; border: 1.5px solid var(--lijn); border-radius: var(--pill); background: #fff; color: var(--inkt); font: 600 15px/1 var(--f-tekst); cursor: pointer; }
[data-dp] .lck-toevknop:hover { border-color: var(--groen); background: var(--lichtgroen); }
@media (max-width: 600px) {
  [data-dp] .lck-boven { flex-direction: column; gap: var(--s2); }
  [data-dp] .lck-meer dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  [data-dp] .lck-meer dd { margin-bottom: 8px; }
  [data-dp] .lck-advies { padding: var(--s2); }
  [data-dp] .lck-knoppen .knop { width: 100%; }
  /* op smal liggende staven, per letter een regel: elf staande staven worden daar onleesbaar (A++++ tegen A+++) */
  [data-dp] .lck-staven { display: flex; flex-direction: column; gap: 5px; height: auto; }
  [data-dp] .lck-staven li { display: grid; grid-template-columns: 52px minmax(0, 1fr); grid-template-rows: none; align-items: center; justify-items: start; gap: 8px; height: 22px; }
  [data-dp] .lck-letter { grid-column: 1; grid-row: 1; }
  [data-dp] .lck-baan { grid-column: 2; grid-row: 1; justify-content: flex-start; align-items: center; height: 14px; padding: 0 44px 0 0; }
  [data-dp] .lck-staaf { width: var(--lck-h); max-width: none; height: 14px; }
  [data-dp] .lck-staaf::before { border-radius: 2px 6px 6px 2px; }
  [data-dp] .lck-pct { bottom: auto; top: 50%; left: 100%; margin-left: 6px; transform: translateY(-50%); font-size: 13px; }
}
/* /uitslag labelcheck */
/* twee kaartrasters na elkaar in dezelfde band: de tweede heeft een eigen kop, dus ruimte erboven (hub, Design 06-11) */
[data-dp] .ks-sectie.afstand-aansluiten { padding-top: var(--s5); }
/* iconenrij (0611x): een rij van vijf, midden uitgelijnd; 1000 drie naast elkaar; 600 twee, het vijfde punt over de hele breedte */
[data-dp] .ir-lijst { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s4) var(--s3); text-align: center; }
[data-dp] .ir { padding-top: var(--s4); } /* ruimte onder de labelcheck die erboven zweeft */
/* Richard 07-11 (Emmen: "onder heel veel ruimte, boven niks"): in een aansluitende sectie boven en onder dezelfde ruimte, 48 px op desktop en 40 op de telefoon; ook onder de zwevende kaart */
[data-dp] .sectie.afstand-aansluiten:has(> .in.ir) { --ir-ruimte: clamp(40px, 8vw, var(--s5)); padding-bottom: var(--ir-ruimte); }
[data-dp] .sectie.afstand-aansluiten > .in.ir { padding-top: var(--ir-ruimte); }
[data-dp] .ir-lijst > li { display: grid; justify-items: center; align-content: start; gap: 6px; min-width: 0; }
[data-dp] .ir-lijst .rond { margin-bottom: 6px; }
[data-dp] .ir-lijst b { font: 700 16px/1.3 var(--f-tekst); color: var(--inkt); }
[data-dp] .pt-prijsblok .in > .knop { margin-top: var(--s3); } /* het veld knop op de prijzen (plaats/blokken.ts) */
[data-dp] .ir-sub { font-size: 14px; line-height: 1.4; color: #475569; }
@media (max-width: 1000px) { [data-dp] .ir-lijst { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { [data-dp] .ir-lijst { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3) var(--s2); } [data-dp] .ir-lijst > li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
/* verbruik met drie tegels (0611v): de laatste over de volle breedte, geen gat in het raster */
[data-dp] .pt-tegels > div:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* uitklapblok in het tekstvak (Richard 06-11): op de telefoon in de stijl van de FAQ, op breed geen kop en gewoon open */
.tv-klap > summary { display: none; }
.tv-klap-in { display: grid; gap: var(--s4); }
@media (max-width: 760px) {
  .tv-klap { background: #fff; border-radius: var(--r-m); padding: 0 var(--s3); }
  .bg-wit .tv-klap { background: var(--warm); }
  .tv-klap > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); min-height: 48px; padding: 12px 0; font: 700 17px/1.3 var(--f-kop); color: var(--inkt); cursor: pointer; list-style: none; }
  .tv-klap > summary::-webkit-details-marker { display: none; }
  .tv-klap > summary::after { content: "+"; flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--groen-zacht); color: var(--groen-tekst); font: 700 18px/1 var(--f-tekst); transition: transform .2s; }
  .tv-klap[open] > summary::after { transform: rotate(45deg); }
  .tv-klap-in { padding-bottom: var(--s3); display: grid; gap: var(--s3); }
}
/* opeenvolgende uitklapblokken (coördinator 06-11): op de telefoon samen één sectie, als de lijst van de FAQ, 10 px ertussen; breed elk zijn eigen sectie (schema.ts › klapStand) */
@media (max-width: 760px) {
  [data-dp] .tv-klapgroep { background: var(--warm); }
  [data-dp] .tv-klapgroep .tv-klap { background: #fff; }
  [data-dp] .klap-eerste { padding-bottom: 5px; }
  [data-dp] .klap-midden { padding-block: 5px; }
  [data-dp] .klap-laatste { padding-top: 5px; }
}
/* /uitklapblok */

/* een lange samenstelling in de stift (warmteverliesberekening) breekt in plaats van buiten de kolom te lopen: gemeten +37 px op 390 en de kop +30 op 1440 */
[data-dp] :is(h1, h2) .stift { white-space: normal; overflow-wrap: break-word; max-width: 100%; -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* tekstvak (Design 06-11, na-golf1/pagina/tekstvak/voorbeeld.html): de vorm van live op de lange tekstpagina's */
[data-dp] .tv .in { display: grid; gap: var(--s4); }
[data-dp] .tv-rij { display: grid; gap: var(--s5); align-items: start; }
[data-dp] .tv-gelijk { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
[data-dp] .tv-smal-breed { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
[data-dp] .tv-breed-smal { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
[data-dp] .tv-vol .tv-kol { max-width: 760px; }
[data-dp] .tv-kol { min-width: 0; display: grid; gap: var(--s2); align-content: start; }
[data-dp] .tv-kol > h2, [data-dp] .tv-kol h3 { margin: 0; }
[data-dp] .tv-kol h3 { margin-top: var(--s2); font: 700 20px/1.3 var(--f-kop); }
[data-dp] .tv-kol :is(p, ol > li) { color: var(--stil); }
[data-dp] .tv-kol ol { display: grid; gap: 8px; padding-left: 20px; margin: 0; }
[data-dp] .tv-kol > img { width: 100%; height: auto; aspect-ratio: 4 / 3; max-height: 520px; object-fit: cover; border-radius: var(--r-l); } /* vaste vorm: het beeld laadt lui, zonder verschuiving */
/* een kop in een halve kolom: lange samenstellingen (spuiventilatieberekening) lopen niet in de buurkolom */
[data-dp] :is(.tv-gelijk, .tv-smal-breed, .tv-breed-smal) .tv-kol > h2 { font-size: clamp(26px, 2.5vw, 34px); line-height: 1.12; overflow-wrap: break-word; hyphens: auto; text-wrap: balance; }
[data-dp] .tv-kol td { overflow-wrap: break-word; }
[data-dp] .tv-kol > :not(h2, h3, img) + h2 { margin-top: calc(var(--s4) - var(--s2)); } /* kop na een alinea: --s4; een h3 heeft dat al */
/* de check-kaart loopt mee in de kolom (coördinator 06-11, Emmen 1440: de linkerkolom liep 800 px door) */
@media (min-width: 1024px) { [data-dp] .pt-twee > .pt-check:not(.te-hoog) { position: sticky; top: calc(var(--kop-rand) + var(--kop-balk) + 16px); } [data-dp] .pt-twee > .pt-check { align-self: start; } }
/* compacte tabel op de telefoon: de kop op dezelfde marge als de cellen; zijn 20 px dreef de tabel 4 px buiten de houder */
@media (max-width: 480px) { [data-dp] .tv-kol .tabel.compact th { padding-inline: 10px; } }
[data-dp] .kader { background: #fff; border-radius: var(--r-m); padding: var(--s3); display: grid; gap: 8px; }
[data-dp] .bg-wit .kader { background: var(--warm); }
[data-dp] .ks-actie .knoppen { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
[data-dp] .ks-actie { margin-top: auto; }
[data-dp] .ks-actie .knop { min-height: 48px; padding-inline: 18px; font-size: 15px; }
@media (max-width: 1000px) { [data-dp] .tv-rij { grid-template-columns: minmax(0, 1fr); } [data-dp] .tv-kol > img { max-height: 320px; } }
/* de strook op de labelpagina's (Design 06-11): een vlak, geen gekleurde rand */
[data-dp] .lst-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s5); align-items: center; }
[data-dp] .lst-vlak { background: #fff; border-radius: var(--r-m); padding: var(--s2) var(--s3); display: grid; gap: 4px; }
[data-dp] .bg-wit .lst-vlak { background: var(--warm); }
[data-dp] .lst-prijs { font: 800 clamp(28px, 2.6vw, 36px)/1.15 var(--f-kop); color: var(--groen-tekst); }
[data-dp] .lst-sub { font: 400 15px/1.4 var(--f-tekst); color: var(--stil); }
[data-dp] .lst-links .knoppen { margin-top: var(--s2); }
[data-dp] .lst-letters { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; align-items: center; }
[data-dp] .lst-letter { height: 52px; display: grid; place-items: center; font: 800 15px/1 var(--f-kop); border-radius: 6px; opacity: .55; }
[data-dp] .lst-letter.nu { height: 64px; font-size: 22px; opacity: 1; box-shadow: 0 8px 18px -10px rgba(22, 44, 28, .5); }
[data-dp] .lst-regel { margin-top: var(--s2); text-align: center; color: var(--stil); font-size: 15px; }
@media (max-width: 1000px) { [data-dp] .lst-in { grid-template-columns: minmax(0, 1fr); gap: var(--s3); } }
/* twee knoppen in de tussen-actie, de pillen bij de labeluitleg, 4 keuzekaarten */
[data-dp] .mc-knoppen { display: flex; flex-wrap: wrap; gap: 12px; }
[data-dp] .mini-cta .knop.knop2 { background: transparent; box-shadow: inset 0 0 0 2px var(--inkt); }
[data-dp] .mini-cta .knop.knop2:hover { background: rgba(255, 255, 255, .25); }
@media (max-width: 760px) { [data-dp] .mc-knoppen { width: 100%; } }
[data-dp] .lb-pillen { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: var(--s3) 0 0; }
[data-dp] .lb-pil { display: inline-flex; align-items: center; min-height: 48px; padding: 0 16px; border-radius: var(--pill); background: #fff; color: var(--inkt); font: 600 15px/1 var(--f-tekst); box-shadow: inset 0 0 0 1.5px var(--lijn); }
[data-dp] a.lb-pil:hover { box-shadow: inset 0 0 0 1.5px var(--groen); background: var(--lichtgroen); }
[data-dp] .lb-pil.nu { background: var(--inkt); color: #fff; box-shadow: none; }
@media (min-width: 1101px) { [data-dp] .opties.vier { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* de bouwer van de widget (Design 06-11) */
[data-dp] .wb-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s4); align-items: start; }
[data-dp] .wb-paneel { background: #fff; border-radius: var(--r-l); padding: var(--s4); display: grid; gap: var(--s3); }
[data-dp] .bg-wit .wb-paneel { background: var(--warm); }
[data-dp] .wb-veld { display: grid; gap: 8px; }
[data-dp] .wb-veld > label { font-weight: 600; }
[data-dp] .wb-hint { font-weight: 400; color: var(--stil); font-size: 14px; }
[data-dp] :is(.wb-veld, .wb-code) :is(input[type="text"], textarea) { width: 100%; min-height: 48px; border: 1.5px solid var(--lijn); border-radius: var(--r-s); padding: 10px 14px; font: 500 16px/1.4 var(--f-tekst); background: var(--warm); color: var(--inkt); }
[data-dp] .wb-kleur { display: flex; gap: 10px; align-items: center; }
[data-dp] .wb-kleur input[type="color"] { flex: none; width: 48px; height: 48px; padding: 2px; border: 1.5px solid var(--lijn); border-radius: var(--r-s); background: #fff; cursor: pointer; }
[data-dp] .wb-vink { display: flex; align-items: center; gap: 10px; min-height: 40px; font-weight: 500; cursor: pointer; }
[data-dp] .wb-vink input { width: 20px; height: 20px; accent-color: var(--groen-diep); }
[data-dp] .wb-veld input[type="range"] { width: 100%; min-height: 32px; accent-color: var(--groen-diep); }
[data-dp] .wb-rechts { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s3); min-width: 0; }
[data-dp] .wb-voorbeeld { background: #fff; border-radius: var(--r-l); padding: var(--s3); min-height: 320px; } /* de hele tool, zoals de partner hem krijgt; geen schuifvak */
[data-dp] .bg-wit .wb-voorbeeld { background: var(--warm); }
[data-dp] .wb-code { background: #fff; border-radius: var(--r-l); padding: var(--s3); display: grid; gap: 12px; justify-items: start; }
[data-dp] .wb-code label { font-weight: 600; }
[data-dp] .wb-code textarea { font: 400 14px/1.5 ui-monospace, Consolas, monospace; }
@media (max-width: 1000px) { [data-dp] .wb-in { grid-template-columns: minmax(0, 1fr); } [data-dp] .wb-code { order: -1; } }

/* REKENTOOL (Richard 06-11): de rekentool op een duraplus-site in de huisstijl. Alleen stijl; de kern, de teksten en de bundel blijven gelijk. De css van de tool heeft id-regels en !important,
   daarom .dpc-vak #dpc. Dit blad laadt alleen op een duraplus-site: de widget (shadow root) en andere sites raken dit niet. De reviewbalk staat op desktop deels buiten #dpc: html[data-zw~="rekentool"]. */
.dpc-vak #dpc { max-width: 1280px; --dpc-blauw: var(--groen-tekst); --dpc-blauw-diep: var(--groen-diep); --dpc-groen: var(--groen); --dpc-groen-diep: var(--groen-diep); --dpc-groen-tekst: var(--groen-tekst); --dpc-inkt: var(--inkt); --dpc-stil: var(--stil); font-family: var(--f-tekst); color: var(--inkt); }
.dpc-vak #dpc :is(button, input, select, textarea) { font-family: var(--f-tekst); }
.dpc-vak #dpc :is(.dpc-head-t, .dpc-sim-h, .dpc-area-h, .dpc-betr-h, .dpc-rvblok h3, .dpc-area-col h4) { font-family: var(--f-kop); color: var(--inkt); letter-spacing: -.01em; }
.dpc-vak #dpc .dpc-head-t .g { color: var(--groen-tekst); }
.dpc-vak #dpc :is(.dpc-head-s, .dpc-sub, .dpc-status, .dpc-sim-q, .dpc-area-sub, .dpc-addr-note, .dpc-disc, .dpc-comp-labels, .dpc-mix-hint, .dpc-area-foot, .dpc-area-col .n, .dpc-share-lbl, .dpc-share-addr span, .dpc-cmphead span) { color: var(--stil); }
.dpc-vak #dpc :is(.dpc-comp-labels, .dpc-mix-hint, .dpc-disc, .dpc-share-lbl, .dpc-share-addr, .dpc-addr-note, .dpc-area-foot, .dpc-area-col .n, .dpc-info) { font-size: 12px; }
/* velden als de labelcheck: warm vlak, de lijn, --r-s; 16 px tegen de zoom op iOS */
.dpc-vak #dpc .dpc-addr input:not([type="checkbox"]) { height: 52px; border: 1.5px solid var(--lijn); border-radius: var(--r-s); padding: 0 16px; font: 500 16px var(--f-tekst); background: var(--warm); color: var(--inkt); }
.dpc-vak #dpc .dpc-addr input:not([type="checkbox"]):focus { border-color: var(--groen) !important; background: #fff; box-shadow: 0 0 0 3px rgba(57, 181, 74, .2) !important; }
.dpc-vak #dpc #dpcTv { width: 5.75rem; }
/* op een telefoon vullen de drie velden samen de rij, zoals de knop eronder; "Toev." past dan */
@media (max-width: 520px) {
  .dpc-vak #dpc .dpc-addr input:not([type="checkbox"]) { padding: 0 12px; min-width: 0; }
  .dpc-vak #dpc #dpcPc { flex: 5 1 0; width: auto; }
  .dpc-vak #dpc :is(#dpcNr, #dpcTv) { flex: 3 1 0; width: auto; }
}
.dpc-vak #dpc .dpc-addr input::placeholder, .dpc-vak #dpc #dpcTv::placeholder { color: var(--stil); font-weight: 500; opacity: 1; }
/* knoppen als .knop.blauw */
.dpc-vak #dpc :is(.dpc-addr button, .dpc-cta-solid, .dpc-of-cta, .dpc-mjump) { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 8px 26px; border: 0; border-radius: var(--pill); font: 600 16px/1.2 var(--f-tekst); background: var(--blauw); color: #fff !important; box-shadow: none; text-decoration: none; }
.dpc-vak #dpc :is(.dpc-addr button, .dpc-cta-solid, .dpc-of-cta, .dpc-mjump):hover { background: var(--blauw-diep); color: #fff; }
.dpc-vak #dpc .dpc-cta-solid { display: flex; width: 100%; }
.dpc-vak #dpc .dpc-mjump { min-height: 48px; padding: 8px 20px; font-size: 15px; }
/* de tweede knop: wit met de lijn */
.dpc-vak #dpc :is(.dpc-cta:not(.dpc-cta-solid), .dp-vel-knop, .dpc-reset) { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 20px; border: 1.5px solid var(--lijn); border-radius: var(--pill); font: 600 15px/1.2 var(--f-tekst); background: #fff; color: var(--inkt); }
.dpc-vak #dpc .dpc-reset { display: inline-flex; }
.dpc-vak #dpc :is(.dpc-cta:not(.dpc-cta-solid), .dp-vel-knop, .dpc-reset):hover { background: var(--warm); border-color: var(--inkt); color: var(--inkt); }
.dpc-vak #dpc .dp-vel-knop[aria-disabled="true"]:hover { background: #fff; border-color: var(--lijn); }
/* keuzes als de keuzekaarten van de configurator: wit met de lijn, gekozen in de groene tint */
.dpc-vak #dpc .dpc-opts button { min-height: 48px; padding: 8px 14px; border: 1.5px solid var(--lijn); border-radius: var(--r-s); background: #fff; color: var(--inkt); font: 500 15px/1.25 var(--f-tekst); box-shadow: none; }
.dpc-vak #dpc .dpc-opts button:hover { border-color: var(--groen); background: var(--lichtgroen); }
.dpc-vak #dpc .dpc-opts button.on { background: var(--groen-zacht); border-color: var(--groen); color: var(--inkt); box-shadow: none; }
.dpc-vak #dpc .dpc-opts button :is(.dpc-rc, .dpc-wp) { font-size: 12px; opacity: 1; color: var(--stil); }
.dpc-vak #dpc .dpc-vorm button { color: var(--inkt); }
.dpc-vak #dpc .dpc-vorm button svg, .dpc-vak #dpc .dpc-vorm button.on svg { color: var(--groen-diep); }
.dpc-vak #dpc .dpc-vorm button em { font-size: 12px; opacity: 1; color: var(--stil); }
.dpc-vak #dpc .dpc-lbl { color: var(--inkt); font: 600 16px/1.3 var(--f-tekst); }
.dpc-vak #dpc .dpc-area-toggle { background: var(--warm); }
.dpc-vak #dpc .dpc-area-toggle button { min-height: 44px; font: 600 14px/1.2 var(--f-tekst); color: var(--stil); }
.dpc-vak #dpc .dpc-area-toggle button.on { background: var(--groen-zacht); color: var(--inkt); box-shadow: none; }
/* schuiven en driehoek in de kleur van de site */
.dpc-vak #dpc .dpc-comprange { background: linear-gradient(90deg, var(--groen-zacht), var(--groen)); }
.dpc-vak #dpc .dpc-comprange::-webkit-slider-thumb { border-color: var(--groen-diep); box-shadow: 0 2px 6px rgba(22, 44, 28, .3); }
.dpc-vak #dpc .dpc-comprange::-moz-range-thumb { border-color: var(--groen-diep); box-shadow: 0 2px 6px rgba(22, 44, 28, .3); }
.dpc-vak #dpc .dpc-slider input[type=range] { accent-color: var(--groen-diep); }
.dpc-vak #dpc :is(.dpc-slval, .dpc-comp-out b, .dpc-mix-out b, .dpc-area-col .res b, .dpc-prefill b, .dpc-area-bars .b.you u) { color: var(--groen-tekst); }
/* vlakken: de kaarten van de site */
.dpc-vak #dpc :is(.dpc-grid, .dpc-addr, .dpc-areacmp, .dpc-betr) { background: #fff; border: 0; border-radius: var(--r-l); box-shadow: 0 22px 44px -26px rgba(22, 44, 28, .42), 0 2px 6px rgba(22, 44, 28, .06); }
.dpc-vak #dpc :is(.dpc-card, .dpc-rvblok, .dpc-compwrap, .dpc-mix) { background: var(--warm); border: 0; border-radius: var(--r-m); box-shadow: none; }
.dpc-vak #dpc :is(.dpc-prefill, .dpc-sim, .dpc-addr-benefit, .dpc-trust, .dpc-official.opportunity) { background: var(--lichtgroen); border: 0; border-radius: var(--r-s); color: var(--inkt); }
.dpc-vak #dpc :is(.dpc-sim-p, .dpc-trust-body, .dpc-betr-body, .dpc-official.opportunity) { color: var(--inkt); }
.dpc-vak #dpc :is(.dpc-trust > summary, .dpc-addr-benefit, .dpc-official.opportunity .dpc-of-t) { color: var(--groen-tekst); }
.dpc-vak #dpc .dpc-trust-ar { color: var(--groen-diep); }
.dpc-vak #dpc .dpc-info { background: var(--groen-zacht); color: var(--groen-tekst); } /* 07-11: groen-diep haalde 3,62:1 op groen-zacht */
.dpc-vak #dpc .dpc-sh { background: var(--groen-tekst); color: #fff; } /* deelknoppen allemaal groen (Richard 07-11): X en mail werden donker door de vertaling */
.dpc-vak #dpc .dpc-meter span[data-l="F"] { color: #111827; } /* de F op zijn labelkleur: 4,39:1 met de inkt, nu 5:1 */
.dpc-vak #dpc :is(.dpc-info:hover, .dpc-info.on) { background: var(--groen-diep); color: #fff; }
.dpc-vak #dpc .dpc-area-foot a { color: var(--groen-tekst); }
.dpc-vak #dpc .dpc-proof { border-color: var(--lijn); color: var(--stil); }
.dpc-vak #dpc .dpc-loading, .dpc-vak #dpc .dpc-skel-lbl { color: var(--groen-tekst) !important; }
.dpc-vak #dpc .dpc-spin { border-color: var(--lijn); border-top-color: var(--groen-diep); }
.dpc-vak #dpc .dpc-loadbar i { background: linear-gradient(90deg, var(--groen), var(--groen-diep)); }
.dpc-vak #dpc #dpc3d { background: linear-gradient(180deg, var(--lichtgroen) 0%, var(--warm) 100%); border-radius: var(--r-m); }
.dpc-vak #dpc :is(button, a, input, select, summary):focus-visible { outline: 2px solid var(--groen-diep); outline-offset: 2px; }
.dpc-vak #dpc .dpc-addr input:not([type="checkbox"]):focus-visible { outline: 2px solid var(--groen-diep); outline-offset: 2px; }
/* de reviewbalk van de tool */
html[data-zw~="rekentool"] :is(.dpcrv-knop) { min-height: 48px; padding: 0 22px; border-radius: var(--pill); background: var(--blauw); font: 600 16px/1.2 var(--f-tekst); color: #fff; }
html[data-zw~="rekentool"] .dpcrv-knop:hover { background: var(--blauw-diep); }
html[data-zw~="rekentool"] .dpcrv-chip { min-height: 48px; padding: 6px 14px; border: 1.5px solid var(--lijn); border-radius: var(--r-s); font: 500 15px/1.25 var(--f-tekst); color: var(--inkt); }
html[data-zw~="rekentool"] .dpcrv-chip[aria-pressed="true"] { background: var(--groen-zacht); border-color: var(--groen); color: var(--inkt); }
html[data-zw~="rekentool"] :is(.dpcrv-tekst, .dpcrv-pveld) { border: 1.5px solid var(--lijn); border-radius: var(--r-s); background: var(--warm); font: 500 16px/1.4 var(--f-tekst); color: var(--inkt); }
html[data-zw~="rekentool"] :is(.dpcrv-tekst, .dpcrv-pveld):focus { border-color: var(--groen); background: #fff; }
html[data-zw~="rekentool"] :is(.dpcrv-kop, .dpcrv-vraag, .dpcrv-lbl, .dpcrv-sub, .dpcrv-bedankt) { font-family: var(--f-tekst); }
html[data-zw~="rekentool"] .dpcrv-nunniet { min-height: 48px; color: var(--stil); font: 600 15px/1.2 var(--f-tekst); }
html[data-zw~="rekentool"] .dpcrv-binnen { background: var(--warm); border-radius: var(--r-m); }
html[data-zw~="rekentool"] .dpcrv-dbalk .dpcrv-binnen { background: #fff; }
html[data-zw~="rekentool"] .dpcrv-plijst li[aria-selected="true"], html[data-zw~="rekentool"] .dpcrv-plijst li[role="option"]:hover { background: var(--lichtgroen); color: var(--inkt); }
html[data-zw~="rekentool"] .dpcrv-controle summary { color: var(--groen-tekst); }
.dpc-vak #dpc :is([stroke="#0B62BC" i], [stroke="#0A539F" i]) { stroke: var(--groen-diep); }
.dpc-vak #dpc :is([stroke="#c5d8cb" i], [stroke="#bcd3ec" i], [stroke="#c2d6c7" i]) { stroke: var(--lijn); }
.dpc-vak #dpc :is([fill="#edf3fb" i], [fill="#eef5fe" i], [fill="#e7f0fb" i], [fill="#eaf3ec" i]) { fill: var(--warm); }
.dpc-vak #dpc :is([fill="#f6faff" i]) { fill: var(--wit); }
.dpc-vak #dpc :is([fill="#0B62BC" i], [fill="#0A539F" i]) { fill: var(--groen-tekst); }
.dpc-vak #dpc :is([fill="#5b86b6" i]) { fill: var(--stil); }
/* inline grijs (de waarde van een schuif, optioneel): haalt op wit de 4,5:1 niet */
.dpc-vak #dpc :is([style*="#9aa2ab" i], [style*="rgb(154, 162, 171)"], [style*="#8a929c" i], [style*="rgb(138, 146, 156)"], [style*="#7a828c" i], [style*="rgb(122, 130, 140)"], [style*="#6b7480" i], [style*="rgb(107, 116, 128)"], [style*="#5b6470" i], [style*="rgb(91, 100, 112)"]) { color: var(--stil) !important; }
.dpc-vak #dpc :is([style*="#111827" i], [style*="rgb(17, 24, 39)"]) { color: var(--inkt) !important; }
.dpc-vak #dpc :is([style*="#1d6b33" i], [style*="rgb(29, 107, 51)"]) { color: var(--groen-tekst) !important; }
.dpc-vak #dpc :is(#dpcBadge, #dpcMBadge)[style*="rgb(199, 206, 214)"], .dpc-vak #dpc :is(#dpcBadge, #dpcMBadge)[style*="#c7ced6" i] { background: var(--lijn) !important; }
.dpc-vak #dpc :is(input, .dpcrv-ster) { color: var(--inkt); }
html[data-zw~="rekentool"] .dpcrv :is(input, .dpcrv-ster) { color: var(--inkt); border-color: var(--lijn); }
.dpc-vak #dpc .dpc-mix-corner { fill: var(--groen-tekst) !important; } /* de tool zet de kleur per hoek in het script */
.dpc-vak #dpc .dpc-meter span { font-size: 12px; letter-spacing: -.08em; } /* keuring: minstens 12 px; de plussen passen met een smallere afstand */
.dpc-vak #dpc :is(.dpc-cmpbars .b u, .dpc-area-bars .b u) { font-size: 12px; letter-spacing: -.08em; }
/* Richard 07-11: geen kaart in een kaart. De hele sectie is zand tot aan de randen, de witte kaarten van de tool liggen daar direct op; "dat gaf rust en was mooi" */
html[data-zw~="rekentool"] .dpc-vak { background: var(--warm); }
/* "Hoe betrouwbaar": de knop op zijn eigen breedte, geen uitgerekte balk */
.dpc-vak #dpc .dpc-betr .dpc-betr-cta { display: inline-flex; width: auto; }
/* /REKENTOOL */

/* bron: duraplus-2/ontwerp/duraplus.css · sha256 6d9fcf8dd83309b2d8ad70bbcd5c63ef921dbdaf4defdf6b4d36c87ebe05fe77 · momentopname C3-golf1g + aanvulling vulling-0611n · niet met de hand bijwerken (tools/duraplus/stijl.mjs) */
/* DuraPlus 2.0 — gedeelde stijl (bron van de stijlgids). Alle mockuppagina's laden dit bestand. */
/* ── DuraPlus 2.0 · standaard (zie stijlgids.html) ─────────────────────────────────────── */
:root{
  --groen:#39B54A; --groen-diep:#2C8F3A; --groen-tekst:#237A34; /* kleine groene tekst: ≥ 4,5:1 op wit 5,38 · warm 4,89 · lichtgroen 4,95 · groen-zacht 4,73 (keuring 04-11); groen-diep blijft voor iconen, vlakken en grote cijfers */ --groen-zacht:#E7F4E4;
  --blauw:#0B62BC; --blauw-diep:#084E97;
  --bos:#162C1C; /* alleen als overlay over foto's */ --lichtgroen:#EEF8F0;
  --wit:#FFFFFF; --warm:#F7F4EC; --lijn:#E4DED0; --voet:#EFEBE1; --voet-lijn:#D8D1C0;
  --inkt:#1A2A20; --stil:#5E6B62;
  /* officiële logokleuren (Huisstijl/Logo, "Gebruikte kleuren DuraPlus logo.pdf"); --groen en --blauw hierboven zijn 39B54A en 0B62BC */
  --logo-lichtgroen:#8CC63F; --logo-geelgroen:#D9E021; --logo-lichtblauw:#3EBDF3;
  --logogeel:#FFDE28; --logogeel-diep:#FBB03B; /* het merkplus is ALTIJD geel (Richard 03-11) */
  --merkplus:linear-gradient(90deg,var(--logogeel-diep),var(--logogeel)); /* zoals Plus.svg: links FBB03B, rechts FFDE28 */
  --r-s:12px; --r-m:20px; --r-l:28px; --pill:999px;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px;
  --sectie:clamp(64px,8vw,120px); --rand:clamp(16px,4vw,24px); --max:1328px; /* blokbreedte min(1280px, 100% - 48px) (kop D, Richard 06-11) */
  --f-kop:'Rubik',system-ui,sans-serif; --f-tekst:'Figtree',system-ui,sans-serif;
  --zacht:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font:400 17px/1.6 var(--f-tekst);color:var(--inkt);background:var(--warm);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
.in{max-width:var(--max);margin:0 auto;padding-inline:var(--rand)}
.ico{width:18px;height:18px;flex:none}
.sectie{padding-block:var(--sectie)}
.bg-wit{background:var(--wit)}.bg-warm{background:var(--warm)}.bg-lichtgroen{background:var(--lichtgroen)}

/* Typografie: één schaal */
h1{font:900 clamp(40px,5.2vw,74px)/1 var(--f-kop);letter-spacing:-.035em;text-wrap:balance}
h2{font:800 clamp(32px,4vw,52px)/1.04 var(--f-kop);letter-spacing:-.03em;text-wrap:balance}
h3{font:700 21px/1.2 var(--f-kop);letter-spacing:-.01em}
.oog{font:600 13px/1 var(--f-tekst);letter-spacing:.12em;text-transform:uppercase;color:var(--groen-tekst);margin-bottom:var(--s2)}
.intro{color:var(--stil);max-width:60ch;font-size:18px}

/* Markeerstift: trekt zich in (hero na laden, verderop bij in beeld komen) */
.stift{position:relative;white-space:nowrap;z-index:0}
.stift::after{content:"";position:absolute;left:-.04em;right:-.04em;bottom:.04em;height:.2em;background:var(--groen);border-radius:3px;z-index:-1;transform-origin:left}
.hero .stift::after{animation:streep 1s .6s var(--zacht) both}
.stift.wacht::after{transform:scaleX(0)}.stift.speel::after{animation:streep 1s .15s var(--zacht) both}
@keyframes streep{from{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.stift::after,.stift.wacht::after{animation:none!important;transform:none}}

/* Knoppen: één vorm, drie soorten */
.knop{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;border-radius:var(--pill);font:600 16px/1 var(--f-tekst);border:0;cursor:pointer;transition:transform .2s var(--zacht),background .2s}
.knop:active{transform:translateY(1px) scale(.98)}
.knop.blauw{background:var(--blauw);color:#fff}.knop.blauw:hover{background:var(--blauw-diep)}
.knop.wit{background:#fff;color:var(--inkt)}.knop.wit:hover{background:var(--warm)}
.knop.lijn{border:1.5px solid rgba(255,255,255,.55);color:#fff}.knop.lijn:hover{background:rgba(255,255,255,.1)}
.knop.lijn-donker{border:1.5px solid var(--inkt);color:var(--inkt)}.knop.lijn-donker:hover{background:#fff}

/* ── Kop ── */
.topbalk{font-size:14px;color:var(--stil)}
.topbalk .in{display:flex;align-items:center;justify-content:space-between;height:40px}
.topbalk ul{display:flex;gap:var(--s4);list-style:none;padding:0}
.topbalk li{display:flex;align-items:center;gap:6px}.topbalk li .ico{color:var(--groen);width:16px}
.reviews{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--inkt)}
.reviews .google{height:21px;width:auto}
.sterren{display:flex;gap:2px;color:#F5B301}.sterren svg{width:14px;height:14px}
.nav{position:sticky;top:0;z-index:20;padding-top:var(--s1)}
.nav .balk{display:flex;align-items:center;gap:var(--s4);height:72px;padding:0 var(--s2) 0 var(--s3);background:#fff;border-radius:var(--r-m);box-shadow:0 10px 30px -18px rgba(22,48,31,.35)}
.nav .logo img{height:34px;width:auto}
.nav .links{display:flex;gap:var(--s4);margin-left:auto;font:500 16px/1 var(--f-tekst)}
.nav .links a{padding:8px 0}.nav .links a:hover{color:var(--groen-tekst)}
.nav .knop{height:46px}
.burger{display:none;width:46px;height:46px;border-radius:var(--r-s);background:var(--warm);place-items:center;margin-left:auto;border:0}

/* ── Hero ── */
.hero{position:relative;margin-top:calc(-72px - var(--s1));padding-top:calc(72px + var(--s1))}
.hero .foto{position:absolute;inset:0;overflow:hidden}
.hero .foto img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero .foto::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(22,48,31,.9) 0%,rgba(22,48,31,.72) 34%,rgba(22,48,31,.12) 64%,rgba(22,48,31,0) 80%),linear-gradient(0deg,rgba(22,48,31,.55),rgba(22,48,31,0) 30%)}
.hero .in{position:relative;padding-top:clamp(72px,9vw,128px);padding-bottom:clamp(120px,12vw,168px)}
.hero .tekst{max-width:780px;color:#fff;display:grid;gap:var(--s3)}
.hero .kruimel{font:500 14px/1 var(--f-tekst);color:rgba(255,255,255,.75)}
.hero p.lead{font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:rgba(255,255,255,.88);max-width:58ch}
.hero .knoppen{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s1)}

/* Labelcheck over de onderrand */
.check{position:relative;z-index:2;margin-top:calc(-1 * clamp(64px,7vw,88px))}
.check.in-inhoud{margin-top:0} /* labelcheck als gewone sectie in de inhoud (home 03-11: niet meer over de hero) */
.check .kaart{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:var(--s4);align-items:center;background:#fff;border-radius:var(--r-l);padding:var(--s4) var(--s5);box-shadow:0 30px 60px -36px rgba(22,48,31,.45)}
.check h2{font:700 24px/1.2 var(--f-kop);letter-spacing:-.01em}
.check .sub{color:var(--stil);font-size:15px;margin-top:4px}
.check form{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.7fr) minmax(0,.45fr) auto;gap:12px} /* postcode · huisnummer · toevoeging (12A, 12-2; optioneel, C2) · knop */
.check form:not(:has(.veld-toev)){grid-template-columns:minmax(0,1.2fr) minmax(0,.7fr) auto} /* toevoeging uit */
.check .veld-toev input{padding:0 12px}
.veld{display:grid;gap:6px}.veld label{font:600 13px/1 var(--f-tekst);color:var(--stil)}
.veld input,.veld select{width:100%;min-width:0;height:52px;border:1.5px solid var(--lijn);border-radius:var(--r-s);padding:0 16px;font:500 16px var(--f-tekst);background:var(--warm);color:var(--inkt)}
.veld input:focus,.veld select:focus{outline:none;border-color:var(--groen);background:#fff}
.check form .knop{align-self:end}
.vertrouwen{padding-block:var(--s5) 0}
.vertrouwen ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.vertrouwen li{display:flex;align-items:center;gap:12px;font:600 15px/1.3 var(--f-tekst)}
.rond{width:40px;height:40px;border-radius:50%;background:var(--groen-zacht);color:var(--groen-diep);display:grid;place-items:center;flex:none}

/* ── Sectiekop ── */
.kopje{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4);align-items:end;margin-bottom:var(--s5)}
.kopje p{color:var(--stil);max-width:52ch}

/* ── Diensten ── */
.raster{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.dienst{background:#fff;border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--zacht),box-shadow .3s}
.dienst:hover{transform:translateY(-3px);box-shadow:0 24px 48px -30px rgba(22,48,31,.4)}
.dienst .beeld{aspect-ratio:4/3;overflow:hidden}.dienst .beeld img{width:100%;height:100%;object-fit:cover}
.dienst .txt{padding:var(--s4);display:grid;gap:8px;flex:1;align-content:start}
.dienst .label{font:600 13px/1 var(--f-tekst);color:var(--groen-tekst)}
.dienst p{color:var(--stil);font-size:15.5px;line-height:1.55}
.meer{margin-top:auto;padding-top:var(--s2);display:flex;align-items:center;gap:8px;font:600 15px/1 var(--f-tekst);color:var(--blauw)}
.dienst.groot{grid-row:span 2}
.dienst.groot .beeld{aspect-ratio:auto;flex:1;min-height:280px}
.dienst.groot .txt{flex:none}.dienst.groot h3{font-size:28px}
/* accentkaart: donkergroen mag als kaart in een raster (niet als sectie-achtergrond), besluit Richard 01-11 */
.dienst.bos{background:var(--bos);color:#fff}.dienst.bos p{color:rgba(255,255,255,.78)}.dienst.bos .meer,.dienst.bos .label{color:var(--mint,#9BE3A5)}
.dienst.breed{grid-column:span 2;flex-direction:row}
.dienst.breed .beeld{aspect-ratio:auto;width:46%;flex:none}

/* ── Tekst | foto (om en om) ── */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:center}
.duo .foto{border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3}.duo .foto img{width:100%;height:100%;object-fit:cover}
.duo .txt{display:grid;gap:var(--s3)}
.duo .txt p{color:var(--stil)}
.punten{list-style:none;padding:0;display:grid;gap:var(--s3);margin-top:var(--s1)}
.punten li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--s2);align-items:start}
.punten strong{display:block;font:700 18px/1.3 var(--f-kop);margin-bottom:4px}
.punten p{font-size:15.5px}

/* ── Stappen ── */
.stappen{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3);counter-reset:s;position:relative}
.stappen::before{content:"";position:absolute;left:28px;right:28px;top:28px;height:2px;background:repeating-linear-gradient(90deg,var(--lijn) 0 8px,transparent 8px 14px)}
.stappen li{position:relative;display:grid;gap:12px;align-content:start}
.stappen .nr{width:56px;height:56px;border-radius:50%;background:var(--groen-zacht);display:grid;place-items:center;font:800 22px/1 var(--f-kop);color:var(--groen-tekst);position:relative}
.stappen li:last-child .nr{background:var(--groen);color:var(--inkt)}
.stappen p{color:var(--stil);font-size:15.5px}
.na-stappen{margin-top:var(--s5)}

/* ── Tarieven ── */
.prijzen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
/* prijskaarten (Richard 04-11: "meer contrast"): in rust al een eigen witte kaart met een zachte schaduw op de crème sectie; hover tilt op.
   Op een witte sectie de crème kaart met een rand, zodat hij zich ook daar onderscheidt */
.prijs{background:#fff;border-radius:var(--r-l);padding:var(--s4) var(--s3);display:flex;flex-direction:column;gap:var(--s2);box-shadow:0 20px 40px -30px rgba(22,44,28,.4),0 1px 3px rgba(22,44,28,.07)}
.bg-wit .prijs{background:var(--warm);box-shadow:none;border:1px solid var(--lijn)}
.prijs .maat{font-size:14px;color:var(--stil);margin-top:-8px}
.prijs .bedrag{display:grid;gap:2px}
.prijs .was{font-size:15px;color:var(--stil);text-decoration:line-through}
.prijs .nu{font:800 40px/1 var(--f-kop);letter-spacing:-.02em}
.prijs .voordeel{align-self:flex-start;font:600 13px/1 var(--f-tekst);background:var(--groen-zacht);color:var(--groen-tekst);padding:6px 10px;border-radius:var(--pill)}
.prijs .vanaf{font:600 13px/1.2 var(--f-tekst);color:var(--stil)} /* weergave berekening: vanafprijs */
.prijs .btw{align-self:flex-start;font:600 13px/1 var(--f-tekst);color:var(--stil);padding:6px 0} /* weergave berekening: btw per kaart, op de plek van het online voordeel */
.prijzen.drie{grid-template-columns:repeat(3,minmax(0,1fr))} /* 3 kaarten (koellast) */
.prijzen.berekening .prijs ul{margin-top:0}.prijzen.berekening .prijs .knop{margin-top:auto} /* 2 of 3 vinkjes per kaart: de lijn direct onder de prijs, de knoppen onderaan gelijk */
.prijs ul{list-style:none;padding:0;display:grid;gap:8px;font-size:15px;color:var(--stil);margin-top:auto;padding-top:var(--s2);border-top:1px solid var(--lijn)}
.prijs ul li{display:flex;gap:8px;align-items:center}.prijs ul .ico{color:var(--groen);width:16px}
.prijs .knop{width:100%}
.zakelijk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s3)}
/* zakelijke rijen: de hele rij is een link (prop href per rij), met een pijl, dezelfde kaart als de prijskaarten en een hover */
.zak{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);align-items:center;border:1.5px solid transparent;border-radius:var(--r-l);padding:var(--s3) var(--s4);background:#fff;color:inherit;text-decoration:none;box-shadow:0 20px 40px -30px rgba(22,44,28,.4),0 1px 3px rgba(22,44,28,.07)}
.bg-wit .zak{background:var(--warm);box-shadow:none;border-color:var(--lijn)}
a.zak:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 28px 48px -30px rgba(22,44,28,.5)}
a.zak:focus-visible{outline:3px solid var(--blauw);outline-offset:3px}
.zak .op{display:inline-flex;align-items:center;gap:10px}
.zak .op .ico{width:20px;height:20px;color:var(--blauw);transition:transform .25s var(--zacht)}
a.zak:hover .op .ico{transform:translateX(4px)}
.zak .op{font:700 20px/1.2 var(--f-kop);color:var(--groen-diep)}
.zak p{color:var(--stil);font-size:15px}
.prijsnoot{margin-top:var(--s3);font-size:14px;color:var(--stil)}

/* ── Reviews ── */
.score{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.score .getal{font:800 56px/1 var(--f-kop);letter-spacing:-.03em}
.score .sterren svg{width:22px;height:22px}
.score small{display:block;color:var(--stil);font-size:15px}
.revs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.rev{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}
.rev blockquote{font:500 18px/1.55 var(--f-tekst);color:var(--inkt)}
.rev .wie{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--stil)}
.rev .wie b{color:var(--inkt);font-weight:600}
.naar-google{margin-top:var(--s4);display:inline-flex;gap:8px;align-items:center;font-weight:600;color:var(--blauw)}

/* ── Kennisbank ── */
.kb{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.art{border-radius:var(--r-l);overflow:hidden;background:var(--warm);display:flex;flex-direction:column;transition:transform .3s var(--zacht),box-shadow .3s}
.art:hover{box-shadow:0 24px 48px -30px rgba(22,48,31,.4)}
.kb-beeld{position:relative;height:200px;overflow:hidden}
.kb-beeld img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--zacht)}
.art:hover .kb-beeld img{transform:scale(1.04)}
.kb-beeld .chip{position:absolute;left:var(--s3);top:var(--s3)}
.art .txt{padding:var(--s3) var(--s4) var(--s4);display:flex;flex-direction:column;gap:var(--s2);flex:1}
.art:hover{transform:translateY(-3px)}
.chip{justify-self:start;align-self:flex-start;font:600 13px/1 var(--f-tekst);padding:7px 12px;border-radius:var(--pill);background:#fff;color:var(--groen-tekst)}
.art.uitgelicht{background:var(--groen-zacht)}
.art.uitgelicht h3{font-size:26px;line-height:1.15}
.art .meer{margin-top:auto}

/* ── FAQ ── */
.faq-raster{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.vragen{display:grid;gap:12px}
.vragen details{background:#fff;border-radius:var(--r-m);padding:0 var(--s3)}
.vragen summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--s2);align-items:center;padding:20px 0;font:600 17px/1.35 var(--f-kop)}
.vragen summary::-webkit-details-marker{display:none}
.vragen summary::after{content:"";width:28px;height:28px;flex:none;border-radius:50%;background:var(--groen-zacht) center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='%232C8F3A' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");transition:transform .25s var(--zacht)}
.vragen details[open] summary::after{transform:rotate(45deg)}
.vragen details p{color:var(--stil);padding-bottom:var(--s3);font-size:16px}
/* hulpkaart (Richard 04-11: "niet meer echt stijl nieuwe design … meer contrast … die border boven past niet meer"): geen rand boven;
   contrast met de sectie: op crème een witte kaart met een zachte schaduw, op wit de lichte merktint (prop kaart: auto|wit|tint) */
.hulp{position:sticky;top:110px;background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);box-shadow:0 24px 48px -28px rgba(22,44,28,.38),0 1px 3px rgba(22,44,28,.07)}
.bg-wit .hulp,.hulp.tint{background:var(--lichtgroen);box-shadow:none}
.bg-warm .hulp.tint{background:var(--lichtgroen)}.hulp.wit{background:#fff;box-shadow:0 24px 48px -28px rgba(22,44,28,.38),0 1px 3px rgba(22,44,28,.07)}
.hulp .wie{display:flex;gap:var(--s2);align-items:center}
/* portret met het merkplus (geel of groen, prop portret: auto|geel|groen); afgerond vierkant, zodat het plus heel in beeld blijft. Avatar M
   blijft voor de mail en plekken kleiner dan ±48px */
.hulp img{width:88px;height:88px;border-radius:22px;object-fit:cover;object-position:50% 35%;flex:none}
.hulp h3{font-size:22px;line-height:1.15}
.hulp p{color:var(--stil);font-size:15.5px}
.hulp .lijn{display:flex;gap:10px;align-items:center;font-weight:600}.hulp .lijn .ico{color:var(--groen-diep)}

/* ── Footer: brug (variant E, besluit Richard 01-11) — groene offertekaart half over de rand pagina|footer ── */
.voet{position:relative;background:var(--voet);color:var(--stil);font-size:15px;padding-top:1px}
.voet:not(:has(.brug)){border-top:1px solid var(--lijn)} /* voet zonder brugkaart (formulier, juridisch, vacature): een lijn als grens met het laatste blok */
/* De brugkaart hangt --brug-over over het laatste blok; dat blok krijgt precies die ruimte extra, zodat de afstand tot de kaart gelijk is aan elke andere sectieafstand */
/* zweven: half (Richard 03-11: "niet eens verticaal centraal"): het midden van de kaart op de grens; --brug-h = kaarthoogte */
:root{--brug-over:calc(var(--brug-h, 230px) / 2)}
.sectie[data-zw~="voor-voetbrug"][data-zw]{padding-bottom:calc(var(--sectie) + var(--brug-over))}
main[data-zw~="voor-voetbrug"][data-zw]>section:last-child{padding-bottom:calc(var(--sectie) + var(--brug-over))} /* zweven: half: een zwevend blok valt nooit over de vorige sectie, ook als de secties in <main> staan (Sitebuilder 04-11) */ /* alleen als de voet een brugkaart heeft (formulier, juridisch en vacature hebben er geen, C3) */
.brug{position:relative;z-index:2;margin-top:calc(-1 * var(--brug-over));background:var(--groen);color:var(--inkt);border-radius:var(--r-l);padding:clamp(28px,3.5vw,44px) clamp(24px,4vw,56px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:var(--s3) var(--s5);align-items:center;overflow:hidden;box-shadow:0 30px 60px -34px rgba(22,44,28,.55)}
/* het merkplus (vorm = beeld/merkplus.svg, het officiële Plus.svg) half buiten de kaart; altijd in het logogeel (Richard 03-11) */
.brug::after{content:"";position:absolute;z-index:-1;right:-36px;bottom:-64px;width:240px;height:241px;pointer-events:none;background:var(--merkplus);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='950.51 511.497 83.11 83.505'%3E%3Cpath d='M980.305,511.497L992.458,511.497C995.334,511.497 997.882,512.607 1000.1,514.831C1002.32,517.052 1003.43,519.729 1003.43,522.867L1003.43,541.684L1033.62,541.684L1033.62,564.813L1003.43,564.813L1003.43,595.002L980.305,595.002L980.305,564.813L950.51,564.813L950.51,553.054C950.51,545.474 954.169,541.684 961.487,541.684L980.305,541.684L980.305,511.497Z' fill='%23000'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='950.51 511.497 83.11 83.505'%3E%3Cpath d='M980.305,511.497L992.458,511.497C995.334,511.497 997.882,512.607 1000.1,514.831C1002.32,517.052 1003.43,519.729 1003.43,522.867L1003.43,541.684L1033.62,541.684L1033.62,564.813L1003.43,564.813L1003.43,595.002L980.305,595.002L980.305,564.813L950.51,564.813L950.51,553.054C950.51,545.474 954.169,541.684 961.487,541.684L980.305,541.684L980.305,511.497Z' fill='%23000'/%3E%3C/svg%3E") center/contain no-repeat}
.brug .kop{font:800 clamp(24px,2.6vw,34px)/1.12 var(--f-kop);letter-spacing:-.025em;text-wrap:balance}
.brug .sub{color:var(--inkt);margin-top:8px;max-width:46ch}
.keuze{position:relative;z-index:1;display:flex;align-items:center;background:#fff;border-radius:var(--pill);padding:6px;box-shadow:0 14px 30px -18px rgba(22,44,28,.6)}
.keuze select{flex:1;min-width:0;height:52px;border:0;background:transparent;padding:0 40px 0 20px;font:500 16px var(--f-tekst);color:var(--inkt);appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%231A2A20' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px}
.keuze select:focus{outline:2px solid var(--groen);outline-offset:2px;border-radius:var(--pill)}
.keuze .knop{height:52px;flex:none}
.brug .vertrouw{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 22px;padding-top:var(--s3);border-top:1px solid rgba(26,42,32,.2);font:600 14px/1.3 var(--f-tekst);color:var(--inkt);position:relative;z-index:1}
.brug .vertrouw span{display:inline-flex;align-items:center;gap:8px}
.brug .vertrouw .ico{width:16px;height:16px}.brug .vertrouw .sterren{color:var(--inkt)}
.voet .lijf{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:var(--s4);padding-block:clamp(48px,6vw,80px) var(--s5)}
.voet .logo{height:38px;width:auto;margin-bottom:var(--s2)}
.voet .zin{color:var(--inkt);font:600 17px/1.5 var(--f-tekst);max-width:30ch}
.voet h4{font:700 17px/1.2 var(--f-kop);color:var(--groen-tekst);margin-bottom:var(--s2)}
.voet ul{list-style:none;padding:0;display:grid;gap:10px}
.voet a{transition:color .2s}.voet a:hover{color:var(--inkt)}
.voet .contactlijst li{display:flex;gap:10px;align-items:center}.voet .contactlijst .ico{color:var(--groen-diep)}
.voet .prov{display:flex;flex-wrap:wrap;gap:6px 16px;padding-block:var(--s3);border-top:1px solid var(--voet-lijn);font-size:14px}
.voet .prov b{color:var(--inkt);font-weight:600}
.voet .prov+.prov{border-top:0;padding-top:0}
.voet .social{display:flex;gap:4px;margin:var(--s2) 0 0 -12px}
.voet .social a{display:grid;place-items:center;width:48px;height:48px;color:var(--groen-diep)}.voet .social a:hover{color:var(--inkt)}
.voet .social svg{width:24px;height:24px;fill:currentColor}
.voet .keur{display:flex;flex-wrap:wrap;align-items:center;gap:12px var(--s3);padding-block:var(--s3);border-top:1px solid var(--voet-lijn);font-size:14px}
.voet .keur-logos{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.voet .keur-logos img{height:30px;width:auto;display:block}
.voet .keur a{text-decoration:underline;white-space:nowrap;padding-block:12px;margin-block:-12px}
.voet .onder{display:flex;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;padding-block:var(--s3);border-top:1px solid var(--voet-lijn);font-size:13.5px}

.noot{margin-top:var(--s5);padding:var(--s2) var(--s3);border:1.5px dashed var(--lijn);border-radius:var(--r-m);font-size:14px;color:var(--stil)}

/* ── Mobiel / tablet ── */
/* terugval zonder script (gemeten 04-11): de vertrouwensbalk is 83px hoog boven 1100, 136px tot 1100 en 257px tot 560 */
.vertrouwen.zwevend{--zweef-h:80px}:root{--zweef-terugval:40px}
@media (max-width:1100px){.vertrouwen.zwevend{--zweef-h:74px}:root{--zweef-terugval:37px}}
@media (max-width:760px){.vertrouwen.zwevend{--zweef-h:190px}:root{--zweef-terugval:95px}}
@media (max-width:1100px){
  .nav .links,.nav .balk>.knop{display:none}.burger{display:grid}
  .topbalk ul li:nth-child(n+2){display:none}
  .check .kaart{grid-template-columns:minmax(0,1fr);padding:var(--s4)}
  .vertrouwen ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .raster{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dienst.groot{grid-row:auto;grid-column:span 2}
  .dienst.groot .beeld{min-height:0;aspect-ratio:16/9;flex:none}
  .prijzen{grid-template-columns:repeat(2,minmax(0,1fr))}
  .revs{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.revs .rev:nth-child(3){display:none}
  .kb{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kb .uitgelicht{grid-column:span 2}
  .faq-raster{grid-template-columns:minmax(0,1fr)}.hulp{position:static}
  .brug{grid-template-columns:minmax(0,1fr)}.brug::after{width:170px;height:171px;right:-28px;bottom:-64px} /* gestapeld: kleiner plus, vrij van het keuzeveld */.voet .lijf{grid-template-columns:repeat(2,minmax(0,1fr))}.voet .lijf>div:first-child{grid-column:1/-1}
}
@media (max-width:760px){
  .topbalk ul{display:none}.topbalk .in{justify-content:center}.reviews{white-space:nowrap}
  .nav{padding-top:0}.nav .balk{border-radius:0;height:64px;padding:0 var(--s2)}.nav .in{padding-inline:0}
  .hero{margin-top:-64px;padding-top:64px}
  .hero .foto img{object-position:70% 50%}
  .hero .foto::after{background:linear-gradient(180deg,rgba(22,48,31,.55) 0%,rgba(22,48,31,.78) 45%,rgba(22,48,31,.92) 100%)}
  .hero .knoppen{flex-direction:column}
  .check form{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.62fr)}.check form:not(:has(.veld-toev)){grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.check form .knop{grid-column:1/-1}
  .vertrouwen ul{gap:var(--s2)}.vertrouwen li{font-size:14px}
  .kopje{grid-template-columns:minmax(0,1fr)}
  .raster{grid-template-columns:minmax(0,1fr)}.dienst.groot,.dienst.breed{grid-column:auto}
  .dienst.breed{flex-direction:column}.dienst.breed .beeld{width:auto;aspect-ratio:16/10}
  .duo{grid-template-columns:minmax(0,1fr)}.duo .foto{order:-1}
  .stappen{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
  .stappen::before{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--lijn) 0 8px,transparent 8px 14px)}
  .stappen li{grid-template-columns:56px minmax(0,1fr);column-gap:var(--s2)}.stappen li>*:not(.nr){grid-column:2}.stappen .nr{grid-row:span 2}
  .dienst .txt{padding:var(--s3)}
  .prijzen{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--rand);gap:var(--s2);margin-inline:calc(-1 * var(--rand));padding-inline:var(--rand);scrollbar-width:none}
  .prijzen .prijs{flex:0 0 78%;scroll-snap-align:start}
  .zakelijk{grid-template-columns:minmax(0,1fr)}.zak{grid-template-columns:minmax(0,1fr)}
  .revs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--rand);gap:var(--s2);margin-inline:calc(-1 * var(--rand));padding-inline:var(--rand);scrollbar-width:none}
  .revs .rev{flex:0 0 84%;scroll-snap-align:start}.revs .rev:nth-child(3){display:flex}
  .kb{grid-template-columns:minmax(0,1fr)}.kb .uitgelicht{grid-column:auto}
  .keuze{flex-direction:column;align-items:stretch;border-radius:var(--r-m);gap:6px}.keuze select{flex:none;padding-left:16px}.keuze .knop{width:100%}
  .brug::after{display:none} /* plusvorm bedekte op 390 de vertrouwensregel (besluit 03-11) */
  .voet .onder{flex-direction:column}
}

/* ══════════════════════════════════════════════════════════════════════════════════════
   Componenten voor subpagina's (plaats, type, dienst, label). Toegevoegd 01-11 met de plaatspagina.
   ══════════════════════════════════════════════════════════════════════════════════════ */
:root{--la:#188840;--lb:#48A840;--lc:#98B838;--ld:#E0D828;--le:#E89820;--lf:#E86028;--lg:#D83028;--mint:#9BE3A5}

/* ── Subpagina-kop: dé standaard voor elke pagina behalve home (foto + overlay + kruimelpad) ── */
.subkop{position:relative;margin-top:calc(-72px - var(--s1));padding-top:calc(72px + var(--s1));color:#fff}
.subkop .foto{position:absolute;inset:0;overflow:hidden}
.subkop .foto img{width:100%;height:100%;object-fit:cover;object-position:65% 50%}
.subkop .foto::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(22,44,28,.92) 0%,rgba(22,44,28,.82) 42%,rgba(22,44,28,.22) 72%,rgba(22,44,28,0) 88%)} /* WCAG 1.4.3: lead en kruimel ≥ 4,5:1 op lichte foto's (tools/contrast-foto.mjs, 04-11; was .74 op 38%) */
.subkop .in{position:relative;padding-block:clamp(48px,6vw,88px) clamp(104px,10vw,140px)}
.subkop .tekst{max-width:720px;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3)}
.subkop h1{font-size:clamp(36px,4.4vw,60px)}
.subkop .lead{font-size:clamp(17px,1.35vw,19px);line-height:1.6;color:rgba(255,255,255,.88);max-width:60ch}
.subkop .usps{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font:600 15px/1.3 var(--f-tekst)}
.subkop .usps li{display:flex;align-items:center;gap:8px}.subkop .usps .ico{color:var(--mint)}
.subkop .knoppen{display:flex;flex-wrap:wrap;gap:12px}

/* ── Kruimelpad: op elke subpagina, ook als BreadcrumbList in de gestructureerde data ── */
.kruimel{font:500 14px/1.4 var(--f-tekst)}
.kruimel ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.kruimel li{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.72)}
.kruimel li+li::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);opacity:.7}
.kruimel a{color:rgba(255,255,255,.9);text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px}
.kruimel a:hover{text-decoration-color:#fff}
.kruimel [aria-current]{color:#fff;font-weight:600}
.kruimel.licht li{color:var(--stil)}.kruimel.licht a{color:var(--inkt);text-decoration-color:var(--lijn)}.kruimel.licht [aria-current]{color:var(--inkt)}

/* ── Labelchip: het labelpijltje (A t/m G) in de officiële labelkleuren ── */
.lchip{display:inline-flex;align-items:center;height:26px;padding:0 16px 0 10px;font:800 14px/1 var(--f-kop);color:#fff;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:4px 0 0 4px}
.l-A{background:var(--la)}.l-B{background:var(--lb)}.l-C{background:var(--lc)}.l-D{background:var(--ld);color:var(--inkt)}.l-E{background:var(--le)}.l-F{background:var(--lf)}.l-G{background:var(--lg)}

/* ── Labelstatistiek: labelverdeling als pijlen, lengte = aandeel (echte cijfers, met bron) ── */
.labelstat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,88px);align-items:center}
.labelstat .txt{display:grid;gap:var(--s3)}.labelstat .txt p{color:var(--stil)}
.pijlen{display:grid;gap:10px;background:var(--warm);border-radius:var(--r-l);padding:var(--s4)}
.pijlen .rij{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:var(--s2);align-items:center}
.pijlen .balk{height:38px;display:flex;align-items:center;padding-left:14px;font:800 17px/1 var(--f-kop);color:#fff;width:var(--w);min-width:52px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%);border-radius:6px 0 0 6px;transform-origin:left;transition:transform 1s var(--zacht)}
.pijlen .balk.l-D{color:var(--inkt)}
.pijlen .getal{font:700 16px/1.2 var(--f-kop);text-align:right}.pijlen .getal small{display:block;font:500 13px/1.3 var(--f-tekst);color:var(--stil)}
.pijlen.wacht .balk{--groei:0}   /* 05-11 (Assen): startstand = de minimumlengte mét letter, nooit een streepje */
.pijlen .samen{display:flex;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s1);padding-top:var(--s2);border-top:1px solid var(--lijn);font-size:14px;color:var(--stil)}
.pijlen .samen b{color:var(--inkt)}
@media (prefers-reduced-motion:reduce){.pijlen.wacht .balk{--groei:1;transition:none}}

/* ── Bronregel onder elk cijfer ── */
.bron{font-size:13.5px;color:var(--stil);margin-top:var(--s3)}

/* ── Tabel: desktop een rustige tabel, mobiel per rij een kaartje (data-label) ── */
.tabel{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--r-l);overflow:hidden;font-size:15.5px}
.tabel th{text-align:left;font:600 13px/1.2 var(--f-tekst);letter-spacing:.06em;text-transform:uppercase;color:var(--stil);padding:16px 20px;background:transparent;border-bottom:1px solid var(--lijn)}
.tabel td{padding:14px 20px;border-bottom:1px solid var(--lijn)}
.tabel tr:last-child td{border-bottom:0}
.tabel td.nr,.tabel th.nr{text-align:right;font-variant-numeric:tabular-nums}
.tabel tbody tr:hover td{background:var(--warm)}
.tabel td:first-child{font-weight:600;color:var(--inkt)}

/* ── Kaartjes met kerncijfers / wijken ── */
.drie{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin-top:var(--s5)}
.wijk{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:12px;align-content:start}
.wijk .meta{display:flex;gap:10px;flex-wrap:wrap;font:600 13px/1 var(--f-tekst);color:var(--stil)}
.wijk .meta span{background:var(--warm);padding:7px 10px;border-radius:var(--pill)}
.wijk p{color:var(--stil);font-size:15.5px}
.kerncijfers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.kerncijfer{background:var(--warm);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:6px}
.kerncijfer b{font:800 clamp(36px,4vw,52px)/1 var(--f-kop);letter-spacing:-.03em}
.kerncijfer span{color:var(--stil)}

/* ── Twee lijsten naast elkaar (wet / voordeel) ── */
.lijsten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.lijst{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);align-content:start}
.lijst ul{list-style:none;padding:0;display:grid;gap:14px}
.lijst li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;color:var(--stil)}
.lijst li .ico{color:var(--groen);margin-top:3px}
.lijst li b{color:var(--inkt)}

/* ── Stappen verticaal (compact) ── */
.stappen-v{list-style:none;padding:0;display:grid;gap:var(--s3);counter-reset:sv}
.stappen-v li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--s2);align-items:start;counter-increment:sv}
.stappen-v li::before{content:counter(sv);width:40px;height:40px;border-radius:50%;background:var(--groen-zacht);display:grid;place-items:center;font:800 17px/1 var(--f-kop);color:var(--groen-tekst)}
.stappen-v b{display:block;font:700 17px/1.3 var(--f-kop);margin-bottom:2px}
.stappen-v p{color:var(--stil);font-size:15.5px}

/* ── Melding / callout (bijv. subsidie) ── */
.callout{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--s3);align-items:start;background:var(--groen-zacht);border-radius:var(--r-l);padding:var(--s4) calc(var(--s4) + 96px) var(--s4) var(--s4)} /* geen accentrail (Richard 04-11): merktint + het gele merkplus als watermerk (kaartstijl tint + watermerk) */
.callout::after{content:"";position:absolute;z-index:-1;right:-30px;bottom:-40px;width:130px;height:131px;pointer-events:none;background:var(--merkplus);-webkit-mask:var(--plus-masker) center/contain no-repeat;mask:var(--plus-masker) center/contain no-repeat}
.callout .rond{width:56px;height:56px;background:#fff;color:var(--groen-diep)}
.callout h2{font-size:clamp(24px,2.6vw,32px)}
.callout p{color:var(--stil);margin-top:10px;max-width:76ch}
.callout .meer{margin-top:var(--s2)}

/* ── Plaatsblok: werkgebied + in de buurt ── */
.buurt{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s2)}
.buurt a{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:var(--pill);background:var(--warm);font:600 15px/1 var(--f-tekst)}
.buurt a:hover{background:var(--groen-zacht)}

/* ── Tussen-CTA: kleine groene kaart midden op een pagina ── */
.mini-cta{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;background:var(--groen);color:var(--inkt);border-radius:var(--r-l);padding:var(--s3) var(--s4);margin-top:var(--s5)}
.mini-cta b{font:800 22px/1.2 var(--f-kop)}
/* mini-actie in opgemaakte tekst (03-11, C1): a.knop zonder svg en zonder wit; kleur en pijl uit CSS, want rich draagt geen svg */
.mini-cta .knop{background:#fff;color:var(--inkt)}.mini-cta .knop:hover{background:var(--warm)}
.mini-cta .knop::after{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}.mini-cta>div>span{display:block;color:var(--inkt);font-size:15px;margin-top:4px}

@media (max-width:1100px){
  .labelstat,.lijsten{grid-template-columns:minmax(0,1fr)}
  .drie{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .subkop{margin-top:-64px;padding-top:64px}
  .subkop .foto::after{background:linear-gradient(180deg,rgba(22,44,28,.6) 0%,rgba(22,44,28,.82) 45%,rgba(22,44,28,.94) 100%)}
  .subkop .knoppen{flex-direction:column}
  .subkop h1{font-size:clamp(28px,8.2vw,40px)} /* lange samenstellingen met streep (BENG-berekening) moeten op 390 passen */
  .pijlen{padding:var(--s3)}.pijlen .rij{grid-template-columns:minmax(0,1fr) 84px}
  .kerncijfers{grid-template-columns:minmax(0,1fr)}
  .callout{grid-template-columns:minmax(0,1fr)}
  .mini-cta .knop{width:100%}
  /* tabel wordt per rij een kaartje; .smal (twee kolommen) blijft een compacte tabel */
  .tabel:not(.smal):not(.compact),.tabel:not(.smal):not(.compact) tbody,.tabel:not(.smal):not(.compact) tr,.tabel:not(.smal):not(.compact) td{display:block;width:100%}
  .tabel:not(.smal):not(.compact){background:transparent;border-radius:0;overflow:visible}
  .tabel:not(.smal):not(.compact) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tabel:not(.smal):not(.compact) tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;background:#fff;border-radius:var(--r-m);padding:16px;margin-bottom:12px}
  .tabel:not(.smal):not(.compact) td{padding:0;border:0;text-align:left!important;font-variant-numeric:tabular-nums;font-weight:600;color:var(--inkt)}
  .tabel:not(.smal):not(.compact) td::before{content:attr(data-label);display:block;font:500 12.5px/1.3 var(--f-tekst);color:var(--stil);margin-bottom:2px}
  .tabel:not(.smal):not(.compact) td:first-child{grid-column:1/-1;font:700 18px/1.3 var(--f-kop);padding-bottom:10px;border-bottom:1px solid var(--lijn)}.tabel:not(.smal):not(.compact) td:first-child::before{content:none}
  .tabel tbody tr:hover td{background:none}
  .tabel.smal{font-size:15px}.tabel.smal th{padding:12px 14px}.tabel.smal td{padding:11px 14px;font-variant-numeric:tabular-nums}
  /* .compact (lange tabellen, besluit 03-11): mobiel een tabel met alleen de kernkolommen; .mob-weg valt weg */
  .tabel.compact{font-size:15px}.tabel.compact th{padding:12px 10px;font-size:12px}.tabel.compact td{padding:11px 10px}.tabel.compact .mob-weg{display:none}
}

/* ── Tijdlijn (bouwjaren, ontwikkeling) ── */
.tijdlijn{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s3);position:relative}
.tijdlijn::before{content:"";position:absolute;left:0;right:0;top:15px;height:2px;background:var(--lijn)}
.tijdlijn li{position:relative;display:grid;gap:6px;padding-top:44px}
.tijdlijn li::before{content:"";position:absolute;top:6px;left:0;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,var(--groen) 0 5px,var(--groen-zacht) 5.5px)}
.tijdlijn li:last-child::before{background:var(--groen)}
.tijdlijn b{font:800 30px/1 var(--f-kop);letter-spacing:-.02em}
.tijdlijn span{color:var(--stil)}

/* ── Aanpak + werkgebied (plaatsblok) ── */
.aanpak{display:grid;gap:var(--s4);margin-top:clamp(64px,8vw,104px);padding-top:clamp(48px,6vw,72px);border-top:1px solid var(--lijn)}
.drie-punten{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin:0}
.werkgebied{display:grid;gap:var(--s2);background:var(--warm);border-radius:var(--r-l);padding:var(--s4)}
.werkgebied p{color:var(--stil);max-width:80ch}
.werkgebied .buurt a{background:#fff}.werkgebied .buurt a:hover{background:var(--groen-zacht)}
@media (max-width:1100px){.drie-punten{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .tijdlijn{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
  .tijdlijn::before{left:9px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .tijdlijn li{padding:0 0 0 40px}.tijdlijn li::before{top:4px}
}


/* ══ Componenten dienstpagina (pakketten, artikel met inhoudsopgave). Toegevoegd 01-11 met BENG. ══ */
/* ── Schakelaar (segmented control) ── */
.schakel{display:inline-flex;flex-wrap:wrap;gap:4px;background:#fff;border-radius:var(--pill);padding:5px;margin-bottom:var(--s4);box-shadow:0 10px 24px -20px rgba(22,44,28,.4)}
.schakel button{border:0;background:transparent;height:44px;padding:0 18px;border-radius:var(--pill);font:600 15px/1 var(--f-tekst);color:var(--stil);cursor:pointer;transition:background .2s,color .2s}
.schakel button[aria-selected="true"]{background:var(--groen);color:var(--inkt)}
.schakel button:not([aria-selected="true"]):hover{background:var(--warm);color:var(--inkt)}
/* ── Pakketkaarten ── */
.pakketten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);align-items:stretch}
.pakket{position:relative;background:#fff;border-radius:var(--r-l);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}
.pakket .voor{color:var(--stil);font-size:15.5px;min-height:3.2em}
.prijs-nu{font:800 32px/1.1 var(--f-kop);letter-spacing:-.02em;padding-block:var(--s1)}
.pakket.uitgelicht{background:var(--lichtgroen);box-shadow:0 24px 48px -32px rgba(22,44,28,.45)}
.vlag{position:absolute;top:-14px;left:var(--s4);background:var(--groen);color:var(--inkt);font:700 13px/1 var(--f-tekst);padding:8px 12px;border-radius:var(--pill)}
.incl{list-style:none;padding:var(--s2) 0 0;margin-top:auto;border-top:1px solid var(--lijn);display:grid;gap:10px;font-size:15px;color:var(--stil)} /* niet inbegrepen: doorgestreept in --stil (#a3aca5 haalde 2,3:1, keuring 04-11) */
.incl li{display:flex;align-items:baseline;gap:10px;text-decoration:line-through;text-decoration-color:#cdd3ce}
.incl li::before{content:"–";width:16px;flex:none;text-align:center;font-weight:700}
.incl li.ja{color:var(--inkt);text-decoration:none}
.incl li.ja::before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%2339B54A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transform:translateY(2px)}
.incl small{color:var(--stil);font-size:12.5px}
.pakket .knop{width:100%;margin-top:var(--s2)}
.extra-rij{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s3)}
.extra-rij>div{background:#fff;border-radius:var(--r-m);padding:var(--s2) var(--s3);font-size:15px;color:var(--stil)}
.extra-rij b{color:var(--inkt)}
.quote{position:relative;margin:var(--s5) 0 0;max-width:820px;padding-top:34px} /* geen accentrail: een groot aanhalingsteken */
.quote::before{content:"\201C";position:absolute;left:-4px;top:-18px;font:800 96px/1 var(--f-kop);color:var(--groen)}
.quote blockquote{font:600 clamp(18px,1.6vw,22px)/1.5 var(--f-tekst);color:var(--inkt)}
.quote figcaption{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--stil);font-size:14px}
/* ── Artikel met inhoudsopgave ── */
.artikel{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.toc{position:sticky;top:112px}
.toc summary{list-style:none;font:600 13px/1 var(--f-tekst);letter-spacing:.12em;text-transform:uppercase;color:var(--groen-tekst);margin-bottom:var(--s2);pointer-events:none}
.toc summary::-webkit-details-marker{display:none}
.toc ol{list-style:none;padding:0;display:grid;gap:4px}
.toc a{display:block;padding:8px 12px;border-radius:10px;color:var(--stil);font-size:15px;line-height:1.35}
.toc a:hover{color:var(--inkt);background:var(--warm)}
.toc a.actief{background:var(--groen-zacht);color:var(--inkt);font-weight:600}
.tekstkolom{max-width:760px;display:grid;gap:clamp(56px,7vw,88px)}
.tekstkolom section{display:grid;gap:var(--s3);scroll-margin-top:110px}
.tekstkolom h2{font-size:clamp(28px,3vw,40px)}
.tekstkolom h3{font-size:20px;margin-top:var(--s1)}
.tekstkolom p{color:var(--stil);font-size:17px;line-height:1.7}
.tekstkolom .tabel{background:var(--warm)}
.tekstkolom .tabel td:nth-child(2){color:var(--stil)}
.vinklijst{list-style:none;padding:0;display:grid;gap:12px}
.vinklijst li{position:relative;padding-left:32px;color:var(--inkt)}
.vinklijst li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--groen-zacht) center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%232C8F3A' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.feitje{background:var(--lichtgroen);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:6px}
.feitje b{font:600 13px/1 var(--f-tekst);letter-spacing:.12em;text-transform:uppercase;color:var(--groen-tekst)}
.feitje p{color:var(--inkt)!important;font-size:16px!important}
.eisen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}
.eis{background:var(--warm);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:8px;align-content:start}
.eis .nr{width:44px;height:44px;border-radius:12px;background:var(--groen);color:var(--inkt);display:grid;place-items:center;font:800 17px/1 var(--f-kop)}
.eis h3{margin:0}.eis p{font-size:15.5px!important;line-height:1.55!important}
.voorbeeld{border:1.5px solid var(--lijn);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:var(--s2)}
.voorbeeld p b{color:var(--inkt)}
.gehaald{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gehaald li{display:inline-flex;align-items:center;gap:6px;background:var(--groen-zacht);color:var(--groen-tekst);font:700 14px/1 var(--f-tekst);padding:9px 14px;border-radius:var(--pill)}
/* vinkje en marges zonder svg of style in opgemaakte tekst (03-11, C1) */
.gehaald li::before{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.voorbeeld .oog,.voorbeeld .bron{margin:0}
@media (max-width:1100px){.pakketten{grid-template-columns:minmax(0,1fr)}.pakket .voor{min-height:0}.extra-rij{grid-template-columns:minmax(0,1fr)}
  .artikel{grid-template-columns:minmax(0,1fr)}.toc{position:static}.toc details{background:var(--warm);border-radius:var(--r-m);padding:var(--s3)}.toc summary{pointer-events:auto;cursor:pointer;margin:0}.toc details[open] summary{margin-bottom:var(--s2)}}
@media (max-width:760px){.schakel{display:flex;overflow-x:auto;flex-wrap:nowrap;border-radius:var(--r-m);scrollbar-width:none;max-width:100%}.schakel button{flex:none}
  .eisen{grid-template-columns:minmax(0,1fr)}.pakketten{gap:var(--s4)}}

/* ── Twee ingangen in de kop (één woning / project) ── */
.ingangen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:680px}
.ingang{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.35);border-radius:var(--r-m);padding:16px 18px;color:#fff;transition:background .2s,border-color .2s}
.ingang:hover{background:rgba(255,255,255,.18);border-color:#fff}
.ingang .oog{grid-column:1;margin:0;color:var(--mint)}
.ingang b{grid-column:1;font:700 17px/1.3 var(--f-kop)}
.ingang .ico{grid-column:2;grid-row:1/span 2}
.ingang:first-child{background:var(--blauw);border-color:var(--blauw)}.ingang:first-child .oog{color:#fff} /* vol wit: 80% haalde op Dura-blauw geen 4,5:1 (keuring 04-11) */
.ingang:last-child{background:#fff;border-color:#fff;color:var(--inkt)}.ingang:last-child .oog{color:var(--groen-tekst)}.ingang:last-child .ico{color:var(--blauw)}
.ingang:last-child:hover{background:var(--warm);border-color:var(--warm)}
/* ── Projectpaneel ── */
/* Projectknop staat los naast de schakelaar, zodat hij niet wegvalt (ook niet op mobiel) */
.schakel-rij{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:var(--s4)}
.schakel-rij .schakel{margin-bottom:0}
.tab-project{display:inline-flex;align-items:center;gap:12px;height:54px;padding:0 22px 0 16px;border:0;border-radius:var(--pill);background:#E6EFFA;color:var(--blauw);cursor:pointer;text-align:left;transition:background .2s,color .2s}
.tab-project .ico{width:22px;height:22px}
.tab-project>span{display:grid;font:700 15px/1.15 var(--f-tekst)}
.tab-project small{font:500 12.5px/1.2 var(--f-tekst);color:var(--stil)}
.tab-project:hover{background:#fff;box-shadow:0 10px 24px -14px rgba(22,44,28,.4)}
.tab-project[aria-selected="true"]{background:var(--blauw);color:#fff}.tab-project[aria-selected="true"] small{color:rgba(255,255,255,.8)}
@media (max-width:760px){.schakel-rij{flex-direction:column;align-items:stretch}.tab-project{justify-content:center}}
.project-paneel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.project-paneel[hidden]{display:none}
.pakketten[hidden]{display:none}
.pp-uitleg,.pp-form{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);align-content:start}
.pp-uitleg p{color:var(--stil)}
.aanspreek{display:flex;gap:var(--s2);align-items:center;margin-top:var(--s1);padding-top:var(--s2);border-top:1px solid var(--lijn)}
.aanspreek img{width:56px;height:56px;border-radius:50%;object-fit:cover}.aanspreek b{display:block}.aanspreek span{color:var(--stil);font-size:15px}
.pp-rij{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px}
.pp-form .veld select{width:100%;height:52px;border:1.5px solid var(--lijn);border-radius:var(--r-s);padding:0 14px;font:500 16px var(--f-tekst);background:var(--warm);color:var(--inkt)}
.pp-form input[type=file]{padding-top:12px}
.pp-plus{justify-self:start;border:0;background:none;color:var(--blauw);font:600 15px var(--f-tekst);cursor:pointer;padding:0}
/* ── Blok voor professionals ── */
.pro{display:grid;gap:var(--s4);margin-top:clamp(64px,8vw,104px)}
.pro-raster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.pro-item{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:10px;align-content:start}
.pro-item .rond{background:var(--groen-zacht);color:var(--groen-diep)}
.pro-item b{font:700 18px/1.3 var(--f-kop)}.pro-item p{color:var(--stil);font-size:15.5px}
@media (max-width:1100px){.project-paneel{grid-template-columns:minmax(0,1fr)}.pro-raster{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.ingangen{grid-template-columns:minmax(0,1fr)}.pro-raster{grid-template-columns:minmax(0,1fr)}.pp-rij{grid-template-columns:minmax(0,1fr)}}

/* ══ Componenten aanvraagpagina (formulier in de kop, situaties, regio's). Toegevoegd 01-11. ══ */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.aanvraagkop .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:clamp(32px,5vw,72px);align-items:start;padding-block:clamp(40px,5vw,72px) clamp(56px,6vw,88px)}
.aanvraagkop .foto::after{background:linear-gradient(100deg,rgba(22,44,28,.92) 0%,rgba(22,44,28,.78) 45%,rgba(22,44,28,.45) 75%,rgba(22,44,28,.35) 100%)}
.usps-kol{display:grid;gap:10px}
.g-score{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--inkt);border-radius:var(--pill);padding:10px 18px 10px 14px;font-size:14px;justify-self:start}
.g-score img{height:20px;width:auto}.g-score b{font:800 16px/1 var(--f-kop)}.g-score .sterren svg{width:14px;height:14px}
.aanvraag{background:#fff;color:var(--inkt);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.av-kop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.av-kop h2{font:800 24px/1.15 var(--f-kop);letter-spacing:-.015em}
.voordeel{font:700 13px/1 var(--f-tekst);background:var(--groen-zacht);color:var(--groen-tekst);padding:7px 11px;border-radius:var(--pill)}
.types{border:0;padding:0;margin:0;display:grid;gap:8px}
.type{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;border:1.5px solid var(--lijn);border-radius:var(--r-m);padding:12px 16px 12px 46px;cursor:pointer;transition:border-color .2s,background .2s}
.type input{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;accent-color:var(--groen);margin:0}
.type .t-naam{font:700 16px/1.2 var(--f-kop)}
.type .t-maat{grid-column:1;font-size:13.5px;color:var(--stil)}
.type .t-prijs{grid-column:2;grid-row:1/span 2;text-align:right;font-variant-numeric:tabular-nums}
.type .t-prijs s{display:block;font-size:13px;color:var(--stil)}
.type .t-prijs b{font:800 19px/1.1 var(--f-kop)}
.type:hover{border-color:#c9c1ad}
.type:has(input:checked){border-color:transparent;background:var(--groen-zacht)}
.type:has(input:focus-visible){outline:2px solid var(--blauw);outline-offset:2px}
.av-adres{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px}
.aanvraag .knop{width:100%;height:56px}
.av-klein{font-size:13.5px;color:var(--stil);text-align:center}
.av-anders{display:flex;justify-content:center;align-items:center;gap:6px;font:600 14.5px/1.2 var(--f-tekst);color:var(--blauw);padding-top:var(--s2);border-top:1px solid var(--lijn)}
.situaties{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.situatie{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px var(--s2);align-items:start;align-content:start;background:var(--warm);border-radius:var(--r-l);padding:var(--s3);transition:transform .3s var(--zacht),background .2s}
.situatie:hover{transform:translateY(-2px);background:var(--groen-zacht)}
.situatie .rond{grid-row:span 2;background:#fff;color:var(--groen-diep)}
.situatie b{font:700 18px/1.2 var(--f-kop)}
.situatie span:last-child{color:var(--stil);font-size:15px}
.situatie.sit-zak .rond{color:var(--blauw)}
.twee-weg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.weg{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:10px;align-content:start}
.weg .oog{margin:0}.weg p{color:var(--stil)}.weg .meer{padding-top:var(--s1);margin:0}
.regios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.regio{background:var(--warm);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:10px;align-content:start}
.regio p{color:var(--stil);font-size:15.5px}
.regio .buurt a{background:#fff}
.zakelijk-strook{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:var(--s3);align-items:center;margin-top:var(--s3);border:1.5px solid var(--lijn);border-radius:var(--r-l);padding:var(--s3) var(--s4);transition:border-color .2s}
.zakelijk-strook:hover{box-shadow:0 18px 36px -26px rgba(22,44,28,.45)}
.zakelijk-strook .rond{width:48px;height:48px;background:#E6EFFA;color:var(--blauw)}
.zs-tekst{display:grid;gap:4px}.zs-tekst .oog{margin:0;color:var(--blauw)}.zs-tekst b{font:700 19px/1.25 var(--f-kop)}.zs-tekst span:last-child{color:var(--stil);font-size:15px}
@media (max-width:760px){.zakelijk-strook{grid-template-columns:minmax(0,1fr);padding:var(--s3)}.zakelijk-strook .rond{display:none}.zakelijk-strook .knop{width:100%}}
@media (max-width:1100px){.aanvraagkop .in{grid-template-columns:minmax(0,1fr)}.aanvraag{max-width:560px}.situaties{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* mobiel: formulier direct onder de inleiding, opsomming en reviews eronder */
@media (max-width:1100px){.aanvraagkop .tekst{display:contents}.aanvraagkop .in{gap:var(--s3)}.aanvraagkop .kruimel{order:1}.aanvraagkop h1{order:2}.aanvraagkop .lead{order:3}.aanvraag{order:4}.aanvraagkop .usps{order:5}.aanvraagkop .g-score{order:6}}
@media (max-width:760px){.situaties,.twee-weg,.regios{grid-template-columns:minmax(0,1fr)}.aanvraag{padding:var(--s3)}.aanvraagkop .foto::after{background:linear-gradient(180deg,rgba(22,44,28,.62) 0%,rgba(22,44,28,.85) 45%,rgba(22,44,28,.95) 100%)}}

/* ── Mobiel: elke tik-plek minstens 44 px hoog, zonder de opmaak te verschuiven (negatieve marge) ── */
@media (max-width:760px){
  .kruimel a,.meer,.av-anders,.voet ul a,.topbalk .reviews,.voet .prov a,.voet .onder a{display:inline-flex;align-items:center;padding-block:12px;margin-block:-12px}
  .voet ul{gap:22px}
}

/* ── Duimbalk: alleen mobiel, vaste aanvraagknop onderin binnen bereik van de duim ── */
.duimbalk{display:none}
@media (max-width:760px){.duimbalk{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));box-shadow:0 -10px 30px -16px rgba(22,44,28,.45)}
.duimbalk[hidden]{display:none}.duimbalk b{display:block;font:800 19px/1.1 var(--f-kop)}.duimbalk span{font-size:13px;color:var(--stil)}.duimbalk .knop{height:50px;flex:none}}

/* ── Aanvraagformulier op mobiel compact: woningtypes als 2×2-tegels (naam + prijs), geen m²-regel ── */
@media (max-width:760px){
  .aanvraag{gap:12px}
  .av-kop h2{font-size:20px}
  .types{grid-template-columns:repeat(2,minmax(0,1fr))}
  .type{grid-template-columns:minmax(0,1fr);padding:12px 12px 12px 40px;gap:2px;min-height:64px}
  .type input{left:12px;width:18px;height:18px}
  .type .t-naam{font-size:15px}
  .type .t-maat{display:none}
  .type .t-prijs{grid-column:1;grid-row:auto;text-align:left}
  .type .t-prijs s{display:none}
  .type .t-prijs b{font-size:16px}
  .av-klein{font-size:12.5px}
}
@media (max-width:760px){
  .type .t-naam{font-size:14.5px;hyphens:manual;overflow-wrap:anywhere}
  .aanvraagkop .in{padding-top:20px}
  .aanvraagkop .lead{font-size:16px;line-height:1.55}
}
@media (max-width:760px){
  .type{padding:12px 10px 12px 36px}.type input{left:10px}
  .type .t-naam{font-size:14px;overflow-wrap:normal;letter-spacing:-.01em}
}
@media (max-width:375px){.type .t-naam{font-size:13px}.aanvraag{padding:20px 16px}}

/* ══ Megamenu (desktop) en mobiel menu met lagen. Toegevoegd 01-11. ══ */
.nav .in{position:relative}
.nav .links{align-items:center}
.mm-knop,.mm-los{border:0;background:none;padding:8px 0;font:500 16px/1 var(--f-tekst);color:var(--inkt);cursor:pointer;position:relative}
.mm-knop::after{content:"";display:inline-block;width:6px;height:6px;margin-left:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .2s}
.mm-knop[aria-expanded="true"]::after{transform:translateY(0) rotate(-135deg)}
.mm-knop::before,.mm-los::before{display:none}
.mm-knop[aria-expanded="true"]::before,.mm-knop:hover::before,.mm-los:hover::before{transform:scaleX(1)}
.mm-paneel{position:absolute;left:var(--rand);right:var(--rand);top:calc(100% + 10px);background:#fff;border-radius:var(--r-l);box-shadow:0 30px 60px -28px rgba(22,44,28,.45);padding:var(--s4);z-index:25;animation:mmIn .25s var(--zacht)}
@keyframes mmIn{from{opacity:0;transform:translateY(-6px)}}
.mm-inhoud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.15fr);gap:var(--s4)}
.mm-kol .oog{margin-bottom:12px}
.mm-kol ul{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.mm-kol a{display:block;padding:9px 12px;margin-inline:-12px;border-radius:12px;transition:background .15s}
.mm-kol a:hover{background:var(--warm)}
.mm-kol a b{display:block;font:600 15.5px/1.3 var(--f-tekst)}
.mm-kol a>span{display:block;font-size:13.5px;color:var(--stil);margin-top:2px}
.mm-breed{grid-column:span 2}
.mm-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mm-raster a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--lijn);border-radius:14px;transition:border-color .15s,background .15s}
.mm-raster a:hover{background:var(--groen-zacht)}
.mm-raster b{font:600 15px/1.25 var(--f-tekst)}
.norm{font:600 11.5px/1 var(--f-tekst);letter-spacing:.04em;color:var(--stil);background:var(--warm);padding:5px 8px;border-radius:999px;white-space:nowrap}
.mm-actie{background:var(--warm);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:12px;align-content:start}
.mm-actie .oog{margin:0}.mm-actie b{font:700 18px/1.25 var(--f-kop)}.mm-actie p{color:var(--stil);font-size:14.5px}
.mm-check{display:grid;grid-template-columns:minmax(0,1fr) 72px 48px;gap:6px}
.mm-check input{width:100%;min-width:0;height:46px;border:1.5px solid var(--lijn);border-radius:12px;padding:0 12px;font:500 15px var(--f-tekst);background:#fff}
.mm-check .knop{height:46px;padding:0;width:48px;border:0}
.mm-tool{display:inline-flex;align-items:center;gap:6px;font:600 14.5px/1.2 var(--f-tekst);color:var(--blauw)}
.mm-aanvraag{height:46px;border:1.5px solid var(--lijn)}
.mm-beeld img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px}
.mm-artikel:hover{background:var(--groen-zacht)}
/* mobiel menu */
.mob{position:fixed;inset:0;z-index:50;background:#fff;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}
.mob[hidden]{display:none}
html.mob-open,html.mob-open body{overflow:hidden}
.mob-kop{display:flex;justify-content:space-between;align-items:center;height:64px;padding:0 var(--s2);border-bottom:1px solid var(--lijn)}
.mob-dicht{width:46px;height:46px;border:0;border-radius:12px;background:var(--warm);font-size:28px;line-height:1;cursor:pointer}
.mob-lagen{flex:1;overflow-y:auto;padding:var(--s2)}
.mob-laag ul{list-style:none;padding:0;margin:0}
.mob-laag li a,.mob-laag li button{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:56px;padding:0 4px;border:0;border-bottom:1px solid var(--lijn);background:none;font:600 18px/1.2 var(--f-tekst);color:var(--inkt);text-align:left;cursor:pointer}
.mob-hoofd li button,.mob-hoofd li a{font:700 21px/1.2 var(--f-kop)}
.mob-laag li .ico{color:var(--groen-diep)}
.mob-laag .oog{margin:var(--s2) 4px var(--s1)}
.mob-terug{display:inline-flex;align-items:center;gap:8px;height:44px;border:0;background:none;font:600 15px var(--f-tekst);color:var(--blauw);cursor:pointer}
.mob-terug .ico{transform:rotate(180deg)}
.mob-check{margin-top:var(--s3);background:var(--warm);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:10px}
.mob-voet{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px;padding:12px var(--s2) calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--lijn)}
.mob-voet .knop{height:52px;padding:0 12px}
.mob-bel{border:1.5px solid var(--lijn);color:var(--inkt)}
@media (max-width:1100px){.mm-paneel{display:none!important}}

.mm-raster a{margin:0}
.mm-aanvraag{white-space:nowrap;font-size:15px;padding:0 16px}
.mob-bel{white-space:nowrap;font-size:15px}
.mob-titel{font:800 26px/1.1 var(--f-kop);letter-spacing:-.02em;margin:4px 4px 0}
.mob-laag .oog{margin:var(--s3) 4px 4px}
/* berekeningstegels: naam boven, norm eronder (geen afbrekende namen) */
.mm-raster a{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px}
.mm-raster .norm{background:none;padding:0;font-size:12px;letter-spacing:.02em}
/* kennis: uitgelicht artikel over twee kolommen, beeld naast de tekst */
.mm-artikel{grid-column:span 2;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto auto 1fr;column-gap:var(--s3);align-items:start}
.mm-artikel img{grid-row:1/span 3;height:100%;aspect-ratio:auto;min-height:170px}
.mm-artikel .mm-tool{align-self:end}
.mm-check{grid-template-columns:minmax(0,1fr) minmax(0,64px) 46px}.mm-check .knop{width:46px}

/* ══ Megamenu-effecten (Richard 01-11: "kan het wat spectaculairder"). ══ */
.mm-dim{position:fixed;inset:0;z-index:15;background:rgba(22,44,28,.42);opacity:0;pointer-events:none;transition:opacity .3s var(--zacht)}
html.mm-open .mm-dim{opacity:1;pointer-events:auto}
.nav{z-index:20}
.nav .links{position:relative}
.mm-knop::before,.mm-los::before{display:none}
.mm-streep{display:none}
.mm-streep.aan{opacity:1}
.mm-paneel{transform-origin:top center;animation:mmPaneel .38s var(--zacht)}
@keyframes mmPaneel{from{opacity:0;transform:translateY(-10px) scale(.985)}}
.mm-paneel li,.mm-raster a{animation:mmItem .45s var(--zacht) both;animation-delay:calc(var(--i,0) * 28ms + 60ms)}
.mm-raster a:nth-child(1){--i:1}.mm-raster a:nth-child(2){--i:2}.mm-raster a:nth-child(3){--i:3}.mm-raster a:nth-child(4){--i:4}.mm-raster a:nth-child(5){--i:5}.mm-raster a:nth-child(6){--i:6}.mm-raster a:nth-child(7){--i:7}.mm-raster a:nth-child(8){--i:8}
@keyframes mmItem{from{opacity:0;transform:translateY(6px)}}
.mm-kol a{position:relative}
.mm-kol a::after{content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:1.8px solid var(--groen-diep);border-top:1.8px solid var(--groen-diep);transform:translate(-6px,-50%) rotate(45deg);opacity:0;transition:transform .25s var(--zacht),opacity .2s}
.mm-kol a:hover::after{opacity:1;transform:translate(0,-50%) rotate(45deg)}
/* actiekaart met live voorvertoning */
.mm-actie{position:relative;overflow:hidden;min-height:300px}
.mm-std{display:grid;gap:12px;transition:opacity .25s var(--zacht),transform .25s var(--zacht)}
.mm-std.weg{opacity:0;transform:translateY(-6px)}
.mm-pv{position:absolute;inset:0;padding:var(--s3);display:grid;grid-template-rows:auto auto 1fr auto;gap:10px;background:var(--warm);opacity:0;transform:translateY(8px);transition:opacity .25s var(--zacht),transform .25s var(--zacht)}
.mm-pv.aan{opacity:1;transform:none}
.mm-pv img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;transition:transform .5s var(--zacht)}
.mm-pv.aan img{animation:mmZoom 6s linear both}
@keyframes mmZoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.mm-pv-kop{font:800 19px/1.2 var(--f-kop)}
.mm-pv-tekst{color:var(--stil);font-size:14.5px;line-height:1.5}
.mm-pv-knop{height:44px;font-size:15px;justify-self:start}
/* labelschaal die opbouwt */
.mm-schaal{display:grid;gap:4px;margin-bottom:4px}
.mm-schaal i{display:flex;align-items:center;height:16px;padding-left:7px;width:var(--w);font:800 10.5px/1 var(--f-kop);font-style:normal;color:#fff;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,0 100%);transform-origin:left;animation:mmSchaal .5s var(--zacht) both;animation-delay:calc(var(--i) * 45ms + 120ms)}
.mm-schaal .l-D{color:var(--inkt)}
@keyframes mmSchaal{from{transform:scaleX(.08);opacity:.4}}
@media (prefers-reduced-motion:reduce){.mm-paneel,.mm-paneel li,.mm-raster a,.mm-schaal i,.mm-pv.aan img{animation:none!important}.mm-streep,.mm-pv,.mm-std{transition:none}}
/* voorvertoning: knop blijft in de kaart, ook als de standaardinhoud korter is */
.mm-pv{grid-template-rows:auto auto auto 1fr;align-content:start}
.mm-pv img{aspect-ratio:16/8}
.mm-pv-knop{align-self:end}
.mm-actie{min-height:320px}

/* ══ Hover-effecten sitebreed (Richard 01-11): duidelijk interactie, nooit storend. Alleen bij een muis, nooit bij aanraken. ══ */
@media (hover:hover) and (pointer:fine){
  /* knoppen: licht omhoog, schaduw in eigen kleur, pijl schuift mee */
  .knop{transition:transform .25s var(--zacht),box-shadow .25s var(--zacht),background .2s}
  .knop:hover{transform:translateY(-2px)}
  .knop.blauw:hover{box-shadow:0 12px 24px -12px rgba(11,98,188,.65)}
  .knop .ico{transition:transform .25s var(--zacht)}
  .knop:hover .ico{transform:translateX(3px)}
  .mini-cta .knop::after{transition:transform .25s var(--zacht)}.mini-cta .knop:hover::after{transform:translateX(3px)}
  /* tekstlinks met pijl ("Meer weten"): pijl schuift, groene onderstreping groeit */
  .meer,.mm-tool,.av-anders,.naar-google{background:linear-gradient(var(--groen),var(--groen)) left bottom/0 2px no-repeat;transition:background-size .3s var(--zacht)}
  .meer:hover,.mm-tool:hover,.av-anders:hover,.naar-google:hover{background-size:100% 2px}
/* de lijn loopt tot de tekst en het pijltje, niet verder (Richard 04-11: "een lijn die nam … de hele paginabreedte in beslag"): de link is
   zo breed als zijn inhoud. .meer was display:flex en rekte in een grid of flexkolom op tot de hele kolom (home "Bekijk alle tarieven":
   1144px op 1440). align-self/justify-self: start, zodat hij ook in een grid of flexkolom niet uitrekt. */
.meer,.mm-tool,.av-anders,.naar-google{width:fit-content;max-width:100%}
.meer{display:inline-flex;align-self:flex-start;justify-self:start}
/* .av-anders staat gecentreerd onder het aanvraagformulier; zijn scheidingslijn erboven loopt nu onder .av-klein, over de hele breedte */
.av-anders{display:inline-flex;justify-self:center;padding-top:0;border-top:0}
.av-klein{padding-bottom:var(--s2);border-bottom:1px solid var(--lijn)}
  .meer .ico,.mm-tool .ico,.av-anders .ico,.naar-google .ico{transition:transform .25s var(--zacht)}
  .meer:hover .ico,.mm-tool:hover .ico,.av-anders:hover .ico,.naar-google:hover .ico{transform:translateX(4px)}
  /* kaarten met beeld: kaart tilt, beeld zoomt zacht in */
  .dienst .beeld img,.kb-beeld img{transition:transform .7s var(--zacht)}
  .dienst:hover .beeld img{transform:scale(1.04)}
  /* klikbare tegels: tillen op en krijgen een groene rand */
  .situatie,.wijk,.regio,.weg,.pro-item,.zak{transition:transform .3s var(--zacht),box-shadow .3s var(--zacht)}
  a.situatie:hover,.regio:hover,.weg:hover{transform:translateY(-3px);box-shadow:0 18px 36px -26px rgba(22,44,28,.45)}
  .situatie .rond,.punten .rond,.vertrouwen .rond{transition:transform .35s var(--zacht),background .2s}
  a.situatie:hover .rond{transform:rotate(-8deg) scale(1.08)}
  /* plaats- en filterchips */
  .buurt a,.voet .prov a{transition:background .2s,color .2s,transform .2s var(--zacht)}
  .buurt a:hover{background:var(--groen);color:var(--inkt);transform:translateY(-1px)}
  /* prijs- en pakketkaarten */
  .prijs,.pakket{transition:transform .3s var(--zacht),box-shadow .3s var(--zacht)}
  .prijs:hover,.pakket:hover{transform:translateY(-4px);box-shadow:0 30px 52px -30px rgba(22,44,28,.5),0 2px 6px rgba(22,44,28,.08)}
  /* reviews */
  .rev{transition:transform .3s var(--zacht)}.rev:hover{transform:translateY(-3px)}
  /* FAQ: vraag krijgt kleur, plusje draait alvast een stukje */
  .vragen summary{transition:color .2s}.vragen summary:hover{color:var(--groen-tekst)}
  .vragen details:not([open]) summary:hover::after{transform:rotate(90deg)}
  /* footer- en menulinks: groene kleur en klein stapje */
  .voet ul a{transition:color .2s,padding-left .25s var(--zacht)}.voet ul a:hover{color:var(--groen-tekst);padding-left:4px}
  .nav .logo img{transition:transform .3s var(--zacht)}.nav .logo:hover img{transform:scale(1.04)}
  /* stappen: bolletje vult groen */
  .stappen li .nr{transition:background .25s,color .25s}.stappen li:hover .nr{background:var(--groen);color:var(--inkt)}
  /* woningtype in het aanvraagformulier */
  .type{transition:border-color .2s,background .2s,transform .2s var(--zacht)}.type:hover{transform:translateY(-1px)}
}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}

/* ══ Energielabels-paneel (01-11, v2): Aanvragen | Andere situatie | Zakelijk | Gratis tools (rechts); aanvragen als hoofd-CTA-strook ══ */
#mm-energielabels .mm-inhoud{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.35fr);gap:var(--s3) var(--s4)}
#mm-energielabels .mm-schaal,#mm-energielabels .mm-pv{display:none!important}
#mm-energielabels .mm-actie{grid-column:1/-1;min-height:0;padding:var(--s3) var(--s4);background:var(--blauw);color:#fff}
.mm-aanvraagstrook{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:var(--s4);row-gap:4px;align-items:center}
.mm-aanvraagstrook > .oog{grid-column:1;margin:0;color:rgba(255,255,255,.75)}
.mm-aanvraagstrook > b{grid-column:1;font-size:21px;color:#fff}
.mm-aanvraagstrook > p{grid-column:1;color:rgba(255,255,255,.85);font-size:14.5px}
#mm-energielabels .mm-aanvraag{grid-column:2;grid-row:1/span 3;justify-self:end;background:#fff;color:var(--blauw);border:0;height:52px;padding:0 24px;font-size:16px}
#mm-energielabels .mm-aanvraag:hover{background:#eef4fb}
.mm-tools{display:grid;gap:10px;align-content:start}
.mm-tools .oog{margin-bottom:2px}
.mm-kol a.mm-toolkaart{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 12px;margin:0;padding:14px;border-radius:16px;background:var(--warm);transition:background .2s,transform .25s var(--zacht),box-shadow .25s var(--zacht)}
.mm-kol a.mm-toolkaart::after{display:none}
.mm-kol a.mm-toolkaart:hover{background:var(--groen-zacht);transform:translateY(-2px);box-shadow:0 14px 28px -20px rgba(22,44,28,.45)}
.mm-toolkaart b{grid-column:2;font:700 16px/1.25 var(--f-kop)!important}
.mm-toolkaart span:not(.mm-tk-ico){grid-column:2;font-size:13px!important;line-height:1.4;color:var(--stil)}
.mm-toolkaart em{grid-column:2;margin-top:6px;font:600 13.5px/1 var(--f-tekst);font-style:normal;color:var(--groen-tekst);display:inline-flex;align-items:center;gap:6px}
.mm-toolkaart em .ico{width:15px;height:15px;transition:transform .25s var(--zacht)}.mm-toolkaart:hover em .ico{transform:translateX(3px)}
.mm-tk-ico{grid-column:1;grid-row:1/span 3;width:44px;height:44px;border-radius:12px;background:#fff}
.mm-tk-check{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='6.5' fill='none' stroke='%232C8F3A' stroke-width='2'/%3E%3Cpath d='M16 16l4.5 4.5M8.5 11l2 2 3.5-3.5' fill='none' stroke='%232C8F3A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/24px no-repeat}
.mm-tk-ind{display:grid;align-content:center;gap:2px;padding:8px 9px}
.mm-tk-ind i{display:block;height:3px;border-radius:2px}
.mm-tk-ind i:nth-child(1){width:40%;background:var(--la)}.mm-tk-ind i:nth-child(2){width:50%;background:var(--lb)}.mm-tk-ind i:nth-child(3){width:60%;background:var(--lc)}.mm-tk-ind i:nth-child(4){width:70%;background:var(--ld)}.mm-tk-ind i:nth-child(5){width:80%;background:var(--le)}.mm-tk-ind i:nth-child(6){width:90%;background:var(--lf)}.mm-tk-ind i:nth-child(7){width:100%;background:var(--lg)}
@media (max-width:1300px){#mm-energielabels .mm-inhoud{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.5fr);gap:var(--s3)}}
/* ══ einde energielabels-paneel ══ */





















/* ══ Homepage ronde 2 (02-11): secties van de live home in 2.0-stijl ══ */
.duo.omgekeerd > .txt{order:2}
.duo-lang{align-items:start}.duo-lang .foto{position:sticky;top:120px}
.lees{display:grid;gap:var(--s2)}.lees p{color:var(--stil)}.lees a{color:var(--blauw);text-decoration:underline;text-underline-offset:3px}
.schaal{margin:0;display:grid;gap:var(--s2)}
.schaal .pijlen .rij{grid-template-columns:minmax(0,1fr)}
.schaal .pijlen .balk{height:30px;font-size:15px}
.schaal figcaption{color:var(--stil);font-size:14.5px}
.punten.twee-kol{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4) var(--s5)}
.opties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.optie{background:#fff;border:1px solid var(--lijn);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);align-content:start;color:var(--inkt);transition:transform .3s var(--zacht),box-shadow .3s}
.optie p{color:var(--stil)}
.optie.hoofd{border-color:transparent;background:#E6EFFA}
.optie .knop{justify-self:start;margin-top:auto}
.voetnoot{color:var(--stil);font-size:15px;margin-top:var(--s4);max-width:72ch}
.beng-raster{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start}
.beng-raster .txt{display:grid;gap:var(--s3)}.beng-raster .txt p{color:var(--stil)}
.beng-raster .txt h3{margin-top:var(--s2)}
.beng-eisen{position:sticky;top:120px;display:grid;gap:var(--s2)}
.beng-eisen .sub{color:var(--stil)}
.berek{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.berek-item{background:#fff;border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s1);align-content:start;color:var(--inkt);transition:transform .3s var(--zacht),box-shadow .3s}
.berek-item p{color:var(--stil);font-size:15.5px}
.berek-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:center;margin-top:var(--s4)}
.berek-slot p{color:var(--stil);max-width:72ch}
.knoppen{display:flex;flex-wrap:wrap;gap:var(--s2)}
.provincies{display:flex;flex-wrap:wrap;gap:10px}
.provincies a{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:var(--pill);background:#fff;border:1px solid var(--lijn);color:var(--inkt);font-weight:600;font-size:15px;transition:background .2s,border-color .2s,transform .2s var(--zacht)}
.provincies a.alle{background:var(--groen-zacht);border-color:transparent;color:var(--groen-tekst)}
@media (hover:hover) and (pointer:fine){
  .optie:hover,.berek-item:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(26,42,32,.35)}
  .provincies a:hover{box-shadow:0 14px 28px -20px rgba(22,44,28,.4);transform:translateY(-2px)}
}
@media (max-width:1000px){.opties,.berek{grid-template-columns:repeat(2,minmax(0,1fr))}.optie.hoofd{grid-column:1/-1}.beng-raster{grid-template-columns:minmax(0,1fr)}.beng-eisen{position:static}}
@media (max-width:760px){.duo.omgekeerd > .txt{order:0}.punten.twee-kol,.opties,.berek{grid-template-columns:minmax(0,1fr)}.berek-slot{grid-template-columns:minmax(0,1fr)}.duo-lang .foto{position:static}.eisen{grid-template-columns:minmax(0,1fr)}}
.kopje.enkel{grid-template-columns:minmax(0,1fr)}.kopje.enkel .lees{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
@media (max-width:760px){.kopje.enkel .lees{grid-template-columns:minmax(0,1fr);gap:var(--s2)}.berek-item,.optie{padding:var(--s3)}}
.prijs .oms{color:var(--stil);font-size:14.5px;margin:2px 0 6px}
.tarief-uitleg{display:grid;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--lijn)}
.tarief-uitleg .lees{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.cert{font-size:13.5px;color:var(--stil)}
@media (max-width:760px){.tarief-uitleg .lees{grid-template-columns:minmax(0,1fr);gap:var(--s2)}}
/* einde homepage ronde 2 */

/* ══ Mobiel menu = het bestaande dp-mnav-paneelmenu (zoals duracheck "dcm"), in DuraPlus-groen (Richard 01-11). ══ */
html.dcm-slot,html.dcm-slot body{overflow:hidden!important}
.dcm[hidden]{display:none!important}
.dcm{position:fixed;inset:0;z-index:300;-webkit-tap-highlight-color:transparent;font-family:var(--f-tekst)}
.dcm-achter{position:absolute;inset:0;background:rgba(22,44,28,.55);opacity:0;transition:opacity .25s ease}
.dcm-paneel{position:absolute;top:0;right:0;bottom:0;width:min(100%,440px);display:flex;flex-direction:column;background:#fff;box-shadow:-18px 0 48px -24px rgba(22,44,28,.6);transform:translateX(100%);transition:transform .28s var(--zacht)}
.dcm.is-open .dcm-achter{opacity:1}.dcm.is-open .dcm-paneel{transform:none}
@media (min-width:480px){.dcm-paneel{border-radius:22px 0 0 22px}}
.dcm-kop{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 20px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--lijn)}
.dcm-logo{display:inline-flex;align-items:center;min-height:44px}.dcm-logo img{height:30px;width:auto;display:block}
.dcm-sluit{width:44px;height:44px;display:inline-grid;place-items:center;border:0;border-radius:999px;background:var(--warm);color:var(--bos);cursor:pointer}
.dcm-sluit svg{width:20px;height:20px}
.dcm-inhoud{flex:1 1 auto;position:relative;overflow:hidden}
.dcm-laag{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 12px 20px;background:#fff;visibility:hidden;transition:transform .32s var(--zacht),opacity .24s ease,visibility 0s linear .32s}
.dcm-hoofd,.dcm-sub.is-actief{visibility:visible;transform:none;opacity:1;transition:transform .32s var(--zacht),opacity .24s ease,visibility 0s linear 0s}
.dcm-sub{transform:translateX(100%)}
.dcm-paneel.is-diep .dcm-hoofd{visibility:hidden;transform:translateX(-18%);opacity:0;transition:transform .32s var(--zacht),opacity .24s ease,visibility 0s linear .32s}
.dcm-groepen{list-style:none;margin:0;padding:0}
.dcm-groep{border-bottom:1px solid var(--lijn)}.dcm-groep:last-child{border-bottom:0}
.dcm-groepknop{width:100%;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 8px 12px 12px;border:0;background:none;border-radius:14px;font:inherit;text-align:left;text-decoration:none;color:var(--bos);cursor:pointer;transition:background-color .18s ease}
.dcm-groepknop:active{background:var(--warm)}
.dcm-groeptekst{display:flex;flex-direction:column;gap:3px;min-width:0}
.dcm-groepnaam{font:700 19px/1.2 var(--f-tekst);color:var(--bos)}
.dcm-groepsub{font-size:13.5px;line-height:1.35;color:var(--stil);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcm-chevron{flex:none;width:34px;height:34px;border-radius:999px;display:inline-grid;place-items:center;background:var(--warm);color:var(--bos);transition:background-color .2s ease,color .2s ease}
.dcm-chevron svg{width:16px;height:16px}
.dcm-groepknop:hover .dcm-chevron,.dcm-groepknop:active .dcm-chevron{background:var(--groen);color:var(--inkt)}
.dcm-groep.is-hier>.dcm-groepknop{background:var(--groen-zacht)}
.dcm-groep.is-hier .dcm-groepnaam::after,.dcm-link.is-hier .dcm-naam::after{content:"Hier";display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--groen);color:var(--inkt);font:700 11px/1.5 var(--f-tekst);letter-spacing:.03em;vertical-align:3px}
.dcm-subkop{position:sticky;top:-8px;z-index:1;display:flex;align-items:center;gap:12px;margin:-8px -12px 0;padding:12px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--lijn)}
.dcm-terug{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px 0 6px;border:1px solid rgba(57,181,74,.3);border-radius:999px;background:var(--groen-zacht);color:var(--groen);font:700 15px/1 var(--f-tekst);cursor:pointer}
.dcm-terug svg{width:30px;height:30px;padding:8px;border-radius:999px;background:var(--groen);color:var(--inkt)}
.dcm-subtitel{margin:0;font:800 21px/1.2 var(--f-kop);letter-spacing:-.01em;color:var(--bos);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcm-secties{display:grid;gap:12px;padding:14px 0 6px}
.dcm-beeld{border-radius:16px;overflow:hidden;box-shadow:0 0 0 1px var(--lijn);aspect-ratio:16/8}
.dcm-beeld img{width:100%;height:100%;object-fit:cover;object-position:top left}
.dcm-sectie{padding:12px 6px 6px;border:1px solid var(--lijn);border-radius:18px;background:#fff;box-shadow:0 8px 20px -18px rgba(22,44,28,.5)}
.dcm-label{margin:0 10px 2px;font:600 11.5px/1.3 var(--f-tekst);letter-spacing:.12em;text-transform:uppercase;color:var(--groen-tekst)}
.dcm-sectiekop{padding:2px 10px 8px;font:700 17px/1.3 var(--f-tekst);color:var(--groen)}
.dcm-lijst{list-style:none;margin:0;padding:0}
.dcm-link{display:flex;align-items:center;gap:12px;min-height:48px;padding:9px 10px;border-radius:12px;text-decoration:none;color:var(--inkt);font:500 16.5px/1.3 var(--f-tekst);transition:background-color .18s ease}
.dcm-link:active,.dcm-link:hover{background:var(--groen-zacht)}
.dcm-ico{flex:none;width:22px;height:22px;color:var(--groen)}
.dcm-tekst{flex:1 1 auto;min-width:0}
.dcm-subtekst{display:block;margin-top:2px;font-size:13px;font-weight:400;color:var(--stil)}
.dcm-pijl{flex:none;width:16px;height:16px;color:#98a2b3;transition:transform .2s var(--zacht)}
.dcm-link:hover .dcm-pijl{transform:translateX(3px);color:var(--groen)}
.dcm-link.is-hier{background:var(--groen-zacht)}
.dcm-link.is-hier .dcm-pijl{display:none}
.dcm-promo{border-radius:18px;padding:18px;background:var(--bos);color:#fff;display:grid;gap:8px;background-image:radial-gradient(400px 200px at 90% 0%,rgba(11,98,188,.6),transparent 70%)}
.dcm-promo .dcm-label{margin:0;color:var(--groen)}
.dcm-promokop{font:800 24px/1.1 var(--f-kop);letter-spacing:-.02em}
.dcm-promo p{color:#b9c9de;font-size:15px;line-height:1.5}
.dcm-promoknop{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:6px;border-radius:999px;background:#fff;color:var(--bos);font:700 16px/1 var(--f-tekst);text-decoration:none}
.dcm-promoknop .dcm-pijl{color:var(--bos)}
.dcm-voet{flex:none;padding:14px 16px;padding-bottom:max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--lijn);background:#fff;box-shadow:0 -10px 24px -18px rgba(22,44,28,.35);display:grid;gap:8px}
.dcm-cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:12px 20px;border-radius:999px;background:var(--blauw);color:#fff;font:700 17px/1 var(--f-tekst);text-decoration:none;box-shadow:0 12px 24px -14px rgba(11,98,188,.7)}
.dcm-cta .dcm-pijl{color:#fff}
.dcm-vraag{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font-size:14.5px;color:var(--stil);text-decoration:none}
.dcm-vraag svg{width:16px;height:16px;color:var(--groen)}
.dcm a:focus-visible,.dcm button:focus-visible{outline:2px solid var(--groen);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.dcm-achter,.dcm-paneel,.dcm-laag,.dcm-chevron,.dcm-pijl{transition:none!important}}
.dcm-paneel{background-color:var(--bos);background-image:radial-gradient(500px 300px at 100% 0%,rgba(57,181,74,.32),transparent 70%);background-size:100% 100%;color:#fff;box-shadow:-18px 0 48px -24px rgba(0,0,0,.7)}
.dcm-kop{border-bottom-color:rgba(255,255,255,.1)}
.dcm-logo img{filter:brightness(0) invert(1)}
.dcm-sluit{background:rgba(255,255,255,.08);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.dcm-laag{background:transparent}
.dcm-groep{border-bottom-color:rgba(255,255,255,.1)}

.dcm-paneel{background-color:var(--bos);background-image:radial-gradient(500px 300px at 100% 0%,rgba(57,181,74,.32),transparent 70%);background-size:100% 100%;color:#fff;box-shadow:-18px 0 48px -24px rgba(0,0,0,.7)}
.dcm-kop{border-bottom-color:rgba(255,255,255,.1)}
.dcm-logo img{filter:brightness(0) invert(1)}
.dcm-sluit{background:rgba(255,255,255,.08);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.dcm-laag{background:transparent}
.dcm-groep{border-bottom-color:rgba(255,255,255,.1)}
.dcm-groepknop{color:#fff}
.dcm-groepknop:active{background:rgba(255,255,255,.06)}
.dcm-groepnaam{color:#fff}
.dcm-groepsub{color:#a9c2b0}
.dcm-chevron{background:rgba(255,255,255,.08);color:#fff}
.dcm-groep.is-hier>.dcm-groepknop{background:rgba(57,181,74,.22)}
.dcm-groep.is-hier .dcm-groepnaam::after,.dcm-link.is-hier .dcm-naam::after{background:var(--groen);color:var(--inkt)}
.dcm-subkop{background:rgba(22,44,28,.94);border-bottom-color:rgba(255,255,255,.1)}
.dcm-terug{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.dcm-terug svg{background:var(--groen);color:var(--inkt)}
.dcm-subtitel{color:#fff}
.dcm-sectie{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.dcm-label{color:var(--groen)}
.dcm-sectiekop{color:var(--mint)}
.dcm-link{color:#fff}
.dcm-link:active,.dcm-link:hover{background:rgba(255,255,255,.07)}
.dcm-subtekst{color:#a9c2b0}
.dcm-pijl{color:rgba(255,255,255,.4)}
.dcm-link:hover .dcm-pijl{color:var(--groen)}
.dcm-link.is-hier{background:rgba(57,181,74,.22)}
.dcm-beeld{box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.dcm-promo{background:var(--groen-diep);background-image:radial-gradient(400px 200px at 100% 0%,rgba(155,227,165,.35),transparent 70%)}
.dcm-promo .dcm-label{color:#E6F7D9}
.dcm-promo p{color:#e3f1e6}
.dcm-voet{background:rgba(22,44,28,.96);border-top-color:rgba(255,255,255,.1);box-shadow:0 -10px 24px -18px rgba(0,0,0,.6)}
.dcm-vraag{color:#a9c2b0}.dcm-vraag svg{color:var(--mint)}
.dcm a:focus-visible,.dcm button:focus-visible{outline-color:var(--groen)}

.dcm-logo img{filter:none}
/* einde mobiel menu */

/* ══ Nieuwe paginatypes (03-11): labelklasse, kennisbankartikel, contact ══ */
.pijlen .rij.uit{background:var(--wit);border-radius:var(--r-s);box-shadow:0 8px 22px -12px rgba(22,44,28,.45)}
.pijlen .rij.uit .getal{font-weight:800;color:var(--inkt)}
.byline{display:flex;align-items:center;gap:var(--s2);color:var(--stil);font-size:15px;margin:0}
.byline img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none}
.byline b{color:var(--inkt)}
.contactraster{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:var(--s4);margin-bottom:var(--s4)}
.contactkaart{background:var(--warm);border:1px solid var(--lijn);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);align-content:start}
.contactkaart h2{margin:0;font-size:clamp(22px,2.4vw,28px)}
.contactkaart .lijn{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--inkt)}
.contactkaart .klein,.klein{font-size:14px;color:var(--stil)}
.formulier-plek{min-height:220px;border:2px dashed var(--lijn);border-radius:var(--r-m);display:grid;place-items:center;color:var(--stil);font-weight:600;background:var(--wit)}
.tekstkolom > .byline{margin-bottom:var(--s4)}
/* antwoord eerst (dienstpagina's): direct onder de kop, één alinea + feiten + bijgewerkt */
.antwoord-sectie{padding-block:var(--s5) 0}
.antwoord{display:grid;gap:var(--s3);max-width:920px;padding:var(--s4);background:var(--lichtgroen);border-radius:var(--r-l)} /* geen accentrail (Richard 04-11) */
.antwoord-zin{font:600 clamp(18px,1.9vw,21px)/1.5 var(--f-tekst);color:var(--inkt);max-width:65ch;text-wrap:pretty}
.antwoord-feiten{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2) var(--s3);margin:0}
.antwoord-feiten dt{font:600 12.5px/1.3 var(--f-tekst);letter-spacing:.08em;text-transform:uppercase;color:var(--groen-tekst);margin-bottom:4px}
.antwoord-feiten dd{margin:0;font-weight:600;color:var(--inkt);font-variant-numeric:tabular-nums}
.antwoord .bijgewerkt{font-size:14px;color:var(--stil)}
@media (max-width:760px){.antwoord{padding:var(--s3)}.antwoord-feiten{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Contrast (besluit 03-11): tekst op --groen is --inkt (5,65:1); wit op --groen haalde 2,66:1 */
/* Focus voor de hele site (besluit 03-11): op foto en donker vlak wit */
:focus-visible{outline:2px solid var(--blauw);outline-offset:3px;border-radius:4px}
.subkop :focus-visible,.hero :focus-visible,.aanvraagkop .tekst :focus-visible,.dienst.bos:focus-visible,.dienst.bos :focus-visible{outline-color:#fff}
/* einde nieuwe paginatypes */

/* ══ Vaste regels (03-11): labelkleuren = DuraGo-standaard, prijsnotatie ══ */
:root{--la:#188840;--lb:#48A840;--lc:#98B838;--ld:#E0D828;--le:#E89820;--lf:#E86028;--lg:#D83028;--label-donker:#111827}
.l-A,.l-G{color:#fff}
.l-B,.l-C,.l-D,.l-E,.l-F,.pijlen .balk.l-B,.pijlen .balk.l-C,.pijlen .balk.l-D,.pijlen .balk.l-E,.pijlen .balk.l-F,.mm-schaal .l-B,.mm-schaal .l-C,.mm-schaal .l-D,.mm-schaal .l-E,.mm-schaal .l-F{color:var(--label-donker)}
.cent{font-size:inherit}
.nu .cent,.prijs-nu .cent,.t-prijs .cent,.bedrag .cent,.mm-aanvraagstrook b .cent,.dp-conf__prijs .cent{font-size:.5em;vertical-align:.72em;line-height:0;margin-left:.02em}
.cent.heel,.was .cent,.bedrag .was .cent{font-size:inherit;vertical-align:baseline;line-height:inherit;margin-left:0}
/* einde vaste regels */

/* subkop compact (03-11, sjablonen formulier en juridisch): geen foto, lichtgroen vlak, donkere tekst; de taak staat direct in beeld */
.subkop.compact{color:var(--inkt);background:var(--lichtgroen)}
.subkop.compact .in{padding-block:clamp(32px,4vw,56px) clamp(32px,4vw,56px)}
.subkop.compact .tekst{max-width:760px;gap:var(--s2)}
.subkop.compact h1{font-size:clamp(30px,3.4vw,46px)}
.subkop.compact .lead{color:var(--stil)}
.subkop.compact .kruimel li{color:var(--stil)}.subkop.compact .kruimel a{color:var(--groen-tekst)}
.subkop.compact .bijgewerkt{font:500 14px/1.4 var(--f-tekst);color:var(--stil)}
.subkop.compact :focus-visible{outline-color:var(--blauw)}
/* sjabloon formulier: het formulier links en breed, ernaast wat er daarna gebeurt; op 390 eerst het formulier */
.taak{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.taak .formkaart{background:var(--wit);border:1px solid var(--lijn);border-radius:var(--r-l);padding:clamp(20px,3vw,40px);box-shadow:0 18px 40px -28px rgba(22,48,31,.35)}
.taak .formkaart .formulier-plek{min-height:520px}
.taak aside{display:grid;gap:var(--s4);position:sticky;top:112px}
.taak .verder h2{font-size:clamp(20px,1.8vw,24px);margin:0 0 var(--s2)}
.taak .verder ol{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2);counter-reset:s}
.taak .verder li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start;counter-increment:s;line-height:1.5}
.taak .verder li::before{content:counter(s);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--groen-zacht);color:var(--groen-tekst);font:800 15px/1 var(--f-kop)}
.taak .vertrouw{list-style:none;padding:var(--s3);margin:0;display:grid;gap:10px;background:var(--warm);border-radius:var(--r-m);font:600 15px/1.35 var(--f-tekst)}
.taak .vertrouw li{display:flex;gap:10px;align-items:flex-start}.taak .vertrouw .ico{color:var(--groen-diep);flex:none;width:20px;height:20px;margin-top:1px}
.taak .persoon{display:flex;gap:12px;align-items:center;font-size:15px;line-height:1.45;color:var(--stil)}.taak .persoon img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.taak .persoon b{color:var(--inkt)}
@media (max-width:860px){.taak{grid-template-columns:minmax(0,1fr)}.taak aside{position:static}.taak .formkaart .formulier-plek{min-height:420px}}
/* sjabloon juridisch: smalle tekstkolom, inhoudsopgave ernaast */
.juridisch .tekstkolom{max-width:68ch}
.juridisch .tekstkolom h2{font-size:clamp(20px,1.8vw,24px)}
.subkop.compact .kruimel [aria-current]{color:var(--inkt)}
.sectie.kort-na-kop{padding-top:clamp(24px,3vw,48px)}

/* video / lottie (C4, plan C vraag 12): zelf gehost, poster verplicht, bediening zichtbaar; bij reduce geen autoplay */
.beweging{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(32px,6vw,88px);align-items:center}
.beweging .speler{position:relative;border-radius:var(--r-l);overflow:hidden;background:var(--bos);aspect-ratio:16/9;max-width:100%}
.beweging .speler video,.beweging .speler img{width:100%;height:100%;object-fit:cover;display:block}
.beweging .speler .lottie{width:100%;height:100%;display:grid;place-items:center;background:var(--lichtgroen)}
.beweging .speler button{position:absolute;left:16px;bottom:16px;height:44px;padding:0 18px;border:0;border-radius:var(--pill);background:#fff;color:var(--inkt);font:600 15px/1 var(--f-tekst);display:inline-flex;gap:8px;align-items:center;cursor:pointer}
.beweging .speler button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.beweging figcaption{font-size:14px;color:var(--stil);margin-top:var(--s1)}
@media (max-width:860px){.beweging{grid-template-columns:minmax(0,1fr)}}
/* teamraster (C4): foto of initialen, naam, rol, één regel; 4 → 2 → 1 kolom */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:var(--s4)}
.team .lid{display:grid;gap:10px;align-content:start}
.team .lid img,.team .lid .ini{width:100%;aspect-ratio:4/5;border-radius:var(--r-m);object-fit:cover;background:var(--warm)}
.team .lid .ini{display:grid;place-items:center;font:800 40px/1 var(--f-kop);color:var(--groen-diep)}
.team .lid b{font:700 19px/1.2 var(--f-kop);color:var(--inkt)}
.team .lid .rol{font:600 14px/1.3 var(--f-tekst);color:var(--groen-tekst);letter-spacing:.04em}
.team .lid p{font-size:15px;color:var(--stil);margin:0}

/* ══ Algemene blokoptie zweven (Richard 03-11: "alles universeel, alles instelbaar") ══
   Een blok ligt over de onderrand van de sectie ervoor: geen | kwart | half. De overlap is een vaste stap per stand
   (zelfde schaal als de check-kaart en de brugkaart), de sectie ervoor houdt haar eigen ruimte; het blok staat bovenop. */
.zweef-kwart,.zweef-half{position:relative;z-index:2}
/* --zweef-h = hoogte van de kaart in het blok (de renderer meet die; terugval 112px). half = het kaartmidden op de grens */
.zweef-kwart{--zweef-over:calc(var(--zweef-h, 112px) * .25);margin-top:calc(-1 * var(--zweef-over))}
.zweef-half{--zweef-over:calc(var(--zweef-h, 112px) * .5);margin-top:calc(-1 * var(--zweef-over))}
/* zweven zonder eigen strook (Richard 04-11: "nu … blijf je die hele witte balk over de hele breedte zien"): het blok heeft geen eigen
   achtergrond; het deel van de kaart onder de naad (--zweef-onder) ligt op de volgende sectie. Het blok trekt die sectie op tot de naad
   (margin-bottom), en die sectie krijgt precies dat deel extra bovenaan, zodat de afstand tot haar kop gelijk is aan elke andere sectie.
   --zweef-volgende zet de renderer (en ontwerp/zweven.js) op de volgende sectie; zonder script de gemeten terugval van de vertrouwensbalk. */
.zweef-kwart{--zweef-onder:calc(var(--zweef-h, 112px) * .75)}
.zweef-half{--zweef-onder:calc(var(--zweef-h, 112px) * .5)}
.zweef-kwart,.zweef-half{background:none;margin-bottom:calc(-1 * var(--zweef-onder))}
.zweef-kwart+.sectie,.zweef-half+.sectie{padding-top:calc(var(--sectie) + var(--zweef-volgende, var(--zweef-terugval)))}

/* ══ Vertrouwensbalk, variant zwevend: witte balk met ronde bovenhoeken, scheidingslijnen, drie usp's (geen Google meer, Richard 06-11) ══ */
.vertrouwen.zwevend{padding-block:0;background:none}
.vertrouwen.zwevend ul{background:#fff;border-radius:var(--r-l);padding:clamp(16px,1.6vw,22px) clamp(16px,2.4vw,32px);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;box-shadow:0 22px 44px -26px rgba(22,44,28,.42),0 2px 6px rgba(22,44,28,.06)}
.vertrouwen.zwevend li{padding-inline:clamp(14px,1.8vw,26px);min-width:0}
.vertrouwen.zwevend li:first-child{padding-left:0}
.vertrouwen.zwevend li+li{border-left:1px solid var(--lijn)}
.vertrouwen.zwevend .rond{width:36px;height:36px}
.vertrouwen.zwevend .rond.blauw{background:#E6EFFA;color:var(--blauw)}



@media (max-width:760px){
  .vertrouwen.zwevend ul{grid-template-columns:minmax(0,1fr);row-gap:12px}
  .vertrouwen.zwevend li{border-left:0!important;padding-left:0}
  .vertrouwen.zwevend li+li{border-top:1px solid var(--lijn);padding-top:12px}
}
/* decor van de mockup (geen blok): de fotoband waar de balk over valt, en de sectie erna zonder extra ruimte boven */
.fotoband{height:clamp(220px,28vw,420px);overflow:hidden}.fotoband img{width:100%;height:100%;object-fit:cover}
.na-zweef{padding-top:var(--s5)}

/* ══ Reviewregel: één gedeelde component (topbalk, brugkaart, vertrouwensbalk) — Google-logo, gouden sterren, "5,0 (66 reviews)".
   Score en aantal komen live uit de Google-reviews. Standen: standaard (één regel), pil (wit pilletje op een gekleurd vlak),
   gestapeld (sterren boven de score). ══ */
.reviewregel{display:inline-flex;align-items:center;gap:10px;font:500 14px/1.2 var(--f-tekst);color:var(--stil);text-decoration:none;white-space:nowrap}
.reviewregel .google{height:19px;width:auto;display:block}
.reviewregel .rr-score{display:inline-flex;align-items:center;gap:8px}
.reviewregel .sterren{color:#F5B301}
/* brugkaart (05-11, Sitebuilder: goud als het contrast ≥ 3:1 haalt, anders inkt): goud op de witte pil is 1,85:1, dus inkt (15:1) */
.brug .vertrouw .reviewregel .sterren{color:var(--inkt)}
.reviewregel .sterren svg{width:14px;height:14px}
.reviewregel b{font-weight:700;color:var(--inkt)}
.reviewregel.pil{background:#fff;border-radius:var(--pill);padding:7px 14px 7px 12px;box-shadow:0 6px 16px -12px rgba(22,44,28,.5)}
.reviewregel.gestapeld{gap:14px}.reviewregel.gestapeld .google{height:22px}
.reviewregel.gestapeld .rr-score{display:grid;gap:3px}
.brug .vertrouw .reviewregel{display:inline-flex;gap:10px}
.topbalk .reviewregel{padding-block:12px;margin-block:-12px}
.brug .vertrouw .reviewregel .sterren{gap:2px}
@media (max-width:420px){.reviewregel{gap:8px}.reviewregel .sterren svg{width:12px;height:12px}.reviewregel.pil{padding:6px 12px 6px 10px}}

/* ══ Algemene blokopties afstand, breedte, uitlijning (03-11): elk blok, standaard normaal/normaal/links ══ */
.afstand-kort-boven{padding-top:clamp(24px,3vw,48px)} /* = .kort-na-kop */
.afstand-kort-onder{padding-bottom:var(--s5)}
.afstand-kort{padding-block:var(--s5)}
.afstand-aansluiten{padding-top:0} /* sluit aan op het blok erboven, in dezelfde band (home: de check onder de keuzekaarten, 03-11) */
.sectie.afstand-aansluiten:has(.faq-raster){padding-top:var(--sectie)} /* de FAQ in de band erboven: één witte band, wel een normale ruimte boven zijn kop (Richard 06-11: geen krappe aansluitingen) */
.breedte-smal>.in{max-width:calc(760px + 2 * var(--rand))}
.breedte-vol>.in{max-width:none}
.uitlijning-midden .kopje,.uitlijning-midden>.in>h2,.uitlijning-midden>.in>.oog{text-align:center;justify-items:center;margin-inline:auto}

/* Gat (sjablonen 03-11): een vaste sectie van het sjabloon zonder inhoud. Alleen zichtbaar op de proefsite en in de editor;
   op de live site toont de renderer niets (en de paginatest faalt). Opvallend maar niet schreeuwend. */
.gat{margin-block:var(--s4);padding:var(--s4) var(--s5);border:2px dashed #E89820;border-radius:var(--r-l);background:repeating-linear-gradient(135deg,#FFF8EC 0 12px,#FFF3DF 12px 24px);display:grid;gap:6px}
.gat .gat-label{font:700 12px/1 var(--f-tekst);letter-spacing:.12em;text-transform:uppercase;color:#A85F00}
.gat .gat-sectie{font:700 20px/1.25 var(--f-kop);color:var(--inkt)}
.gat .gat-reden{color:var(--stil);font-size:15px}

/* Google één keer, bij de score; niet op elke reviewkaart (Richard 04-11). Avatar en datum: na-golf1/reviewkaarten/bouwkaart.md */
.rev .wie .rev-g{display:none}

/* Labelschaal (04-11, Richard: "let standaard op uitlijning, en of mobiel ook goed is"): één systeem.
   Lengte = de data: 64px (letter + punt) + (kolom − 64px) × aandeel/grootste aandeel (--a, 0..1). Nooit breder dan de kolom.
   Elke balk dezelfde punt (16px), dezelfde hoogte en de letter op dezelfde x; de actieve klasse een omlijning gelijk rondom, zonder te verspringen. */
.pijlen .balk{width:calc(64px + (100% - 64px) * var(--a, 1) * var(--groei, 1));min-width:0;max-width:100%;box-sizing:border-box;transform:none;transition:width 1s var(--zacht)}
.pijlen .rij{padding:5px 10px;margin-inline:-10px;border-radius:var(--r-s)}
.pijlen .rij.uit{background:var(--wit);box-shadow:0 8px 22px -12px rgba(22,44,28,.45)}

/* prijs: het centdeel blijft altijd inline, ook binnen blokken die spans als blok zetten (renderfout "€ 192" / ",50", 04-11) */
.cent{display:inline!important}

/* ===== Geen rails of gekleurde randen (Richard 04-11: "die randen, perfect!"); de rest staat in de oorspronkelijke regels =====
   menubalk: een tint-pil achter het open of aangewezen item in plaats van de groene streep */
.nav .links .mm-knop,.nav .links .mm-los{border-radius:999px;padding-inline:12px;margin-inline:-12px;transition:background .2s}
.nav .links .mm-knop[aria-expanded="true"],.nav .links .mm-knop:hover,.nav .links .mm-los:hover{background:var(--groen-zacht)}
.bg-wit a.zak:hover{border-color:var(--lijn)}
/* twee wegen (energielabel-aanvragen): oog, kop, tekst en link op één lijn over beide kaarten (rij-lijnen @768 gaf 27 px verschil, 04-11) */
@media (min-width:761px){.twee-weg>.weg{display:grid;grid-template-rows:subgrid;grid-row:span 4;align-content:start}.twee-weg>.weg .meer{align-self:end}}

/* de reviewstrook is met het toetsenbord te scrollen (WCAG 2.1.1, axe scrollable-region-focusable): zichtbare focus */
.revs:focus-visible{outline:3px solid var(--blauw);outline-offset:4px;border-radius:var(--r-l)}

/* reviewscore en -aantal als plek (data-sb-reviews, 05-11): het getal doet niet mee als eigen flex-item, anders zet een link met gap er extra ruimte omheen ("alle  67  reviews") */
[data-sb-reviews]{display:contents!important}

/* ══ Kop D (Richard 06-11): band en menu samen één zwevend blok op de foto; mobiel-richtlijn §2d. Gedrag: kop.js ══ */
:root{--kop-rand:8px;--kop-balk:72px;--kop-band:40px;--kop-h:calc(var(--kop-rand) + var(--kop-band) + var(--kop-balk));--kop-breedte:min(1280px,100% - 48px)}
.topbalk{position:relative;z-index:21;padding-top:var(--kop-rand)}
.topbalk .in{width:var(--kop-breedte);max-width:none;height:var(--kop-band);padding-inline:var(--s3);background:var(--warm);border-radius:var(--r-l) var(--r-l) 0 0}
.nav{position:sticky;top:var(--kop-rand);padding-top:0}
.nav .in{width:var(--kop-breedte);max-width:none;padding-inline:0}
.nav .balk{height:var(--kop-balk);padding:0 var(--s2) 0 var(--s3);border-radius:0 0 var(--r-l) var(--r-l);transition:border-radius .2s var(--zacht)}
html.kop-vast .nav .balk{border-radius:var(--r-l)}
.mm-paneel{left:0;right:0}
.mm-knop::after{content:none}
.nav .links{margin-inline:auto}
@media (min-width:1101px){.situaties:has(>:nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr))}} /* de hub heeft 6 kaarten (Richard 06-11): 3 × 2 */
/* lopende tekst blijft op leesbreedte in de bredere blokken (Richard 06-11); :where houdt de specificiteit op nul, zodat eigen maten (kopje, lead) voorgaan */
:where(.sectie) p,:where(.sectie) :where(.lijst,.stappen-v) li{max-width:68ch}
.hero,.subkop{margin-top:calc(-1 * var(--kop-h));padding-top:var(--kop-h)}
@media (min-width:761px){.hero .in,.subkop .in{padding-inline:calc(var(--rand) + var(--s3))}.subkop.compact .in{padding-inline:var(--rand)}} /* zonder foto: op de blokken eronder */
@media (max-width:760px){
  :root{--kop-rand:6px;--kop-balk:64px;--kop-breedte:calc(100% - 12px)}
  .nav .balk{padding:0 var(--s2)}
  .nav{transition:transform .25s var(--zacht)}
  html.kop-weg .nav{transform:translateY(calc(-100% - 2 * var(--kop-rand)))}
}
@media (prefers-reduced-motion:reduce){.nav,.nav .balk{transition:none}}

/* bron: duraplus-2/na-golf1/keuzelijst/keuzelijst.css · sha256 7996ff85e7adff5f14ee22bae2b30c0de029170f821b7583612814e9ad35d132 · momentopname C3-golf1f + aanvulling verbeter-0411 + eindscan 05-11 · niet met de hand bijwerken (tools/duraplus/stijl.mjs) */
/* Keuzelijst in DP-stijl (voorstel 04-11, bouwkaart.md). Universeel: elk duraplus-blok met een keuze (brugkaart, kop-met-formulier,
   formulier-taak). Bouwt op duraplus.css: --inkt, --stil, --lijn, --groen, --groen-diep, --groen-zacht, --f-tekst, --pill, --r-m.
   Twee lagen: (1) de native <select> zelf gestyled, voor zonder JS en voor touch; (2) het paneel, als JS het veld verrijkt. */

/* ---------- 1. het veld, dicht (ook de native select) ---------- */
.kl{position:relative;flex:1;min-width:0}
/* de select blijft in het formulier (waarde, required, change) maar is onzichtbaar; niet display:none, want dan kan de browser hem bij
   een verplicht veld niet focussen ("An invalid form control is not focusable") */
.kl>select{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.keuze select,.kl-veld{flex:1;min-width:0;width:100%;height:52px;border:0;border-radius:var(--pill);background:transparent;
  padding:0 48px 0 20px;font:500 16px/1 var(--f-tekst);color:var(--inkt);text-align:left;cursor:pointer;appearance:none;-webkit-appearance:none;
  display:flex;align-items:center;transition:background .15s}
.kl-veld .kl-waarde{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kl-veld[data-leeg] .kl-waarde,.keuze select:invalid{color:var(--stil)}
.kl-pijl{position:absolute;right:18px;top:50%;width:18px;height:18px;margin-top:-9px;color:var(--inkt);pointer-events:none;transition:transform .15s,color .15s}
.kl-veld[aria-expanded=true]~.kl-pijl{transform:rotate(180deg)}
.kl-veld:hover,.keuze select:hover{background:var(--groen-zacht)}

/* ---------- focus: geen ring rond de pil (die liep over de knop); alleen bij het toetsenbord een onderstreping in het veld ---------- */
.keuze select:focus,.kl-veld:focus{outline:none}
.kl-veld:focus-visible{background:var(--groen-zacht)}
.kl-veld{position:relative}
/* een lijn onder de tekst, binnen het veld (niet text-decoration: die valt weg door de afkapping van een lange keuze) */
.kl-veld:focus-visible::after{content:"";position:absolute;left:20px;right:48px;bottom:11px;height:2px;border-radius:1px;background:var(--groen-diep)}
.kl-veld:focus-visible~.kl-pijl{color:var(--groen-diep)}
/* native select (zonder JS, of touch): een binnenlijn onderaan, binnen het veld */
.keuze select:focus-visible{background-color:var(--groen-zacht);box-shadow:inset 0 -3px 0 var(--groen-diep)}

/* ---------- 2. het paneel ---------- */
/* weergave zwevend (gewone formuliervelden): onder het veld, over de inhoud eronder */
.kl-paneel{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:30;margin:0;padding:8px;list-style:none;background:#fff;
  border-radius:24px;box-shadow:0 24px 48px -20px rgba(22,44,28,.45),0 2px 8px rgba(22,44,28,.08);max-height:min(360px,60vh);overflow:auto;
  overscroll-behavior:contain;font:500 16px/1.3 var(--f-tekst);color:var(--inkt);animation:kl-in .16s ease-out}
.kl-paneel[hidden]{display:none}
@keyframes kl-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.kl-optie{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:48px;padding:12px 16px;border-radius:16px;cursor:pointer;user-select:none}
.kl-optie small{display:block;font-size:13px;color:var(--stil);margin-top:2px}
.kl-optie .kl-vink{width:20px;height:20px;color:var(--groen-diep);opacity:0}
.kl-optie:hover,.kl-optie.kl-actief{background:var(--groen-zacht)}
.kl-optie[aria-selected=true]{font-weight:700}
.kl-optie[aria-selected=true] .kl-vink{opacity:1}
/* toetsenbord: de actieve optie (aria-activedescendant) krijgt naast de tint een binnenrand, ook zichtbaar zonder kleurzicht */
.kl-toets .kl-optie.kl-actief{box-shadow:inset 0 0 0 2px var(--groen-diep)}
.kl-optie[aria-disabled=true]{color:var(--stil);cursor:default}

/* weergave inline (in de pil van brugkaart en kop-met-formulier): het paneel klapt ín de pil uit. De pil groeit mee tot een afgeronde
   kaart, het paneel valt nooit buiten de brugkaart (die heeft overflow:hidden) en nooit over de knop. */
.keuze{flex-wrap:wrap;transition:border-radius .16s}
.keuze .kl-paneel{position:static;order:3;flex:0 0 100%;max-height:none;overflow:visible;box-shadow:none;border-radius:0;padding:6px 0 2px;margin-top:6px;border-top:1px solid #EEEAE0;animation:kl-in .16s ease-out}
.keuze:has(.kl-veld[aria-expanded=true]){border-radius:28px}
/* bij openen groeit de pil naar onderen; hij blijft op zijn plek (geen sprong door het centreren van de kaart): align-self:start en
   een margin-top gelijk aan de afstand van daarvoor (keuzelijst.js › vastzetten) */
.keuze.kl-open{align-self:start;z-index:3}
.kl-vast{align-self:start}
@media (max-width:760px){
  .keuze{flex-wrap:nowrap}
  /* in de kolom geen flex:1 op de native select (touch, zonder JS): dan klapt height:52px in tot de regelhoogte (16 px, eindscan 05-11) */
  .keuze select{flex:none}
  .keuze .kl{order:1}.keuze .kl-paneel{order:2;margin:0 0 6px;padding:4px 0 6px;border-top:1px solid #EEEAE0;border-bottom:1px solid #EEEAE0}.keuze .knop{order:3}
}
@media (prefers-reduced-motion:reduce){.kl-paneel,.keuze .kl-paneel{animation:none}.kl-pijl,.kl-veld,.keuze{transition:none}}

/* bron: duraplus-2/na-golf1/reviewkaarten/reviewkaarten.css · sha256 5a72098651025e048e452a3cab0e4570be2c4a1c17ed3e08467eebcc2dca4bea · momentopname C3-golf1f + aanvulling verbeter-0411 · niet met de hand bijwerken (tools/duraplus/stijl.mjs) */
/* Reviewkaarten: weergave carrousel | raster (voorstel 04-11, bouwkaart.md). Bouwt op duraplus.css (.revs, .rev, .sterren, .score).
   Eén baan voor beide weergaven: alle kaarten staan in de HTML (SEO), de baan scrolt native met scroll-snap (geen CLS, swipen gratis). */
.rk .rk-baan{position:relative;outline:none;border-radius:var(--r-l)}
.rk .rk-baan:focus-visible{box-shadow:0 0 0 3px var(--groen-diep)}
.rk .revs{display:flex;gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;
  margin-inline:0;padding:6px 0 22px}
/* desktop: de baan eindigt op de container, zodat de kaarten uitlijnen met de kop (geen halve kaart tegen een harde rand) */
.rk .revs::-webkit-scrollbar{display:none}
.rk .rev{flex:0 0 calc((100% - 2 * var(--s3)) / 3);scroll-snap-align:start;min-width:0;box-shadow:0 18px 36px -28px rgba(22,44,28,.35)}
.rk .rev:nth-child(3){display:flex}
.rk .rev .wie{align-items:center}
.rev-g{height:17px;width:auto;display:inline-block;vertical-align:-3px}
.score small .rev-g{height:15px;margin-left:2px}

/* bediening: bolletjes, teller (mobiel), pijlen (desktop) */
.rk-bediening{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s2)}
.rk-bolletjes{display:flex;gap:8px;align-items:center}
.rk-bolletjes button{width:10px;height:10px;padding:0;border:0;border-radius:999px;background:#B9D8BF;cursor:pointer;transition:width .25s,background .25s}
.rk-bolletjes button[aria-selected=true]{width:28px;background:var(--groen-diep)}
.rk-bolletjes button:focus-visible,.rk-pijlen button:focus-visible{outline:3px solid var(--groen-diep);outline-offset:3px}
.rk-teller{display:none;font:600 14px/1 var(--f-tekst);color:var(--stil);font-variant-numeric:tabular-nums}
.rk-pijlen{display:flex;gap:10px}
.rk-pijlen button{width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(26,42,32,.18);background:#fff;color:var(--inkt);display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.rk-pijlen button svg{width:22px;height:22px}
.rk-pijlen button:hover:not(:disabled){border-color:var(--groen-diep);background:var(--groen-zacht)}
.rk-pijlen button:disabled{opacity:.35;cursor:default}
.rk-hint{display:none}
.rk .naar-google{margin-top:var(--s3)}

/* raster: op desktop drie naast elkaar zonder bediening (alle kaarten in een raster van 3 kolommen); op mobiel dezelfde baan als de carrousel */
.rk-raster .revs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;margin-inline:0;padding:6px 0 18px}
.rk-raster .rev{flex:none}
.rk-raster .rk-bediening{display:none}

@media (max-width:1100px){.rk .rev{flex-basis:calc((100% - var(--s3)) / 2)}.rk-raster .revs{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* mobiel: de volgende kaart steekt ±14% uit (peek), teller "1 / 9" en bolletjes, een kleine veeghint tot de eerste veeg; ook bij raster */
@media (max-width:760px){
  .rk .revs,.rk-raster .revs{display:flex;overflow-x:auto;margin-inline:calc(-1 * var(--rand));padding:6px var(--rand) 18px;gap:var(--s2)}
  .rk .rev,.rk-raster .rev{flex:0 0 84%}
  .rk .rev blockquote{font-size:16.5px}
  .rk-raster .rk-bediening,.rk .rk-bediening{display:flex}
  .rk-pijlen{display:none}.rk-teller{display:inline}
  .rk-hint{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font:600 13px/1 var(--f-tekst);color:var(--groen-tekst);animation:rk-hint 1.6s ease-in-out 3;animation-play-state:paused}
  .rk-hint.hint-aan{animation-play-state:running}
  .rk-hint svg{width:18px;height:18px}
  .rk.rk-geveegd .rk-hint{display:none}
}
@keyframes rk-hint{0%,100%{transform:none}50%{transform:translateX(6px)}}
@media (prefers-reduced-motion:reduce){.rk .revs{scroll-behavior:auto}.rk-hint{animation:none}.rk-bolletjes button{transition:none}}

/* De blokken van Over ons en de vacatures (golf1i, Design 05-11): 1-op-1 uit de mockups, na duraplus.css. Bron: na-golf1/kaartstijl/kaartstijl.css (de kaartstijlen), na-golf1/pagina/over-ons/over-ons.css (.oo-*), na-golf1/pagina/over-ons/v1.html (de afsluiter), na-golf1/pagina/vacatures/overijssel.html (.vc-*). */
/* Kaartstijlen (Design 04-11, Richard: "geen accentrail … kan er iets meer franje in soms?"). Blokoptie kaartstijl op elk kaartblok.
   Regel: geen accentrail op kaarten (geen gekleurde border-left/-top als accent). Ritme: op één pagina nooit drie keer dezelfde kaartstijl achter elkaar.
   .ks = de basis (wit, r-l, geen rand); daarna één stijl: ks-foto · ks-cijfer · ks-tint · ks-icoon · ks-label · ks-watermerk · ks-uitgelicht. */
:root{--plus-masker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='950.51 511.497 83.11 83.505'%3E%3Cpath d='M980.305,511.497L992.458,511.497C995.334,511.497 997.882,512.607 1000.1,514.831C1002.32,517.052 1003.43,519.729 1003.43,522.867L1003.43,541.684L1033.62,541.684L1033.62,564.813L1003.43,564.813L1003.43,595.002L980.305,595.002L980.305,564.813L950.51,564.813L950.51,553.054C950.51,545.474 954.169,541.684 961.487,541.684L980.305,541.684L980.305,511.497Z' fill='%23000'/%3E%3C/svg%3E")}
.ks{position:relative;isolation:isolate;overflow:hidden;background:#fff;color:var(--inkt);border-radius:var(--r-l);padding:var(--s4);display:flex;flex-direction:column;gap:12px;min-width:0}
.bg-wit .ks{background:var(--warm)}
.ks h3{font:700 clamp(19px,1.6vw,22px)/1.25 var(--f-kop);letter-spacing:-.01em;text-wrap:balance}
.ks p{color:var(--stil);font-size:16px;line-height:1.55}
.ks .meer{margin-top:auto;padding-top:4px}
a.ks{transition:transform .3s var(--zacht),box-shadow .3s}
a.ks:hover{transform:translateY(-3px);box-shadow:0 26px 44px -30px rgba(22,44,28,.55)}

/* 1 · foto: een fotostrook boven (standaard) of een fotohoek (variant hoek) */
.ks-foto{padding-top:0}
.ks-foto .ks-beeld{margin:0 calc(-1 * var(--s4)) 6px;aspect-ratio:16/8;overflow:hidden;background:var(--lichtgroen)}
.ks-foto .ks-beeld img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--zacht)}
a.ks-foto:hover .ks-beeld img{transform:scale(1.04)}
.ks-foto.hoek{padding-top:var(--s4);padding-right:calc(var(--s4) + 96px)}
.ks-foto.hoek .ks-beeld{position:absolute;top:0;right:0;width:120px;height:120px;margin:0;aspect-ratio:auto;border-radius:0 0 0 var(--r-l)}

/* 2 · cijfer: een groot getal of bedrag als blikvanger */
.ks-getal{font:800 clamp(40px,4.2vw,58px)/1 var(--f-kop);letter-spacing:-.035em;color:var(--groen-diep);font-variant-numeric:tabular-nums}
.ks-getal small{font:700 .38em/1 var(--f-kop);letter-spacing:0;color:var(--inkt);margin-left:6px}
.ks-cijfer .ks-sub{font:600 13px/1.3 var(--f-tekst);letter-spacing:.08em;text-transform:uppercase;color:var(--groen-tekst)}

/* 3 · tint: een lichte merktint, zonder rand */
.ks-tint,.bg-wit .ks-tint{background:var(--groen-zacht)}
.bg-lichtgroen .ks-tint{background:#fff}
.ks-tint.blauw,.bg-wit .ks-tint.blauw{background:#E6EFFA}
.ks-tint.geel,.bg-wit .ks-tint.geel{background:#FFF6CC}

/* 4 · icoon: een groot icoon in een gekleurd vlak */
.ks-ico{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:var(--groen);color:#fff;flex:none}
.ks-ico .ico{width:34px;height:34px}
.ks-icoon.blauw .ks-ico{background:var(--blauw)}
.ks-icoon.geel .ks-ico{background:var(--merkplus);color:var(--inkt)}

/* 5 · label: een kleine pill bovenaan ("Subsidie", "Nieuw") */
.ks-pil{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font:700 12.5px/1 var(--f-tekst);letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;border-radius:var(--pill);background:var(--groen-zacht);color:var(--groen-tekst)}
.ks-pil.geel{background:var(--logogeel);color:var(--inkt)}
.ks-pil.blauw{background:#E6EFFA;color:var(--blauw-diep)}
.ks-pil .ico{width:14px;height:14px}

/* 6 · watermerk: het merkplus, altijd geel, als subtiel watermerk in de hoek */
.ks-watermerk::after{content:"";position:absolute;z-index:-1;right:-30px;bottom:-38px;width:120px;height:121px;pointer-events:none;background:var(--merkplus);-webkit-mask:var(--plus-masker) center/contain no-repeat;mask:var(--plus-masker) center/contain no-repeat}
.ks-watermerk{padding-right:calc(var(--s4) + 72px)}

/* 7 · uitgelicht: de belangrijkste van de set, donker en twee kolommen breed */
.ks-uitgelicht,.bg-wit .ks-uitgelicht{background:var(--inkt);color:#fff}
.ks-uitgelicht p{color:rgba(255,255,255,.78)}
.ks-uitgelicht .ks-getal{color:var(--mint)}
.ks-uitgelicht .meer{color:#fff}
.ks-uitgelicht .ks-pil{background:rgba(155,227,165,.16);color:var(--mint)}
.ks-raster>.ks-uitgelicht{grid-column:span 2}
.ks-uitgelicht.ks-watermerk::after{right:-30px;bottom:-40px}

/* raster: 3 kolommen, 2 tot 1100, 1 op mobiel (uitgelicht dan gewoon één kolom) */
.ks-raster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
@media (max-width:1100px){.ks-raster{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.ks-raster{grid-template-columns:minmax(0,1fr)}.ks-raster>.ks-uitgelicht{grid-column:auto}.ks{padding:var(--s3)}.ks-foto{padding-top:0}.ks-foto .ks-beeld{margin-inline:calc(-1 * var(--s3))}.ks-watermerk{padding-right:var(--s3)}.ks-foto.hoek{padding-right:calc(var(--s3) + 84px)}.ks-foto.hoek .ks-beeld{width:96px;height:96px}}
@media (prefers-reduced-motion:reduce){a.ks,a.ks:hover,.ks-foto .ks-beeld img{transition:none;transform:none!important}}

/* vier vaste plekken per kaart: .ks-kop (beeld/cijfer/icoon/pill, mag leeg) · h3 · p · .ks-actie (mag leeg).
   In een raster: subgrid, zodat kop-onderkant, titel, tekst en actie in elke kaartstijl op dezelfde lijnen liggen (strak raster, ≤ 2 px). */
.ks-kop{display:grid;gap:10px;justify-items:start;align-content:end}
.ks-kop:empty{display:none}
.ks-actie{margin-top:auto}.ks-actie:empty{display:none}
@media (min-width:761px){
  .ks-raster{grid-auto-rows:auto}
  .ks-raster>.ks,.ks-raster>figure>.ks{display:grid;grid-template-rows:subgrid;grid-row:span 4;gap:12px}
  .ks-raster .ks .ks-kop:empty,.ks-raster .ks .ks-actie:empty{display:block}
  .ks-raster .ks .ks-actie{align-self:end}
}
.ks-foto .ks-kop{margin:0 calc(-1 * var(--s4));align-content:stretch}.ks-foto .ks-kop .ks-beeld{margin:0}
.ks-tint .ks-pil,.ks-tint .ks-pil.blauw,.ks-tint .ks-pil.geel{background:#fff}

.op-noot{margin-top:var(--s3);font-size:13px;color:var(--stil)}
.oo-tech .op-noot{margin-top:var(--s3)}
/* afsluiter */
.of-afsluiter{background:var(--inkt);color:#fff;padding-block:clamp(48px,6vw,88px);position:relative;overflow:hidden;isolation:isolate}
.of-afsluiter::after{content:"";position:absolute;z-index:-1;right:6%;bottom:-70px;width:230px;height:231px;background:var(--merkplus);-webkit-mask:var(--plus-masker) center/contain no-repeat;mask:var(--plus-masker) center/contain no-repeat}
.of-afsluiter .in{display:flex;justify-content:space-between;align-items:center;gap:var(--s3) var(--s5);flex-wrap:wrap}
.of-afsluiter h2{font-size:clamp(26px,2.8vw,38px);text-wrap:balance}
.of-afsluiter p{color:rgba(255,255,255,.78);margin-top:8px}
.of-afsluiter .meer{color:#fff}
@media (max-width:760px){.of-afsluiter{padding-bottom:120px}.of-afsluiter::after{width:120px;height:121px;right:-24px;bottom:-34px}}
/* v2: achtergronden wisselen af en de pagina eindigt wit (Richards layout-richtlijn): de afsluiter licht, met het merkplus */
.of-afsluiter.licht{background:#fff;color:var(--inkt);border-top:1px solid var(--lijn)}
.of-afsluiter.licht p{color:var(--stil)}
.of-afsluiter.licht .meer{color:var(--blauw)}
@media (min-width:761px) and (max-width:1100px){.of-afsluiter{padding-bottom:110px}.of-afsluiter::after{width:140px;height:141px;right:-24px;bottom:-44px}}

/* ===== Over ons (Design 04-11) ===== */
.oo-kop .foto img{object-position:70% 38%}
.oo-kop .in{padding-block:clamp(56px,7vw,104px) clamp(72px,8vw,120px)}
.oo-lead{color:var(--stil);max-width:52ch}
.oo-tekst .kopje{grid-template-columns:minmax(0,1fr);margin-bottom:var(--s3);text-align:left;justify-items:start}
.oo-tekst p{color:var(--stil);max-width:60ch;line-height:1.65}
.oo-tekst p+p{margin-top:var(--s2)}
.oo-tekst>.meer{margin-top:var(--s3)}

/* feiten: één rij, gelijke plekken (icoon · kop · tekst · link), geen eigen aantallen */
.oo-feitrij{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s3)}
.oo-feitrij li{background:#fff;border-radius:var(--r-l);padding:var(--s4) 22px;display:grid;grid-template-rows:subgrid;grid-row:span 4;gap:10px;align-content:start}
.oo-feitrij b{font:700 18px/1.25 var(--f-kop);color:var(--inkt)}
.oo-feitrij li>span:not(.oo-fico){color:var(--stil);font-size:15px;line-height:1.5}
.oo-feitrij .meer{padding-top:0;margin-top:0;align-self:end;white-space:nowrap;font-size:14.5px}
.oo-feitrij i{display:block}
.oo-fico{width:44px;height:44px;border-radius:14px;background:var(--groen-zacht);color:var(--groen-tekst);display:grid;place-items:center}
.oo-fico .ico{width:22px;height:22px}
@media (max-width:1180px){.oo-feitrij{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.oo-feitrij{grid-template-columns:minmax(0,1fr);gap:12px}.oo-feitrij li{grid-template-rows:none;grid-row:auto;grid-template-columns:44px minmax(0,1fr);column-gap:16px;row-gap:4px;padding:18px}
  .oo-feitrij .oo-fico{grid-row:span 3}.oo-feitrij i{display:none}.oo-feitrij .meer{margin-top:4px}}

/* het waarom: de live tekst als hart, groot en rustig */
.oo-hart{max-width:900px;display:grid;gap:var(--s2)}
.oo-hart h2{font-size:clamp(30px,3.6vw,50px);text-wrap:balance}
.oo-groot{font:500 clamp(19px,1.7vw,24px)/1.55 var(--f-tekst);color:var(--inkt);max-width:62ch}
.oo-daarom{font:800 clamp(22px,2vw,28px)/1.2 var(--f-kop);margin:var(--s6) 0 var(--s3)}
.oo-drie{grid-template-columns:repeat(3,minmax(0,1fr))}
.oo-tweeluik{grid-template-columns:repeat(2,minmax(0,1fr))}
.oo-vier{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.oo-vier{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.oo-vier{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.oo-tweeluik{grid-template-columns:minmax(0,1fr)}}
@media (max-width:1100px) and (min-width:761px){.oo-drie{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.oo-drie{grid-template-columns:minmax(0,1fr)}.oo-daarom{margin-top:var(--s5)}}

/* twee kolommen: foto en tekst */
.oo-twee{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.oo-twee.omgekeerd{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.oo-foto{margin:0;border-radius:var(--r-l);overflow:hidden;aspect-ratio:12/7;background:var(--lichtgroen)}
.oo-foto.staand{aspect-ratio:1/1}
.oo-foto img{width:100%;height:100%;object-fit:cover;display:block}
.oo-portret{margin:0;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/5;max-width:440px;justify-self:center;background:var(--groen-zacht)}
.oo-portret img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
@media (max-width:900px){.oo-twee,.oo-twee.omgekeerd{grid-template-columns:minmax(0,1fr)}.oo-twee.omgekeerd .oo-foto{order:-1}.oo-portret{max-width:360px;justify-self:start}}

/* je adviseur: drie punten */
.oo-punten{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;gap:14px}
.oo-punten li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px}
.oo-punten .ico{width:22px;height:22px;color:var(--groen-tekst);margin-top:2px}
.oo-punten b{display:block;font:700 16px/1.3 var(--f-kop);color:var(--inkt)}
.oo-punten span{color:var(--stil);font-size:15px;line-height:1.5}

/* open vraag aan Richard: duidelijk een placeholder, geen antwoord */
.oo-open{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;margin-top:var(--s3);padding:16px 18px;border:2px dashed #C9B27A;border-radius:18px;background:#FFFBEA}
.oo-open>div>b{display:block;font:700 12.5px/1.2 var(--f-tekst);letter-spacing:.06em;text-transform:uppercase;color:#7A5A00}
.oo-open>div>span{display:block;margin-top:4px;font:600 15.5px/1.45 var(--f-tekst);color:var(--inkt)}
.oo-open>div>small{display:block;margin-top:4px;color:var(--stil);font-size:14px;line-height:1.45}
.oo-vraagteken{width:44px;height:44px;border-radius:50%;background:var(--merkplus,#FBB03B);color:var(--inkt);display:grid;place-items:center;font:800 24px/1 var(--f-kop)}
.ks-actie .oo-open{margin-top:0}

/* eigen techniek: echte schermen in de fotostrook, bovenkant van het scherm in beeld */
.oo-scherm .ks-beeld{aspect-ratio:4/3;background:#EEF1EE}
.oo-scherm .ks-beeld img{object-fit:cover;object-position:0 0}
.oo-scherm:hover .ks-beeld img{transform:none}
.oo-volgt{width:100%;height:100%;display:grid;place-content:center;justify-items:center;gap:12px;text-align:center;padding:24px;border:2px dashed #C9B27A;background:#FFFBEA;color:#7A5A00;font:600 15px/1.4 var(--f-tekst)}
.oo-tech .op-noot{margin-top:var(--s3)}

/* als er iets niet klopt */
.oo-smal>*{max-width:860px}
.oo-klopt .kopje{grid-template-columns:minmax(0,1fr);margin-bottom:var(--s2);text-align:left;justify-items:start}
.oo-contact{margin-top:var(--s4);display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;color:var(--inkt);font-weight:600}
.oo-contact .meer{padding-top:0;margin:0}

/* afsluiter met twee knoppen */
.oo-aknop{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:760px){.oo-aknop{width:100%}.oo-aknop .knop{flex:1 1 100%;justify-content:center}}

.oo-tekst h2{font-size:clamp(28px,3vw,42px);text-wrap:balance}
/* mobiel: de werkfoto als strook onder de tekst, zodat het echte werk zichtbaar blijft (niet weg onder het verloop) */
@media (max-width:760px){.oo-kop{display:flex;flex-direction:column;background:var(--inkt)}.oo-kop .in{padding-bottom:28px}
  .oo-kop .foto{position:relative;inset:auto;order:2;aspect-ratio:3/2;margin:0 16px 24px;border-radius:var(--r-l)}.oo-kop .foto::after{display:none}.oo-kop .foto img{object-position:72% 40%}}
.oo-scherm .ks-beeld{display:block}.oo-volgt{box-sizing:border-box}
@media (max-width:760px){.oo-portret{max-width:280px}}
@media (max-width:1100px) and (min-width:761px){.oo-drie>.ks:last-child:nth-child(odd){grid-column:1/-1}.oo-feitrij>li:nth-child(4):nth-last-child(2){grid-column:span 1}}
@media (max-width:900px){.oo-foto.staand{aspect-ratio:4/3}}

/* feitenstrook (Sitebuilder 04-11): één band met vijf feiten en dunne scheidingen, geen dienstkaarten */
.oo-feiten .kopje{margin-bottom:var(--s4)}
.oo-strook{margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fff;border-radius:var(--r-l);padding:28px 0}
.oo-strook>div{padding:4px 26px;border-left:1px solid var(--lijn,#E4E0D4);display:grid;align-content:start;gap:6px}
.oo-strook>div:first-child{border-left:0}
.oo-strook dt{font:700 12.5px/1.2 var(--f-tekst);letter-spacing:.07em;text-transform:uppercase;color:var(--groen-tekst)}
.oo-strook dd{margin:0;display:grid;gap:4px}
.oo-strook b{font:800 clamp(20px,1.7vw,24px)/1.2 var(--f-kop);color:var(--inkt)}
.oo-strook dd>span{color:var(--stil);font-size:14.5px;line-height:1.45}
.oo-strook .meer{padding-top:4px;margin:0;font-size:14.5px}
@media (max-width:1100px){.oo-strook{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:22px}.oo-strook>div:nth-child(4){border-left:0}}
@media (max-width:760px){.oo-strook{grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 18px;row-gap:0}
  .oo-strook>div{border-left:0;border-top:1px solid var(--lijn,#E4E0D4);padding:16px 0}.oo-strook>div:nth-child(-n+2){border-top:0}
  .oo-strook>div:nth-child(odd){padding-right:14px}.oo-strook>div:nth-child(even){padding-left:14px;border-left:1px solid var(--lijn,#E4E0D4)}
  .oo-strook>div:last-child:nth-child(odd){grid-column:1/-1;padding-right:0}.oo-strook b{font-size:19px}}
.oo-kop .foto img{object-position:60% 50%}
@media (max-width:760px){.oo-kop .foto img{object-position:56% 50%}}
@media (max-width:760px){.oo-strook>div{border-left:0!important;padding:16px 0!important;border-top:1px solid var(--lijn,#E4E0D4)}
  .oo-strook>div:nth-child(-n+2){border-top:0}.oo-strook>div:nth-child(3){grid-column:1/-1}.oo-strook>div:last-child:nth-child(odd){grid-column:auto}
  .oo-strook>div:nth-child(1),.oo-strook>div:nth-child(4){padding-right:14px!important}
  .oo-strook>div:nth-child(2),.oo-strook>div:nth-child(5){padding-left:14px!important;border-left:1px solid var(--lijn,#E4E0D4)!important}
  .oo-strook .meer{white-space:nowrap}}
.oo-feiten{padding-block:clamp(56px,6vw,88px)}

.oo-vier h3{font-size:clamp(19px,1.45vw,21px)}

/* ===== Vacatures (Design 04-11) ===== */
.vc-kop .foto img{object-position:60% 50%}
.vc-voorw{margin:2px 0 0}
.vc-voorw li span b{font-weight:700}
@media (max-width:760px){.vc-kop{display:flex;flex-direction:column;background:var(--inkt)}.vc-kop .in{padding-bottom:28px}
  .vc-kop .foto{position:relative;inset:auto;order:2;aspect-ratio:3/2;margin:0 16px 24px;border-radius:var(--r-l)}.vc-kop .foto::after{display:none}}
/* open vacatures per provincie: per kaart het silhouet van de provincie (CBS), tint om en om; geen zeven gelijke kaarten */
.vc-regios{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.vc-regio{display:grid;grid-template-rows:subgrid;grid-row:span 4;gap:10px;text-decoration:none;color:inherit;transition:transform .25s var(--zacht),box-shadow .25s var(--zacht)}
.vc-regio:hover{transform:translateY(-3px);box-shadow:0 18px 36px -24px rgba(22,44,28,.4)}
.vc-regio h3{font-size:18px;line-height:1.3}
.vc-regio p{color:var(--stil);font-size:14.5px}
.vc-mini{width:120px;height:90px;display:block}
.vc-mini path{fill:var(--groen-zacht);stroke:var(--groen);stroke-width:1.4;stroke-linejoin:round}
.ks-tint .vc-mini path{fill:#fff}
@media (max-width:1100px){.vc-regios{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.vc-regios{grid-template-columns:minmax(0,1fr)}.vc-regio{grid-template-rows:none;grid-row:auto;grid-template-columns:96px minmax(0,1fr);column-gap:14px}.vc-regio .ks-kop{grid-row:span 3}.vc-mini{width:96px;height:72px}}
/* wie zoeken we */
.vc-eisen{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.vc-eisen li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;color:var(--inkt);font-size:16px;line-height:1.5}
.vc-eisen .ico{width:22px;height:22px;color:var(--groen-tekst);margin-top:1px}
.vc-noot{margin-top:var(--s3)!important}
/* wat we bieden: kaartstijlvariatie, 3 kolommen, de uitgelichte kaart niet breder (6 kaarten passen strak in 3 × 2) */
.vc-raster{grid-template-columns:repeat(3,minmax(0,1fr))}
.vc-raster>.ks-uitgelicht{grid-column:auto}
@media (max-width:1100px) and (min-width:761px){.vc-raster{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.vc-raster{grid-template-columns:minmax(0,1fr)}}
/* wat ga je doen: echte schermen (GoSketch; opname-app volgt van BEP) */
.vc-schermen{margin:0;position:relative;padding:0 0 60px 0}
.vc-scherm{border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -36px rgba(22,44,28,.5);background:#fff}
.vc-scherm img{display:block;width:100%;height:auto}
.vc-scherm.groot{width:88%}
.vc-scherm.klein{position:absolute;right:0;bottom:0;width:44%;aspect-ratio:3/4}
.vc-onder{position:absolute;left:12px;top:12px;background:#fff;border-radius:999px;padding:4px 10px;font:700 12px/1 var(--f-tekst);color:var(--inkt);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.vc-scherm.groot{position:relative}
.vc-volgt{display:grid;place-content:center;justify-items:center;gap:10px;text-align:center;padding:16px;border:2px dashed #C9B27A;background:#FFFBEA;color:#7A5A00;font:600 14px/1.4 var(--f-tekst)}
.vc-schermen figcaption{position:absolute;left:0;bottom:0;font-size:13.5px;color:var(--stil);max-width:50%}
@media (max-width:900px){.vc-schermen{padding-bottom:0}.vc-scherm.groot{width:100%}.vc-scherm.klein{position:relative;width:60%;margin:-40px 0 0 auto}.vc-schermen figcaption{position:static;max-width:none;margin-top:10px}}
/* werkgebied: plaatsen als chips + het kaartje van de provincie */
.vc-chips{list-style:none;padding:0;margin:var(--s3) 0 0;display:flex;flex-wrap:wrap;gap:10px}
.vc-chips li{background:#fff;border:1px solid var(--lijn,#E4E0D4);border-radius:999px;padding:8px 14px;font:600 15px/1.2 var(--f-tekst);color:var(--inkt)}
.vc-chips.links li{padding:0}
.vc-chips.links a{display:block;padding:10px 16px;color:var(--inkt);text-decoration:none}
.vc-chips.links a:hover{color:var(--groen-tekst)}
.bg-wit .vc-chips li{background:var(--warm)}
.vc-kaart{width:100%;max-width:460px;height:auto;justify-self:center;overflow:visible}
.vc-kaart path{fill:#fff;stroke:var(--groen);stroke-width:1.6;stroke-linejoin:round}
.vc-stip circle{fill:var(--groen);stroke:#fff;stroke-width:2}
.vc-stip text{font:600 12.5px var(--f-tekst);fill:var(--inkt);paint-order:stroke;stroke:#fff;stroke-width:3px}
/* afsluiter */
.vc-af p{max-width:62ch}
.vc-af .vc-acq{font-size:13.5px;color:rgba(255,255,255,.6);margin-top:10px}
.vc-af .vc-acq,.vc-af a{color:inherit}
.vc-af p a{color:#fff;text-decoration:underline}
/* 05-11: het echte opname-scherm is staand (3:4); de 4:3 van de plaatshouder sneed het af */

/* 05-11: het label van het opname-scherm onderaan (bovenaan valt het over "Nog op te nemen") */
.vc-scherm.klein .vc-onder{top:auto;bottom:12px}
/* v2: het portaalblok (echte schermen), groot over de volle breedte */
.op-kop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:var(--s3) var(--s5);align-items:end}
.op-kop-r{display:grid;gap:var(--s2)}
.op-lead{font-size:clamp(17px,1.3vw,19px);line-height:1.6;color:var(--stil)}
.op-persoon{display:flex;gap:12px;align-items:center;font-size:15px;color:var(--stil);background:#fff;border-radius:var(--r-m);padding:12px 16px;margin:0}
.op-persoon img{width:40px;height:40px;border-radius:12px;object-fit:cover;object-position:50% 30%;flex:none}
.op-persoon b{color:var(--inkt)}
.op-pin{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--inkt);color:#fff;font:800 15px/1 var(--f-kop);box-shadow:0 0 0 4px #fff;flex:none}
.op-stage{position:relative;margin:var(--s5) 0 0;padding:56px 0 40px;display:grid;grid-template-columns:minmax(0,1fr) 19% 19%;gap:var(--s3);align-items:end}
.op-stage img{display:block;width:100%;height:auto}
.op-laptop{position:relative;background:#1E2B23;border-radius:18px;padding:28px 12px 12px;box-shadow:0 40px 70px -40px rgba(22,44,28,.55)}
.op-laptop img{border-radius:8px}
.op-balk{position:absolute;top:10px;left:14px;display:flex;gap:6px}
.op-balk i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.28)}
.op-taak{position:absolute;left:-24px;top:0;width:40%;z-index:2;box-shadow:0 24px 44px -24px rgba(22,44,28,.55);border-radius:14px}
.op-taak img{border-radius:14px}
.op-tel{position:relative;background:#1E2B23;border-radius:28px;padding:8px;box-shadow:0 30px 60px -30px rgba(22,44,28,.6)}
.op-tel img{border-radius:21px;aspect-ratio:600/1080;object-fit:cover;object-position:top}
.op-tel-a{margin-bottom:48px}
.op-stage .op-pin{position:absolute;z-index:3}
.op-laptop .op-pin{left:31%;top:40%}
.op-taak .op-pin{right:-14px;top:-14px}
.op-tel .op-pin{left:-14px;top:18%}
.op-lijst{list-style:none;padding:0;margin:var(--s4) 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.op-lijst li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
.op-lijst b{display:block;font:700 17px/1.25 var(--f-kop);margin-bottom:4px}
.op-lijst span{font-size:15px;color:var(--stil);line-height:1.5}
.op-noot{margin-top:var(--s3);font-size:13px;color:var(--stil)}
.op-rail{display:none}
@media (max-width:1100px){.op-kop{grid-template-columns:minmax(0,1fr)}.op-lijst{grid-template-columns:repeat(2,minmax(0,1fr))}.op-stage{grid-template-columns:minmax(0,1fr) 24%;}.op-tel-a{display:none}}
@media (max-width:760px){
  .op-stage{display:none}
  .op-lijst{grid-template-columns:minmax(0,1fr);gap:var(--s2)}
  .op-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:var(--s3) calc(-1 * var(--rand)) 0;padding:4px var(--rand) 8px;scroll-padding-inline:var(--rand);scrollbar-width:none}
  .op-rail::-webkit-scrollbar{display:none}
  .op-slide{flex:0 0 72%;scroll-snap-align:start;margin:0;display:grid;gap:10px;align-content:start}
  .op-slide.breed{flex-basis:88%}
  .op-frame{background:#1E2B23;border-radius:22px;padding:7px}.op-frame img{width:100%;height:auto;border-radius:16px;max-height:520px;object-fit:cover;object-position:top}
  .op-slide figcaption{display:flex;align-items:center;gap:10px;font:600 15px/1.3 var(--f-tekst)}
  .op-slide .op-pin{width:26px;height:26px;font-size:13px;box-shadow:none}
}
@media (max-width:760px){
  .op .op-lijst{display:none}
  .op-slide,.op-slide.breed{flex:0 0 78%}
  .op-frame{height:440px;overflow:hidden;display:flex;align-items:flex-start;justify-content:center}
  .op-frame img{max-height:none;height:100%;width:100%;object-fit:cover;object-position:top}
  .op-slide.breed .op-frame{background:#fff;border:7px solid #1E2B23;padding:10px;align-items:center}
  .op-slide.breed .op-frame img{height:auto;max-height:100%;object-fit:contain}
  .op-slide figcaption{align-items:flex-start;font-weight:400;font-size:14.5px;color:var(--stil);line-height:1.45}
  .op-slide figcaption b{display:block;font:700 16px/1.25 var(--f-kop);color:var(--inkt);margin-bottom:2px}
}
/* v3: portaalblok op wit; op mobiel eerst het overtuigende beeld (Sitebuilder 04-11), dan drie strakke uitsnedes */
.op.bg-wit .op-laptop,.op.bg-wit .op-tel{box-shadow:0 30px 60px -34px rgba(22,44,28,.5)}
.op-mob{display:none}
.pc{display:inline-flex;align-items:center;font:600 13px/1 var(--f-tekst);padding:6px 10px;border-radius:999px;border:1px solid;white-space:nowrap}
.pc-moet{color:#1F7A33;background:#E8F6EA;border-color:#BFE3C5}
.pc-helpt{color:#1F5FB8;background:#EAF1FD;border-color:#C4D7F5}
.pc-niet{color:#B42318;background:#FDECEA;border-color:#F5C6C0}
@media (max-width:760px){
  .op .op-rail,.op .op-lijst{display:none}
  .op-mob{display:grid;gap:var(--s3);margin-top:var(--s3)}
  .op-m-factuur{margin:0;background:#fff;border-radius:var(--r-m);padding:14px;box-shadow:0 0 0 1px var(--lijn),0 20px 40px -30px rgba(22,44,28,.5)}
  .op-m-factuur img{width:100%;height:auto}
  .op-m-factuur figcaption{margin-top:10px;font-size:13px;color:var(--stil)}
  .op-chips{list-style:none;padding:0;margin:0;display:grid;gap:10px}
  .op-chips li{display:grid;gap:6px;justify-items:start;font-size:15px;line-height:1.45;color:var(--inkt)}
  .op-mstap{list-style:none;padding:0;margin:0;display:grid;gap:var(--s4)}
  .op-mstap li{display:grid;gap:12px}
  .op-mkop{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
  .op-mkop b{display:block;font:700 17px/1.25 var(--f-kop)}.op-mkop span{font-size:15px;color:var(--stil)}
  .op-mbeeld{border-radius:var(--r-m);overflow:hidden;box-shadow:0 0 0 1px var(--lijn),0 18px 36px -28px rgba(22,44,28,.5);background:#fff}
  .op-mbeeld img{width:100%;height:auto;display:block}
}
/* portaalblok, variant tekeningen (berekeningen): de eenvoudige aanleverlijst, zoals het portaal daar echt werkt */
.opt-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--s5);align-items:center}
.opt-tekst{display:grid;gap:var(--s3);align-content:start}
.opt-stage{position:relative;margin:0;padding:40px 0 0 32px}
.opt-venster{background:#1E2B23;border-radius:18px;padding:28px 12px 12px;box-shadow:0 40px 70px -40px rgba(22,44,28,.55);position:relative;max-height:560px;overflow:hidden}
.opt-venster img{display:block;width:100%;height:auto;border-radius:8px}
.opt-venster::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:70px;background:linear-gradient(transparent,#1E2B23)}
.opt-taak{position:absolute;left:0;top:0;width:62%;z-index:2;border-radius:14px;box-shadow:0 24px 44px -24px rgba(22,44,28,.55)}
.opt-taak img{display:block;width:100%;height:auto;border-radius:14px}
.opt-stage .op-pin{position:absolute;z-index:3}
.opt-taak>.op-pin{right:-14px;top:-14px}
.opt-pin2 .op-pin{right:-14px;top:52%}
.opt-venster .op-pin{left:-14px;top:42%}
.opt .op-lijst{grid-template-columns:minmax(0,1fr);margin-top:0;gap:14px}
@media (min-width:761px){.opt-stage{display:flex;flex-direction:column;padding:0 0 0 32px}.opt-taak{position:relative;order:-1;width:70%;margin:0 0 -64px -32px}.opt-venster{padding-top:84px}.opt-venster .op-pin{top:150px}.opt-venster{overflow:visible;max-height:none}.opt-venster img.d{max-height:520px;object-fit:cover;object-position:top}}
@media (max-width:1100px){.opt-in{grid-template-columns:minmax(0,1fr)}.opt-stage{max-width:640px}}
@media (min-width:761px){.opt-venster .m{display:none}}
@media (max-width:760px){.opt-stage{padding:0}.opt-taak{position:relative;width:100%;margin-bottom:12px}.opt-venster{max-height:none;padding:7px;border-radius:22px}.opt-venster::after{display:none}.opt-venster .d{display:none}.opt-venster .m{display:block}.opt-stage .op-pin{display:none}}
@media (max-width:760px){.op.opt .op-lijst{display:grid}.opt-stage{display:flex;flex-direction:column}.opt-taak{order:-1}.opt-venster .d{display:none}.opt-venster .m{display:block}}

/* Sitebuilder: elke link in de linkrij is minstens 44 px hoog (bouwkaart linkrij) */
.vc-chips.links a{display:flex;align-items:center;min-height:44px}
/* review 05-11: het portret klapte in tot 0×0 tot het luie beeld laadde (de sectie sprong van 683 naar 780 px op 1440) */
.oo-portret{width:100%}
/* zonder de mobiele schermen staat op de telefoon de lijst er */
@media (max-width:760px){.op-zonder-mob .op-lijst{display:grid}}

/* De offertekeuze: bron na-golf1/aanvraagflow/nieuw/flow.css (sha256 c729662265a2abd2), de regels van de blokken, en tools/duraplus/offerte-aanvulling.css · niet met de hand bijwerken (tools/duraplus/offerte-stijl.mjs) */
.af-kop .tekst{max-width:900px}
.af-kop h1,.af-kop .lead{max-width:720px}
.af-ingangen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:var(--s1)}
.af-ingang{display:grid;grid-template-columns:44px minmax(0,1fr) 20px;gap:4px 14px;align-items:center;background:rgba(255,255,255,.97);color:var(--inkt);border-radius:var(--r-m);padding:14px 16px 14px 14px;transition:transform .25s var(--zacht),box-shadow .25s}
.af-ingang:hover{transform:translateY(-2px);box-shadow:0 18px 32px -18px rgba(0,0,0,.55)}
.af-ingang:active{transform:translateY(0) scale(.99)}
.af-ing-ico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--groen-zacht);color:var(--groen-diep)}
.af-ing-ico .ico{width:22px;height:22px}
.af-ingang b{display:block;font:700 17px/1.2 var(--f-kop)}
.af-ingang>span:nth-child(2)>span{display:block;font-size:14px;line-height:1.35;color:var(--stil);margin-top:2px}
.af-ingang>.ico{color:var(--blauw);width:18px;height:18px}
.af-ingang:nth-child(3) .af-ing-ico{background:#E6EFFA;color:var(--blauw)}
.af-gkop{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--s5);align-items:end}
.af-gkop p{color:var(--stil);max-width:58ch;margin-top:var(--s2)}
.af-citaat{background:#fff;border-radius:var(--r-l);padding:var(--s3) var(--s4);display:grid;gap:10px;box-shadow:0 20px 40px -32px rgba(22,44,28,.5)}
.bg-wit .af-citaat{background:var(--warm);box-shadow:none}
.af-citaat .sterren svg{width:16px;height:16px}
.af-citaat blockquote{font:500 17px/1.5 var(--f-tekst);color:var(--inkt)}
.af-citaat figcaption{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--stil);font-weight:600}
.af-citaat .rev-g{height:14px;width:auto;display:inline-block}
.af-kaarten{display:grid;gap:var(--s3);margin-top:var(--s5);grid-template-columns:repeat(6,minmax(0,1fr))}
.af-kaarten>.af-kaart{grid-column:span 2}
.af-kaarten.n5>.af-kaart:nth-child(-n+2){grid-column:span 3}
.af-kaarten.n3{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}
.af-kaarten.n3>.af-kaart{grid-column:auto}
.af-kaart{background:#fff;border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--zacht),box-shadow .3s}
.bg-wit .af-kaart{background:var(--warm)}
.af-kaart:hover{transform:translateY(-3px);box-shadow:0 26px 44px -30px rgba(22,44,28,.55)}
.af-kbeeld{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--lichtgroen)}
.af-kaarten.n5>.af-kaart:nth-child(-n+2) .af-kbeeld{aspect-ratio:16/8.4}
.af-kbeeld img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--zacht)}
.af-kaart:hover .af-kbeeld img{transform:scale(1.035)}
.af-badge{position:absolute;top:14px;left:14px;font:700 13px/1 var(--f-tekst);font-style:normal;background:var(--logogeel);color:var(--inkt);padding:8px 12px;border-radius:var(--pill)}
.af-chip{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.96);color:var(--inkt);font:600 13.5px/1 var(--f-tekst);padding:8px 12px;border-radius:var(--pill)}
.af-chip .ico{width:15px;height:15px;color:var(--groen-diep)}
.af-kbody{display:flex;flex-direction:column;gap:10px;padding:var(--s3) var(--s3) var(--s4);flex:1}
.af-kbody h3{font:700 21px/1.25 var(--f-kop);letter-spacing:-.01em;text-wrap:balance}
.af-kbody h3 a:hover{color:var(--groen-tekst)}
.af-kbody>p:not(.af-prijs){color:var(--stil);font-size:16px}
.af-prijs{margin-top:auto;padding-top:var(--s1);font:700 18px/1.3 var(--f-kop);color:var(--inkt);font-variant-numeric:tabular-nums}
.af-kbody .knop{width:100%;height:50px;font-size:15.5px}
.af-kbody .meer{align-self:center;font-size:15px;min-height:24px}
.af-leeg{visibility:hidden}
.af-sfeer{position:relative;color:#fff;overflow:hidden}
.af-sfeer-foto{position:absolute;inset:0}
.af-sfeer-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.af-sfeer-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(22,44,28,.94) 0%,rgba(22,44,28,.82) 42%,rgba(22,44,28,.45) 100%)}
.af-sfeer .in{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,430px);gap:var(--s5);align-items:center;padding-block:clamp(64px,8vw,112px)}
.af-sfeer .oog{color:var(--mint)}
.af-sfeer h2{font-size:clamp(30px,3.4vw,46px);margin:8px 0 var(--s2);text-wrap:balance}
.af-sfeer-tekst p{color:rgba(255,255,255,.88);max-width:56ch;margin-bottom:var(--s3)}
.af-sfeer-kaart{background:#fff;color:var(--inkt);border-radius:var(--r-l);padding:var(--s3);display:grid;gap:10px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.af-sk-wie{display:flex;align-items:center;gap:14px;padding-bottom:6px}
.af-sk-wie img{width:64px;height:64px;border-radius:18px;object-fit:cover;object-position:50% 35%}
.af-sk-wie b{font:700 20px/1.2 var(--f-kop)}
.af-ov{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:center}
.af-ov h2{margin:8px 0 var(--s2);text-wrap:balance;font-size:clamp(28px,2.8vw,40px)}
.af-ov>div>p{color:var(--stil);max-width:52ch}
.af-ov .fc{background:#fff;border-radius:var(--r-l);padding:var(--s4);box-shadow:0 24px 48px -32px rgba(22,44,28,.45)}
.af-afsluiter{background:var(--inkt);color:#fff;padding-block:clamp(56px,7vw,96px)}
.af-afsluiter .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--s3) var(--s5);align-items:center}
.af-afsluiter h2{font-size:clamp(28px,3vw,40px);text-wrap:balance}
.af-afsluiter p{color:rgba(255,255,255,.78);grid-column:1}
.af-afsluiter .af-ingangen{grid-column:2;grid-row:1/span 2;margin:0}
@media (prefers-reduced-motion:reduce){
.af-kaart,.af-kaart:hover,.af-kbeeld img,.af-ingang{transition:none;transform:none!important}
}
@media (max-width:1100px){
.af-ingangen{grid-template-columns:minmax(0,1fr)}
.af-gkop,.af-sfeer .in,.af-ov,.af-afsluiter .in{grid-template-columns:minmax(0,1fr)}
.af-afsluiter .af-ingangen{grid-column:1;grid-row:auto}
.af-kaarten,.af-kaarten.n3{grid-template-columns:repeat(2,minmax(0,1fr))}
.af-kaarten>.af-kaart,.af-kaarten.n5>.af-kaart:nth-child(-n+2){grid-column:auto}
.af-kaarten.n5>.af-kaart:first-child,.af-kaarten.n3>.af-kaart:first-child{grid-column:1/-1}
}
@media (max-width:760px){
.af-kaarten,.af-kaarten.n3{grid-template-columns:minmax(0,1fr)}
.af-kaarten.n5>.af-kaart:nth-child(-n+2) .af-kbeeld{aspect-ratio:16/10}
.af-ingang{padding:12px 14px 12px 12px}
.af-citaat{padding:var(--s3)}
.af-kbody{padding:var(--s3)}
.af-ov .fc{padding:var(--s3) 18px}
.af-sfeer-foto::after{background:linear-gradient(180deg,rgba(22,44,28,.86) 0%,rgba(22,44,28,.94) 100%)}
}
@media (max-width:760px){
.af-kaarten,.af-kaarten.n3{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--rand));padding:4px var(--rand) 8px;scroll-padding-inline:var(--rand);scrollbar-width:none;overscroll-behavior-x:contain}
.af-kaarten::-webkit-scrollbar{display:none}
.af-kaarten>.af-kaart{flex:0 0 84%;scroll-snap-align:start}
.af-kaart:hover{transform:none}
}
@media (min-width:1800px){
.af-kbody h3{font-size:22px}
}
@media (min-width:761px){
.af-kaarten{grid-auto-rows:auto;row-gap:var(--s3)}
.af-kaart{display:grid;grid-template-rows:subgrid;grid-row:span 6;gap:0}
.af-kbeeld,.af-kaarten.n5>.af-kaart:nth-child(-n+2) .af-kbeeld{aspect-ratio:auto;height:clamp(190px,16vw,240px)}
.af-kbody{display:grid;grid-template-rows:subgrid;grid-row:span 5;gap:10px 0;align-items:start}
.af-kbody>p:not(.af-prijs){align-self:start}
.af-prijs{margin-top:0;align-self:end}
}
.af-sk-tekst{color:var(--stil);font-size:15.5px}
.af-sfeer-kaart .knop{width:100%}
/* wat flow.css niet kent: 2 en 4 kaarten (de bouwkaart zegt 2 tot 6) en de witte formulierkaart in de Sitebuilder (.formkaart met het iframe in plaats van .fc) */
@media (min-width:1101px){.af-kaarten.n2>.af-kaart,.af-kaarten.n4>.af-kaart{grid-column:span 3}}
.af-ov .formkaart{background:#fff;border-radius:var(--r-l);padding:var(--s4);box-shadow:0 24px 48px -32px rgba(22,44,28,.45)}
@media (max-width:760px){.af-ov .formkaart{padding:var(--s3) 18px}}
/* het echte formulier is langer dan dat in de mockup (±1250 px op 1440): de tekst staat bovenaan en loopt mee, niet midden in een lege kolom */
@media (min-width:1101px){.af-ov{align-items:start}.af-ov>div:first-child{position:sticky;top:112px}}

/* De plaatsblokken: bron na-golf1/plaatstype/plaatstype.css (sha256 127d5bb184156433), na-golf1/labelschaal-scroll/ls.css (sha256 f0415dcd576d8a4a) en tools/duraplus/plaats-aanvulling.css · niet met de hand bijwerken (tools/duraplus/plaats-stijl.mjs) */
/* Plaatstype (plaats en provincie), opnieuw opgezet 05-11 (Richard: "dit is waardeloos, ik zou er van schrikken").
   Mobile first: eerst sfeer, een gewone intro en de actie; de cijfers pas lager, visueel en met één kernzin per cijfer.
   Bouwt op ontwerp/duraplus.css (tokens, .sectie, .kopje, .subkop, .check, .pijlen); geen gekleurde randen (rails-regel). Prefix pt-. */

/* ── kop K1 (sfeer vol): de bestaande .subkop, rustiger: één korte zin, knoppen, usp's met het merkplus ── */
.pt-k1 .lead{max-width:44ch}
.pt-k1 .knoppen{margin-top:var(--s3)}

/* ── kop K3 (fotoband + kaart): op mobiel eerst de foto, daaronder een witte kaart die over de foto valt ── */
.pt-k3{position:relative;background:var(--warm);padding-bottom:var(--s5)}
.pt-k3 .pt-band{position:relative;height:clamp(240px,46vw,520px);overflow:hidden}
.pt-k3 .pt-band img{width:100%;height:100%;object-fit:cover;display:block}
.pt-k3 .pt-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,44,28,.35) 0,rgba(22,44,28,0) 38%)}
.pt-k3 .kruimel{margin-bottom:var(--s2)}   /* in de witte kaart: op de foto was het te licht (contrast-foto 05-11) */
.pt-k3 .kruimel a,.pt-k3 .kruimel span,.pt-k3 .kruimel li{color:var(--stil)}
.pt-k3 .pt-kaart{position:relative;z-index:2;margin:calc(-1 * clamp(64px,10vw,140px)) auto 0;max-width:var(--max);padding-inline:var(--rand)}
.pt-k3 .pt-kaart>div{background:var(--wit);border-radius:var(--r-l);padding:clamp(24px,4vw,48px);box-shadow:0 30px 60px -40px rgba(22,44,28,.55);display:grid;gap:var(--s3);grid-template-columns:minmax(0,1fr)}
.pt-k3 h1{margin:0;font:800 clamp(32px,5vw,58px)/1.05 var(--f-kop);letter-spacing:-.02em;color:var(--inkt)}
.pt-k3 .lead{margin:0;font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:var(--stil);max-width:60ch}
.pt-k3 .knoppen{display:flex;flex-wrap:wrap;gap:var(--s2)}
.pt-k3 .knop.lijn{color:var(--inkt);border-color:var(--lijn)}
.pt-k3 .usps{margin:0;color:var(--inkt)}
@media (min-width:1000px){.pt-k3 .pt-kaart>div{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end}.pt-k3 .pt-kaart .pt-acties{justify-self:end;display:grid;gap:var(--s2)}}

/* ── de actie direct na de kop (C2: als band, naast de stappen) ── */
.pt-actie .pt-twee{display:grid;gap:var(--s4)}
@media (min-width:1000px){.pt-actie .pt-twee{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
.pt-stappen{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2);counter-reset:s}
.pt-stappen li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--s2);align-items:start;background:var(--wit);border-radius:var(--r-m);padding:var(--s2) var(--s3) var(--s2) var(--s2);box-shadow:0 14px 30px -26px rgba(22,44,28,.5);font-size:17px;line-height:1.55}
.pt-stappen li::before{counter-increment:s;content:counter(s);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--groen-zacht);color:var(--groen-tekst);font:800 18px/1 var(--f-kop)}
.bg-wit .pt-stappen li{background:var(--warm);box-shadow:none}
.pt-check{background:var(--wit);border-radius:var(--r-l);padding:clamp(20px,3vw,36px);box-shadow:0 24px 50px -36px rgba(22,44,28,.5)}
.bg-wit .pt-check{background:var(--warm);box-shadow:none}
.pt-check h3{margin:0 0 var(--s1);font:800 clamp(21px,2vw,26px)/1.2 var(--f-kop)}
.pt-check p{margin:0 0 var(--s3);color:var(--stil);line-height:1.6}
.pt-check form{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.7fr);gap:var(--s2)}
.pt-check .veld{display:grid;gap:6px}.pt-check label{font:600 14px/1.2 var(--f-tekst)}
.pt-check input{height:52px;border:1px solid #cfc7b5;border-radius:var(--r-s);padding:0 14px;font:500 17px/1 var(--f-tekst);background:#fff;min-width:0}
.pt-check .knop{grid-column:1/-1;width:100%}

/* ── kerncijfers: één groot getal + één gewone zin, geen kale percentagelijst ── */
.pt-kern{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2);grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){.pt-kern{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pt-kern li{background:var(--warm);border-radius:var(--r-l);padding:var(--s3) var(--s3) var(--s4);display:grid;gap:var(--s1);align-content:start}
.bg-warm .pt-kern li{background:var(--wit)}
.pt-kern .getal{font:800 clamp(40px,5vw,56px)/1 var(--f-kop);color:var(--groen-diep);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.pt-kern .getal small{font-size:.45em;font-weight:700;margin-left:4px;color:var(--stil)}
.pt-kern p{margin:0;font-size:17px;line-height:1.55;color:var(--inkt)}
.pt-bron{margin:var(--s3) 0 0;font-size:13.5px;line-height:1.5;color:var(--stil);max-width:80ch}
.pt-tekst{max-width:68ch}.pt-tekst p{font-size:17px;line-height:1.7;color:var(--inkt)}
.pt-tekst a{color:var(--blauw);font-weight:600}

/* ── wijken W1 (kaarten), W2 (duel + lijst), W3 (tabel op desktop, kaarten op mobiel) ── */
.pt-wijken{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.pt-wijken{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.pt-wijken{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pt-wijk{background:var(--wit);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:12px;box-shadow:0 14px 30px -26px rgba(22,44,28,.45)}
.bg-wit .pt-wijk{background:var(--warm);box-shadow:none}
.pt-wijk-kop{display:flex;align-items:center;justify-content:space-between;gap:var(--s1)}
.pt-wijk-kop b{font:800 19px/1.2 var(--f-kop)}
.pt-wijk-kop a{color:inherit;text-decoration:none}.pt-wijk-kop a:hover{text-decoration:underline}
.pt-letter{flex:none;min-width:40px;height:32px;padding:0 10px 0 8px;display:inline-grid;place-items:center;color:#fff;font:800 16px/1 var(--f-kop);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:5px 0 0 5px}
.pt-meter{display:grid;gap:6px;font-size:15px;color:var(--stil)}
.pt-meter div{display:flex;justify-content:space-between;gap:var(--s1)}.pt-meter b{color:var(--inkt);font-variant-numeric:tabular-nums}
.pt-meter .baan{height:8px;border-radius:999px;background:var(--lijn);overflow:hidden}.pt-meter .baan i{display:block;height:100%;border-radius:999px;background:var(--groen)}
.pt-meter .baan.laag i{background:#E89820}
.pt-wijk small{color:var(--stil);font-size:14px}
.pt-badge{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--groen-zacht);color:var(--groen-tekst);font:700 12.5px/1.2 var(--f-tekst);letter-spacing:.02em}
.pt-badge.werk{background:#FBEBD2;color:#7A4A00}
/* W2 duel */
.pt-duel{display:grid;gap:var(--s2);margin-top:var(--s4)}
@media (min-width:860px){.pt-duel{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pt-duel article{border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);background:var(--wit)}
.pt-duel .zuinig{background:var(--groen-zacht)}.pt-duel .werk{background:#FDF1DD}
.pt-duel h3{margin:0;font:800 clamp(22px,2.2vw,28px)/1.2 var(--f-kop)}
.pt-duel .groot{font:800 clamp(44px,5vw,64px)/1 var(--f-kop);letter-spacing:-.02em}
/* W3 tabel (desktop) */
.pt-tabel{width:100%;border-collapse:separate;border-spacing:0;margin-top:var(--s4);background:var(--wit);border-radius:var(--r-l);overflow:hidden;font-size:16px}
.pt-tabel th{text-align:left;font:700 13px/1.2 var(--f-tekst);letter-spacing:.06em;text-transform:uppercase;color:var(--stil);padding:16px 20px;background:var(--wit)}
.pt-tabel td{padding:14px 20px;border-top:1px solid var(--lijn);font-variant-numeric:tabular-nums}
.pt-tabel td:first-child{font-weight:700}
.pt-tabel a{color:var(--inkt)}
.pt-alleen-mobiel{display:grid}.pt-alleen-breed{display:none}
@media (min-width:900px){.pt-alleen-mobiel{display:none}.pt-alleen-breed{display:table}}

/* ── verhalen per wijk (postcode + bouwjaar als kenmerk) ── */
.pt-verhalen{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2)}
@media (min-width:900px){.pt-verhalen{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pt-verhalen li{background:var(--wit);border-radius:var(--r-l);padding:var(--s4) var(--s3);display:grid;gap:12px;align-content:start}
.bg-wit .pt-verhalen li{background:var(--warm)}
.pt-verhalen .chips{display:flex;flex-wrap:wrap;gap:6px}
.pt-verhalen .chips span{padding:4px 10px;border-radius:999px;background:var(--groen-zacht);color:var(--groen-tekst);font:700 12.5px/1.2 var(--f-tekst)}
.pt-verhalen h3{margin:0;font:800 21px/1.25 var(--f-kop)}
.pt-verhalen p{margin:0;font-size:16px;line-height:1.6;color:var(--inkt)}

/* ── groei G1 (tijdlijn) ── */
.pt-tijd{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:0;position:relative}
.pt-tijd li{display:grid;grid-template-columns:72px 24px minmax(0,1fr);align-items:center;gap:var(--s2);padding:10px 0}
.pt-tijd .jaar{font:800 22px/1 var(--f-kop);color:var(--groen-diep);font-variant-numeric:tabular-nums}
.pt-tijd .punt{width:16px;height:16px;border-radius:50%;background:var(--groen);justify-self:center;box-shadow:0 0 0 6px var(--groen-zacht)}
.pt-tijd .wie{font:600 17px/1.35 var(--f-tekst)}
.pt-tijd::before{content:"";position:absolute;left:calc(72px + var(--s2) + 11px);top:20px;bottom:20px;width:2px;background:var(--lijn)}
@media (min-width:900px){
  .pt-tijd{grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:var(--s2)}
  .pt-tijd::before{left:0;right:0;top:calc(22px + var(--s2) + 8px);bottom:auto;width:auto;height:2px}
  .pt-tijd li{grid-template-columns:minmax(0,1fr);justify-items:start;gap:var(--s2)}
  .pt-tijd .punt{justify-self:start}
}

/* ── verbruik: twee tegels met een kernzin ── */
.pt-tegels{display:grid;gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--s4)}
.pt-tegels div{background:var(--wit);border-radius:var(--r-l);padding:var(--s3);display:grid;gap:6px}
.bg-wit .pt-tegels div{background:var(--warm)}
.pt-tegels b{font:800 clamp(28px,4vw,44px)/1 var(--f-kop);font-variant-numeric:tabular-nums}
.pt-tegels span{color:var(--stil);font-size:15px}
.pt-zij{display:grid;gap:var(--s4)}
@media (min-width:1000px){.pt-zij{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center}.pt-zij .pt-tegels{margin-top:0}}

/* ── wet en winst: twee kaarten ── */
.pt-wet{display:grid;gap:var(--s2);margin-top:var(--s4)}
@media (min-width:900px){.pt-wet{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pt-wet article{background:var(--warm);border-radius:var(--r-l);padding:var(--s4)}
.bg-warm .pt-wet article{background:var(--wit)}
.pt-wet h3{margin:0 0 var(--s2);font:800 22px/1.2 var(--f-kop)}
.pt-wet ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.pt-wet li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;font-size:16.5px;line-height:1.6}
.pt-wet li .mp{margin-top:4px}

/* ── subsidie: één rustige kaart ── */
.pt-subsidie{display:grid;gap:var(--s4)}
@media (min-width:1000px){.pt-subsidie{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}}
.pt-bedragen{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.pt-bedragen li{background:var(--wit);border-radius:var(--r-m);padding:var(--s3);display:grid;gap:4px}
.pt-bedragen b{font:800 clamp(26px,3vw,34px)/1 var(--f-kop);color:var(--groen-diep)}
.pt-bedragen span{font-size:15.5px;line-height:1.5}

/* ── prijs P1 (kaarten): prijs één keer op de pagina ── */
.pt-prijzen{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1000px){.pt-prijzen{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pt-prijzen li{background:var(--warm);border-radius:var(--r-l);padding:var(--s3);display:grid;gap:6px;align-content:start}
.bg-warm .pt-prijzen li{background:var(--wit)}
.pt-prijzen h3{margin:0;font:700 17px/1.25 var(--f-tekst)}
.pt-prijzen s{color:var(--stil);font-size:14.5px}
.pt-prijzen .online{font:800 clamp(26px,3vw,34px)/1 var(--f-kop);letter-spacing:-.01em}
.pt-prijzen .online .cent{font-size:.6em}
.pt-prijzen small{color:var(--groen-tekst);font:700 13px/1.2 var(--f-tekst)}
.pt-noot{margin:var(--s3) 0 0;font-size:14.5px;color:var(--stil);max-width:80ch}

/* ── aanpak + werkgebied, met een echte werkfoto (zonder gezicht) ── */
.pt-aanpak{display:grid;gap:var(--s4)}
@media (min-width:1000px){.pt-aanpak{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}}
.pt-aanpak figure{margin:0;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3}
.pt-aanpak figure img{width:100%;height:100%;object-fit:cover;display:block}
.pt-punten{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2)}
.pt-punten li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px}
.pt-punten b{display:block;font:700 17px/1.3 var(--f-tekst)}.pt-punten span{color:var(--stil);font-size:16px;line-height:1.55}
.pt-chips{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s3);padding:0;list-style:none}
.pt-chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--wit);color:var(--inkt);font:600 15px/1 var(--f-tekst);text-decoration:none;box-shadow:0 8px 20px -16px rgba(22,44,28,.5)}
.bg-wit .pt-chips a{background:var(--warm);box-shadow:none}
.pt-chips a:hover{background:var(--groen-zacht)}

/* ── plaatsen in de provincie: tegels met de eigen plaatsfoto ── */
.pt-plaatsen{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.pt-plaatsen{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.pt-plaatsen{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pt-plaats a{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:var(--s2);background:var(--wit);border-radius:var(--r-m);overflow:hidden;color:var(--inkt);text-decoration:none;box-shadow:0 14px 30px -26px rgba(22,44,28,.45)}
.bg-wit .pt-plaats a{background:var(--warm);box-shadow:none}
.pt-plaats img{width:120px;height:96px;object-fit:cover;display:block}
.pt-plaats b{font:800 19px/1.2 var(--f-kop);display:block}.pt-plaats span{color:var(--stil);font-size:14.5px}
.pt-plaats a:hover b{text-decoration:underline}

/* ── reviews R1: drie kaarten, op mobiel onder elkaar (geen verborgen carrousel) ── */
.pt-revs{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2)}
@media (min-width:900px){.pt-revs{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pt-revs li{background:var(--wit);border-radius:var(--r-l);padding:var(--s4) var(--s3);display:grid;gap:var(--s2);align-content:start}
.bg-wit .pt-revs li{background:var(--warm)}
.pt-revs blockquote{margin:0;font:500 17px/1.6 var(--f-tekst)}
.pt-revs b{font-size:15px}
.pt-sterren{display:inline-flex;gap:2px;color:#F5B301}.pt-sterren svg{width:18px;height:18px;fill:currentColor}
.pt-score{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s2);font-size:15px;color:var(--stil)}
.pt-score b{font:800 28px/1 var(--f-kop);color:var(--inkt)}

/* ── FAQ: de bestaande .faq-raster/.vragen; hulp zonder mailadres ── */
.pt-hulp{background:var(--wit);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);align-content:start}
.bg-wit .pt-hulp{background:var(--warm)}
.pt-hulp img{width:96px;height:96px;border-radius:50%;object-fit:cover}
.pt-hulp b{font:800 21px/1.2 var(--f-kop)}.pt-hulp p{margin:0;color:var(--stil)}

/* ── tussen-actie: een rustige band, geen klein balkje in een lege vlakte ── */
.pt-tussen .in{display:grid;gap:var(--s3);align-items:center}
@media (min-width:900px){.pt-tussen .in{grid-template-columns:minmax(0,1fr) auto}}
.pt-tussen h2{margin:0;font:800 clamp(26px,3vw,36px)/1.15 var(--f-kop)}.pt-tussen p{margin:var(--s1) 0 0;color:var(--stil);font-size:17px}

/* ── palet: het overzicht van de varianten ── */
.pt-paletkop{background:var(--bos);color:#fff;padding:var(--s4) var(--rand)}
.pt-paletkop h1{margin:0;font:800 clamp(28px,3vw,40px)/1.1 var(--f-kop)}.pt-paletkop p{margin:var(--s1) 0 0;max-width:80ch;opacity:.9}
.pt-variant{margin-top:var(--s5)}
.pt-variant>.pt-label{background:var(--bos);color:#fff;font:700 14px/1.3 var(--f-tekst);padding:10px var(--rand);display:flex;gap:var(--s2);flex-wrap:wrap}
.pt-variant>.pt-label span{opacity:.8;font-weight:500}

@media (max-width:640px){
  .pt-check form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr);gap:10px}
  .pt-check input{padding:0 10px}
  .pt-prijzen{grid-template-columns:minmax(0,1fr)}
  .pt-plaats a{grid-template-columns:96px minmax(0,1fr)}.pt-plaats img{width:96px;height:84px}
}
@media (prefers-reduced-motion:reduce){.pt-chips a{transition:none}}

/* de scrollende labelschaal op een plaatspagina: compacter (de stappen 42vh i.p.v. 62vh; elke stap gaat nog door het midden van het scherm) */
/* (05-11) de stappen zijn nu gevulde kaarten in het blok zelf: geen eigen minimumhoogte meer */

/* usp-lijst met het merkplus (Waarom DuraPlus): het plus 20 px, de tekst ernaast */
.pt-plus{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2)}
.pt-plus li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;font-size:17px;line-height:1.55}
.pt-plus .mp{width:20px;height:20px;margin-top:3px}
.pt-plus a{color:var(--blauw);font-weight:600}

/* ── kop K2 (gesplitst): tekst links op warm, foto rechts; op mobiel eerst de foto ── */
.pt-k2{background:var(--warm);padding-block:calc(var(--s5) + 88px) var(--s5)}
.pt-k2 .in{display:grid;gap:var(--s4);align-items:center}
@media (min-width:1000px){.pt-k2 .in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.pt-k2 figure{margin:0;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3;order:-1}
@media (min-width:1000px){.pt-k2 figure{order:2;aspect-ratio:5/4}}
.pt-k2 figure img{width:100%;height:100%;object-fit:cover;display:block}
.pt-k2 h1{margin:var(--s2) 0;font:800 clamp(32px,4.6vw,56px)/1.05 var(--f-kop);letter-spacing:-.02em}
.pt-k2 .lead{font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:var(--stil);max-width:52ch;margin:0 0 var(--s3)}
.pt-k2 .kruimel a,.pt-k2 .kruimel span{color:var(--stil)}
.pt-k2 .knoppen{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.pt-k2 .knop.lijn{color:var(--inkt);border-color:var(--lijn)}
.pt-k2 .usps{color:var(--inkt)}
/* ── W2: compacte lijst onder het duel ── */
.pt-lijst{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:6px}
.pt-lijst li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--s2);align-items:center;background:var(--wit);border-radius:var(--r-s);padding:10px 14px;font-size:15.5px}
.bg-wit .pt-lijst li{background:var(--warm)}
.pt-lijst b{font-weight:700}.pt-lijst span{color:var(--stil);font-variant-numeric:tabular-nums}
/* ── P2: prijzen als rustige lijst ── */
.pt-prijslijst{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:6px;max-width:720px}
.pt-prijslijst li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--s2);align-items:baseline;padding:14px 18px;border-radius:var(--r-s);background:var(--warm)}
.bg-warm .pt-prijslijst li{background:var(--wit)}
.pt-prijslijst s{color:var(--stil);font-size:14.5px}.pt-prijslijst b{font:800 22px/1 var(--f-kop)}
/* usp's met het merkplus in de koppen K2 en K3 (buiten .subkop): het plus 16 px, geen vinkje */
.pt-k2 .usps li>.ico,.pt-k3 .usps li>.ico{display:none}
.pt-k2 .usps li .mp,.pt-k3 .usps li .mp{width:16px;height:16px}
.pt-k2 .usps,.pt-k3 .usps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font:600 15px/1.3 var(--f-tekst)}
.pt-k2 .usps li,.pt-k3 .usps li{display:flex;align-items:center;gap:8px}

/* het bedrag erft de grote letter (een losse regel zette de span op 15,5 px: dan te weinig contrast) */
.pt-bedragen b span{font:inherit;color:inherit}

/* W2-lijst: per wijk één compacte regel (naam + typisch label, daaronder de cijfers); desktop twee kolommen */
.pt-lijst{grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.pt-lijst{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.pt-lijst li{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:12px 16px}
.pt-lijst .r1{display:flex;align-items:center;justify-content:space-between;gap:var(--s1)}
.pt-lijst .r1 b{font:800 17px/1.2 var(--f-kop)}
.pt-lijst .pt-letter{height:24px;min-width:32px;font-size:13px}
.pt-lijst li>span{font-size:14.5px;line-height:1.45}

.pt-lijst .pt-letter{color:#fff}   /* .pt-lijst span (grijs) won van de witte letter */
.pt-tekst p+p{margin-top:var(--s2)}

/* ── geen tweede helft (subsidie zonder bedragen, aanpak zonder foto): de tekst over de volle breedte in twee kolommen; onder 1000 één kolom ── */
@media (min-width:1000px){
  .pt-subsidie.pt-tweekolom,.pt-aanpak.pt-tweekolom{grid-template-columns:minmax(0,1fr)}
  .pt-tweekolom .pt-tekst{max-width:none;columns:2;column-gap:var(--s5);orphans:3;widows:3}
  .pt-tweekolom .pt-tekst h3{break-after:avoid}.pt-tweekolom .pt-tekst li{break-inside:avoid}
  .pt-tweekolom .pt-tekst:has(.pt-plus){columns:auto}
  .pt-tweekolom .pt-plus{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s5)}
  .pt-tweekolom .pt-punten{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s5)}
}
.pt-subsidie.pt-tweekolom .knop{margin-top:var(--s3)}

/* ── wijkenlijst inklapbaar op ≤ 600 px (wijken.inklapVanaf); de rijen blijven in de HTML ── */
.pt-inklapknop{display:none}
@media (max-width:600px){
  .dicht>.pt-na{display:none}
  .pt-inklapknop{display:flex;width:100%;margin-top:var(--s2)}
  .pt-inklapknop[hidden]{display:none}
}

/* Proef: scrollende labelschaal (na golf 1, Richard 03-11). Bouwt op ontwerp/duraplus.css (tokens, .pijlen, .knop, .stift).
   Blokoptie animatie: geen | opbouwen | scrollverhaal. CLS 0: alle maten liggen vast, alleen transform en opacity bewegen. */
.ls{--rij-h:32px;--rij-gap:8px;--huis:92px}
.ls-raster{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);column-gap:clamp(32px,5vw,80px)}
.ls-kop,.ls-verloop{grid-column:1;min-width:0}
.ls-schaal-wrap{grid-column:2;grid-row:1 / span 2;min-width:0}
.ls-kop h2{margin-bottom:var(--s2)}
.ls-intro{color:var(--stil);max-width:46ch}
.ls-intro b{color:var(--inkt);font-variant-numeric:tabular-nums}
.ls-bron{font-size:13px;color:var(--stil);margin-top:var(--s1)}

/* stappen: elke stap is een scrollmoment (scrollverhaal); de actieve stap licht op */
.ls-stappen{list-style:none;padding:0;margin:var(--s5) 0 0;display:grid}
.ls-stappen-intro{margin-top:var(--s4);font-weight:600;max-width:46ch}
.ls-stap{min-height:62vh;display:flex;align-items:center;padding-left:56px;position:relative}
.ls-stap .nr{position:absolute;left:0;top:50%;translate:0 -50%;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  font:800 16px/1 var(--f-kop);background:var(--wit);color:var(--groen-diep);border:2px solid var(--lijn);transition:background .3s,color .3s,border-color .3s}
.ls-stap b{display:block;font:700 clamp(22px,2.2vw,28px)/1.15 var(--f-kop);letter-spacing:-.01em;color:var(--stil);transition:color .3s}
.ls-stap p{color:var(--stil);margin-top:6px;max-width:38ch;opacity:.55;transition:opacity .3s}
.ls-stap.aan b{color:var(--inkt)}.ls-stap.aan p{opacity:1}
.ls-stap.aan .nr{background:var(--groen);border-color:var(--groen);color:#fff}
.ls-slot{min-height:56vh;display:flex;flex-direction:column;justify-content:center;gap:var(--s2)}
.ls-slot h3{font:800 clamp(28px,3vw,40px)/1.08 var(--f-kop);letter-spacing:-.02em;text-wrap:balance}
.ls-slot p{color:var(--stil);max-width:44ch}
.ls-slot .knoppen{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s1)}
.ls-noot{font-size:13px;color:var(--stil)}
.ls-noot a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* de schaal blijft staan terwijl de stappen scrollen */
.ls-schaal{position:sticky;top:clamp(88px,12vh,140px);margin:0}
.ls-schaal .pijlen{position:relative;gap:var(--rij-gap);padding:var(--s4) calc(var(--huis) + var(--s4)) var(--s4) var(--s4);background:var(--wit);box-shadow:0 24px 60px -40px rgba(22,44,28,.35)}
.ls-schaal .rij{grid-template-columns:minmax(0,1fr) 64px;height:var(--rij-h);transition:background .35s}
.ls-schaal .balk{height:var(--rij-h);font-size:15px;min-width:78px;width:max(78px,calc(var(--w) * var(--g, 1)))} /* groeit via de breedte (--g), zodat het label niet vervormt; vaste rijhoogte: CLS 0 */
.ls-schaal .getal{font:700 15px/1 var(--f-kop);font-variant-numeric:tabular-nums}
.ls-schaal .rij.uit{background:var(--groen-zacht);box-shadow:0 8px 22px -12px rgba(22,44,28,.45);border-radius:var(--r-s)}
.ls-schaal figcaption{margin-top:var(--s2);font-size:13.5px;color:var(--stil)}

/* het huisje: rechts naast de schaal, op de hoogte van zijn label; het merkplus (officieel pad) als accent op het dak */
.ls-huis{position:absolute;right:var(--s3);top:calc(var(--s4) + (var(--rij-h) - var(--huis) * .72) / 2);width:var(--huis);height:calc(var(--huis) * .72);
  transform:translateY(calc(var(--rij, 6) * (var(--rij-h) + var(--rij-gap))));transition:transform .7s cubic-bezier(.34,1.3,.64,1);pointer-events:none}
.ls-huis img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(22,44,28,.18))}
.ls-huis svg{position:absolute;right:-6%;top:-14%;width:30%;height:auto}
.ls-huis .wijzer{position:absolute;left:-14px;top:50%;width:10px;height:10px;translate:0 -50%;background:var(--groen);clip-path:polygon(100% 0,0 50%,100% 100%)}

/* opbouwen: balken groeien naar hun echte aandeel. Met scroll-driven animations (animation-timeline: view()); anders een
   IntersectionObserver die .wacht weghaalt */
@property --g{syntax:'<number>';inherits:false;initial-value:1}
.ls .pijlen .balk{--g:1;transform:none;transition:--g 1.1s cubic-bezier(.16,1,.3,1)}
.ls.wacht .pijlen .balk{--g:0}
@supports (animation-timeline: view()){
}


/* animatie: geen / reduced motion: stilstaande schaal, het huisje op het gemiddelde (mediaan) */
.ls[data-animatie="geen"] .pijlen .balk,.ls[data-animatie="geen"] .ls-huis{animation:none!important;transition:none!important}
.ls[data-animatie="geen"] .pijlen .balk{--g:1}
.ls[data-animatie="geen"] .ls-huis{transform:translateY(calc(var(--rij-mediaan) * (var(--rij-h) + var(--rij-gap))))}
.ls[data-animatie="geen"] .ls-stap,.ls[data-animatie="opbouwen"] .ls-stap{min-height:0;padding-block:12px}
.ls[data-animatie="geen"] .ls-slot,.ls[data-animatie="opbouwen"] .ls-slot{min-height:0;margin-top:var(--s4)}
.ls[data-animatie="geen"] .ls-stap p,.ls[data-animatie="opbouwen"] .ls-stap p{opacity:1}
@media (prefers-reduced-motion:reduce){
  .ls .pijlen .balk,.ls .ls-huis{animation:none!important;transition:none!important}
  .ls .pijlen .balk{--g:1}
  .ls .ls-huis{transform:translateY(calc(var(--rij-mediaan) * (var(--rij-h) + var(--rij-gap))))}
  .ls .ls-stap{min-height:0;padding-block:12px}.ls .ls-stap p{opacity:1}.ls .ls-slot{min-height:0;margin-top:var(--s4)}
}

/* mobiel: de schaal compact bovenaan (sticky), de stappen scrollen eronder */
@media (max-width:900px){
  .ls{--rij-h:20px;--rij-gap:4px;--huis:58px}
  .ls-raster{display:block} /* blokstroom: sticky over de hele sectie (in een rastervak alleen binnen dat vak) */
  .ls-schaal-wrap{position:sticky;top:0;z-index:2;margin:var(--s3) calc(-1 * var(--rand)) 0;padding:8px var(--rand) 10px;background:var(--warm)}
  .ls-schaal{position:static}
  .ls-schaal .pijlen{padding:12px calc(var(--huis) + 20px) 12px 12px}
  .ls-schaal .rij{grid-template-columns:minmax(0,1fr) 44px}
  .ls-schaal .balk{font-size:11px;padding-left:7px;min-width:52px;width:max(52px,calc(var(--w) * var(--g, 1)));clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%)}
  .ls-schaal .getal{font-size:12px}
  .ls-schaal figcaption{display:none}
  .ls-huis{right:10px;top:calc(12px + (var(--rij-h) - var(--huis) * .72) / 2)}
  .ls-stap{min-height:48vh;padding-left:50px}
}

/* ≤ 900 px (05-11, Sitebuilder; eerst 600, tablet had nog lege ruimte): het verhaal compact. De schaal bovenaan (niet sticky), de drie stappen direct eronder, geen lege scrollruimte;
   het huisje klimt mee zodra een stap door het midden van het scherm gaat (ls.js). Desktop blijft het scrollverhaal. */
@media (max-width:900px){
  .ls-schaal-wrap{position:static;margin-inline:0;padding-inline:0}
  .ls .ls-stap{min-height:0;padding-block:12px}
  .ls .ls-stap p{opacity:1}
  .ls .ls-slot{min-height:0;margin-top:var(--s4)}
  .ls-stappen{margin-top:var(--s3);gap:4px}
}

/* ── elke stap een gevulde kaart (Richard 05-11: "op desktop altijd gevuld … geen lege scrollhoogte") ──
   illustratie van de maatregel, nummer + titel, eigen tekst (als die er is) en de klim van het huisje ("naar label B") */
.ls .ls-stappen{gap:var(--s2)}
.ls .ls-stap{min-height:0;display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:center;padding:16px 20px;background:var(--wit);border-radius:var(--r-l);box-shadow:0 18px 40px -32px rgba(22,44,28,.45);transition:box-shadow .35s,background .35s}
.ls .ls-stap.aan{background:var(--groen-zacht);box-shadow:0 22px 50px -30px rgba(22,44,28,.55)}
.ls-stap-beeld{margin:0;border-radius:var(--r-m);background:var(--warm);display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden}
.ls-stap.aan .ls-stap-beeld{background:var(--wit)}
.ls-stap-beeld svg{width:100%;height:auto;display:block}
.ls-stap-tekst{display:grid;gap:6px;justify-items:start;min-width:0}
.ls .ls-stap .nr{position:static;translate:none;width:32px;height:32px;font-size:14px}
.ls .ls-stap b{color:var(--inkt);font-size:clamp(20px,1.8vw,24px)}
.ls .ls-stap p{opacity:1;margin:0}
.ls-naar{display:inline-flex;align-items:center;gap:8px;font:600 14px/1 var(--f-tekst);color:var(--stil)}
.ls-naar span{padding:4px 9px 4px 7px;border-radius:5px 0 0 5px;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,0 100%);color:#fff;font:800 13px/1 var(--f-kop)}
.ls-naar .l-B,.ls-naar .l-C,.ls-naar .l-D,.ls-naar .l-E{color:var(--label-donker,#1A2A20)}
.ls .ls-slot{min-height:0;margin-top:var(--s4)}
/* desktop: links de kop en de schaal (sticky), rechts de kaarten; de kolommen zijn ongeveer even hoog, dus geen leeg vlak */
@media (min-width:901px){
  .ls-raster{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}
  .ls-kop{grid-column:1;grid-row:1}
  .ls-schaal-wrap{grid-column:1;grid-row:2;align-self:start;position:sticky;top:clamp(88px,12vh,140px);margin-top:var(--s3)}
  .ls-schaal{position:static}
  .ls-verloop{grid-column:2;grid-row:1 / span 2}
  .ls-stappen-intro{margin-top:0}
}
/* mobiel en tablet: kleinere illustratie */
@media (max-width:900px){.ls .ls-stap{grid-template-columns:76px minmax(0,1fr);gap:14px;padding:12px 14px}.ls .ls-stap b{font-size:18px}}

/* ≤ 600 px: de klim speelt vanzelf af (ls.js, Sitebuilder 05-11): korte, rustige sprong per stap; bij reduced motion meteen de eindstand */
@media (max-width:600px){.ls.klim .ls-huis{transition:transform .5s cubic-bezier(.34,1.2,.64,1)}}
@media (max-width:600px) and (prefers-reduced-motion:reduce){.ls.klim-eind .ls-huis{transform:translateY(calc(var(--rij, 6) * (var(--rij-h) + var(--rij-gap))))}}
/* ≤ 600 px (Sitebuilder 05-11: het huisje met het plus stak rechts buiten de kaart): kleiner huisje, het plus binnen zijn omtrek, rechts ruimte gereserveerd */
@media (max-width:600px){
  .ls{--huis:52px}
  .ls-huis{right:16px}
  .ls-huis svg{right:0;top:-10%;width:26%}
  .ls-schaal .pijlen{padding-right:calc(var(--huis) + 30px)}
}

/* ── aanvulling van de bouwer (niet in de mockups van Design) ── */
/* het merkplus bij de usp's in de kop (na-golf1/pagina/merkplus.mjs) */
.mp{display:inline-block;flex:none;overflow:visible}
.pt-k1 .usps li .mp{width:16px;height:16px}
/* de tekst over de volle breedte in twee kolommen: subsidie zonder bedragen en aanpak zonder foto (coördinator 05-11) */
.pt-tekst.pt-vol{max-width:none}
.pt-tekst.pt-vol li{break-inside:avoid}
.pt-vol + .knop{margin-top:var(--s3)}
@media (min-width:1000px){
  .pt-tekst.pt-vol{column-count:2;column-gap:var(--s5)}
  .pt-zonder-foto .pt-punten{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s5)}
}
/* de wijkenlijst inklappen op ≤ 600 px boven inklapVanaf (coördinator 05-11); zonder script en boven 600 px alles open, de inhoud staat altijd in de html */
.pt-toon{display:none}
@media (max-width:600px) and (scripting:enabled){
  .pt-toon{display:inline-flex;width:100%;margin-top:var(--s2)}
  ul:not(.pt-open) > .pt-extra{display:none}
}
/* de labelcheck in de kaart (plaatsactie): de uitslag onder het formulier, leeg neemt hij geen plaats in (zoals .check in duraplus-basis.css) */
.pt-check .dg-lc-uit{margin:var(--s2) 0 0}
.pt-check .dg-lc-uit:empty{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pt-check .dg-lc-uit .dg-lc-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;margin-top:12px;padding:0 26px;border-radius:var(--pill);font:600 16px/1 var(--f-tekst);background:var(--blauw);color:#fff;text-decoration:none}
.pt-check .dg-lc-uit .dg-lc-cta:hover{background:var(--blauw-diep)}
/* het scherm bij een stap (plaatsactie.stapBeelden, alleen met de procesvarianten) */
.pt-stapbeeld{display:block;width:100%;height:auto;margin-top:var(--s2);border-radius:var(--r-s)}
/* voorleestekst bij de twee prijzen (de koppen van de live tabel): niet zichtbaar, wel voorgelezen */
.pt-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* tikdoelen op mobiel: de wijknaam en de plaatslink houden hun maat, het tikvlak wordt 44 px (geen tekstverschuiving ten opzichte van de mockup) */
@media (max-width:760px){
  .pt-wijk-kop a,.pt-lijst .r1 a{position:relative;display:inline-block}
  .pt-wijk-kop a::after,.pt-lijst .r1 a::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;translate:0 -50%}
}
/* de tweede prijskolom als gewone tekst ("tot 30 m²"): zoals de doorgehaalde prijs, zonder streep */
.pt-opp{color:var(--stil);font-size:14.5px}
/* de tijdlijn op desktop: een naam op twee regels duwt zijn punt niet van de lijn */
@media (min-width:900px){.pt-tijd{align-items:start}.pt-tijd li{align-content:start}}
/* de schaal op ≤ 900 px: geen eigen vlak om de kaart heen (ls.css zet warm, dat viel op een witte sectie als een band op) */
@media (max-width:900px){.ls-schaal-wrap{background:transparent}}
/* de pil in het duel (coördinator 05-11, bewuste afwijking van de mockup): daar heeft hij dezelfde kleur als de kaart, hij was onzichtbaar en de tekst leek 10 px ingesprongen. Wit, en zo breed als zijn tekst (de kaart is een raster) */
.pt-duel .pt-badge,.pt-duel .pt-badge.werk{background:var(--wit);justify-self:start}
/* de legenda bij de letter in de wijkenlijst (coördinator 05-11, aanvulling op de mockup): de letter met de kolomkop van live, rechts boven de letters; bij w3 alleen bij de kaarten op mobiel */
.pt-legenda{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:var(--s3) 0 0;font:600 14px/1.3 var(--f-tekst);color:var(--stil)}
.pt-legenda span{display:inline-flex}
.pt-legenda .pt-letter{display:inline-grid;height:24px;min-width:32px;font-size:13px}
.pt-legenda + ul{margin-top:var(--s1)}
@media (min-width:900px){.pt-legenda.pt-legenda-mobiel{display:none}}

/* Keuring op de gevulde site (05-11): lange namen en kopjes blijven in hun kaart of kolom.
   Haarlem: een lange wijknaam maakte de kaart breder dan zijn kolom, over de buurkaart heen. Arnhem, Leiden: de tijdlijn, een lange naam over de buurkolom. Beilen, Emmeloord: de stift breekt niet (nowrap) en liep over de rechterkolom. */
.pt-wijk{grid-template-columns:minmax(0,1fr);min-width:0}
.pt-wijk-kop b{min-width:0;overflow-wrap:anywhere;hyphens:auto}
.pt-tijd .wie{max-width:100%;min-width:0;overflow-wrap:anywhere;hyphens:auto}
.ls-kop h2 .stift{white-space:normal;background:linear-gradient(var(--groen),var(--groen)) 0 calc(100% - .04em)/100% .2em no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ls-kop h2 .stift::after{display:none}
/* Scan op 360 (06-11): "Eengezinswoning" liep over de reguliere prijs. Op een smalle telefoon de naam op een eigen regel, de prijzen eronder */
@media (max-width:400px){.pt-prijslijst li{grid-template-columns:minmax(0,1fr) auto}.pt-prijslijst li>:first-child{grid-column:1/-1}}
/* de kop in de check is een H2 geworden (zoals live), met het uiterlijk van de H3 uit plaatstype.css */
.pt-check h2{margin:0 0 var(--s1);font:800 clamp(21px,2vw,26px)/1.2 var(--f-kop);letter-spacing:-.01em;text-wrap:wrap}
