/* Laadvast — basis (afgeleid van de TC Swiss-opzet, omgezet door _bron/kleur.py; niet met de hand bewerken) */

@font-face { font-family: 'Elms Sans'; src: url('/assets/fonts/ElmsSans-latin.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Elms Sans'; src: url('/assets/fonts/ElmsSans-latin-ext.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Barlow Condensed'; src: url('/assets/fonts/BarlowCondensed-700-latin.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('/assets/fonts/BarlowCondensed-800-latin.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }

:root {
  /* palet — Zwitsers rood uit het logo, graniet als "zwart", ijsblauw alleen in gloed */
  --ink: #0C2721;      /* graniet: tekst en donkere vlakken */
  --ink-2: #0E2E26;    /* kaarten op donker */
  --ink-3: #1D3B33;    /* randen op donker */
  --nacht: #071B16;    /* footer */
  --rood: #90E509;     /* logo-rood: knoppen, vlagjes, cijfers. Witte tekst erop */
  --rood-2: #A4EF23;   /* hover en gloed */
  --kers: #3F7D00;     /* rood als tekst op licht (5,6:1) */
  --ijs: #B9F35A;      /* tweede accent: alleen in gloed en verlopen (de koude buitenlucht) */
  --ijs-2: #3F7D00;
  --sneeuw: #F5F5F3;   /* hoofdachtergrond */
  --sneeuw-2: #ECEEE8; /* afwisselende secties */
  --steen: #DFE3DC;
  --lijn: #D3D9D0;
  --grijs: #5B6B66;    /* bijschriften */
  --kaart: #FFFFFF;

  --verloop-warmte: linear-gradient(90deg, #B9F35A 0%, #DDF9B0 30%, #B9F35A 66%, #90E509 100%);
  --verloop-rood: linear-gradient(135deg, #A4EF23 0%, #90E509 55%, #6FB800 100%);
  --verloop-nacht: radial-gradient(110% 80% at 100% 0%, rgba(144,229,9,.22) 0%, rgba(144,229,9,0) 55%), radial-gradient(90% 70% at 0% 100%, rgba(144,229,9,.16) 0%, rgba(144,229,9,0) 60%), #0C2721;
  --verloop-foto: linear-gradient(180deg, rgba(7,27,22,.55) 0%, rgba(7,27,22,.15) 24%, rgba(7,27,22,.35) 50%, rgba(7,27,22,.92) 84%, #0C2721 100%);

  --r-beeld: 26px;
  --r-kaart: 20px;
  --r-klein: 12px;
  --schaduw: 0 18px 40px -20px rgba(12,39,33,.32);
  --schaduw-2: 0 34px 70px -34px rgba(12,39,33,.55);

  --f-kop: 'Barlow Condensed', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
  --f-tekst: 'Elms Sans', 'Helvetica Neue', Arial, sans-serif;
  --wrap: 1240px;
  --gut: 16px;
  --kop-h: 64px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}
@media (min-width: 768px) { :root { --gut: 28px; --kop-h: 76px; } }
@media (min-width: 1280px) { :root { --gut: 40px; } }

/* ── basis ─────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--kop-h) + 12px); }
body { margin: 0; background: var(--sneeuw); color: var(--ink); font-family: var(--f-tekst); font-size: 17px; line-height: 1.58;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
body::after { content: ''; position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
img, svg, video, canvas { display: block; max-width: 100%; }
picture { display: block; }
img { height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--rood); outline-offset: 3px; border-radius: 6px; }
.sectie-donker :focus-visible, .held :focus-visible, .voet :focus-visible, .slot :focus-visible { outline-color: #fff; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 200; background: var(--rood); color: #fff; padding: 10px 16px; border-radius: 999px; font-weight: 700; text-decoration: none; }
.skip:focus { top: 12px; }
[hidden] { display: none !important; }
.verborgen { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }
.wrap-smal { max-width: 820px; }
.ico { width: 1.25em; height: 1.25em; flex: none; }
[class$="-grid"], [class*="-grid "] { grid-template-columns: minmax(0, 1fr); }
[class$="-grid"] > *, [class*="-grid "] > * { min-width: 0; }
.tnum { font-variant-numeric: tabular-nums; }

/* ── typografie ────────────────────────────────────────────────────────── */
.h1, .h2, .h3 { font-family: var(--f-kop); font-weight: 800; text-transform: uppercase; letter-spacing: -.005em; line-height: .98; }
.h1 { font-size: clamp(2.7rem, 11.5vw, 5.4rem); text-wrap: balance; }
.h2 { font-size: clamp(2.15rem, 8.4vw, 4rem); margin-bottom: .32em; text-wrap: balance; }
.h3 { font-size: clamp(1.5rem, 4.6vw, 2rem); margin-bottom: .45em; line-height: 1.02; }
.h4 { font-weight: 800; font-size: 1.12rem; line-height: 1.25; letter-spacing: -.01em; margin-bottom: .35em; }
.kicker { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 14px; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--grijs); }
.kicker::before { content: ''; width: 16px; height: 16px; flex: none; border-radius: 4px; background: var(--rood) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/12px no-repeat; }
.sectie-donker .kicker, .held .kicker, .slot .kicker { color: rgba(255,255,255,.7); }
.lead { font-size: clamp(1.03rem, 2.4vw, 1.2rem); line-height: 1.55; max-width: 60ch; color: color-mix(in srgb, currentColor 82%, transparent); }
.tekstlink { display: inline-flex; align-items: center; gap: .4em; font-weight: 750; text-decoration: none; color: var(--kers); border-bottom: 2px solid rgba(144,229,9,.35); padding-bottom: 2px; transition: border-color .2s; }
.tekstlink:hover { border-color: var(--rood); }
.tekstlink .ico { transition: transform .25s var(--ease); }
.tekstlink:hover .ico { transform: translateX(4px); }
.sectie-donker .tekstlink, .held .tekstlink, .slot .tekstlink { color: #fff; border-color: rgba(164,239,35,.6); }

/* sleutelwoorden: het rode vlagje (licht), het woord dat opwarmt (donker), en een streep */
.acc { position: relative; display: inline-block; white-space: nowrap; }
.acc-vlag { background: var(--rood); color: #fff; padding: .02em .14em 0; border-radius: .1em; transform: rotate(-2.2deg); box-shadow: .045em .055em 0 var(--ink); line-height: .96; margin-inline: .04em; }
.acc-vlag::after { content: ''; position: absolute; right: -.16em; top: -.2em; width: .34em; height: .34em; border-radius: .06em; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%2390E509' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/78% no-repeat; box-shadow: 0 .03em .08em rgba(0,0,0,.25); transform: rotate(8deg); }
.sectie-donker .acc-vlag, .held .acc-vlag, .slot .acc-vlag { box-shadow: .045em .055em 0 rgba(0,0,0,.5); }
.js .acc-vlag:not(.is-gezien) { opacity: 0; }
.acc-vlag.is-gezien { animation: stempel .55s cubic-bezier(.3,1.5,.5,1) both; }
@keyframes stempel { 0% { transform: rotate(-12deg) scale(1.8); opacity: 0; } 55% { transform: rotate(-1deg) scale(.95); opacity: 1; } 100% { transform: rotate(-2.2deg); } }
.acc-warm { background: linear-gradient(90deg, #B9F35A, #DDF9B0 25%, #B9F35A 55%, #A4EF23 75%, #90E509); background-size: 300% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .04em; }
.acc-warm.is-gezien { animation: opwarmen 2.2s var(--ease) .15s both; }
@keyframes opwarmen { from { background-position: 0% 0; } to { background-position: 100% 0; } }
.js .acc-warm:not(.is-gezien) { background-position: 0% 0; }
.acc-streep .streep-svg { position: absolute; left: -.04em; bottom: -.14em; width: calc(100% + .08em); height: .26em; overflow: visible; pointer-events: none; }
.acc-streep path { fill: none; stroke: var(--rood); stroke-width: 4; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.js .acc-streep path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.acc-streep.is-gezien path { transition: stroke-dashoffset 1s var(--ease) .2s; stroke-dashoffset: 0; }
@media (prefers-reduced-motion: reduce) {
  .acc, .acc * { animation: none !important; transition: none !important; }
  .js .acc-vlag:not(.is-gezien) { opacity: 1; }
  .acc-warm { background-position: 100% 0 !important; }
  .js .acc-streep path { stroke-dashoffset: 0; }
}

/* ── knoppen ───────────────────────────────────────────────────────────── */
.knop { --kh: 52px; display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: var(--kh); padding: 0 22px; border-radius: 999px;
  font-weight: 750; font-size: 1rem; line-height: 1.1; text-decoration: none; border: 0; transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .2s; white-space: nowrap; }
.knop:hover { transform: translateY(-2px); }
.knop .ico { transition: transform .25s var(--ease); }
.knop:hover .ico-pijl { transform: translateX(3px); }
.knop-rood { background: linear-gradient(180deg, #A4EF23, var(--rood) 60%, #82DB05); color: #fff; box-shadow: 0 12px 26px -12px rgba(144,229,9,.85), inset 0 1px 0 rgba(255,255,255,.28); }
.knop-rood:hover { box-shadow: 0 18px 32px -14px rgba(144,229,9,.95), inset 0 1px 0 rgba(255,255,255,.35); }
.knop-donker { background: var(--ink); color: #fff; box-shadow: 0 12px 26px -14px rgba(12,39,33,.8); }
.knop-donker:hover { background: var(--ink-2); }
.knop-wit { background: #fff; color: var(--ink); box-shadow: 0 12px 26px -14px rgba(0,0,0,.5); }
.knop-rand { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--lijn); }
.knop-rand:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.knop-rand-licht { background: rgba(255,255,255,.06); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.knop-rand-licht:hover { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.75); }
.knop-klein { --kh: 44px; padding: 0 18px; font-size: .94rem; }
.knop-groot { --kh: 58px; font-size: 1.05rem; padding: 0 26px; }
.knop-vol { width: 100%; }
.knop[aria-busy="true"] { opacity: .75; pointer-events: none; }

.live-dot { position: relative; display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #3DDC84; flex: none; animation: puls 2.2s infinite; }
@keyframes puls { 0% { box-shadow: 0 0 0 0 rgba(61,220,132,.6); } 70% { box-shadow: 0 0 0 9px rgba(61,220,132,0); } 100% { box-shadow: 0 0 0 0 rgba(61,220,132,0); } }
.live-chip { display: inline-flex; align-items: center; gap: 9px; margin: 0; padding: 7px 14px 7px 12px; max-width: 100%; border-radius: 999px; font-size: .84rem; font-weight: 700;
  background: rgba(12,39,33,.5); color: #fff; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
.live-chip .vlagje { width: 18px; height: 18px; }
.vlagje { display: inline-block; flex: none; border-radius: 3px; background: var(--rood) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/78% no-repeat; }

/* ── glas & mesh ───────────────────────────────────────────────────────── */
.glas { background: rgba(255,255,255,.68); backdrop-filter: blur(24px) saturate(1.35); -webkit-backdrop-filter: blur(24px) saturate(1.35);
  border: 1px solid rgba(255,255,255,.85); box-shadow: 0 40px 80px -40px rgba(12,39,33,.45), inset 0 1px 0 rgba(255,255,255,.95); }
.glas-donker { background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.035)); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.12); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.1); }
.glas-licht { background: var(--kaart); border: 1px solid var(--lijn); box-shadow: var(--schaduw); }
.bollen { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.bollen i { position: absolute; border-radius: 50%; filter: blur(80px); animation: drift 26s ease-in-out infinite alternate; }
.bollen i:nth-child(1) { width: 420px; height: 420px; left: -120px; top: 10%; background: rgba(144,229,9,.42); }
.bollen i:nth-child(2) { width: 460px; height: 460px; right: -140px; bottom: -160px; background: rgba(144,229,9,.34); animation-duration: 32s; }
.bollen i:nth-child(3) { width: 280px; height: 280px; left: 42%; top: 36%; background: rgba(144,229,9,.16); animation-duration: 36s; animation-delay: -12s; }
.bollen-licht i:nth-child(1) { background: rgba(185,243,90,.45); }
.bollen-licht i:nth-child(2) { background: rgba(185,243,90,.22); }
.bollen-licht i:nth-child(3) { background: rgba(255,255,255,.6); }
@keyframes drift { 0% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(40px,30px,0) scale(1.08); } 100% { transform: translate3d(-30px,50px,0) scale(.95); } }

/* ventilatorringen: het rooster van de buitenunit als watermerk */
.ringen { position: absolute; pointer-events: none; aspect-ratio: 1; border-radius: 50%;
  background: repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,0) 0 13px, rgba(255,255,255,.07) 13px 14.5px); -webkit-mask-image: radial-gradient(circle, #000 55%, transparent 70%); mask-image: radial-gradient(circle, #000 55%, transparent 70%); }

/* kruispatroon op donker: een raster van kleine Zwitserse kruisjes */
.sectie-donker::before, .kruisraster::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cpath d='M19 12l-5 7h3l-1 5 5-7h-3z' fill='%23fff' fill-opacity='.07'/%3E%3C/svg%3E");
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent); mask-image: linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent); }

/* ── header ────────────────────────────────────────────────────────────── */
.kop { position: fixed; inset: 0 0 auto; z-index: 60; height: var(--kop-h); transition: background-color .35s, box-shadow .35s, transform .35s var(--ease); }
.kop-in { height: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); display: flex; align-items: center; gap: 14px; }
.kop.is-vast { background: rgba(245,244,240,.88); backdrop-filter: blur(18px) saturate(1.3); -webkit-backdrop-filter: blur(18px) saturate(1.3); box-shadow: 0 1px 0 rgba(12,39,33,.08), 0 12px 30px -24px rgba(12,39,33,.5); }
.kop-licht { color: #fff; }
.kop-licht.is-vast { background: rgba(12,39,33,.84); box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 14px 30px -20px rgba(0,0,0,.6); }
.merk { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.merk img { height: 24px; width: auto; }
@media (min-width: 768px) { .merk img { height: 28px; } }
.merk .merk-licht { display: none; }
.kop-licht .merk .merk-licht { display: block; }
.kop-licht .merk .merk-donker { display: none; }
.kop-nav, .kop-rechts { display: none; }
.kop-bel-m { margin-left: auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--rood); color: #fff; }
.kop-bel-m .ico { width: 21px; height: 21px; }
.kop-menu { width: 44px; height: 44px; border: 0; background: transparent; display: grid; place-content: center; gap: 6px; padding: 0; margin-right: -8px; }
.kop-menu span { display: block; width: 22px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .3s var(--ease); }
.kop-menu[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.kop-menu[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
@media (min-width: 1100px) {
  .kop-nav { display: flex; align-items: center; gap: 0; margin-left: 22px; }
  .kop-link { background: none; border: 0; padding: 10px 12px; border-radius: 999px; font-weight: 650; font-size: .94rem; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
  .kop-link:hover, .kop-link[aria-current] { background: rgba(12,39,33,.07); }
  .kop-licht .kop-link:hover, .kop-licht .kop-link[aria-current] { background: rgba(255,255,255,.12); }
  .ico-caret { width: 14px; height: 14px; transition: transform .25s; }
  .kop-drop-knop[aria-expanded="true"] .ico-caret { transform: rotate(180deg); }
  .kop-rechts { display: flex; align-items: center; gap: 16px; margin-left: auto; }
  .kop-tel { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; line-height: 1.15; }
  .kop-tel-ico { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: rgba(12,39,33,.07); }
  .kop-licht .kop-tel-ico { background: rgba(255,255,255,.12); }
  .kop-tel-ico .ico { width: 19px; height: 19px; }
  .kop-tel small { display: block; font-size: .72rem; font-weight: 650; opacity: .7; white-space: nowrap; }
  .kop-tel strong { white-space: nowrap; }
  .kop-tel strong { font-size: 1rem; font-weight: 800; }
  .kop-bel-m, .kop-menu { display: none; }
  .kop-drop { position: relative; }
  .mega { position: absolute; top: calc(100% + 14px); left: -60px; width: min(1000px, 90vw); opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: opacity .25s, transform .3s var(--ease), visibility .25s; color: var(--ink); }
  .kop-drop.is-open .mega { opacity: 1; visibility: visible; transform: none; }
  .mega-in { display: grid; grid-template-columns: repeat(3, 1fr) 1.05fr; gap: 6px 18px; padding: 20px; border-radius: 26px; background: rgba(250,250,247,.98);
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: 0 40px 80px -30px rgba(12,39,33,.45), 0 0 0 1px rgba(12,39,33,.06); }
  .mega-kol { display: grid; gap: 4px; align-content: start; }
  .mega-kop { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--grijs); margin: 4px 10px 6px; }
  .mega-item { display: grid; grid-template-columns: 58px 1fr; gap: 12px; align-items: center; padding: 8px; border-radius: 16px; text-decoration: none; }
  .mega-item:hover { background: var(--sneeuw-2); }
  .mega-foto { width: 58px; height: 58px; border-radius: 14px; background: radial-gradient(circle at 50% 60%, #fff, #E9E7E0); display: grid; place-items: center; overflow: hidden; }
  .mega-foto img { width: 86%; height: 86%; object-fit: contain; }
  .mega-item strong { display: block; font-size: .95rem; }
  .mega-item small { display: block; color: var(--grijs); font-size: .8rem; line-height: 1.35; }
  .mega-cta { grid-column: 4; grid-row: 1 / span 3; display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 20px; text-decoration: none;
    background: var(--verloop-nacht); color: #fff; position: relative; overflow: hidden; }
  .mega-cta .ico:first-child { width: 32px; height: 32px; color: var(--rood-2); }
  .mega-cta strong { font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 1.7rem; line-height: 1; }
  .mega-cta small { opacity: .75; }
  .mega-cta .mega-pijl { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 750; font-size: .9rem; }
}
/* mobiel menu */
.menu { position: fixed; inset: 0; z-index: 55; background: var(--ink); color: #fff; overflow-y: auto; padding: calc(var(--kop-h) + 12px) var(--gut) 120px; opacity: 0; transition: opacity .3s; }
.menu.is-open { opacity: 1; }
.menu-in { max-width: 560px; margin-inline: auto; }
.menu-kop { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--rood-2); margin: 18px 0 8px; }
.menu-prod { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.menu-prod a { display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 8px; border-radius: 16px; background: rgba(255,255,255,.06); text-decoration: none; font-weight: 700; font-size: .92rem; line-height: 1.15; }
.menu-prod img { width: 44px; height: 44px; object-fit: contain; flex: none; border-radius: 10px; background: rgba(255,255,255,.9); padding: 4px; }
.menu-links { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 16px; margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.1); }
.menu-links a { padding: 10px 0; text-decoration: none; font-weight: 650; }
.menu-contact { display: grid; gap: 10px; margin-top: 24px; }
.menu-contact p { display: flex; align-items: center; gap: 10px; font-size: .9rem; opacity: .8; margin: 4px 0 0; }
body.menu-open { overflow: hidden; }

/* ── held (hero) ───────────────────────────────────────────────────────── */
.held { position: relative; background: var(--ink); color: #fff; isolation: isolate; overflow: hidden; padding: calc(var(--kop-h) + 6px) 0 40px; }
.held-film { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.held-film picture, .held-film img { position: absolute; inset: -4% 0 0; width: 100%; height: 104%; object-fit: cover; object-position: 30% 0; will-change: transform; }
.held-mfoto { position: relative; margin: 24px 0 0; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 30px 50px -26px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.1); }
.held-mfoto img { width: 100%; height: 100%; object-fit: cover; }
.held-mfoto .hotspot { animation: none; }
.held-mfoto + * { }
@media (max-width: 1023px) { .held-sheet { margin-top: -54px; } .held .held-grid > .held-sheet { z-index: 2; } }
@media (min-width: 1024px) { .held-mfoto { display: none; } }
.held-verloop { position: absolute; inset: 0;
  background: radial-gradient(120% 70% at 20% 18%, rgba(7,27,22,.35), rgba(7,27,22,0) 70%),
              linear-gradient(180deg, rgba(7,27,22,.72) 0%, rgba(7,27,22,.34) 22%, rgba(7,27,22,.28) 38%, rgba(7,27,22,.82) 64%, rgba(12,39,33,.97) 100%); }
.held-gloed { position: absolute; inset: 0; pointer-events: none; transform-origin: 50% 100%; animation: gloedAdem 9s ease-in-out infinite alternate;
  background: radial-gradient(90% 55% at 70% 108%, rgba(144,229,9,.55), rgba(144,229,9,.18) 40%, rgba(144,229,9,0) 70%),
              radial-gradient(70% 45% at 0% 0%, rgba(144,229,9,.35), rgba(144,229,9,0) 70%); }
@keyframes gloedAdem { from { opacity: .8; transform: scaleY(.96); } to { opacity: 1; transform: scaleY(1.04); } }
.held-grid { display: grid; gap: 0; }
.held-tekst { padding-top: clamp(18px, 7svh, 64px); }
.held .h1 { margin: 16px 0 14px; text-shadow: 0 2px 30px rgba(0,0,0,.3); }
.held-sub { font-size: clamp(1rem, 2.6vw, 1.18rem); line-height: 1.5; max-width: 44ch; margin: 0; color: rgba(255,255,255,.9); }
.held-sub strong { color: #fff; }
.pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.pill { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; border-radius: 999px; font-size: .86rem; font-weight: 700; color: #fff;
  background: rgba(255,255,255,.1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.pill .ico { width: 18px; height: 18px; color: #90E509; }
.held-bewijs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin-top: 18px; font-size: .86rem; color: rgba(255,255,255,.82); }
.held-bewijs strong { color: #fff; font-family: var(--f-kop); font-size: 1.3rem; font-weight: 800; letter-spacing: .01em; margin-right: 4px; }
@media (max-width: 479px) { .pill:nth-child(n+3) { display: none; } .held-bewijs > :nth-child(n+2) { display: none; } }

/* formulierkaart in stappen */
.held-sheet { position: relative; margin: 30px 0 0; padding: 26px 18px 18px; border-radius: 26px; background: var(--sneeuw); color: var(--ink); box-shadow: 0 30px 60px -30px rgba(0,0,0,.75); }
.held-sheet::before { content: ''; position: absolute; left: 22px; top: -6px; width: 44px; height: 12px; border-radius: 6px; background: var(--rood); box-shadow: 0 6px 14px -4px rgba(144,229,9,.7); }
.sn-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.sn-status { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 6px 12px 6px 10px; border-radius: 999px; background: rgba(144,229,9,.08); font-size: .8rem; font-weight: 750; white-space: nowrap; }
.sn-status .live-dot { width: 8px; height: 8px; }
.sn-status.is-nieuw { animation: statusPop .5s var(--ease); }
@keyframes statusPop { 0% { transform: scale(.9); } 60% { transform: scale(1.05); } 100% { transform: none; } }
.sn-balk { display: flex; gap: 4px; }
.sn-balk li { width: 18px; height: 5px; border-radius: 3px; background: var(--lijn); transition: background-color .35s, width .35s var(--ease); }
.sn-balk li.is-nu { width: 28px; background: var(--rood); }
.sn-balk li.is-gedaan { background: var(--ink); }
.snel .sn-stap { border: 0; margin: 0; padding: 0; min-width: 0; }
.js .snel .sn-stap, .js .sn-klaar { display: none; }
.js .snel .sn-stap.is-actief { display: block; animation: snStap .45s var(--ease); }
@keyframes snStap { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: none; } }
.sn-vraag { padding: 0; margin: 0 0 12px; font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 1.7rem; line-height: 1; }
.sn-tegels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.sn-tegel { position: relative; cursor: pointer; }
.sn-tegel input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sn-tegel > span { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; min-height: 96px; padding: 8px 4px 10px; border-radius: 16px; text-align: center;
  background: linear-gradient(180deg, #FFFFFF, #F4F3EE); box-shadow: 0 0 0 1.5px var(--lijn), 0 8px 16px -14px rgba(12,39,33,.5); transition: transform .25s var(--ease), box-shadow .2s, background .2s, color .2s; }
.sn-tegel img { height: 46px; width: 72px; object-fit: contain; transition: transform .35s cubic-bezier(.3,1.6,.5,1); filter: drop-shadow(0 6px 6px rgba(0,0,0,.18)); }
.sn-tegel .sn-ico { width: 34px; height: 34px; margin-block: 6px 4px; color: var(--ink); transition: transform .35s cubic-bezier(.3,1.6,.5,1); }
.sn-tegel strong { font-size: .82rem; font-weight: 800; line-height: 1.1; }
.sn-tegel:hover > span { transform: translateY(-3px); box-shadow: 0 0 0 1.5px var(--ink), 0 14px 24px -14px rgba(12,39,33,.55); }
.sn-tegel:hover img, .sn-tegel:hover .sn-ico { transform: scale(1.1) translateY(-2px); }
.sn-tegel input:focus-visible + span { outline: 3px solid var(--rood); outline-offset: 2px; }
.sn-tegel input:checked + span { background: linear-gradient(180deg, #173A31, var(--ink)); color: #fff; box-shadow: inset 0 -3px 0 var(--rood), 0 14px 24px -12px rgba(12,39,33,.8); transform: scale(1.03); }
.sn-tegel input:checked + span .sn-ico { color: var(--rood-2); }
.sn-terug { display: inline-flex; align-items: center; gap: 7px; margin: -4px 0 12px; padding: 6px 12px 6px 8px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font-size: .84rem; font-weight: 750; }
.sn-terug .ico { width: 15px; height: 15px; color: var(--rood-2); }
.sn-terug small { font-size: .74rem; font-weight: 650; opacity: .65; }
.velden { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin-bottom: 12px; }
.veld-z { position: relative; grid-column: 1 / -1; }
.veld-z.half { grid-column: auto; }
.veld-z input, .veld-z select, .veld-z textarea { width: 100%; height: 58px; padding: 22px 16px 6px 46px; border-radius: 15px; border: 0; background: #fff; box-shadow: 0 0 0 1.5px var(--lijn);
  font-size: 16px; font-weight: 650; color: var(--ink); outline: 0; transition: box-shadow .2s; -webkit-appearance: none; appearance: none; }
.veld-z textarea { height: 110px; padding-top: 28px; resize: vertical; }
.veld-z.zonder-ico input, .veld-z.zonder-ico textarea { padding-left: 16px; }
.veld-z.zonder-ico label { left: 16px; }
.veld-z > .ico { position: absolute; left: 15px; top: 19px; width: 20px; height: 20px; color: var(--kers); pointer-events: none; }
.veld-z label { position: absolute; left: 46px; top: 18px; font-size: .95rem; font-weight: 600; color: #8A8E92; pointer-events: none; transition: transform .2s var(--ease), font-size .2s, color .2s; transform-origin: 0 0; }
.veld-z input:focus + label, .veld-z input:not(:placeholder-shown) + label, .veld-z textarea:focus + label, .veld-z textarea:not(:placeholder-shown) + label { transform: translateY(-11px); font-size: .72rem; color: var(--grijs); font-weight: 750; }
.veld-z input:focus, .veld-z textarea:focus { box-shadow: 0 0 0 2px var(--ink), 0 0 0 6px rgba(144,229,9,.14); }
.veld-z.is-fout input { box-shadow: 0 0 0 2px var(--rood); }
.sn-fout { margin: -4px 2px 12px; font-size: .84rem; font-weight: 650; color: var(--kers); }
.sn-checks { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; margin: 12px 0 0; font-size: .8rem; font-weight: 700; }
.sn-checks li { display: inline-flex; align-items: center; gap: 4px; }
.sn-checks .ico { width: 14px; height: 14px; color: var(--kers); }
.sn-vertrouwen { display: flex; align-items: center; gap: 9px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--lijn); font-size: .78rem; line-height: 1.35; color: var(--grijs); }
.sn-vertrouwen .ico { width: 22px; height: 22px; color: var(--kers); }
.sn-vertrouwen strong { color: var(--ink); }
.snel.is-compleet .knop-rood { animation: knopKlaar 1.8s ease-in-out infinite; }
@keyframes knopKlaar { 50% { box-shadow: 0 12px 30px -8px rgba(144,229,9,1), 0 0 0 5px rgba(144,229,9,.18); } }
.snel.is-klaar .sn-klaar { display: block; position: relative; padding: 10px 0 4px; text-align: center; outline: 0; animation: snStap .45s var(--ease); }
.sn-vink { position: relative; z-index: 1; display: block; width: 78px; height: 78px; margin: 0 auto 10px; }
.sn-vink-rand { fill: none; stroke: var(--rood); stroke-width: 3; stroke-dasharray: 150; stroke-dashoffset: 150; animation: vinkRand .6s var(--ease) forwards; }
.sn-vink-vlak { fill: var(--rood); transform-origin: center; transform-box: fill-box; transform: scale(0); animation: vinkVlak .45s cubic-bezier(.3,1.6,.5,1) .45s forwards; }
.sn-vink path { fill: none; stroke: #fff; stroke-width: 4.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: vinkLijn .45s var(--ease) .75s forwards; }
@keyframes vinkRand { to { stroke-dashoffset: 0; } }
@keyframes vinkVlak { to { transform: scale(1); } }
@keyframes vinkLijn { to { stroke-dashoffset: 0; } }
.sn-feest { position: absolute; left: 50%; top: 48px; width: 0; height: 0; }
.sn-feest i { position: absolute; left: -4px; top: -4px; width: 8px; height: 8px; border-radius: 2px; background: var(--rood); opacity: 0; animation: feest .9s cubic-bezier(.2,.8,.3,1) .6s forwards; }
.sn-feest i:nth-child(2n) { background: var(--ijs-2); width: 6px; height: 6px; border-radius: 50%; }
.sn-feest i:nth-child(1) { --x: -64px; --y: -38px; } .sn-feest i:nth-child(2) { --x: 60px; --y: -44px; } .sn-feest i:nth-child(3) { --x: -78px; --y: 6px; } .sn-feest i:nth-child(4) { --x: 80px; --y: 2px; }
.sn-feest i:nth-child(5) { --x: -44px; --y: 40px; } .sn-feest i:nth-child(6) { --x: 48px; --y: 38px; } .sn-feest i:nth-child(7) { --x: -12px; --y: -62px; } .sn-feest i:nth-child(8) { --x: 16px; --y: 58px; }
@keyframes feest { 0% { opacity: 1; transform: translate(0,0) scale(.4) rotate(0); } 70% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--x), var(--y)) scale(1) rotate(160deg); } }
.sn-klaar-kop { margin: 0 0 6px; font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 2rem; line-height: 1; }
.sn-klaar p { margin: 0; font-size: .95rem; line-height: 1.45; }
.sn-zweef { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 8px 13px 8px 10px; border-radius: 12px; font-size: .8rem; font-weight: 800;
  white-space: nowrap; box-shadow: 0 14px 26px -12px rgba(0,0,0,.55); pointer-events: none; animation: zweef 4.6s ease-in-out infinite alternate; }
.sn-zweef .ico { width: 17px; height: 17px; }
.sn-zweef-1 { top: -18px; right: 12px; --r: 3deg; background: var(--rood); color: #fff; }
.sn-zweef-2 { bottom: -16px; left: 12px; --r: -3deg; background: var(--ink); color: #fff; animation-delay: -2.3s; }
.sn-zweef-2 .ico { color: var(--ijs); }
@keyframes zweef { from { transform: rotate(var(--r)) translateY(0); } to { transform: rotate(var(--r)) translateY(-6px); } }
.held-sheet.is-klaar .sn-zweef-1 { opacity: 0; transition: opacity .4s; }
@media (prefers-reduced-motion: reduce) { .sn-zweef { animation: none; transform: rotate(var(--r)); } .sn-feest { display: none; } .sn-vink-rand, .sn-vink path { stroke-dashoffset: 0; animation: none; } .sn-vink-vlak { transform: none; animation: none; } }
@media (min-width: 1024px) {
  .held { padding: var(--kop-h) 0 0; min-height: min(92vh, 860px); display: flex; align-items: center; }
  .held-film img { object-position: 62% 55%; }
  .held-verloop { background: radial-gradient(70% 90% at 8% 45%, rgba(7,27,22,.9), rgba(7,27,22,.55) 58%, rgba(7,27,22,.1) 100%),
      linear-gradient(90deg, rgba(7,27,22,.72) 0%, rgba(7,27,22,.42) 40%, rgba(7,27,22,.02) 72%),
      linear-gradient(180deg, rgba(7,27,22,.55) 0%, rgba(7,27,22,0) 24%, rgba(7,27,22,0) 76%, rgba(7,27,22,.4) 100%); }
  .held-gloed { background: radial-gradient(60% 50% at 78% 112%, rgba(144,229,9,.42), rgba(144,229,9,.1) 45%, rgba(144,229,9,0) 70%), radial-gradient(60% 45% at 0% 0%, rgba(144,229,9,.3), rgba(144,229,9,0) 70%); }
  .held-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 56px; align-items: center; padding-block: 40px 70px; width: 100%; }
  .held-tekst { padding: 0; }
  .held-sheet { margin: 0; padding: 30px 26px 20px; max-width: 430px; justify-self: end; width: 100%; background: rgba(245,244,240,.97); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
  .sn-zweef-1 { right: -20px; top: -16px; }
  .sn-zweef-2 { left: -22px; bottom: -18px; }
}
@media (min-width: 1024px) and (max-height: 760px) { .held { min-height: 0; } }
@media (min-width: 1100px) and (max-width: 1299px) { .kop-tel > span:last-child { display: none; } .kop-link { padding: 10px 9px; } }

/* keurstrook */
.keurstrook { background: var(--ink); color: rgba(255,255,255,.9); overflow: hidden; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.keur-baan { display: flex; width: max-content; animation: keurLoop 52s linear infinite; }
.keurstrook:hover .keur-baan { animation-play-state: paused; }
.keur-rij { display: flex; gap: 40px; padding: 15px 40px 15px 0; flex: none; }
.keur-rij li { position: relative; display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; font-size: .9rem; font-weight: 700; }
.keur-rij .ico { width: 20px; height: 20px; color: #90E509; }
.keur-rij li::after { content: ''; position: absolute; right: -25px; top: 50%; width: 10px; height: 10px; margin-top: -5px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%2390E509' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/contain no-repeat; }
@keyframes keurLoop { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .keur-baan { animation: none; width: auto; overflow-x: auto; } .keur-rij[aria-hidden] { display: none; } }

/* ── secties ───────────────────────────────────────────────────────────── */
.sectie { position: relative; padding-block: clamp(56px, 8.5vw, 116px); isolation: isolate; }
.sectie-klein { padding-block: clamp(34px, 5vw, 64px); }
.sectie > .wrap { position: relative; z-index: 1; }
.sectie-licht { background: var(--sneeuw); }
.sectie-alt { background: var(--sneeuw-2); }
.sectie-donker { background: var(--ink); color: #fff; overflow: hidden; }
.sectie-donker .lead { color: rgba(255,255,255,.76); }
.sectie-kop { display: grid; gap: 8px; margin-bottom: clamp(22px, 3vw, 36px); }
.sectie-kop .lead { margin: 0; }
@media (min-width: 1024px) { .sectie-kop { grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: end; } .sectie-kop .h2 { margin: 0; } }
.vinklijst { display: grid; gap: 10px; }
.vinklijst li { display: flex; gap: 10px; align-items: flex-start; font-weight: 550; line-height: 1.45; }
.vinklijst .ico { width: 20px; height: 20px; color: var(--kers); margin-top: 2px; }
.sectie-donker .vinklijst .ico, .slot .vinklijst .ico { color: #90E509; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: var(--kaart); box-shadow: 0 0 0 1px var(--lijn); font-weight: 750; font-size: .8rem; line-height: 1.2; }
.chip .ico { width: 15px; height: 15px; color: var(--kers); }
.chip-donker { background: rgba(255,255,255,.08); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.chip-donker .ico { color: #90E509; }

/* ── de collectie: toestellen die boven hun kaart uitsteken ─────────────── */
.collectie { background: var(--sneeuw); }
.filter { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--gut) * -1) 26px; padding: 2px var(--gut) 6px; }
.filter::-webkit-scrollbar { display: none; }
.filter button { flex: none; display: inline-flex; align-items: center; gap: 8px; border: 0; background: var(--kaart); padding: 10px 16px; border-radius: 999px; font-weight: 750; font-size: .92rem;
  box-shadow: 0 0 0 1px var(--lijn); transition: background-color .2s, color .2s, box-shadow .2s; }
.filter button .ico { width: 18px; height: 18px; }
.filter button[aria-pressed="true"] { background: var(--ink); color: #fff; box-shadow: none; }
.filter button[aria-pressed="true"] .ico { color: #90E509; }
.filter small { font-weight: 700; opacity: .55; font-size: .78rem; }
.tl-rij { display: grid; grid-auto-flow: column; grid-auto-columns: min(76%, 300px); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  margin: 0 calc(var(--gut) * -1); padding: 30px var(--gut) 12px; scroll-padding-inline: var(--gut); }
.tl-rij::-webkit-scrollbar { display: none; }
.tl-rij > li { scroll-snap-align: start; min-width: 0; transition: opacity .35s, transform .35s var(--ease); }
.tl-rij > li.is-uit { opacity: .28; transform: scale(.97); }
.tl { position: relative; display: block; height: 500px; color: #fff; text-decoration: none; isolation: isolate; }
.tl-podium { position: absolute; inset: 78px 0 0; z-index: -1; border-radius: var(--r-kaart); overflow: hidden; box-shadow: var(--schaduw); transition: transform .35s var(--ease), box-shadow .35s;
  background: radial-gradient(80% 50% at 50% 8%, rgba(144,229,9,.34), rgba(144,229,9,0) 72%), radial-gradient(70% 45% at 100% 100%, rgba(144,229,9,.2), rgba(144,229,9,0) 70%), linear-gradient(170deg, #173A31, var(--ink) 70%); }
.tl-podium .ringen { width: 120%; left: -10%; top: -30%; opacity: .9; }
.tl-toestel { position: absolute; inset: -6px 18px 262px; display: flex; align-items: flex-end; justify-content: center; transition: transform .45s var(--ease); }
.tl-toestel img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 22px 22px rgba(0,0,0,.45)); }
.tl-toestel::after { content: ''; position: absolute; left: 18%; right: 18%; bottom: -6px; height: 16px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.55), rgba(0,0,0,0)); z-index: -1; }
.tl-tekst { position: absolute; inset: auto 0 0; padding: 20px 20px 18px; }
.tl-uitleg { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tl-soort { display: block; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.tl-naam { display: block; font-family: var(--f-kop); text-transform: uppercase; font-size: 1.85rem; font-weight: 800; line-height: .95; margin: 4px 0 6px; }
.tl-uitleg { display: block; font-size: .9rem; line-height: 1.42; color: rgba(255,255,255,.74); }
.tl-voet { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.1); }
.tl-bespaar { display: grid; line-height: 1.1; }
.tl-bespaar small { font-size: .72rem; color: rgba(255,255,255,.6); font-weight: 650; }
.tl-bespaar strong { font-family: var(--f-kop); font-size: 1.45rem; font-weight: 800; color: #90E509; font-variant-numeric: tabular-nums; }
.tl-pijl { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.1); transition: background-color .25s, transform .25s var(--ease); }
.tl-pijl .ico { width: 19px; height: 19px; }
a.tl:hover .tl-podium { transform: translateY(-4px); box-shadow: var(--schaduw-2); }
a.tl:hover .tl-toestel { transform: translateY(-10px); }
a.tl:hover .tl-pijl { background: var(--rood); }
.tl-badge { position: absolute; top: 92px; left: 14px; z-index: 2; padding: 5px 10px; border-radius: 999px; background: var(--rood); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .02em; }
.tl-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.tl-chips span { padding: 4px 9px; border-radius: 999px; background: rgba(255,255,255,.1); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-size: .72rem; font-weight: 750; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.tl-noot { margin: 14px 0 0; font-size: .8rem; color: var(--grijs); }
.tl-link { text-decoration: none; }
.tl-link:hover { text-decoration: underline; text-decoration-color: var(--rood); text-decoration-thickness: 3px; }
.bs-reken { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; margin-top: 12px; padding: 10px 12px; border-radius: 14px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); font-size: .78rem; font-weight: 700; color: rgba(255,255,255,.75); cursor: pointer; }
.bs-reken > span:first-child { grid-column: 1; }
.bs-reken input { grid-column: 1; width: 100%; accent-color: var(--rood); }
.bs-uit { grid-column: 2; grid-row: 1 / span 2; display: grid; text-align: right; line-height: 1.05; }
.bs-uit strong { font-family: var(--f-kop); font-size: 1.7rem; font-weight: 800; color: #90E509; font-variant-numeric: tabular-nums; }
.bs-uit small { font-size: .7rem; color: rgba(255,255,255,.6); }
@media (min-width: 1024px) {
  .tl-rij > li.tl-breed-li { grid-column: span 2; }
  .tl-breed .tl-toestel { inset: -34px 52% 40px 14px; align-items: center; }
  .tl-breed .tl-tekst { left: 46%; top: 84px; display: flex; flex-direction: column; justify-content: flex-end; }
  .tl-rij.tl-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tl-rij.tl-n3 > li:first-child { grid-column: auto; }
  .tl-rij.tl-n3 > li:first-child .tl-toestel { inset: -34px 18px 262px; }
  .tl-rij.tl-n3 > li:first-child .tl-naam { font-size: 1.85rem; }
  .tl-rij.tl-n5 > li.tl-breed-li { grid-column: span 1; }
  .tl-rij.tl-n5 > li.tl-breed-li .tl-toestel { inset: -34px 18px 262px; align-items: flex-end; }
  .tl-rij.tl-n5 > li.tl-breed-li .tl-tekst { left: 0; top: auto; }
}
@media (min-width: 1024px) {
  .filter { margin: 0 0 30px; padding: 0; overflow: visible; }
  .tl-rij { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 56px 18px; margin: 0; padding: 40px 0 0; overflow: visible; }
  .tl-rij > li:first-child { grid-column: span 2; }
  .tl-rij > li:first-child .tl-toestel { inset: -40px 110px 216px; }
  .tl-rij > li:first-child .tl-naam { font-size: 2.6rem; }
  .tl-rij > li:first-child .tl-uitleg { max-width: 46ch; }
  .tl { height: 520px; }
  .tl-toestel { top: -34px; bottom: 262px; }
}

/* ── in situ: de radiatoren blijven ────────────────────────────────────── */
.insitu-grid { display: grid; gap: 30px; align-items: center; }
.kader { position: relative; }
.kader picture { border-radius: var(--r-beeld); overflow: hidden; aspect-ratio: 4 / 3.3; box-shadow: var(--schaduw-2); }
.kader img { width: 100%; height: 100%; object-fit: cover; }
.kader::before { content: ''; position: absolute; left: -10px; top: -10px; width: 56px; height: 56px; z-index: 2; border-radius: 14px; background: var(--rood) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/64% no-repeat; box-shadow: 0 14px 24px -10px rgba(144,229,9,.8); transform: rotate(-6deg); }
.hotspot { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px 7px 8px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--ink); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  font-size: .8rem; font-weight: 800; box-shadow: 0 12px 24px -12px rgba(0,0,0,.5); white-space: nowrap; animation: zweef 5s ease-in-out infinite alternate; --r: 0deg; }
.hotspot i { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--rood); color: #fff; font-style: normal; }
.hotspot i .ico { width: 13px; height: 13px; }
.hotspot-donker { background: rgba(12,39,33,.82); color: #fff; }
.insitu-groot { display: flex; align-items: flex-end; gap: 14px; margin: 20px 0 22px; }
.insitu-groot strong { font-family: var(--f-kop); font-weight: 800; font-size: clamp(4.4rem, 14vw, 7rem); line-height: .8; color: var(--kers); font-variant-numeric: tabular-nums; }
.insitu-groot > span { font-weight: 650; line-height: 1.35; color: var(--grijs); max-width: 22ch; padding-bottom: 4px; }
.punten { display: grid; gap: 14px; margin: 20px 0 24px; }
.punten li { display: grid; grid-template-columns: 42px 1fr; gap: 12px; align-items: start; }
.punten .ico { width: 42px; height: 42px; padding: 10px; border-radius: 12px; background: var(--ink); color: #90E509; }
.punten strong { display: block; font-weight: 800; }
.punten p { margin: 2px 0 0; color: var(--grijs); font-size: .95rem; }
.bouwjaar { margin-top: 8px; padding: 16px; border-radius: var(--r-kaart); background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); }
.bouwjaar > p:first-child { margin: 0 0 10px; font-weight: 800; }
.segment { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; padding: 4px; border-radius: 16px; background: var(--sneeuw-2); box-shadow: inset 0 0 0 1px var(--lijn); }
.seg { position: relative; min-width: 0; }
.seg input { position: absolute; opacity: 0; }
.seg span { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 46px; padding: 6px 4px; border-radius: 12px; font-size: .84rem; font-weight: 750; line-height: 1.1; cursor: pointer; transition: background-color .2s, color .2s; }
.seg span small { font-size: .68rem; white-space: nowrap; font-weight: 650; opacity: .7; margin-top: 2px; }
.seg input:checked + span { background: linear-gradient(180deg, #173A31, var(--ink)); color: #fff; box-shadow: inset 0 -2px 0 var(--rood), 0 6px 14px -8px rgba(12,39,33,.8); }
.seg input:focus-visible + span { outline: 3px solid var(--rood); outline-offset: 1px; }
.bj-uit { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: start; margin: 12px 2px 0; }
.bj-uit .bj-ico { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #E9F6EE; color: #1F8A4C; }
.bj-uit.is-let .bj-ico { background: #FFF1E0; color: #B25E00; }
.bj-uit .ico { width: 22px; height: 22px; }
.bj-uit strong { display: block; }
.bj-uit p { margin: 2px 0 0; font-size: .92rem; color: var(--grijs); }
@media (min-width: 1024px) { .insitu-grid { grid-template-columns: 1fr 1fr; gap: 72px; } }

/* ── besparingscheck ───────────────────────────────────────────────────── */
.check { background: linear-gradient(160deg, #0E2E26 0%, #0C2721 50%, #071B16 100%); color: #fff; overflow: hidden; }
.check::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cpath d='M19 12l-5 7h3l-1 5 5-7h-3z' fill='%23fff' fill-opacity='.06'/%3E%3C/svg%3E");
  -webkit-mask-image: radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 85%); mask-image: radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 85%); }
.check-grid { display: grid; gap: 26px; }
.check .lead { color: rgba(255,255,255,.74); }
.check-usp { display: grid; gap: 9px; margin-top: 18px; font-size: .94rem; font-weight: 650; }
.check-usp li { display: flex; align-items: center; gap: 9px; }
.check-usp .ico { width: 19px; height: 19px; color: #90E509; }
.check-thermo { display: none; }
.rk { position: relative; background: #fff; color: var(--ink); border-radius: 28px; padding: 18px 16px 16px; box-shadow: 0 0 0 1px rgba(255,255,255,.5), 0 0 80px -24px rgba(144,229,9,.35), 0 40px 80px -40px rgba(0,0,0,.9); }
.rk-balk { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; min-height: 30px; }
.rk-terug { display: inline-flex; align-items: center; gap: 5px; border: 0; background: none; padding: 4px 0; font-weight: 750; font-size: .84rem; color: var(--grijs); }
.rk-terug .ico { width: 15px; height: 15px; }
.rk-stappen { flex: 1; display: flex; gap: 4px; min-width: 0; }
.rk-stappen li { flex: 1; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.rk-stappen li::before { content: ''; height: 4px; border-radius: 3px; background: #ECEAE3; transition: background .3s; }
.rk-stappen li.is-gedaan::before { background: var(--ink); }
.rk-stappen li.is-nu::before { background: var(--verloop-warmte); }
.rk-stappen span { font-size: .68rem; font-weight: 750; color: #A09C94; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rk-stappen li.is-nu span, .rk-stappen li.is-gedaan span { color: var(--ink); }
.rk-stap { border: 0; margin: 0; padding: 0; min-width: 0; }
.js .rk-stap { display: none; }
.js .rk-stap.is-actief { display: block; animation: snStap .45s var(--ease); }
.rk-vraag { padding: 0; margin: 0 0 12px; font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 1.75rem; line-height: 1; }
.rk-sub { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: .84rem; font-weight: 750; color: var(--grijs); margin: 16px 0 8px; }
.rk-sub output { font-family: var(--f-kop); font-size: 1.5rem; font-weight: 800; color: var(--ink); font-variant-numeric: tabular-nums; }
.keuze-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.keuze-grid.k5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.keuze { position: relative; display: block; cursor: pointer; }
.keuze input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.keuze-in { display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: center; gap: 6px; min-height: 92px; height: 100%; padding: 12px 6px; border-radius: 16px;
  background: #fff; box-shadow: 0 0 0 1.5px #E7E5DD; transition: box-shadow .2s, background .2s, transform .2s var(--ease); position: relative; }
.keuze-in .ico { width: 30px; height: 30px; color: var(--ink); }
.keuze-in strong { font-size: .88rem; font-weight: 800; line-height: 1.1; }
.keuze-in small { font-size: .72rem; color: var(--grijs); line-height: 1.2; }
.keuze:hover .keuze-in { transform: translateY(-2px); box-shadow: 0 0 0 2px var(--ink), 0 12px 22px -14px rgba(12,39,33,.5); }
.keuze input:focus-visible + .keuze-in { outline: 3px solid var(--rood); outline-offset: 2px; }
.keuze input:checked + .keuze-in { background: linear-gradient(180deg, #173A31, var(--ink)); color: #fff; box-shadow: 0 0 0 2px var(--ink), inset 0 -3px 0 var(--rood), 0 14px 26px -12px rgba(12,39,33,.7); transform: translateY(-2px); }
.keuze input:checked + .keuze-in .ico { color: #90E509; }
.keuze input:checked + .keuze-in small { color: rgba(255,255,255,.7); }
.schuif { width: 100%; -webkit-appearance: none; appearance: none; height: 8px; border-radius: 8px; outline-offset: 6px;
  background: linear-gradient(90deg, #B9F35A, #B9F35A calc(var(--p, 30%) * .6), var(--rood) var(--p, 30%), #ECEAE3 var(--p, 30%)); }
.schuif::-webkit-slider-thumb { -webkit-appearance: none; width: 30px; height: 30px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px var(--ink), 0 6px 14px -4px rgba(12,39,33,.6); cursor: grab; }
.schuif::-moz-range-thumb { width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 3px solid var(--ink); cursor: grab; }
.presets { display: flex; gap: 6px; margin-top: 12px; flex-wrap: wrap; }
.presets button { border: 0; padding: 6px 11px; border-radius: 999px; background: #F2F1EC; font-size: .78rem; font-weight: 750; box-shadow: inset 0 0 0 1px #E4E2DA; }
.presets button.is-actief { background: var(--ink); color: #fff; box-shadow: none; }
.teller { display: flex; align-items: center; gap: 10px; }
.teller button { width: 44px; height: 44px; border-radius: 50%; border: 0; background: #F2F1EC; box-shadow: inset 0 0 0 1px #E4E2DA; display: grid; place-items: center; }
.teller button .ico { width: 18px; height: 18px; }
.teller output { min-width: 3.4ch; text-align: center; font-family: var(--f-kop); font-size: 2rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.personen { display: flex; gap: 3px; margin-left: 6px; color: var(--kers); }
.personen .ico { width: 22px; height: 22px; }
.rk-rij { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.schakel { position: relative; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 750; font-size: .92rem; }
.schakel input { position: absolute; opacity: 0; }
.schakel i { width: 50px; height: 30px; border-radius: 999px; background: #E4E2DA; position: relative; transition: background .25s; flex: none; }
.schakel i::after { content: ''; position: absolute; left: 3px; top: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.25); transition: transform .3s var(--ease); }
.schakel input:checked + i { background: var(--rood); }
.schakel input:checked + i::after { transform: translateX(20px); }
.schakel input:focus-visible + i { outline: 3px solid var(--rood); outline-offset: 2px; }
.rk-gas { margin-top: 10px; }
.rk-schatting { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; padding: 9px 12px; border-radius: 12px; background: #F1F8E6; font-size: .82rem; font-weight: 650; color: #2E5C00; }
.rk-schatting .ico { width: 17px; height: 17px; }
.rk-live { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 16px 0 0; padding: 12px 16px; border-radius: 16px; background: linear-gradient(135deg, #143A31, var(--ink)); color: #fff; box-shadow: inset 0 -2px 0 var(--rood); }
.rk-live span { font-size: .8rem; font-weight: 650; opacity: .8; }
.rk-live strong { font-family: var(--f-kop); font-weight: 800; font-size: 1.35rem; color: #90E509; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rk .knop-vol { margin-top: 16px; }
/* uitkomst: per toestel */
.uk-kop { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.uk-kop .rk-vraag { margin: 0; }
.uk-opnieuw { border: 0; background: #F2F1EC; padding: 7px 12px; border-radius: 999px; font-size: .78rem; font-weight: 750; display: inline-flex; align-items: center; gap: 6px; flex: none; }
.uk-opnieuw .ico { width: 14px; height: 14px; }
.uk-samen { margin: 0 0 12px; font-size: .86rem; color: var(--grijs); }
.uk-lijst { display: grid; gap: 8px; }
.uk-rij { border-radius: 18px; background: #FAFAF7; box-shadow: 0 0 0 1px #ECEAE3; transition: box-shadow .25s, background .25s; }
.uk-rij.is-open { background: #fff; box-shadow: 0 0 0 2px var(--ink), 0 18px 30px -20px rgba(12,39,33,.5); }
.uk-rij > button { width: 100%; border: 0; background: none; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px 10px 8px; text-align: left; }
.uk-foto { width: 58px; height: 58px; border-radius: 14px; background: radial-gradient(circle at 50% 60%, #fff, #ECEAE3); display: grid; place-items: center; }
.uk-foto img { width: 84%; height: 84%; object-fit: contain; }
.uk-naam { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-weight: 800; font-size: .96rem; line-height: 1.15; }
.uk-tag { padding: 2px 8px; border-radius: 999px; background: var(--rood); color: #fff; font-size: .66rem; font-weight: 800; letter-spacing: .02em; }
.uk-tag-ijs { background: #EAF9D0; color: #2E5C00; }
.uk-wat { display: block; font-size: .76rem; color: var(--grijs); margin-top: 2px; }
.uk-balk { display: block; height: 7px; border-radius: 6px; background: #ECEAE3; margin-top: 7px; overflow: hidden; }
.uk-balk i { display: block; height: 100%; width: var(--w, 0%); border-radius: 6px; background: var(--verloop-warmte); transition: width 1.1s var(--ease); }
.uk-bedrag { text-align: right; line-height: 1; }
.uk-bedrag strong { display: block; font-family: var(--f-kop); font-weight: 800; font-size: 1.7rem; font-variant-numeric: tabular-nums; }
.uk-bedrag small { font-size: .7rem; color: var(--grijs); font-weight: 700; }
.uk-detail { padding: 0 14px 14px; }
.uk-cijfers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 4px 0 10px; }
.uk-cijfers div { padding: 10px 12px; border-radius: 12px; background: var(--sneeuw); }
.uk-cijfers dt { font-size: .7rem; font-weight: 700; color: var(--grijs); }
.uk-cijfers dd { margin: 0; font-weight: 800; font-size: 1rem; font-variant-numeric: tabular-nums; }
.uk-uitleg { font-size: .84rem; color: var(--grijs); margin: 0 0 10px; }
.uk-variant { margin: 0 0 10px; }
.uk-detail .tekstlink { font-size: .88rem; }
.uk-subsidie { display: flex; gap: 12px; align-items: center; margin-top: 12px; padding: 12px 14px; border-radius: 16px; background: linear-gradient(90deg, rgba(144,229,9,.09), rgba(144,229,9,.02)); }
.uk-subsidie > .ico { width: 28px; height: 28px; color: var(--kers); }
.uk-subsidie p { margin: 0; font-size: .86rem; line-height: 1.35; }
.uk-subsidie strong { font-size: .95rem; }
.uk-cta { margin-top: 12px; }
.uk-noot { font-size: .74rem; color: var(--grijs); margin: 10px 2px 0; line-height: 1.4; }
@media (min-width: 768px) { .rk { padding: 22px 22px 18px; } .keuze-grid.k5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } .uk-cijfers { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .check-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: start; }
  .check-intro { position: sticky; top: calc(var(--kop-h) + 40px); padding-top: 12px; }
  .check-thermo { display: flex; gap: 14px; align-items: center; margin-top: 30px; padding: 16px; border-radius: 20px; max-width: 420px; }
  .check-thermo .ico { width: 34px; height: 34px; color: #90E509; }
  .check-thermo p { margin: 0; font-size: .9rem; color: rgba(255,255,255,.78); }
  .check-thermo strong { color: #fff; }
}

/* ── 60%: de rekening, per maand ───────────────────────────────────────── */
.zestig-grid { display: grid; gap: 28px; align-items: center; }
.grafiek { border-radius: 26px; padding: 20px 18px 16px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw-2); }
.gr-kop { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.gr-kop p { margin: 0; font-size: .82rem; color: var(--grijs); font-weight: 650; }
.gr-kop strong { display: block; font-family: var(--f-kop); font-size: 1.5rem; text-transform: uppercase; line-height: 1; color: var(--ink); }
.gr-legenda { display: flex; gap: 14px; font-size: .8rem; font-weight: 750; }
.gr-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.gr-legenda i { width: 12px; height: 12px; border-radius: 3px; }
.gr-legenda .l-gas i { background: #9AA3AC; }
.gr-legenda .l-tc i { background: var(--rood); }
.gr-plot { position: relative; display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; align-items: end; height: 230px; padding-top: 10px; border-bottom: 1px solid var(--lijn);
  background: repeating-linear-gradient(0deg, transparent 0 56px, rgba(12,39,33,.06) 56px 57px); }
.gr-maand { position: relative; display: flex; align-items: flex-end; justify-content: center; gap: 4px; height: 100%; }
.gr-staaf { position: relative; width: min(42%, 26px); height: var(--h); border-radius: 6px 6px 2px 2px; transform-origin: 50% 100%; transition: transform 1s var(--ease); transition-delay: var(--d, 0ms); }
.gr-gas { background: #9AA3AC; }
.gr-tc { background: var(--verloop-rood); }
.js .grafiek:not(.is-gezien) .gr-staaf { transform: scaleY(0); }
.gr-staaf:hover::after, .gr-staaf:focus-visible::after { content: attr(data-t); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); padding: 4px 8px; border-radius: 8px; background: var(--ink); color: #fff; font-size: .72rem; font-weight: 750; white-space: nowrap; z-index: 2; }
.gr-as { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: 8px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; color: var(--grijs); text-align: center; }
.gr-totaal { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 16px; }
.gr-totaal div { padding: 12px; border-radius: 14px; background: var(--sneeuw); }
.gr-totaal dt { font-size: .72rem; font-weight: 700; color: var(--grijs); }
.gr-totaal dd { margin: 2px 0 0; font-family: var(--f-kop); font-size: 1.5rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.gr-totaal .is-rood { background: var(--rood); color: #fff; }
.gr-totaal .is-rood dt { color: rgba(255,255,255,.8); }
.gr-noot { font-size: .76rem; color: var(--grijs); margin: 12px 0 0; }
.cop-uitleg { display: grid; gap: 10px; margin-top: 22px; padding: 18px; border-radius: 20px; background: var(--ink); color: #fff; }
.cop-uitleg p { margin: 0; font-size: .92rem; color: rgba(255,255,255,.78); }
.cop-blokken { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cop-blokken b { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font-size: .7rem; }
.cop-blokken .b-stroom { background: #FFD24D; color: var(--ink); }
.cop-blokken .b-lucht { background: rgba(185,243,90,.24); color: var(--ijs); box-shadow: inset 0 0 0 1px rgba(185,243,90,.4); }
.cop-blokken .b-warmte { background: var(--rood); }
.cop-blokken .is { font-family: var(--f-kop); font-size: 1.6rem; font-weight: 800; }
.cop-blokken .ico { width: 16px; height: 16px; }
@media (min-width: 1024px) { .zestig-grid { grid-template-columns: .9fr 1.1fr; gap: 72px; } .grafiek { padding: 26px 26px 20px; } .gr-plot { height: 280px; background: repeating-linear-gradient(0deg, transparent 0 69px, rgba(12,39,33,.06) 69px 70px); } }

/* ── werking: de 3D-buitenunit ─────────────────────────────────────────── */
.werking { background: radial-gradient(90% 70% at 30% 40%, #143A31 0%, #0C2721 55%, #071B16 100%); }
.werking-grid { display: grid; gap: 26px; align-items: center; }
.podium3d { position: relative; aspect-ratio: 1 / .92; border-radius: 30px; overflow: hidden; background: radial-gradient(70% 60% at 50% 55%, rgba(185,243,90,.14), rgba(185,243,90,0) 70%); }
.podium3d canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; touch-action: pan-y; cursor: grab; }
.podium3d canvas:active { cursor: grabbing; }
.podium3d.is-leeg canvas { display: none; }
.podium3d-val { position: absolute; inset: 0; display: grid; place-items: center; }
.podium3d-val img { width: 70%; filter: drop-shadow(0 30px 30px rgba(0,0,0,.5)); }
.podium3d:not(.is-leeg) .podium3d-val { opacity: 0; transition: opacity .6s .2s; pointer-events: none; }
.p3-label { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px 6px 8px; border-radius: 999px; font-size: .76rem; font-weight: 800; white-space: nowrap; pointer-events: none;
  background: rgba(12,39,33,.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.p3-label i { width: 10px; height: 10px; border-radius: 50%; }
.p3-koud { left: 4%; top: 12%; } .p3-koud i { background: var(--ijs); box-shadow: 0 0 12px var(--ijs); }
.p3-warm { right: 4%; bottom: 16%; } .p3-warm i { background: #90E509; box-shadow: 0 0 12px #90E509; }
.p3-sleep { left: 50%; bottom: 12px; transform: translateX(-50%); background: none; box-shadow: none; opacity: .55; font-weight: 700; }
.p3-sleep .ico { width: 16px; height: 16px; }
.thermo { margin-top: 12px; padding: 18px; border-radius: 22px; }
.thermo-kop { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.thermo-kop label { font-weight: 800; }
.thermo-nu { display: inline-flex; align-items: center; gap: 7px; font-size: .78rem; font-weight: 700; color: rgba(255,255,255,.7); }
.thermo-nu button { border: 0; background: rgba(255,255,255,.1); color: #fff; padding: 4px 10px; border-radius: 999px; font-size: .74rem; font-weight: 750; }
.thermo-schuif { position: relative; }
.thermo-schuif input { width: 100%; -webkit-appearance: none; appearance: none; height: 10px; border-radius: 10px; background: linear-gradient(90deg, #3F7D00, #B9F35A 45%, #DDF9B0 70%, #A4EF23); outline-offset: 6px; }
.thermo-schuif input::-webkit-slider-thumb { -webkit-appearance: none; width: 34px; height: 34px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px var(--ink), 0 0 0 6px rgba(255,255,255,.3), 0 8px 18px rgba(0,0,0,.5); cursor: grab; }
.thermo-schuif input::-moz-range-thumb { width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 4px solid var(--ink); cursor: grab; }
.thermo-as { display: flex; justify-content: space-between; margin-top: 8px; font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.5); }
.thermo-uit { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.thermo-uit div { padding: 12px; border-radius: 14px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.thermo-uit dt { font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.6); }
.thermo-uit dd { margin: 2px 0 0; font-family: var(--f-kop); font-size: 1.9rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.thermo-uit .is-koud dd { color: var(--ijs); }
.thermo-uit .is-warm dd { color: #90E509; }
.thermo-zin { margin: 14px 0 0; font-size: .95rem; color: rgba(255,255,255,.82); }
.thermo-zin strong { color: #fff; }
.lucht-balk { display: flex; height: 12px; border-radius: 8px; overflow: hidden; margin-top: 10px; background: rgba(255,255,255,.08); }
.lucht-balk i { display: block; height: 100%; transition: width .5s var(--ease); }
.lb-lucht { background: linear-gradient(90deg, #3F7D00, #B9F35A); }
.lb-stroom { background: #FFD24D; }
.stappen3d { display: grid; gap: 8px; margin-top: 22px; counter-reset: s; }
.stappen3d li { display: grid; grid-template-columns: 38px 1fr; gap: 12px; padding: 12px; border-radius: 16px; transition: background .3s; cursor: default; }
.stappen3d li.is-aan { background: rgba(255,255,255,.06); }
.stappen3d b { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .9rem; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.25); transition: background .3s, box-shadow .3s; }
.stappen3d li.is-aan b { background: var(--rood); box-shadow: 0 0 0 5px rgba(144,229,9,.2); }
.stappen3d strong { display: block; font-weight: 800; }
.stappen3d p { margin: 2px 0 0; font-size: .9rem; color: rgba(255,255,255,.7); }
@media (min-width: 1024px) { .werking-grid { grid-template-columns: 1.1fr .9fr; gap: 56px; } .podium3d { aspect-ratio: 1 / .86; } }

/* ── case ──────────────────────────────────────────────────────────────── */
.case-grid { display: grid; gap: 26px; align-items: center; }
.case-beeld { position: relative; }
.case-beeld picture { border-radius: var(--r-beeld); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--schaduw-2); }
.case-beeld img { width: 100%; height: 100%; object-fit: cover; }
.case-quote { position: relative; z-index: 2; margin: -48px 12px 0; padding: 22px 20px 18px; border-radius: 22px; background: var(--rood); color: #fff; transform: rotate(-1.4deg); box-shadow: 0 26px 44px -22px rgba(40,80,0,.8); }
.case-quote svg.aanhaling { position: absolute; right: 18px; top: -20px; width: 46px; height: 36px; fill: var(--ink); }
.case-quote blockquote { margin: 0 0 12px; font-family: var(--f-kop); font-weight: 700; font-size: clamp(1.3rem, 4.6vw, 1.7rem); line-height: 1.12; }
.case-quote figcaption { font-size: .86rem; font-weight: 800; }
.case-quote figcaption small { display: block; font-weight: 650; opacity: .8; }
.js .case-quote:not(.is-gezien) { opacity: 0; transform: translateY(26px) rotate(2deg); }
.case-quote.is-gezien { transition: opacity .7s var(--ease), transform .8s cubic-bezier(.2,1.3,.4,1); }
.case-cijfers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 20px 0 22px; }
.case-cijfers div { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 14px 12px; border-radius: 16px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); }
.case-cijfers dd { margin: 0; font-family: var(--f-kop); font-weight: 800; font-size: clamp(1.4rem, 5vw, 2.1rem); line-height: 1; color: var(--kers); font-variant-numeric: tabular-nums; white-space: nowrap; }
.case-cijfers dt { font-size: .74rem; line-height: 1.3; color: var(--grijs); font-weight: 650; margin-top: 4px; }
@media (min-width: 1024px) { .case-grid { grid-template-columns: 1.1fr .9fr; gap: 72px; } .case-quote { position: absolute; left: -30px; bottom: -50px; width: 56%; margin: 0; } .case-beeld { margin-bottom: 50px; } }

/* ── tijdlijn ──────────────────────────────────────────────────────────── */
.tijdlijn { position: relative; display: grid; gap: 24px; margin-top: 18px; padding-left: 4px; }
.tl-lijn { position: absolute; left: 27px; top: 26px; bottom: 26px; width: 3px; border-radius: 3px; background: var(--lijn); overflow: hidden; }
.tl-lijn i { position: absolute; inset: 0 0 auto; height: var(--vul, 0%); background: linear-gradient(180deg, #B9F35A, #B9F35A 60%, var(--rood)); border-radius: 3px; transition: height .15s linear; }
.tl-stap { position: relative; display: grid; grid-template-columns: 50px 1fr; gap: 16px; align-items: start; }
.tl-nr { position: relative; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: var(--kaart); box-shadow: 0 0 0 1.5px var(--lijn); transition: background-color .4s, box-shadow .4s, color .4s; z-index: 1; }
.tl-nr .ico { width: 23px; height: 23px; }
.tl-nr b { position: absolute; right: -4px; top: -4px; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); color: #fff; font-size: .7rem; display: grid; place-items: center; font-weight: 800; }
.tl-stap.is-aan .tl-nr { background: var(--rood); color: #fff; box-shadow: 0 0 0 5px rgba(144,229,9,.15); }
.tl-stap h3 { font-weight: 800; font-size: 1.1rem; line-height: 1.25; margin: 12px 0 4px; }
.tl-stap p { margin: 0; color: var(--grijs); font-size: .95rem; }
.tl-duur { display: inline-block; margin-top: 8px; padding: 3px 9px; border-radius: 999px; background: var(--sneeuw-2); font-size: .74rem; font-weight: 800; }
.sectie-donker .tl-lijn { background: rgba(255,255,255,.12); }
.sectie-donker .tl-nr { background: var(--ink-2); box-shadow: 0 0 0 1.5px rgba(255,255,255,.14); color: #fff; }
.sectie-donker .tl-stap p { color: rgba(255,255,255,.7); }
.sectie-donker .tl-duur { background: rgba(255,255,255,.08); }
@media (min-width: 900px) {
  .tijdlijn { grid-template-columns: repeat(var(--n), 1fr); gap: 28px; padding-left: 0; margin-top: 36px; }
  .tl-lijn { left: 25px; right: 25px; top: 24px; bottom: auto; width: auto; height: 3px; }
  .tl-lijn i { inset: 0 auto 0 0; width: var(--vul, 0%); height: 100%; background: linear-gradient(90deg, #B9F35A, #B9F35A 60%, var(--rood)); transition: width .15s linear; }
  .tl-stap { grid-template-columns: 1fr; gap: 6px; }
  .tl-stap h3 { margin-top: 14px; }
}

/* subsidiebanner */
.banner { position: relative; display: grid; gap: 16px; margin-top: clamp(40px, 6vw, 72px); padding: 26px 22px 24px; border-radius: 26px; background: var(--verloop-rood); color: #fff; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(60,110,0,.7); }
.banner::before { content: ''; position: absolute; right: -60px; top: -80px; width: 320px; height: 320px; opacity: .14; transform: rotate(12deg);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/contain no-repeat; }
.banner .h2 { margin: 0; font-size: clamp(2rem, 7vw, 3.4rem); }
.banner p { margin: 0; max-width: 46ch; color: rgba(255,255,255,.9); }
.banner-toestel { display: none; }
.banner .knop-wit { justify-self: start; }
@media (min-width: 1024px) {
  .banner { grid-template-columns: 1.3fr auto; align-items: center; padding: 34px 300px 34px 40px; overflow: visible; }
  .banner-toestel { display: block; position: absolute; right: 26px; bottom: 0; width: 280px; pointer-events: none; }
  .banner-toestel img { width: 100%; filter: drop-shadow(0 24px 24px rgba(80,0,0,.5)); }
}

/* ── faq ───────────────────────────────────────────────────────────────── */
.faq-grid { display: grid; gap: 22px; }
.faq-lijst { display: grid; gap: 8px; }
.faq-item { background: var(--kaart); border-radius: 16px; box-shadow: 0 0 0 1px rgba(12,39,33,.06), 0 10px 22px -20px rgba(12,39,33,.6); }
.faq-item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 18px; font-weight: 750; cursor: pointer; line-height: 1.35; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-plus { width: 26px; height: 26px; flex: none; padding: 5px; border-radius: 50%; background: var(--sneeuw-2); color: var(--kers); transition: transform .3s var(--ease), background-color .3s, color .3s; }
.faq-item[open] .faq-plus { transform: rotate(45deg); background: var(--rood); color: #fff; }
.faq-antw { padding: 0 18px 18px; color: #3E454C; }
.faq-antw p { margin: 0; }
.faq-contact { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
@media (min-width: 1024px) { .faq-grid { grid-template-columns: .8fr 1.2fr; gap: 72px; align-items: start; } .faq-links { position: sticky; top: calc(var(--kop-h) + 30px); } }

/* ── slot-cta ──────────────────────────────────────────────────────────── */
.slot { background: var(--ink); color: #fff; overflow: hidden; }
.slot-grid { display: grid; gap: 26px; align-items: end; }
.slot .lead { color: rgba(255,255,255,.76); }
.slot-knoppen { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.slot-noot { display: flex; align-items: center; gap: 10px; font-size: .88rem; color: rgba(255,255,255,.7); margin: 18px 0 0; }
.slot-noot .ico { width: 20px; height: 20px; color: #90E509; }
.slot-toestellen { position: relative; height: 300px; max-width: 480px; width: 100%; margin: 0 auto -26px; }
.slot-toestellen::before { content: ''; position: absolute; left: 50%; top: 4%; width: 90%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; z-index: 0;
  background: radial-gradient(circle, rgba(144,229,9,.34), rgba(144,229,9,.08) 45%, rgba(144,229,9,0) 68%); }
.slot-toestellen .ringen { width: 90%; left: 5%; top: 0; }
.st-1, .st-2 { position: absolute; bottom: 0; z-index: 1; }
.st-1 { right: 0; width: 64%; }
.st-2 { left: 4%; width: 24%; bottom: 0; z-index: 2; }
.st-1 img, .st-2 img { width: 100%; filter: drop-shadow(0 22px 24px rgba(0,0,0,.5)); }
@media (max-width: 480px) { .slot-knoppen .knop { flex: 1 1 100%; } }
@media (min-width: 1024px) { .slot-grid { grid-template-columns: 1fr 1fr; gap: 64px; } .slot-toestellen { height: 440px; max-width: none; margin: 0 0 calc(clamp(56px, 8.5vw, 116px) * -1); } .slot-tekst { padding-bottom: 20px; } }
.slot-toestellen.rv-uit { opacity: 1; transform: none; }
.slot-toestellen.rv-uit .st-1 { opacity: 0; transform: translateX(50px); }
.slot-toestellen.rv-uit .st-2 { opacity: 0; transform: translateX(-40px); }
.slot-toestellen.rv-in .st-1, .slot-toestellen.rv-in .st-2 { opacity: 1; transform: none; transition: opacity .7s var(--ease), transform 1s cubic-bezier(.2,1.2,.4,1); }
.slot-toestellen.rv-in .st-2 { transition-delay: .15s; }

/* ── pagina-kop ───────────────────────────────────────────────────────── */
.pagina-kop { position: relative; padding: calc(var(--kop-h) + 34px) 0 clamp(34px, 5vw, 64px); background: var(--ink); color: #fff; overflow: hidden; isolation: isolate; }
.pagina-kop .h1 { margin: 12px 0 14px; font-size: clamp(2.6rem, 10vw, 5rem); max-width: 16ch; }
.pagina-kop .lead { color: rgba(255,255,255,.78); }
.kruimel ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .8rem; font-weight: 650; opacity: .75; }
.kruimel li:not(:last-child)::after { content: '/'; margin: 0 8px; opacity: .5; }
.kruimel a { text-decoration: none; }
.kruimel a:hover { text-decoration: underline; }
.kop-cijfers { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.kop-cijfers div { padding: 10px 14px; border-radius: 14px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
.kop-cijfers dt { font-size: .72rem; color: rgba(255,255,255,.65); font-weight: 650; }
.kop-cijfers dd { margin: 0; font-family: var(--f-kop); font-size: 1.5rem; font-weight: 800; line-height: 1; }

/* productheld */
.p-held { position: relative; padding: calc(var(--kop-h) + 24px) 0 36px; background: radial-gradient(80% 70% at 75% 45%, #143A31 0%, #0C2721 55%, #071B16 100%); color: #fff; overflow: hidden; isolation: isolate; }
.p-held-grid { display: grid; gap: 18px; align-items: center; }
.p-held .h1 { font-size: clamp(2.8rem, 11vw, 5.4rem); margin: 12px 0 12px; }
.p-held .lead { color: rgba(255,255,255,.8); }
.p-podium { position: relative; height: 340px; display: flex; align-items: flex-end; justify-content: center; }
.p-podium .ringen { width: 110%; left: -5%; top: -8%; }
.p-podium::before { content: ''; position: absolute; left: 10%; right: 10%; bottom: 2%; height: 60%; border-radius: 50%; background: radial-gradient(closest-side, rgba(144,229,9,.35), rgba(144,229,9,0)); filter: blur(20px); }
.p-podium img { position: relative; max-height: 100%; max-width: 92%; width: auto; object-fit: contain; filter: drop-shadow(0 34px 30px rgba(0,0,0,.55)); animation: dobber 7s ease-in-out infinite alternate; }
@keyframes dobber { from { transform: translateY(0); } to { transform: translateY(-10px); } }
.p-podium .hotspot { animation-duration: 6s; }
.p-knoppen { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.p-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 22px; }
.p-specs div { padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
.p-specs dt { font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.62); }
.p-specs dd { margin: 2px 0 0; font-family: var(--f-kop); font-size: 1.4rem; font-weight: 800; line-height: 1.05; }
.p-specs dt { line-height: 1.25; }
@media (min-width: 768px) { .p-specs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .p-held { padding: calc(var(--kop-h) + 40px) 0 60px; min-height: 720px; display: flex; align-items: center; } .p-held-grid { grid-template-columns: 1fr 1fr; gap: 48px; width: 100%; } .p-podium { height: 520px; order: 2; } }
.subnav { position: sticky; top: var(--kop-h); z-index: 40; background: rgba(245,244,240,.92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--lijn); }
.subnav-in { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding-block: 8px; }
.subnav-in::-webkit-scrollbar { display: none; }
.subnav a { flex: none; padding: 8px 14px; border-radius: 999px; text-decoration: none; font-weight: 700; font-size: .9rem; }
.subnav a.is-actief { background: var(--ink); color: #fff; }
.inkort { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 18px 0 0; }
.inkort div { padding: 12px 14px; border-radius: 14px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06); }
.inkort dt { font-size: .74rem; color: var(--grijs); font-weight: 700; display: flex; align-items: center; gap: 6px; }
.inkort dt .ico { width: 15px; height: 15px; color: var(--kers); }
.inkort dd { margin: 2px 0 0; font-weight: 800; line-height: 1.3; }
.uitleg-grid { display: grid; gap: 28px; }
.proza { font-size: 1.05rem; line-height: 1.7; max-width: 68ch; }
.proza p { margin: 0 0 1em; }
.zijkaart { border-radius: var(--r-kaart); padding: 20px; }
.zijkaart .h4 { display: flex; align-items: center; gap: 8px; }
.zijkaart .h4 .ico { color: var(--kers); }
.p-zij { display: grid; gap: 16px; align-content: start; }
.kader-klein picture { aspect-ratio: 4 / 3; }
.kader-klein::before { width: 44px; height: 44px; }
@media (min-width: 1024px) { .uitleg-grid { grid-template-columns: 1.15fr .85fr; gap: 72px; align-items: start; } .zijkaart { position: sticky; top: calc(var(--kop-h) + 70px); } .p-zij .zijkaart { position: static; } .p-zij { position: sticky; top: calc(var(--kop-h) + 70px); } }
.spec-tabel { width: 100%; border-collapse: collapse; font-size: .95rem; }
.spec-tabel th, .spec-tabel td { padding: 13px 10px; border-bottom: 1px solid var(--lijn); text-align: left; vertical-align: top; }
.spec-tabel th { font-weight: 650; color: var(--grijs); width: 42%; }
.spec-tabel td { font-weight: 750; }
.spec-tabel tr:last-child th, .spec-tabel tr:last-child td { border-bottom: 0; }
.isde-tabel thead th { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; width: auto; }
.isde-tabel tbody th { color: var(--ink); font-weight: 750; width: auto; }
.isde-tabel td { white-space: nowrap; }
.tabel-kaart { border-radius: var(--r-kaart); padding: 6px 16px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); overflow-x: auto; }
.model-tabel { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 560px; }
.model-tabel th, .model-tabel td { padding: 12px 10px; border-bottom: 1px solid var(--lijn); text-align: left; white-space: nowrap; }
.model-tabel thead th { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--grijs); font-weight: 800; }
.model-tabel tbody th { font-family: var(--f-kop); font-size: 1.2rem; font-weight: 800; }
.model-tabel td { font-variant-numeric: tabular-nums; font-weight: 650; }
.model-tabel tbody tr:hover { background: var(--sneeuw); }
.tabel-noot { font-size: .78rem; color: var(--grijs); margin: 10px 0 0; }
.voordelen { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
.vd { position: relative; border-radius: var(--r-kaart); padding: 20px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); overflow: hidden; }
.vd-label { font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--kers); }
.vd h3, .vd .vd-kop { font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 1.7rem; line-height: 1; margin: 6px 0 8px; }
.vd p { margin: 0; color: var(--grijs); font-size: .95rem; }
.vd-getal { display: flex; align-items: baseline; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--lijn); }
.vd-getal strong { font-family: var(--f-kop); font-size: 2rem; font-weight: 800; line-height: 1; }
.vd-getal small { font-size: .78rem; color: var(--grijs); font-weight: 700; }
.vd-donker { background: var(--verloop-nacht); color: #fff; }
.vd-donker p, .vd-donker .vd-getal small { color: rgba(255,255,255,.7); }
.vd-donker .vd-label { color: #90E509; }
.vd-donker .vd-getal { border-color: rgba(255,255,255,.12); }
.vd-rood { background: var(--verloop-rood); color: #fff; }
.vd-rood p, .vd-rood .vd-label, .vd-rood .vd-getal small { color: rgba(255,255,255,.85); }
.vd-rood .vd-getal { border-color: rgba(255,255,255,.25); }
@media (min-width: 768px) { .voordelen { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; } .vd { grid-column: span 3; padding: 24px; } .vd:nth-child(1) { grid-column: span 4; } .vd:nth-child(2) { grid-column: span 2; } .vd:nth-child(3) { grid-column: span 2; } .vd:nth-child(4) { grid-column: span 4; } }
.situaties { display: grid; gap: 12px; }
.sit { display: flex; flex-direction: column; border-radius: var(--r-kaart); padding: 20px; background: var(--kaart); text-decoration: none; box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); transition: transform .3s var(--ease), box-shadow .3s; position: relative; overflow: hidden; }
.sit:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px rgba(12,39,33,.08), var(--schaduw-2); }
.sit-letter { font-family: var(--f-kop); font-size: 3.4rem; font-weight: 800; line-height: .8; color: var(--rood); }
.sit h3 { font-family: var(--f-kop); text-transform: uppercase; font-size: 1.6rem; font-weight: 800; line-height: 1; margin: 10px 0 6px; }
.sit p { color: var(--grijs); font-size: .94rem; margin: 0 0 14px; }
.sit img { position: absolute; right: -10px; top: 12px; width: 120px; height: 90px; object-fit: contain; opacity: .95; }
.sit .tekstlink { margin-top: auto; align-self: flex-start; }
@media (min-width: 900px) { .situaties { grid-template-columns: repeat(3, 1fr); } }

/* formulierpagina */
.form-grid { display: grid; gap: 26px; }
.formkaart { position: relative; border-radius: 28px; padding: 22px 18px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw-2); }
.formkaart .rk-vraag { font-size: 1.9rem; }
.form-sub { font-size: .84rem; font-weight: 800; margin: 18px 0 8px; }
.form-sub:first-of-type { margin-top: 4px; }
.kies-rij { display: flex; flex-wrap: wrap; gap: 6px; }
.kies { position: relative; }
.kies input { position: absolute; opacity: 0; }
.kies span { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border-radius: 999px; background: #F2F1EC; box-shadow: inset 0 0 0 1px #E4E2DA; font-weight: 750; font-size: .9rem; cursor: pointer; transition: background .2s, color .2s; }
.kies span .ico { width: 17px; height: 17px; }
.kies input:checked + span { background: var(--ink); color: #fff; box-shadow: inset 0 -2px 0 var(--rood); }
.kies input:focus-visible + span { outline: 3px solid var(--rood); outline-offset: 2px; }
.form-klaar { text-align: center; padding: 20px 0; }
.form-klaar .sn-vink { margin-bottom: 14px; }
.verwacht { display: grid; gap: 10px; }
.verwacht li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: center; padding: 14px; border-radius: 18px; background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06); }
.verwacht .ico { width: 44px; height: 44px; padding: 11px; border-radius: 12px; background: var(--ink); color: #90E509; }
.verwacht strong { display: block; }
.verwacht small { color: var(--grijs); font-size: .86rem; }
@media (min-width: 1024px) { .form-grid { grid-template-columns: .85fr 1.15fr; gap: 72px; align-items: start; } .form-links { position: sticky; top: calc(var(--kop-h) + 30px); } .formkaart { padding: 28px 28px 24px; } }
.contact-grid { display: grid; gap: 10px; }
.ck { display: flex; align-items: center; gap: 14px; padding: 18px; border-radius: var(--r-kaart); background: var(--kaart); text-decoration: none; box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); transition: transform .25s var(--ease); }
a.ck:hover { transform: translateY(-3px); }
.ck > .ico { width: 30px; height: 30px; color: var(--kers); }
.ck small { display: block; font-size: .78rem; color: var(--grijs); font-weight: 650; }
.ck strong { display: block; font-size: 1.08rem; font-weight: 800; word-break: break-word; }
.ck-bel { background: var(--ink); color: #fff; }
.ck-bel > .ico { color: #90E509; }
.ck-bel small { color: rgba(255,255,255,.7); }
.ck-bel strong { font-family: var(--f-kop); font-size: 1.9rem; }
@media (min-width: 900px) { .contact-grid { grid-template-columns: 1.2fr 1fr 1fr; } .ck-bel { grid-row: span 2; } }
.waarden { display: grid; gap: 12px; }
@media (min-width: 900px) { .waarden { grid-template-columns: 1.3fr 1fr 1fr; } }
.cijferrij { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cijferrij div { padding: 18px; border-radius: var(--r-kaart); background: var(--kaart); box-shadow: 0 0 0 1px rgba(12,39,33,.06), var(--schaduw); }
.cijferrij dd { margin: 0; font-family: var(--f-kop); font-size: clamp(2.4rem, 7vw, 3.4rem); font-weight: 800; line-height: .9; color: var(--kers); font-variant-numeric: tabular-nums; }
.cijferrij dt { font-size: .84rem; font-weight: 650; color: var(--grijs); margin-top: 6px; }
.cijferrij div { display: flex; flex-direction: column-reverse; justify-content: flex-end; }
@media (min-width: 900px) { .cijferrij { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pagina-404 { min-height: 80vh; display: flex; align-items: center; }
.h404 { font-family: var(--f-kop); font-weight: 800; font-size: clamp(6rem, 26vw, 14rem); line-height: .8; }

/* ── footer ────────────────────────────────────────────────────────────── */
.voet { position: relative; background: var(--nacht); color: rgba(255,255,255,.86); padding-top: clamp(50px, 7vw, 90px); overflow: hidden; font-size: .95rem; }
.voet-kruis { position: absolute; right: -120px; bottom: -60px; width: min(70vw, 620px); aspect-ratio: 1; opacity: .028; pointer-events: none; transform: rotate(-8deg);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M18.5 2 7 18h7.5L12 30 25 13h-7.5z'/%3E%3C/svg%3E") center/contain no-repeat; }
.voet-top { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 30px 20px; }
.voet-merk { grid-column: 1 / -1; }
.voet-merk img { height: 28px; width: auto; }
.voet-slogan { margin: 16px 0 16px; color: rgba(255,255,255,.7); max-width: 36ch; }
.voet-knoppen { display: flex; flex-wrap: wrap; gap: 8px; }
.voet-kop { font-weight: 800; color: #fff; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.voet-kop::before { content: ''; width: 8px; height: 8px; border-radius: 2px; background: var(--rood); }
.voet-kol { display: flex; flex-direction: column; gap: 8px; }
.voet-kol a { text-decoration: none; color: rgba(255,255,255,.75); }
.voet-kol a:hover { color: #fff; }
.voet-contact a, .voet-contact span { display: inline-flex; align-items: center; gap: 8px; }
.voet-contact .ico { width: 18px; height: 18px; color: #90E509; }
.voet-keur { position: relative; display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 36px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.08); font-size: .84rem; color: rgba(255,255,255,.65); }
.voet-keur span { display: inline-flex; align-items: center; gap: 7px; }
.voet-keur .ico { width: 17px; height: 17px; color: #90E509; }
.voet-onder { margin-top: 30px; background: var(--rood); color: #fff; font-size: .84rem; font-weight: 700; padding-bottom: env(safe-area-inset-bottom); }
.voet-onder .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; padding-block: 14px; }
.voet-onder a { text-decoration: none; }
.voet-onder a:hover { text-decoration: underline; }
@media (min-width: 1024px) { .voet-top { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr; } .voet-merk { grid-column: auto; } }
@media (max-width: 1023px) { .voet-onder { padding-bottom: calc(84px + env(safe-area-inset-bottom)); } }

/* ── actiebalk (mobiel) ────────────────────────────────────────────────── */
.actiebalk { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 50; display: flex; gap: 6px; border-radius: 22px; padding: 6px;
  background: rgba(12,39,33,.9); backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4); box-shadow: 0 18px 40px -12px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.08);
  transform: translateY(140%); transition: transform .45s var(--ease); }
.actiebalk.is-zichtbaar { transform: none; }
.actiebalk.is-verborgen { transform: translateY(140%); }
.ab-knop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 58px; flex: none; min-height: 52px; border-radius: 16px; color: #fff; text-decoration: none; font-size: .68rem; font-weight: 700; background: rgba(255,255,255,.07); }
.ab-knop .ico { width: 21px; height: 21px; color: #90E509; }
.ab-cta { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 52px; padding: 0 10px; border-radius: 16px; background: var(--rood); color: #fff; font-weight: 800; text-decoration: none; font-size: .92rem; white-space: nowrap; }
.ab-cta .ico { width: 18px; height: 18px; }
@media (min-width: 1024px) { .actiebalk { display: none; } }

/* ── onthulling bij scrollen ───────────────────────────────────────────── */
.rv-uit { opacity: 0; transform: translateY(24px); }
.rv-uit.rv-in { opacity: 1; transform: none; transition: opacity .7s var(--ease), transform .85s var(--ease); transition-delay: var(--rv-d, 0ms); }
.kader picture.rv-uit, .case-beeld picture.rv-uit { opacity: 1; transform: none; clip-path: inset(100% 0 0 0 round 26px); }
.kader picture.rv-uit img, .case-beeld picture.rv-uit img { transform: scale(1.14); }
.kader picture.rv-in, .case-beeld picture.rv-in { clip-path: inset(0 0 0 0 round 26px); transition: clip-path 1.1s var(--ease); }
.kader picture.rv-in img, .case-beeld picture.rv-in img { transform: none; transition: transform 1.4s var(--ease); }
.tl-rij > li.rv-uit { opacity: 1; transform: none; }
.tl-rij > li.rv-uit .tl-podium { opacity: 0; transform: translateY(30px); }
.tl-rij > li.rv-uit .tl-toestel { opacity: 0; transform: translateY(70px) scale(.94); }
.tl-rij > li.rv-uit .tl-tekst, .tl-rij > li.rv-uit .tl-badge { opacity: 0; }
.tl-rij > li.rv-in .tl-podium { opacity: 1; transform: none; transition: opacity .6s var(--ease) var(--rv-d), transform .7s var(--ease) var(--rv-d); }
.tl-rij > li.rv-in .tl-toestel { opacity: 1; transform: none; transition: opacity .6s var(--ease) calc(var(--rv-d) + .15s), transform 1s cubic-bezier(.2,1.25,.4,1) calc(var(--rv-d) + .15s); }
.tl-rij > li.rv-in .tl-tekst, .tl-rij > li.rv-in .tl-badge { opacity: 1; transition: opacity .6s var(--ease) calc(var(--rv-d) + .4s); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .rv-uit { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}

/* review-modus (screenshots): geen beweging */
.review *, .review *::before, .review *::after { animation: none !important; transition: none !important; }
html.review { scroll-behavior: auto !important; }
.review .acc-warm { background-position: 100% 0 !important; }
@media (max-width: 400px) { .seg span { font-size: .78rem; padding: 6px 2px; } }

/* Voltanext — eigen laag bovenop basis.css.
   Kleuren van nasci.nl: lime #90E509 op diep bosgroen #0C2721, licht #F5F5F3. In basis.css heten de tokens nog --rood/--kers
   (overgenomen van de TC Swiss-opzet): --rood = lime, --kers = donker lime voor tekst op licht (#3F7D00).
   Regels: lime nooit als tekst op licht; op lime staat altijd bosgroen, nooit wit. Sleutelwoord = markeerband (licht) of lime woord (donker).
   Opbouw zoals TC Swiss en de nieuwe Autobestickerd: korte koppen, geen sectielabels, fotohero op elke pagina, één aanvraagvenster. */

:root {
  --lime: #90E509; --lime-licht: #A4EF23; --lime-diep: #82DB05; --lime-tekst: #3F7D00;
  --bos: #0E2E26; --nacht: #071B16;
  --verloop-warmte: linear-gradient(90deg, #1D3B33 0%, #3F7D00 35%, #82DB05 70%, #A4EF23 100%);
  --verloop-rood: linear-gradient(135deg, #A4EF23 0%, #90E509 55%, #82DB05 100%);
}

/* ── tekst op lime: altijd bosgroen ──────────────────────────────────── */
.skip, .knop-rood, .ab-cta, .kop-bel-m, .tl-badge, .hotspot i, .uk-tag, .voet-onder, .voet-onder a,
.tl-stap.is-aan .tl-nr, .faq-item[open] .faq-plus, .vd-rood { color: var(--ink); }
.knop-rood { background: linear-gradient(180deg, var(--lime-licht), var(--lime) 60%, var(--lime-diep)); box-shadow: 0 12px 26px -12px rgba(110,190,0,.8), inset 0 1px 0 rgba(255,255,255,.45); }
.knop-rood:hover { box-shadow: 0 18px 32px -14px rgba(110,190,0,.95), inset 0 1px 0 rgba(255,255,255,.55); }
button.knop { border: 0; font-family: inherit; cursor: pointer; }
.sn-vink path { stroke: var(--ink); }
.vd-rood p, .vd-rood .vd-getal small { color: rgba(12,39,33,.78); }
.vd-rood .vd-getal { border-color: rgba(12,39,33,.18); }
.tekstlink { color: var(--ink); border-bottom-color: var(--lime); }
.schuif { background: linear-gradient(90deg, #1D3B33, var(--lime-diep) var(--p, 30%), #DFE3DC var(--p, 30%)); }
.rk-stappen li.is-nu::before { background: var(--verloop-warmte); }
:focus-visible { outline-color: var(--ink); }
.held :focus-visible, .pagina-kop :focus-visible, .p-held :focus-visible, .slot :focus-visible, .voet :focus-visible, .check :focus-visible, .lade :focus-visible { outline-color: var(--lime); }
.kicker { display: none; }

/* ── woordmerk ───────────────────────────────────────────────────────── */
.merk-woord { display: inline-flex; align-items: center; gap: 9px; font-family: var(--f-kop); font-weight: 800; font-size: 1.55rem; letter-spacing: .01em; line-height: 1; color: currentColor; }
.merk-woord b { font-weight: 800; color: var(--lime); }
.kop:not(.kop-licht) .merk-woord b { color: var(--lime-tekst); }
.merk-bliksem { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--lime); transform: rotate(-6deg); box-shadow: 0 6px 14px -6px rgba(110,190,0,.8); }
.merk-bliksem svg { width: 19px; height: 19px; fill: var(--ink); }
.merk-groot { font-size: 2rem; }
.merk-groot .merk-bliksem { width: 38px; height: 38px; }
.merk-groot .merk-bliksem svg { width: 24px; height: 24px; }
@media (min-width: 768px) { .merk-woord { font-size: 1.75rem; } }

/* ── sleutelwoord: markeerband (licht) / lime woord (donker) ────────── */
.acc-mark { position: relative; white-space: nowrap; padding: 0 .05em; margin: 0 -.05em;
  background: linear-gradient(transparent 56%, var(--lime) 56%, var(--lime) 90%, transparent 90%) no-repeat 0 0 / 100% 100%;
  -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.js .acc-mark:not(.is-gezien) { background-size: 0% 100%; }
.acc-mark.is-gezien { transition: background-size .9s var(--ease) .15s; }
.held .acc-mark, .sectie-donker .acc-mark, .slot .acc-mark, .pagina-kop .acc-mark, .p-held .acc-mark, .check .acc-mark, .lade .acc-mark, .mens-kaart .acc-mark { background: none !important; color: var(--lime); }
@media (prefers-reduced-motion: reduce) { .js .acc-mark:not(.is-gezien) { background-size: 100% 100%; } }
.review .acc-mark { background-size: 100% 100% !important; }

/* ── header ──────────────────────────────────────────────────────────── */
.kop-bel { display: none; }
@media (min-width: 1100px) {
  .kop-bel { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--lime); color: var(--ink); }
  .kop-bel .ico { width: 20px; height: 20px; }
  .kop-rechts { gap: 10px; }
  .mega { left: -40px; width: min(760px, 88vw); }
  .mega-in { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); }
  .mega-raster { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 10px; }
  .mega-cta { grid-column: 2; grid-row: 1; }
  .mega-cta .ico:first-child { color: var(--lime); }
}
.menu-prod span { display: grid; line-height: 1.15; }
.menu-prod small { font-weight: 650; opacity: .65; font-size: .78rem; }
.menu-prod img { background: #1D3B33; }

/* ── hero: korte kop links, keuzekaart rechts ────────────────────────── */
.held-film picture img { object-position: 46% 60%; }
@media (min-width: 1024px) { .held-film img { object-position: 35% 62%; } }
.held-gloed { background: radial-gradient(90% 55% at 70% 108%, rgba(144,229,9,.32), rgba(144,229,9,.08) 40%, rgba(144,229,9,0) 70%); }
.held .h1 { font-size: clamp(2.9rem, 12vw, 5.8rem); }
.held-sub { font-size: clamp(1.05rem, 2.6vw, 1.25rem); max-width: 34ch; }
.held-knoppen { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.held-sheet::before { box-shadow: 0 6px 14px -4px rgba(110,190,0,.8); }
.keuzekaart { padding: 22px 16px 16px; }
.kk-kop { margin: 0 0 14px; font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 1.7rem; line-height: 1; }
.kk-raster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kk-tegel { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 3px; min-height: 124px; padding: 10px 4px; border: 0; border-radius: 16px; font: inherit; color: var(--ink); cursor: pointer;
  background: linear-gradient(180deg, #fff, #F1F3EE); box-shadow: 0 0 0 1.5px var(--lijn), 0 8px 16px -14px rgba(12,39,33,.5); transition: transform .25s var(--ease), box-shadow .2s; }
.kk-tegel img { height: 62px; width: 72px; object-fit: contain; filter: drop-shadow(0 6px 6px rgba(0,0,0,.18)); transition: transform .35s cubic-bezier(.3,1.6,.5,1); }
.kk-tegel strong { font-size: .86rem; font-weight: 800; line-height: 1.1; margin-top: 4px; }
.kk-tegel small { font-size: .76rem; font-weight: 800; color: var(--lime-tekst); font-variant-numeric: tabular-nums; }
.kk-tegel:hover { transform: translateY(-3px); box-shadow: 0 0 0 2px var(--ink), 0 14px 24px -14px rgba(12,39,33,.55); }
.kk-tegel:hover img { transform: scale(1.08) translateY(-2px); }
.kk-ico { width: 38px; height: 38px; margin: 12px 0 6px; color: var(--ink); }
.kk-advies small { color: var(--grijs); font-weight: 650; }
@media (max-width: 479px) { .held-knoppen .knop { flex: 1 1 100%; } }
@media (min-width: 1024px) { .keuzekaart { padding: 28px 22px 20px; } .kk-tegel { min-height: 140px; } .kk-tegel img { height: 74px; } }
.keur-rij .ico { color: var(--lime); }
.keur-rij li::after { background-image: url(/assets/icoon-lime.svg); width: 13px; height: 13px; margin-top: -6.5px; }

/* ── paginakop met foto (zoals Autobestickerd) ───────────────────────── */
.pk-foto { min-height: min(62vh, 560px); display: flex; align-items: flex-end; padding: calc(var(--kop-h) + 40px) 0 clamp(34px, 5vw, 64px); }
.pk-foto::before { display: none; }
.pk-film { position: absolute; inset: 0; z-index: -1; }
.pk-film picture, .pk-film img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pk-verloop { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,27,22,.7) 0%, rgba(7,27,22,.25) 35%, rgba(7,27,22,.55) 65%, rgba(7,27,22,.95) 100%), radial-gradient(70% 60% at 0% 100%, rgba(7,27,22,.7), rgba(7,27,22,0) 70%); }
.pk-in { position: relative; z-index: 1; }
.pk-foto .h1 { font-size: clamp(2.6rem, 10vw, 5rem); max-width: 14ch; margin: 14px 0 12px; }
.pk-foto .lead { max-width: 46ch; color: rgba(255,255,255,.86); }
.pk-knoppen { margin-top: 22px; }

/* ── laadpaalkaarten: product steekt uit, vinkjes, knop ──────────────── */
.sk-kort { margin-bottom: 8px; }
.sk-kort .lead { margin-top: 6px; }
@media (min-width: 1024px) { .sk-kort { display: block; } }
.tl { height: 540px; }
.tl-podium { inset: 96px 0 0; background: radial-gradient(80% 50% at 50% 8%, rgba(144,229,9,.22), rgba(144,229,9,0) 72%), linear-gradient(170deg, #173A31, var(--ink) 70%); }
.tl-toestel { inset: -10px 26px 270px; }
.tl-toestel img { filter: drop-shadow(0 24px 24px rgba(0,0,0,.55)); }
.tl-badge { top: 110px; }
.tl-tekst { padding: 20px 20px 18px; color: #fff; }
.tl-naam a { color: inherit; text-decoration: none; }
.tl-naam a:hover { text-decoration: underline; text-decoration-color: var(--lime); text-decoration-thickness: 3px; }
.tl-vink { display: grid; gap: 6px; margin: 8px 0 0; font-size: .9rem; color: rgba(255,255,255,.85); }
.tl-vink li { display: flex; gap: 8px; align-items: center; }
.tl-vink .ico { width: 16px; height: 16px; color: var(--lime); flex: none; }
.tl-voet { margin-top: 14px; }
.tl-bespaar small { color: rgba(255,255,255,.62); }
.tl-bespaar strong { color: var(--lime); font-size: 2rem; }
.tl-knop { --kh: 44px; }
.tl-noot { margin-top: 18px; }
@media (min-width: 1024px) {
  .tl-rij.tl-n5 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 70px 18px; padding-top: 70px; }
  .tl-rij.tl-n5 > li { grid-column: span 2; }
  .tl-rij.tl-n5 > li:first-child, .tl-rij.tl-n5 > li:nth-child(2) { grid-column: span 3; }
  .tl-rij > li:first-child .tl-toestel, .tl-rij.tl-n5 > li:nth-child(2) .tl-toestel { inset: -60px 28% 250px; }
  .tl-rij > li:first-child .tl-naam, .tl-rij.tl-n5 > li:nth-child(2) .tl-naam { font-size: 2.4rem; }
  .tl-rij.tl-n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 70px 18px; padding-top: 70px; }
  .tl-rij.tl-n4 > li:first-child { grid-column: auto; }
  .tl-rij.tl-n4 > li:first-child .tl-toestel { inset: -40px 22px 270px; }
  .tl-rij.tl-n4 > li:first-child .tl-naam { font-size: 1.85rem; }
  .tl { height: 560px; }
  .tl-toestel { inset: -40px 22px 270px; }
}

/* ── inbegrepen: grote foto + korte lijst ────────────────────────────── */
.inb-grid { display: grid; gap: 28px; align-items: center; }
.inb-foto picture { aspect-ratio: 4 / 3.2; }
.inb-lijst { display: grid; gap: 0 22px; margin-top: 18px; }
.inb-lijst li { display: flex; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--lijn); font-weight: 750; }
.inb-lijst .ico { width: 24px; height: 24px; color: var(--lime-tekst); flex: none; }
@media (min-width: 640px) { .inb-lijst { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .inb-grid { grid-template-columns: 1.25fr .75fr; gap: 56px; } .inb-grid .inb-lijst { grid-template-columns: 1fr; } .inb-foto picture { aspect-ratio: 4 / 3.3; } }
.kader::before { background-color: var(--lime); background-image: url(/assets/icoon-bos.svg); background-size: 58%; box-shadow: 0 14px 24px -10px rgba(110,190,0,.8); }
.kader-breed picture { aspect-ratio: 16 / 7; }

/* ── medewerkers: vrijstaand, hoofd steekt boven de kaart uit ────────── */
.mens-blok { display: grid; gap: 28px; align-items: center; }
.mens-kaart { position: relative; isolation: isolate; height: 440px; max-width: 460px; width: 100%; margin: 0 auto; }
.mens-kaart::before { content: ''; position: absolute; inset: 120px 0 0; z-index: -1; border-radius: 28px; clip-path: polygon(0 34px, 34px 0, 100% 0, 100% 100%, 0 100%);
  background: radial-gradient(80% 60% at 50% 0%, rgba(164,239,35,.55), rgba(164,239,35,0) 70%), linear-gradient(170deg, #1D3B33, var(--ink) 75%); box-shadow: var(--schaduw-2); }
.mens-kaart img { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); height: 100%; width: auto; max-width: none; filter: drop-shadow(0 20px 26px rgba(0,0,0,.35)); }
.mens-label { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px 9px 10px; border-radius: 14px; font-size: .84rem; font-weight: 800; white-space: nowrap;
  background: rgba(255,255,255,.9); color: var(--ink); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 14px 26px -12px rgba(0,0,0,.45); animation: zweef 5s ease-in-out infinite alternate; --r: 0deg; }
.mens-label .ico { width: 18px; height: 18px; color: var(--lime-tekst); }
.mens-label-donker { background: rgba(12,39,33,.9); color: #fff; }
.mens-label-donker .ico { color: var(--lime); }
@media (min-width: 1024px) { .mens-blok { grid-template-columns: 1fr 1fr; gap: 64px; } .mens-kaart { height: 560px; max-width: 520px; } .mens-blok-om .mens-kaart { order: -1; } }

/* ── tijdlijn ────────────────────────────────────────────────────────── */
.tl-lijn i { background: linear-gradient(90deg, #1D3B33, var(--lime)); }
.tl-stap.is-aan .tl-nr { background: var(--lime); box-shadow: 0 0 0 5px rgba(144,229,9,.2); }
@media (max-width: 899px) { .tl-lijn i { background: linear-gradient(180deg, #1D3B33, var(--lime)); } }

/* ── productpagina ───────────────────────────────────────────────────── */
.p-held { background: radial-gradient(80% 70% at 75% 45%, #173A31 0%, var(--ink) 55%, var(--nacht) 100%); }
.p-podium { height: 380px; }
.p-podium::before { background: radial-gradient(closest-side, rgba(144,229,9,.3), rgba(144,229,9,0)); }
.p-podium img { max-height: 96%; }
.p-prijs { display: inline-grid; gap: 2px; margin-top: 18px; padding: 12px 18px 12px 16px; border-radius: 18px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12), inset 4px 0 0 var(--lime); }
.p-prijs small { font-size: .78rem; font-weight: 650; color: rgba(255,255,255,.7); }
.p-prijs strong { font-family: var(--f-kop); font-size: 2.8rem; font-weight: 800; line-height: 1; color: var(--lime); font-variant-numeric: tabular-nums; }
.p-specs dd { font-size: 1.25rem; }
.p-let { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: #EEF8DE; font-size: .92rem; }
.p-let .ico { width: 20px; height: 20px; color: var(--lime-tekst); margin-top: 2px; }
.p-let p { margin: 0; }
.p-bon { margin: 8px 0 16px; font-size: .92rem; }
.p-bon > div { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--lijn); }
.p-bon > div .ico { width: 18px; height: 18px; color: var(--lime-tekst); }
.p-bon-tot { border-bottom: 0 !important; padding-top: 12px !important; align-items: baseline; }
.p-bon-tot span { font-weight: 800; }
.p-bon-tot strong { font-family: var(--f-kop); font-size: 2rem; font-weight: 800; line-height: 1; }
@media (min-width: 1024px) { .p-podium { height: 560px; } }

/* ── tabellen ────────────────────────────────────────────────────────── */
.mw-tabel thead th { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; width: auto; }
.mw-tabel tbody th { color: var(--ink); font-weight: 700; width: auto; }
.mw-tabel tbody th a { text-decoration: none; }
.mw-tabel td { color: var(--grijs); font-weight: 650; }
.mw-tabel .mw-prijs, .mw-tabel thead th:last-child { text-align: right; }
.mw-tabel .mw-prijs { color: var(--ink); font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vk-kaart { padding: 6px 4px; }
.vk-tabel { width: 100%; border-collapse: collapse; min-width: 760px; font-size: .92rem; }
.vk-tabel th, .vk-tabel td { padding: 12px 10px; border-bottom: 1px solid var(--lijn); text-align: center; vertical-align: middle; }
.vk-tabel tbody th { text-align: left; color: var(--grijs); font-weight: 650; white-space: nowrap; }
.vk-tabel thead th a { display: grid; justify-items: center; gap: 6px; text-decoration: none; font-weight: 800; font-size: .86rem; line-height: 1.15; }
.vk-tabel thead img { height: 84px; width: auto; filter: drop-shadow(0 8px 8px rgba(0,0,0,.18)); }
.vk-prijs { font-family: var(--f-kop); font-size: 1.5rem; font-weight: 800; }
.vk-ja { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; color: var(--lime-tekst); }
.vk-ja .ico { width: 16px; height: 16px; }
.vk-nee { color: var(--grijs); }
.vk-tabel tr:last-child th, .vk-tabel tr:last-child td { border-bottom: 0; }

/* ── rekenhulp ───────────────────────────────────────────────────────── */
.check { background: linear-gradient(160deg, #173A31 0%, var(--ink) 55%, var(--nacht) 100%); }
.rk { box-shadow: 0 0 0 1px rgba(255,255,255,.5), 0 0 80px -24px rgba(144,229,9,.35), 0 40px 80px -40px rgba(0,0,0,.9); }
.rk-live { box-shadow: inset 0 -2px 0 var(--lime); background: linear-gradient(135deg, #173A31, var(--ink)); }
.rk-live strong { color: var(--lime); }
.uk-rij { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 12px 8px 8px; }
.uk-rij.is-beste { background: #F3FBE6; box-shadow: 0 0 0 2px var(--lime), 0 14px 26px -18px rgba(60,110,0,.6); }
.uk-foto { width: 52px; height: 52px; }
.uk-tag-ijs { background: #ECEEE8; color: var(--grijs); }
.uk-balk i { background: var(--verloop-warmte); }

/* ── aanvraagvenster (zoals Autobestickerd: één venster, lage drempel) ── */
.lade { width: min(440px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 28px; color: #fff; overflow: auto;
  background: radial-gradient(90% 60% at 100% 0%, rgba(144,229,9,.28), rgba(144,229,9,0) 60%), linear-gradient(170deg, #173A31, var(--ink) 60%, var(--nacht));
  box-shadow: 0 40px 90px -30px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.1); }
.lade::backdrop { background: rgba(7,27,22,.62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.lade[open] { animation: ladeIn .35s var(--ease); }
@keyframes ladeIn { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
.lade::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--verloop-rood); }
.lade-form, .lade-klaar { padding: 30px 22px 22px; }
.lade-dicht { position: absolute; right: 12px; top: 12px; z-index: 2; width: 40px; height: 40px; border: 0; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.08); color: #fff; }
.lade-dicht .ico { width: 18px; height: 18px; }
.lade-kop { margin: 0 40px 8px 0; font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 2rem; line-height: 1; }
.lade-kop span { color: var(--lime); }
.lade-sub { margin: 0 0 18px; color: rgba(255,255,255,.78); }
.lade .velden { margin-bottom: 12px; }
.lade .veld-z input, .lade .veld-z select { background: rgba(255,255,255,.96); }
.veld-keuze select { width: 100%; height: 58px; padding: 22px 36px 6px 46px; border-radius: 15px; border: 0; font-size: 16px; font-weight: 650; color: var(--ink); -webkit-appearance: none; appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%230C2721' d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32z'/%3E%3C/svg%3E") right 14px center / 16px no-repeat; box-shadow: 0 0 0 1.5px var(--lijn); }
.veld-keuze label { transform: translateY(-11px); font-size: .72rem; color: var(--grijs); font-weight: 750; }
.lade .sn-fout { color: #FFB4A8; }
.lade-noot { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 12px 0 0; font-size: .8rem; color: rgba(255,255,255,.65); }
.lade-noot .ico { width: 15px; height: 15px; color: var(--lime); }
.lade-klaar { text-align: center; outline: 0; }
.lade-klaar .lade-kop { margin: 0 0 8px; }
.lade-klaar .knop { margin-top: 8px; }
.sn-vink-rand { stroke: var(--lime); }
.sn-vink-vlak { fill: var(--lime); }
body.lade-open { overflow: hidden; }

/* ── formulier op de aanvraagpagina ──────────────────────────────────── */
.form-smal { max-width: 620px; margin: 0 auto; }
.kies input:checked + span { box-shadow: inset 0 -2px 0 var(--lime); }

/* ── voet ────────────────────────────────────────────────────────────── */
.voet-merk .merk-woord { color: #fff; }
.voet-kruis { opacity: .05; background: url(/assets/icoon-wit.svg) center/contain no-repeat; animation: icoon-draai 90s linear infinite; }
.voet-kop::before { background: var(--lime); }
.voet-contact .ico, .ab-knop .ico { color: var(--lime); }
.ab-cta { border: 0; font-family: inherit; cursor: pointer; }

/* ── kleine dingen ───────────────────────────────────────────────────── */
.faq-plus { color: var(--lime-tekst); }
.chip .ico, .vinklijst .ico, .zijkaart .h4 .ico, .ck > .ico, .veld-z > .ico, .inkort dt .ico { color: var(--lime-tekst); }
.lade .veld-z > .ico { color: var(--lime-tekst); }
.ck-bel > .ico { color: var(--lime); }
.vd-label { color: var(--lime-tekst); }
.vd-donker .vd-label { color: var(--lime); }
.vd h3, .vd .vd-kop { margin-top: 0; }
.sn-fout { color: #B42318; }
.veld-z.is-fout input { box-shadow: 0 0 0 2px #D92D20; }
.veld-z input:focus, .veld-z textarea:focus { box-shadow: 0 0 0 2px var(--ink), 0 0 0 6px rgba(144,229,9,.3); }
.h404 span { color: var(--lime) !important; }
.slot-toestellen::before { background: radial-gradient(circle, rgba(144,229,9,.3), rgba(144,229,9,.06) 45%, rgba(144,229,9,0) 68%); }

/* slot: monteur met kabel over zijn schouder */
.slot-mens { position: relative; height: 380px; max-width: 420px; width: 100%; margin: 0 auto calc(clamp(56px, 8.5vw, 116px) * -1); }
.slot-mens::before { content: ''; position: absolute; left: 50%; top: 8%; width: 92%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle, rgba(144,229,9,.32), rgba(144,229,9,.06) 45%, rgba(144,229,9,0) 68%); }
.slot-mens .ringen { width: 90%; left: 5%; top: 0; }
.slot-mens img { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); height: 100%; width: auto; max-width: none; filter: drop-shadow(0 22px 26px rgba(0,0,0,.45)); }
@media (min-width: 1024px) { .slot-mens { height: 520px; max-width: none; } .slot-grid { align-items: end; } }
.werkwijze-blok .tijdlijn { grid-template-columns: 1fr; gap: 22px; padding-left: 4px; }
.werkwijze-blok .tl-lijn { left: 27px; right: auto; top: 26px; bottom: 26px; width: 3px; height: auto; }
.werkwijze-blok .tl-lijn i { inset: 0 0 auto; width: 100%; height: var(--vul, 0%); background: linear-gradient(180deg, #1D3B33, var(--lime)); }
.werkwijze-blok .tl-stap { grid-template-columns: 50px 1fr; gap: 16px; }
.werkwijze-blok .tl-stap h3 { margin-top: 12px; }
.knop-vol { white-space: normal; text-align: center; }

/* keuzekaart: prijs als neongroen label (lime met bosgroene tekst, leesbaar op de lichte tegel) */
.kk-tegel small { margin-top: 4px; padding: 3px 10px; border-radius: 999px; background: var(--lime); color: var(--ink); font-size: .8rem; box-shadow: 0 4px 10px -4px rgba(110,190,0,.7); }
.kk-advies small { background: none; box-shadow: none; padding: 0; color: var(--grijs); }
/* desktop: keuzekaart groter */
@media (min-width: 1024px) {
  .held-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
  .held .keuzekaart { max-width: 620px; padding: 32px 26px 24px; }
  .kk-kop { font-size: 2.2rem; margin-bottom: 18px; }
  .kk-raster { gap: 12px; }
  .kk-tegel { min-height: 196px; padding: 14px 6px 14px; border-radius: 20px; }
  .kk-tegel img { height: 112px; width: 110px; }
  .kk-tegel strong { font-size: 1.02rem; }
  .kk-tegel small { font-size: .92rem; padding: 4px 12px; }
  .kk-ico { width: 52px; height: 52px; margin: 22px 0 12px; }
}
@media (min-width: 1280px) { .held .keuzekaart { max-width: 660px; } .kk-tegel { min-height: 214px; } .kk-tegel img { height: 128px; } }
@media (min-width: 1024px) { .held .h1 { font-size: clamp(3.2rem, 5.4vw, 6rem); } }

/* homepage-hero (27 okt, wens eigenaar): omgedraaid — donker bosgroen verloop over de foto met een licht stroompatroon
   (printbaansporen, knooppunten, Voltanext-iconen; assets/stroom-icoon.svg uit _bron/patroon.py) dat langzaam schuift.
   Een tweede, fellere laag van hetzelfde patroon wordt door een bewegende lichtband zichtbaar: stroom die door de sporen loopt. */
.held-stroom .held-donker { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(7,27,22,.96) 0%, rgba(7,27,22,.88) 38%, rgba(12,39,33,.72) 70%, rgba(12,39,33,.6) 100%),
              linear-gradient(0deg, rgba(7,27,22,.95) 0%, rgba(7,27,22,0) 40%); }
@media (max-width: 1023px) { .held-stroom .held-donker { background: linear-gradient(180deg, rgba(7,27,22,.9) 0%, rgba(7,27,22,.8) 45%, rgba(7,27,22,.94) 100%); } }
.held-motief { position: absolute; inset: 0; pointer-events: none; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.15) 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.15) 100%); }
/* het patroon staat stil (wens eigenaar); tegel-oorsprong = linksboven van de hero, zodat de stroompuntjes in site.js precies op de sporen vallen */
.held-motief i { position: absolute; inset: 0; background: url(/assets/stroom-icoon.svg) 0 0 / 160px 160px; opacity: .24; }
/* het patroon staat echt stil (wens eigenaar). Elke 5 s loopt (altijd, ook bij hover) een lichte golf door het patroon (het eerste effect):
   een fellere kopie van dezelfde tegel, zichtbaar door een schuine band die van links naar rechts schuift. Bij hover: spot + ringen. */
.held-motief::after { content: ''; position: absolute; inset: 0; background: url(/assets/stroom-icoon.svg) 0 0 / 160px 160px; opacity: .85; transition: opacity .3s;
  filter: drop-shadow(0 0 4px rgba(164,239,35,.75));
  -webkit-mask: linear-gradient(100deg, transparent 0%, #000 50%, transparent 100%) -70% 0 / 40% 100% no-repeat;
          mask: linear-gradient(100deg, transparent 0%, #000 50%, transparent 100%) -70% 0 / 40% 100% no-repeat;
  animation: golf 5s cubic-bezier(.45,.05,.55,.95) infinite; }
@keyframes golf { 0% { -webkit-mask-position: -70% 0; mask-position: -70% 0; } 45%, 100% { -webkit-mask-position: 170% 0; mask-position: 170% 0; } }
.held-motief.is-uit::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .held-motief::after { display: none; } }
.review .held-motief::after { display: none; }
/* interactief: spot rond de muis en rimpelringen van het patroon (site.js) */
@property --rr { syntax: '<length>'; inherits: false; initial-value: 0px; }
.held-spot { position: absolute; inset: 0; opacity: 0; transition: opacity .4s; background: url(/assets/stroom-icoon.svg) var(--ox, 0) var(--oy, 0) / 160px 160px;
  -webkit-mask-image: radial-gradient(220px 220px at var(--mx, -999px) var(--my, -999px), rgba(0,0,0,.95), rgba(0,0,0,.35) 45%, transparent 70%);
          mask-image: radial-gradient(220px 220px at var(--mx, -999px) var(--my, -999px), rgba(0,0,0,.95), rgba(0,0,0,.35) 45%, transparent 70%);
  filter: drop-shadow(0 0 4px rgba(164,239,35,.7)); }
.held-motief.is-spot .held-spot { opacity: .9; }
.held-rimpel { position: absolute; pointer-events: none; background-image: url(/assets/stroom-icoon.svg); background-size: 160px 160px; filter: drop-shadow(0 0 5px rgba(164,239,35,.85));
  -webkit-mask-image: radial-gradient(circle, transparent calc(var(--rr) - 26px), #000 calc(var(--rr) - 10px), #000 calc(var(--rr) - 4px), transparent var(--rr));
          mask-image: radial-gradient(circle, transparent calc(var(--rr) - 26px), #000 calc(var(--rr) - 10px), #000 calc(var(--rr) - 4px), transparent var(--rr));
  animation: rimpel 1.4s cubic-bezier(.2,.7,.3,1) forwards; }
@keyframes rimpel { 0% { --rr: 0px; opacity: 1; transform: scale(.96); } 100% { --rr: 50%; opacity: 0; transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .held-rimpel { display: none; } }
.review .held-spot, .review .held-rimpel { display: none; }
.held-stroom .held-gloed { background: radial-gradient(80% 55% at 75% 105%, rgba(144,229,9,.3), rgba(144,229,9,.08) 40%, rgba(144,229,9,0) 70%),
                                       radial-gradient(50% 40% at 0% 0%, rgba(144,229,9,.14), rgba(144,229,9,0) 70%); }
.held-stroom .keuzekaart { box-shadow: 0 30px 70px -26px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.08); }

/* ── chatwidget rechtsonder (overgenomen van Autobestickerd, in Voltanext-kleuren); vervangt de mobiele actiebalk ── */
.actiebalk { display: none !important; }
.wg { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 70; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.wg-pil { display: flex; align-items: center; gap: 12px; padding: 6px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); color: #fff; text-align: left; font: inherit; cursor: pointer;
  background: rgba(12,39,33,.86); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4); box-shadow: 0 18px 40px -16px rgba(7,27,22,.65); transition: transform .2s, box-shadow .2s; }
.wg-pil:hover { transform: translateY(-2px); box-shadow: 0 22px 46px -16px rgba(7,27,22,.75); }
.wg-av { position: relative; flex: none; }
.wg-av img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.25); }
.wg-dot { position: absolute; right: 0; bottom: 1px; width: 12px; height: 12px; border-radius: 50%; background: var(--lime); border: 2px solid var(--ink); }
.wg-dot.is-dicht { background: #F5A524; }
.wg-tekst { display: grid; line-height: 1.2; padding-right: 4px; }
.wg-tekst b { font-size: .92rem; } .wg-tekst small { font-size: .76rem; color: rgba(255,255,255,.65); }
.wg-rond { position: relative; width: 48px; height: 48px; flex: none; display: grid; place-items: center; border-radius: 50%; color: var(--ink);
  background: linear-gradient(135deg, var(--lime-licht), var(--lime-diep)); box-shadow: 0 8px 20px -8px rgba(110,190,0,.9); }
.wg-rond .ico { position: absolute; width: 22px; height: 22px; transition: transform .3s, opacity .3s; }
.wg-ic-dicht { opacity: 0; transform: rotate(-90deg) scale(.6); }
.wg.is-open .wg-ic-open { opacity: 0; transform: rotate(90deg) scale(.6); }
.wg.is-open .wg-ic-dicht { opacity: 1; transform: none; }
.wg.is-open .wg-tekst, .wg.is-open .wg-av { display: none; }
.wg.is-open .wg-pil { padding: 4px; }
@keyframes wg-in { from { opacity: 0; transform: translateY(12px) scale(.96); } }
.wg-paneel { width: min(342px, calc(100vw - 32px)); max-height: min(600px, calc(100dvh - 100px)); display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; color: var(--ink);
  background: #fff; box-shadow: 0 30px 70px -24px rgba(7,27,22,.6), 0 0 0 1px rgba(12,39,33,.08); transform-origin: bottom right; animation: wg-in .35s cubic-bezier(.2,.8,.2,1); }
.wg-paneel[hidden] { display: none; }
.wg-kop { position: relative; flex: none; height: 96px; color: #fff; overflow: hidden;
  background: url(/assets/stroom-icoon.svg) 0 0 / 120px 120px, radial-gradient(70% 120% at 100% 0%, rgba(144,229,9,.5), transparent 60%), linear-gradient(135deg, var(--nacht), #173A31); background-blend-mode: soft-light, normal, normal; }
.wg-x { position: absolute; z-index: 1; top: 9px; right: 9px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: #fff; display: grid; place-items: center; cursor: pointer; }
.wg-x .ico { width: 16px; height: 16px; }
.wg-wie { position: absolute; z-index: 1; left: 13px; right: 13px; bottom: 13px; display: flex; align-items: center; gap: 9px; }
.wg-wie img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid var(--lime); }
.wg-wie div { display: grid; flex: 1; min-width: 0; line-height: 1.2; }
.wg-wie b { font-family: var(--f-kop); font-weight: 800; font-size: 1.25rem; text-transform: uppercase; }
.wg-wie small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .72rem; color: rgba(255,255,255,.75); }
.wg-body { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 12px; display: grid; gap: 10px; align-content: start; background: linear-gradient(180deg, #F1F5EC, #fff); }
.wg-bel { justify-self: start; max-width: 90%; margin: 0; padding: 9px 12px; border-radius: 4px 14px 14px 14px; background: #fff; box-shadow: 0 2px 8px -4px rgba(12,39,33,.25); font-size: .84rem; line-height: 1.4; }
.wg-label { margin: 2px 0 0; font-size: .72rem; font-weight: 700; color: var(--grijs); }
.wg-tegels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.wg-v { display: grid; justify-items: center; gap: 2px; padding: 7px 4px 8px; border-radius: 11px; background: #fff; border: 1px solid var(--lijn); font: inherit; color: var(--ink); cursor: pointer; text-align: center; transition: border-color .2s, transform .2s; }
.wg-v:hover { border-color: var(--lime-diep); transform: translateY(-2px); }
.wg-v img { height: 34px; width: auto; max-width: 100%; object-fit: contain; }
.wg-v .ico { width: 28px; height: 28px; margin: 3px 0 3px; }
.wg-v span { font-size: .7rem; font-weight: 700; line-height: 1.15; }
.wg-v b { font-size: .66rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; background: var(--lime); color: var(--ink); }
.wg-v-advies b { background: #ECEEE8; color: var(--grijs); }
.wg-rij { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-radius: 13px; border: 1px solid rgba(110,190,0,.45); background: rgba(144,229,9,.1); color: var(--ink); font: inherit; font-size: .86rem; font-weight: 700; text-align: left; cursor: pointer; }
.wg-rij span { flex: 1; min-width: 0; display: grid; line-height: 1.25; }
.wg-rij small { color: var(--lime-tekst); font-weight: 650; font-size: .7rem; }
.wg-rij .ico { width: 18px; height: 18px; color: var(--lime-tekst); }
.wg-voet { flex: none; display: flex; align-items: center; gap: 7px; padding: 9px 11px; border-top: 1px solid var(--lijn); background: #fff; }
.wg-knop { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: #ECEEE8; color: var(--ink); }
.wg-knop .ico { width: 17px; height: 17px; }
.wg-wa { background: #25D366; color: #fff; }
.wg-invoer { flex: 1; min-width: 0; }
.wg-invoer input { width: 100%; height: 36px; padding: 0 13px; border-radius: 999px; border: 1px solid var(--lijn); background: #F5F5F3; font: inherit; font-size: .84rem; }
.wg-invoer input:focus { outline: none; border-color: var(--lime-diep); box-shadow: 0 0 0 3px rgba(144,229,9,.22); }
.wg-stuur { width: 36px; height: 36px; flex: none; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--lime); cursor: pointer; }
.wg-stuur .ico { width: 16px; height: 16px; }
body.lade-open .wg { display: none; }
@media (max-width: 900px) { .wg { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); } .wg-tekst small { display: none; } .wg-paneel { width: calc(100vw - 24px); max-height: calc(100dvh - 92px); } .voet-onder { padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .wg-paneel { animation: none; } }

/* ── navigatie op desktop: zwevende glazen pil met blur (zoals eerdere builds); mobiel ongewijzigd ── */
@media (min-width: 1100px) {
  .kop { top: 14px; height: var(--kop-h); padding-inline: var(--gut); }
  .kop.is-vast, .kop-licht.is-vast, .kop.is-vast:not(.kop-licht) { background: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .kop-in { max-width: calc(var(--wrap) - 2 * var(--gut) + 28px); padding: 0 8px 0 22px; border-radius: 999px;
    background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4);
    box-shadow: 0 14px 34px -18px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.12); transition: background-color .3s, box-shadow .3s; }
  .kop.is-vast .kop-in { background: rgba(12,39,33,.72); box-shadow: 0 18px 40px -18px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.1); }
  .kop:not(.kop-licht) .kop-in { background: rgba(255,255,255,.72); border-color: rgba(12,39,33,.1); color: var(--ink); }
  .kop:not(.kop-licht).is-vast .kop-in { background: rgba(255,255,255,.86); }
  .kop-link { border-radius: 999px; }
  .kop-rechts .knop { --kh: 44px; }
  html { scroll-padding-top: calc(var(--kop-h) + 30px); }
  .held, .pagina-kop, .p-held { padding-top: calc(var(--kop-h) + 14px); }
}

/* ── homepage-hero met stockfoto (27 okt, wens eigenaar): de foto moet echt gezien worden ──
   Wallbox + auto (Magnific-stock). Verloop en stroompatroon rechts (achter de keuzekaart); links is de foto helder met een lichte waas voor de tekst.
   De keuzekaart staat (weer) rechts naast de tekst, zoals eerst. */
.held-foto .held-film img { object-position: 30% 55%; }
.held-foto .held-donker { background: linear-gradient(180deg, rgba(7,27,22,.5) 0%, rgba(7,27,22,0) 22%, rgba(7,27,22,0) 34%, rgba(7,27,22,.82) 60%, rgba(7,27,22,.96) 100%); }
.held-foto .held-motief { -webkit-mask-image: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.9) 62%, rgba(0,0,0,.3) 100%); mask-image: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.9) 62%, rgba(0,0,0,.3) 100%); }
.held-foto .held-gloed { background: radial-gradient(70% 40% at 20% 105%, rgba(144,229,9,.22), rgba(144,229,9,0) 70%); }
.held-foto .held-tekst { padding-top: 58vw; }
@media (min-width: 600px) and (max-width: 1023px) { .held-foto .held-tekst { padding-top: 40vw; } }
@media (min-width: 1024px) {
  /* niet gespiegeld, hele foto in beeld (wens eigenaar): wallbox links achter de tekst, auto rechts naast de keuzekaart */
  .held-foto .held-film img { object-position: 100% 34%; }
  .held-foto .held-donker { background:
      linear-gradient(270deg, rgba(7,27,22,.62) 0%, rgba(7,27,22,.45) 28%, rgba(7,27,22,.18) 46%, rgba(7,27,22,0) 60%),
      linear-gradient(90deg, rgba(7,27,22,.42) 0%, rgba(7,27,22,.18) 40%, rgba(7,27,22,0) 55%),
      linear-gradient(0deg, rgba(7,27,22,.55) 0%, rgba(7,27,22,0) 30%),
      linear-gradient(180deg, rgba(7,27,22,.55) 0%, rgba(7,27,22,0) 18%); }
  .held-foto .held-motief { -webkit-mask-image: linear-gradient(270deg, #000 0%, rgba(0,0,0,.75) 30%, transparent 54%), linear-gradient(180deg, #000 0%, rgba(0,0,0,.15) 100%);
            mask-image: linear-gradient(270deg, #000 0%, rgba(0,0,0,.75) 30%, transparent 54%), linear-gradient(180deg, #000 0%, rgba(0,0,0,.15) 100%);
    -webkit-mask-composite: source-in; mask-composite: intersect; }
  .held-foto .held-tekst { padding-top: 0; }
  .held-foto .held-gloed { background: radial-gradient(50% 50% at 100% 100%, rgba(144,229,9,.22), rgba(144,229,9,0) 70%); }
}

/* prijspills: lime met licht verloop (27 okt, wens eigenaar) */
.kk-tegel small { background: linear-gradient(180deg, #D4FF7A 0%, #A8F02A 45%, #86D808 100%); color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65), 0 4px 12px -4px rgba(110,190,0,.75); }
.kk-advies small { background: none; box-shadow: none; }

/* keuzekaart: lime streepje weg, drie zwevende pills zoals bij Daktrots (27 okt, wens eigenaar) */
.keuzekaart::before { display: none; }
.keuzekaart { padding-top: 30px; padding-bottom: 34px; }
.keuzekaart .sn-zweef-1 { top: -18px; right: 14px; --r: 4deg; background: linear-gradient(180deg, #D4FF7A 0%, #A8F02A 45%, #86D808 100%); color: var(--ink); }
.keuzekaart .sn-zweef-2 { bottom: -16px; right: 30px; left: auto; top: auto; --r: -3deg; background: var(--ink); color: #fff; }
.keuzekaart .sn-zweef-2 .ico { color: var(--lime); }
.keuzekaart .sn-zweef-3 { top: -20px; left: 18px; --r: -5deg; background: #fff; color: var(--ink); animation-delay: -1.2s; }
.keuzekaart .sn-zweef-3 .ico { color: var(--lime-tekst); }
@media (max-width: 479px) { .keuzekaart .sn-zweef-3 { display: none; } }
@media (min-width: 1024px) {
  .keuzekaart { padding-top: 38px; padding-bottom: 36px; }
  .keuzekaart .sn-zweef { font-size: .9rem; padding: 10px 15px 10px 12px; border-radius: 14px; }
  .keuzekaart .sn-zweef .ico { width: 19px; height: 19px; }
  .keuzekaart .sn-zweef-1 { right: -22px; top: -18px; }
  .keuzekaart .sn-zweef-3 { left: 26px; top: -24px; }
  .keuzekaart .sn-zweef-2 { right: 34px; bottom: -18px; }
}

/* accentwoord op donker (bv. ALLES in de hero): lime met licht verloop (27 okt, wens eigenaar) */
.held .acc-mark, .sectie-donker .acc-mark, .slot .acc-mark, .pagina-kop .acc-mark, .p-held .acc-mark, .check .acc-mark, .lade .acc-mark, .mens-kaart .acc-mark {
  background: linear-gradient(180deg, #E2FF9E 0%, #A8F02A 45%, #7CCB05 100%) !important; -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent; color: var(--lime); }
/* plus een donkergroene markeerstreep (keuze eigenaar) onder het accentwoord: tweede achtergrondlaag, veegt van links in.
   Een ::after werkt hier niet: background-clip: text verbergt die in Chrome. */
.held .acc-mark, .sectie-donker .acc-mark, .slot .acc-mark, .pagina-kop .acc-mark, .p-held .acc-mark, .check .acc-mark, .lade .acc-mark, .mens-kaart .acc-mark {
  background: linear-gradient(180deg, #E2FF9E 0%, #A8F02A 45%, #7CCB05 100%) 0 0 / 100% 100% no-repeat, linear-gradient(#0C2721, #0C2721) 0 86% / 100% .28em no-repeat !important;
  -webkit-background-clip: text, border-box !important; background-clip: text, border-box !important;
  -webkit-box-decoration-break: clone; box-decoration-break: clone; animation: streep-in .8s cubic-bezier(.7,0,.2,1) .45s both; }
@keyframes streep-in { from { background-size: 100% 100%, 0% .28em; } to { background-size: 100% 100%, 100% .28em; } }
@media (prefers-reduced-motion: reduce) { .held .acc-mark, .slot .acc-mark, .pagina-kop .acc-mark { animation: none; } }
.review .acc-mark { animation: none; }

/* vergelijktabel: rij terugverdientijd (aannames = standaardstand rekenhulp); snelste krijgt een lime pill */
.vk-terug { display: inline-flex; align-items: center; gap: 5px; font-weight: 800; white-space: nowrap; }
.vk-terug .ico { width: 15px; height: 15px; color: var(--lime-tekst); }
.vk-terug.is-snelst { padding: 4px 11px 4px 8px; border-radius: 999px; color: var(--ink); background: linear-gradient(180deg, #D4FF7A 0%, #A8F02A 45%, #86D808 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65), 0 4px 12px -4px rgba(110,190,0,.75); }
.vk-terug.is-snelst .ico { color: var(--ink); }
.vk-noot a { color: var(--ink); font-weight: 700; }

/* homepage: knop "Vergelijk laadpalen" onder de vijf palen — donkere pill met de vijf palen als gestapelde duimpjes */
.vg-knop-rij { display: flex; justify-content: center; margin-top: 28px; }
.vg-knop { display: inline-flex; align-items: center; gap: 16px; padding: 10px 10px 10px 14px; border-radius: 999px; background: var(--ink); color: #fff; text-decoration: none;
  box-shadow: 0 18px 36px -18px rgba(12,39,33,.7), inset 0 0 0 1px rgba(255,255,255,.06); transition: transform .3s var(--ease), box-shadow .3s; max-width: 100%; }
.vg-duimen { display: flex; padding-left: 8px; }
.vg-duimen i { display: grid; place-items: center; width: 44px; height: 44px; margin-left: -12px; border-radius: 50%; background: linear-gradient(180deg, #fff, #EEF1EA);
  box-shadow: 0 0 0 2.5px var(--ink); transition: transform .35s cubic-bezier(.3,1.6,.5,1); }
.vg-duimen img { width: 30px; height: 34px; object-fit: contain; }
.vg-tekst { display: grid; line-height: 1.2; }
.vg-tekst strong { font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 1.35rem; letter-spacing: .01em; }
.vg-tekst small { font-size: .78rem; color: rgba(255,255,255,.7); }
.vg-pijl { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; flex: none; color: var(--ink);
  background: linear-gradient(180deg, #D4FF7A 0%, #A8F02A 45%, #86D808 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 6px 16px -6px rgba(110,190,0,.8); transition: transform .3s var(--ease); }
.vg-pijl .ico { width: 22px; height: 22px; }
.vg-knop:hover { transform: translateY(-2px); box-shadow: 0 24px 44px -18px rgba(12,39,33,.8), inset 0 0 0 1px rgba(144,229,9,.35); }
.vg-knop:hover .vg-pijl { transform: translateX(3px) rotate(-8deg); }
.vg-knop:hover .vg-duimen i { transform: translateY(-4px); }
.vg-knop:hover .vg-duimen i:nth-child(2) { transition-delay: .04s; } .vg-knop:hover .vg-duimen i:nth-child(3) { transition-delay: .08s; }
.vg-knop:hover .vg-duimen i:nth-child(4) { transition-delay: .12s; } .vg-knop:hover .vg-duimen i:nth-child(5) { transition-delay: .16s; }
.vg-knop:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; }
@media (max-width: 559px) {
  .vg-knop { gap: 12px; padding: 8px 8px 8px 10px; }
  .vg-duimen i { width: 36px; height: 36px; margin-left: -14px; } .vg-duimen img { width: 24px; height: 28px; }
  .vg-duimen i:nth-child(n+4) { display: none; }
  .vg-tekst strong { font-size: 1.15rem; } .vg-tekst small { display: none; }
  .vg-pijl { width: 42px; height: 42px; }
}

/* aanvraagvenster: eigen keuzelijst voor de laadpaal (27 okt, wens eigenaar) — knop met duimpje en prijs, lijst klapt in het venster open */
.keuze { position: relative; grid-column: 1 / -1; }
.keuze-knop { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 8px 14px 8px 8px; border: 0; border-radius: 15px; font: inherit; text-align: left; cursor: pointer;
  background: rgba(255,255,255,.96); color: var(--ink); box-shadow: 0 0 0 1.5px var(--lijn); transition: box-shadow .2s; }
.keuze-knop:focus-visible, .keuze-knop[aria-expanded="true"] { outline: 0; box-shadow: 0 0 0 2px var(--lime), 0 0 0 6px rgba(144,229,9,.18); }
.keuze-beeld { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(180deg, #fff, #EEF1EA); box-shadow: inset 0 0 0 1px var(--lijn); }
.keuze-beeld img { width: 34px; height: 40px; object-fit: contain; filter: drop-shadow(0 3px 3px rgba(0,0,0,.18)); }
.keuze-beeld .ico { width: 22px; height: 22px; color: var(--lime-tekst); }
.keuze-tekst { display: grid; flex: 1; min-width: 0; line-height: 1.2; }
.keuze-tekst small { font-size: .72rem; font-weight: 750; color: var(--grijs); }
.keuze-tekst strong { font-size: 1rem; font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.keuze-pil { flex: none; padding: 4px 10px; border-radius: 999px; font-size: .82rem; font-weight: 800; color: var(--ink); font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, #D4FF7A 0%, #A8F02A 45%, #86D808 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
.keuze-pijl { flex: none; width: 18px; height: 18px; color: var(--ink); transition: transform .25s var(--ease); }
.keuze-knop[aria-expanded="true"] .keuze-pijl { transform: rotate(180deg); }
.keuze-lijst { list-style: none; margin: 8px 0 0; padding: 6px; border-radius: 16px; background: #fff; color: var(--ink); max-height: min(46vh, 340px); overflow-y: auto; overscroll-behavior: contain;
  box-shadow: 0 0 0 1.5px var(--lijn), 0 22px 40px -22px rgba(0,0,0,.6); animation: keuzeIn .22s var(--ease); }
@keyframes keuzeIn { from { opacity: 0; transform: translateY(-6px); } }
.keuze-lijst [role="option"] { display: flex; align-items: center; gap: 12px; padding: 7px 10px 7px 7px; border-radius: 12px; cursor: pointer; outline: 0; transition: background .15s; }
.keuze-lijst [role="option"] + [role="option"] { margin-top: 2px; }
.keuze-lijst [role="option"] .keuze-beeld { width: 42px; height: 42px; }
.keuze-lijst [role="option"] .keuze-beeld img { width: 30px; height: 34px; }
.keuze-naam { display: grid; flex: 1; min-width: 0; font-weight: 750; line-height: 1.2; }
.keuze-naam small { font-size: .74rem; font-weight: 600; color: var(--grijs); }
.keuze-lijst [role="option"]:hover, .keuze-lijst [role="option"]:focus { background: #F1F5EA; }
.keuze-lijst [role="option"]:focus-visible { box-shadow: inset 0 0 0 2px var(--ink); }
.keuze-lijst [aria-selected="true"] { background: #EAF8D2; }
.keuze-lijst [aria-selected="true"] .keuze-naam::after { content: 'Gekozen'; font-size: .7rem; font-weight: 800; color: var(--lime-tekst); }
@media (prefers-reduced-motion: reduce) { .keuze-lijst { animation: none; } }

/* lopende balk: rijen zijn 3x zo lang (build.py), snelheid gelijk houden */
.keur-baan { animation-duration: 156s; }

/* desktop: alleen de homepage-hero op 80% en de menubalk op 90% (wens eigenaar 27 okt: "alleen de header mag zo, de rest was prima").
   CSS-zoom rekent vw/vh niet mee, dus de hero-maten die op vw/vh leunen staan hier gecorrigeerd (÷ .8). */
@media (min-width: 1024px) {
  .held { zoom: .8; }
  .kop { zoom: .9; }   /* menubalk: tussen 80% en 100% in (wens eigenaar) */
  .held { min-height: min(115vh, 860px); }
  .held .h1 { font-size: clamp(3.2rem, 6.75vw, 6rem); }
}

/* logo (27 okt, aangeleverd door eigenaar): woord volgt de tekstkleur (wit op donker, bosgroen op licht), icoon lime */
.merk-logo { display: block; height: 26px; width: auto; aspect-ratio: 1293.32 / 222.52; color: currentColor; }
.merk-logo.merk-groot { height: 38px; }
@media (min-width: 768px) { .merk-logo { height: 30px; } .merk-logo.merk-groot { height: 42px; } }
.voet-merk .merk-logo { color: #fff; }

/* Voltanext-icoon (bliksems in een kring, aangeleverd door eigenaar 27 okt) vervangt de losse bliksem en komt rondom de site terug:
   tegel bij foto's (.kader), scheiders in de lopende balk, pills, footer- en slotwatermerk, en het icoon in het logo draait bij hover. */
@keyframes icoon-draai { to { transform: rotate(360deg); } }
.slot { position: relative; isolation: isolate; }
.slot::before { content: ''; position: absolute; z-index: -1; left: -140px; top: -120px; width: 460px; aspect-ratio: 1; opacity: .05; pointer-events: none;
  background: url(/assets/icoon-wit.svg) center/contain no-repeat; animation: icoon-draai 120s linear infinite; }
.merk-logo g:last-child { transform-box: fill-box; transform-origin: 50% 50%; transition: transform .9s cubic-bezier(.3,1.3,.5,1); }
.merk:hover .merk-logo g:last-child { transform: rotate(120deg); }
@media (prefers-reduced-motion: reduce) { .voet-kruis, .slot::before { animation: none; } .merk-logo g:last-child { transition: none; } }

/* widgetkop: "Casper ✳ Adviseur" in Elms Sans bold, Voltanext-icoon als scheider (27 okt, wens eigenaar) */
.wg-wie b { display: inline-flex; align-items: center; gap: 7px; font-family: var(--f-tekst); font-weight: 800; font-size: 1.08rem; text-transform: none; letter-spacing: 0; }
.wg-scheider { width: 14px; height: 14px; color: var(--lime); flex: none; }

/* personeelskaart: Voltanext-icoon in de hoeken van de groene achtergrond, met een vervagend lime verloop (27 okt, wens eigenaar).
   Zelfde vorm als .mens-kaart::before (de kaart), achter de persoon. */
.mens-iconen { position: absolute; inset: 120px 0 0; z-index: -1; border-radius: 28px; overflow: hidden; pointer-events: none;
  clip-path: polygon(0 34px, 34px 0, 100% 0, 100% 100%, 0 100%); }
.mens-iconen::before { content: ''; position: absolute; inset: 0;
  background: radial-gradient(60% 55% at 100% 100%, rgba(144,229,9,.26), rgba(144,229,9,0) 70%), radial-gradient(50% 45% at 0% 0%, rgba(144,229,9,.18), rgba(144,229,9,0) 70%); }
.mens-iconen::after { content: ''; position: absolute; inset: 0; opacity: .2;
  background: url(/assets/icoon-lime.svg) right -70px bottom -70px / 260px no-repeat, url(/assets/icoon-lime.svg) left -50px top -50px / 170px no-repeat;
  -webkit-mask-image: radial-gradient(70% 60% at 100% 100%, #000 10%, transparent 75%), radial-gradient(55% 45% at 0% 0%, #000 10%, transparent 75%);
          mask-image: radial-gradient(70% 60% at 100% 100%, #000 10%, transparent 75%), radial-gradient(55% 45% at 0% 0%, #000 10%, transparent 75%); }
@media (min-width: 1024px) { .mens-iconen::after { background-size: 320px, 210px; background-position: right -80px bottom -80px, left -60px top -60px; } }

/* keuzekaart-tegel: rand bij hover als groen verloop (27 okt, wens eigenaar) — ring via een gemaskerde ::after, zodat de maat niet verspringt */
.kk-tegel { position: relative; }
.kk-tegel::after { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 2px; pointer-events: none; opacity: 0; transition: opacity .25s;
  background: linear-gradient(150deg, #D4FF7A 0%, #90E509 45%, #3F7D00 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.kk-tegel:hover { box-shadow: 0 0 0 1.5px transparent, 0 14px 26px -14px rgba(110,190,0,.55); }
.kk-tegel:hover::after, .kk-tegel:focus-visible::after { opacity: 1; }

/* "Weet ik nog niet" / advies: lampje (Phosphor light) met lime verloop in een zachte lime gloed, in plaats van het vraagteken (27 okt, wens eigenaar) */
.kk-lamp { display: grid; place-items: center; width: 64px; height: 64px; margin: 8px 0 6px; border-radius: 50%;
  background: radial-gradient(circle, rgba(144,229,9,.24), rgba(144,229,9,.06) 55%, rgba(144,229,9,0) 72%); }
.kk-lamp i { width: 62%; aspect-ratio: 1; background: linear-gradient(180deg, #B9F35A 0%, #90E509 40%, #3F7D00 100%);
  -webkit-mask: url(/assets/icoon-lamp.svg) center / contain no-repeat; mask: url(/assets/icoon-lamp.svg) center / contain no-repeat;
  transition: transform .35s cubic-bezier(.3,1.6,.5,1); }
.kk-tegel:hover .kk-lamp i { transform: rotate(-8deg) scale(1.08); }
@media (min-width: 1024px) { .kk-lamp { width: 96px; height: 96px; margin: 16px 0 8px; } }
.kk-lamp-klein { width: 40px; height: 40px; margin: 0; }

/* mobiel: compactere hero (27 okt, "te veel witruimte"). De foto vult niet meer de hele (lange) hero — dan was hij enorm uitvergroot en
   bleef bovenin vooral lege betonmuur over — maar alleen het bovenste deel, met de wallbox in beeld; daaronder loopt hij over in bosgroen. */
@media (max-width: 1023px) {
  .held-foto { background: var(--ink); padding-bottom: 28px; }
  .held-foto .held-film picture, .held-foto .held-film img { inset: 0 0 auto 0; height: min(118vw, 560px); }
  .held-foto .held-film img { object-position: 27% 40%; }
  .held-foto .held-donker { height: min(118vw, 560px); bottom: auto;
    background: linear-gradient(180deg, rgba(7,27,22,.45) 0%, rgba(7,27,22,0) 20%, rgba(7,27,22,0) 45%, rgba(12,39,33,.85) 78%, #0C2721 100%); }
  .held-foto .held-tekst { padding-top: 62vw; }
  .held-foto .held .h1, .held-foto .h1 { margin-top: 0; }
  .held-foto .keuzekaart { margin-top: 30px; }
}
@media (min-width: 600px) and (max-width: 1023px) { .held-foto .held-tekst { padding-top: 46vw; } }

/* mobiel: alles hoger (27 okt, wens eigenaar: geen lege ruimte bovenin om de wallbox te tonen). Patroon/verloop zoals in de compacte versie. */
@media (max-width: 1023px) {
  .held-foto .held-tekst { padding-top: 26vw; }
  .held-foto .held-donker { background: linear-gradient(180deg, rgba(7,27,22,.5) 0%, rgba(7,27,22,.15) 14%, rgba(7,27,22,.6) 38%, rgba(12,39,33,.9) 66%, #0C2721 100%); }
  /* patroon pas onder de tekst laten opkomen (tekst loopt tot ±40% van de hero), anders te druk achter de kop (wens eigenaar) */
  .held-foto .held-motief { -webkit-mask-image: linear-gradient(180deg, transparent 0%, transparent 42%, rgba(0,0,0,.7) 70%, rgba(0,0,0,.3) 100%);
            mask-image: linear-gradient(180deg, transparent 0%, transparent 42%, rgba(0,0,0,.7) 70%, rgba(0,0,0,.3) 100%); }
}
@media (min-width: 600px) and (max-width: 1023px) { .held-foto .held-tekst { padding-top: 18vw; } }

/* mobiel menu zoals Autobestickerd (27 okt, wens eigenaar): cirkel-onthulling vanaf de menuknop, groene mesh, glazen vlakken,
   onderdelen schuiven één voor één in. Volgorde: hoofdlinks (groot, Barlow) → laadpalen → contact. */
.menu { opacity: 1; visibility: hidden;
  background: radial-gradient(60% 40% at 100% 0%, rgba(144,229,9,.32), transparent 70%), radial-gradient(70% 45% at 0% 100%, rgba(164,239,35,.2), transparent 70%),
              radial-gradient(50% 35% at 10% 30%, rgba(29,59,51,.9), transparent 70%), linear-gradient(165deg, #14402F 0%, #071B16 70%);
  clip-path: circle(0px at var(--mx, calc(100% - 40px)) var(--my, 40px));
  transition: clip-path .5s cubic-bezier(.65,0,.35,1), visibility 0s linear .5s; }
.menu::before { content: ''; position: fixed; right: -120px; bottom: -110px; width: 420px; aspect-ratio: 1; opacity: .07; pointer-events: none;
  background: url(/assets/icoon-wit.svg) center/contain no-repeat; }
.menu.is-open { opacity: 1; visibility: visible; clip-path: circle(150vmax at var(--mx, calc(100% - 40px)) var(--my, 40px)); transition: clip-path .7s cubic-bezier(.65,0,.35,1), visibility 0s; }
.menu-in { position: relative; display: flex; flex-direction: column; }
.menu-in > * { opacity: 0; transform: translateY(16px); transition: opacity .25s ease, transform .3s ease; }
.menu.is-open .menu-in > * { opacity: 1; transform: none; transition: opacity .45s ease, transform .55s cubic-bezier(.2,.8,.2,1); }
.menu.is-open .menu-in > :nth-child(1) { transition-delay: .15s; } .menu.is-open .menu-in > :nth-child(2) { transition-delay: .24s; }
.menu.is-open .menu-in > :nth-child(3) { transition-delay: .3s; } .menu.is-open .menu-in > :nth-child(4) { transition-delay: .38s; }
@media (prefers-reduced-motion: reduce) { .menu, .menu.is-open, .menu-in > * { transition: none; } }
.menu-links { display: grid; grid-template-columns: 1fr; gap: 0; margin: 4px 0 0; padding: 6px 16px; border-top: 0; border-radius: 22px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.1); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.menu-links a { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; color: #fff; text-decoration: none;
  font-family: var(--f-kop); font-weight: 800; font-size: 1.7rem; text-transform: uppercase; line-height: 1; }
.menu-links a + a { border-top: 1px solid rgba(255,255,255,.1); }
.menu-links a .ico { width: 22px; height: 22px; color: var(--lime); transition: transform .25s; }
.menu-links a:active .ico, .menu-links a:hover .ico { transform: translateX(4px); }
.menu-titel { margin: 22px 0 10px; font-size: .74rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.menu-prod a { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.menu-contact { margin-top: 24px; }
.menu-open .wg { opacity: 0; visibility: hidden; transition: opacity .2s, visibility 0s .2s; }   /* chatwidget weg zolang het menu open is */
/* mobiel: geen knoppen in de hero (wens eigenaar); de keuzekaart eronder is de actie */
@media (max-width: 1023px) { .held-foto .held-knoppen { display: none; } }

/* widget wacht op mobiel tot de keuzekaart voorbij is (site.js) */
.wg { transition: opacity .35s ease, transform .45s cubic-bezier(.2,.8,.2,1), visibility 0s; }
.wg.wg-wacht { opacity: 0; transform: translateY(24px); visibility: hidden; pointer-events: none; transition: opacity .25s ease, transform .3s ease, visibility 0s .3s; }

/* mobiel: laadpaalkaarten compact, zodat de hele kaart (foto, tekst, prijs, knop) in één scherm past (27 okt, wens eigenaar) */
@media (max-width: 1023px) {
  .tl { height: 430px; }
  .tl-podium { inset: 58px 0 0; }
  .tl-toestel { inset: -2px 46px 232px; }
  .tl-badge { top: 70px; }
  .tl-tekst { padding: 16px 18px 16px; }
  .tl-naam { font-size: 1.6rem; margin: 2px 0 4px; }
  .tl-vink { gap: 3px; margin-top: 6px; font-size: .84rem; }
  .tl-voet { margin-top: 10px; padding-top: 10px; }
  .tl-bespaar strong { font-size: 1.7rem; }
  .tl-rij { padding-bottom: 6px; }
}

/* mobiel: titels en lopende tekst gecentreerd (27 okt, wens eigenaar). Lijsten, stappen, FAQ en kaarten blijven links voor de leesbaarheid. */
@media (max-width: 767px) {
  .h1, .h2, .lead, .held-sub, .sectie-kop, .check-intro, .slot-tekst, .faq-links, .pk-foto .wrap, .pagina-kop .wrap, .p-held .wrap,
  .mens-blok > div:not(.mens-kaart), .inb-grid > div:not(.kader) > .h2, .tl-noot, .vk-noot { text-align: center; }
  .lead, .held-sub, .sectie-kop .lead, .pagina-kop .h1, .pk-foto .h1, .p-held .h1 { margin-inline: auto; }
  .held-knoppen, .slot-knoppen, .slot-noot { justify-content: center; }
  .kruimel ol { justify-content: center; }
  .tijdlijn, .inb-lijst, .faq-lijst, .faq, .tl-vink { text-align: left; }
}

/* mobiel: laadpaalkaarten als carrousel met de gekozen kaart in het midden; buren krimpen en vervagen (--krimp uit site.js) */
@media (max-width: 1023px) {
  .tl-rij { grid-auto-columns: 80%; gap: 12px; padding-inline: 10%; scroll-padding-inline: 0; }
  .tl-rij > li { scroll-snap-align: center; transform: scale(calc(1 - .12 * var(--krimp, 0))); opacity: calc(1 - .38 * var(--krimp, 0));
    transform-origin: 50% 60%; transition: none; }
  .tl-rij > li.is-uit { opacity: .28; }
}

/* hero-ondertitel: "All-in vaste prijs" als glazen pill, de rest eronder op één regel (27 okt, wens eigenaar; mobiel en desktop) */
.held-sub-pil { display: grid; justify-items: start; gap: 12px; max-width: none; }
.held-pil { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px 8px 12px; border-radius: 999px; font-weight: 800; font-size: 1rem; color: #fff;
  background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.06)); border: 1px solid rgba(255,255,255,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 10px 24px -14px rgba(0,0,0,.6); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); }
.held-pil .ico { width: 18px; height: 18px; color: var(--lime); }
.held-sub-r { white-space: nowrap; font-size: clamp(.7rem, 3.4vw, 1.2rem); }
@media (max-width: 767px) { .held-sub-pil { justify-items: center; } }
/* pill een tikje kleiner (wens eigenaar) */
.held-pil { gap: 7px; padding: 6px 13px 6px 10px; font-size: .86rem; }
.held-pil .ico { width: 15px; height: 15px; }
.held-sub-pil { gap: 10px; }

/* mobiel/tablet: menubalk wordt na scrollen een zwevende glazen pill (bij binnenkomst blijft hij zoals hij is; wens eigenaar).
   Niet als het menu open is: dan blijft de balk vol. */
@media (max-width: 1099px) {
  .kop-in { transition: margin .35s var(--ease), padding .35s var(--ease), border-radius .35s var(--ease), background-color .3s, box-shadow .3s; border: 1px solid transparent; }
  body:not(.menu-open) .kop.is-vast { background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  body:not(.menu-open) .kop.is-vast .kop-in { margin: 8px 10px 0; height: calc(100% - 8px); padding: 0 6px 0 16px; border-radius: 999px;
    background: rgba(12,39,33,.74); border-color: rgba(255,255,255,.16); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
    box-shadow: 0 16px 34px -18px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.12); }
  body:not(.menu-open) .kop.is-vast:not(.kop-licht) .kop-in { background: rgba(255,255,255,.86); border-color: rgba(12,39,33,.1); }
  body:not(.menu-open) .kop.is-vast .merk-logo { height: 22px; }
  body:not(.menu-open) .kop.is-vast .kop-bel-m, body:not(.menu-open) .kop.is-vast .kop-menu { transform: scale(.88); }
}

/* mobiel: alles nog hoger, zodat bij binnenkomst de hele keuzekaart met alle laadpalen in beeld staat (wens eigenaar) */
@media (max-width: 767px) {
  .held-foto { padding-top: calc(var(--kop-h) + 2px); }
  .held-foto .held-tekst { padding-top: 10px; }
  .held-foto .h1 { margin: 0 0 8px; font-size: clamp(2.3rem, 10.5vw, 3.4rem); }
  .held-sub-pil { gap: 7px; }
  .held-foto .keuzekaart { margin-top: 26px; padding: 20px 12px 12px; }
  .held-foto .kk-kop { font-size: 1.4rem; margin-bottom: 10px; }
  .held-foto .kk-raster { gap: 6px; }
  .held-foto .kk-tegel { min-height: 104px; padding: 8px 4px; border-radius: 14px; }
  .held-foto .kk-tegel img { height: 48px; width: 60px; }
  .held-foto .kk-tegel strong { font-size: .8rem; margin-top: 2px; }
  .held-foto .kk-tegel small { font-size: .72rem; padding: 2px 8px; margin-top: 2px; }
  .held-foto .kk-lamp { width: 44px; height: 44px; margin: 0; }
  .held-foto .keuzekaart .sn-zweef { font-size: .74rem; padding: 6px 11px 6px 9px; }
}

/* keuzekaart + glazen zekerhedenbalk eronder (vervangt de zwevende pills) */
.kk-wrap { position: relative; z-index: 2; display: grid; gap: 12px; width: 100%; }
.kk-voordelen { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; margin: 0; padding: 11px 16px; list-style: none; border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.04)); border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 16px 32px -20px rgba(0,0,0,.6); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); }
.kk-voordelen li { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; font-weight: 750; color: var(--lime); white-space: nowrap; }
.kk-voordelen .ico { width: 16px; height: 16px; color: var(--lime); flex: none; }
.keuzekaart { padding-top: 22px; padding-bottom: 22px; }
@media (min-width: 1024px) {
  .held-foto .kk-wrap { justify-self: end; max-width: 620px; }
  .held-foto .kk-wrap .keuzekaart { max-width: none; }
  .kk-voordelen { flex-wrap: nowrap; justify-content: space-between; gap: 12px; padding: 12px 20px; }
  .kk-voordelen li { font-size: .9rem; }
}
@media (min-width: 1280px) { .held-foto .kk-wrap { max-width: 660px; } }
@media (max-width: 1023px) { .held-foto .kk-wrap { margin-top: 22px; } .held-foto .keuzekaart { margin-top: 0; } }
@media (max-width: 767px) { .held-foto .keuzekaart { padding: 16px 12px 12px; } .kk-voordelen { gap: 4px 12px; padding: 9px 12px; } .kk-voordelen li { font-size: .74rem; } .kk-voordelen .ico { width: 14px; height: 14px; } }

/* zekerheden als losse, zwevende glazen pills onder de kaart (zoals Daktrots; wens eigenaar) */
.kk-voordelen, .held-foto .kk-voordelen { background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 4px 0 0; gap: 10px; justify-content: center; flex-wrap: wrap; }
.kk-voordelen li { padding: 8px 14px 8px 11px; border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.05)); border: 1px solid rgba(255,255,255,.2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 14px 26px -14px rgba(0,0,0,.6); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  transform: rotate(var(--r, 0deg)); animation: zweef 4.6s ease-in-out infinite alternate; }
.kk-voordelen li:nth-child(1) { --r: -3deg; }
.kk-voordelen li:nth-child(2) { --r: 2deg; animation-delay: -2.3s; }
.kk-voordelen li:nth-child(3) { --r: -1.5deg; animation-delay: -1.2s; }
@media (min-width: 1024px) { .kk-voordelen, .held-foto .kk-voordelen { flex-wrap: nowrap; justify-content: center; gap: 12px; } .kk-voordelen li { font-size: .88rem; } }
@media (prefers-reduced-motion: reduce) { .kk-voordelen li { animation: none; } }
.review .kk-voordelen li { animation: none; }

/* zekerheden rondom de kaart, op de randen (zoals Daktrots), als donkere glazen pills met lime tekst (wens eigenaar) */
.kk-wrap { gap: 0; }
.kk-voordelen, .held-foto .kk-voordelen { position: absolute; inset: 0; z-index: 3; display: block; margin: 0; padding: 0; pointer-events: none; }
.kk-voordelen li { position: absolute; background: linear-gradient(135deg, rgba(12,39,33,.78), rgba(12,39,33,.62)); border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 14px 26px -12px rgba(0,0,0,.6); }
.kk-voordelen li:nth-child(1) { top: -16px; right: 14px; --r: 4deg; }
.kk-voordelen li:nth-child(2) { top: -20px; left: 16px; --r: -4deg; }
.kk-voordelen li:nth-child(3) { bottom: -16px; right: 28px; --r: -3deg; }
.held-foto .keuzekaart { padding-top: 30px; padding-bottom: 28px; }
@media (min-width: 1024px) {
  .kk-voordelen li:nth-child(1) { right: -22px; top: -18px; }
  .kk-voordelen li:nth-child(2) { left: 26px; top: -24px; }
  .kk-voordelen li:nth-child(3) { right: 34px; bottom: -18px; }
  .held-foto .keuzekaart { padding-top: 38px; padding-bottom: 34px; }
}
@media (max-width: 479px) { .kk-voordelen li:nth-child(2) { display: none; } }

/* badge onder de productfoto: in de tekstkolom, boven de naam (niet meer over de foto) */
.tl-tekst .tl-badge, .tl-tekst > .tl-badge { position: static; display: inline-block; margin: 0 0 8px; top: auto; left: auto; }

/* ── SEO-pagina's: artikel, in het kort, laadpaalrij, kennisbank, plaatsen (27-10-2026) ── */
.pz { font-size: 1.05rem; line-height: 1.7; max-width: 70ch; min-width: 0; }
.pz > p, .pz > div > p { margin: 0 0 1em; }
.pz h2.h3 { margin: 1.6em 0 .5em; scroll-margin-top: calc(var(--kop-h) + 24px); }
.pz h3.h4 { margin: 1.4em 0 .6em; }
.pz a:not(.pil-link):not(.pm) { color: var(--kers); font-weight: 700; text-underline-offset: 3px; }
.pz-lijst { margin: 0 0 1.1em; padding-left: 1.2em; display: grid; gap: .45em; }
.pz-lijst li::marker { color: var(--kers); font-weight: 800; }
.pz .tabel-kaart, .pz .pm-rij, .pz .p-let { margin: 0 0 1.2em; }
.pz-kort { margin: 0 0 1.4em; padding: 18px 20px; border-radius: var(--r-kaart); background: linear-gradient(135deg, #F1FADF, #FFFFFF 70%); box-shadow: inset 0 0 0 1px rgba(63,125,0,.18); }
.pz-kort-kop { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-family: var(--f-kop); font-weight: 800; text-transform: uppercase; font-size: 1.25rem; letter-spacing: .02em; }
.pz-kort-kop .ico { width: 22px; height: 22px; color: var(--rood); }
.pz-kort .vinklijst li { font-size: .98rem; line-height: 1.5; }
.pz-toc { margin: 4px 0 18px; padding-left: 1.3em; display: grid; gap: 6px; font-size: .95rem; }
.pz-toc a { color: var(--ink); text-decoration: none; font-weight: 650; }
.pz-toc a:hover { color: var(--kers); text-decoration: underline; }
.pz-toc li::marker { color: var(--kers); font-weight: 800; }
.pz-zij-prijs { display: flex; align-items: baseline; gap: 8px; margin: 2px 0 10px; }
.pz-zij-prijs small { color: var(--grijs); font-weight: 700; }
.pz-zij-prijs strong { font-family: var(--f-kop); font-size: 2.4rem; font-weight: 800; line-height: 1; }
.zijkaart .vinklijst { margin-bottom: 16px; }

.pm-rij { list-style: none; padding: 0; display: grid; gap: 10px; }
.pm { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 14px; padding: 10px 16px 10px 10px; border-radius: 16px; background: var(--kaart);
  box-shadow: 0 0 0 1px var(--lijn), 0 10px 20px -18px rgba(12,39,33,.5); color: var(--ink); text-decoration: none; transition: transform .25s var(--ease), box-shadow .2s; }
.pm:hover { transform: translateY(-2px); box-shadow: 0 0 0 1.5px var(--rood), 0 16px 26px -18px rgba(12,39,33,.55); }
.pm-foto { display: grid; place-items: center; height: 56px; border-radius: 12px; background: var(--sneeuw-2); }
.pm-foto img { height: 50px; width: auto; object-fit: contain; }
.pm-tekst { display: grid; line-height: 1.25; }
.pm-tekst strong { font-weight: 800; }
.pm-tekst small { color: var(--grijs); font-size: .84rem; }
.pm-prijs { font-family: var(--f-kop); font-size: 1.4rem; font-weight: 800; white-space: nowrap; }

.pil-rij { display: flex; flex-wrap: wrap; gap: 8px; }
.pil-link { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; border-radius: 999px; background: var(--kaart); box-shadow: inset 0 0 0 1px var(--lijn);
  color: var(--ink); text-decoration: none; font-weight: 750; font-size: .92rem; transition: box-shadow .2s, transform .2s var(--ease); }
.pil-link .ico { width: 17px; height: 17px; color: var(--kers); }
.pil-link:hover { box-shadow: inset 0 0 0 1.5px var(--rood); transform: translateY(-1px); }
.pil-link-donker { background: var(--ink); color: #fff; box-shadow: none; }
.pil-link-donker .ico { color: var(--rood); }
.pl-wijken { list-style: none; padding: 0; margin: 0 0 1em; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.pl-wijken li { display: flex; align-items: center; gap: 8px; font-weight: 650; }
.pl-wijken .ico { width: 18px; height: 18px; color: var(--kers); flex: none; }

.gb-raster { list-style: none; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.gb-kaart { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 16px 18px; border-radius: 18px; background: var(--kaart);
  box-shadow: 0 0 0 1px var(--lijn), var(--schaduw); color: var(--ink); text-decoration: none; transition: transform .25s var(--ease), box-shadow .2s; }
.gb-kaart > .ico:first-child { width: 26px; height: 26px; color: var(--kers); }
.gb-kaart span { display: grid; line-height: 1.25; }
.gb-kaart strong { font-family: var(--f-kop); font-size: 1.35rem; font-weight: 800; text-transform: uppercase; }
.gb-kaart small { color: var(--grijs); font-size: .86rem; }
.gb-kaart:hover { transform: translateY(-3px); box-shadow: 0 0 0 1.5px var(--rood), var(--schaduw-2); }

.kb-raster { list-style: none; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.kb-kaart { display: grid; height: 100%; grid-template-rows: auto 1fr; border-radius: var(--r-kaart); overflow: hidden; background: var(--kaart);
  box-shadow: 0 0 0 1px var(--lijn), var(--schaduw); color: var(--ink); text-decoration: none; transition: transform .3s var(--ease), box-shadow .2s; }
.kb-foto { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.kb-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.kb-tekst { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; }
.kb-tekst .h4 { margin: 0; }
.kb-tekst > span:not(.kb-meer) { color: var(--grijs); font-size: .95rem; line-height: 1.5; }
.kb-meer { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; color: var(--kers); }
.kb-meer .ico { width: 18px; height: 18px; }
.kb-kaart:hover { transform: translateY(-3px); box-shadow: 0 0 0 1.5px var(--rood), var(--schaduw-2); }
.kb-kaart:hover .kb-foto img { transform: scale(1.04); }
@media (max-width: 767px) { .pl-wijken { grid-template-columns: 1fr 1fr; } .pm { grid-template-columns: 52px 1fr auto; gap: 10px; } .pm-prijs { font-size: 1.2rem; } }

/* ── Ads-landingspagina's (/lp/): formulier in de hero, geen menu ── */
.kop-lp .kop-in { justify-content: space-between; }
.kop-lp .merk { pointer-events: none; }
.lp-kaart { position: relative; z-index: 2; width: 100%; max-width: 520px; padding: 26px 22px 22px; }
.lpf-kop { margin: 0 0 6px; font-family: var(--f-kop); text-transform: uppercase; font-weight: 800; font-size: 2rem; line-height: 1; }
.lpf-kop span { color: var(--kers); }
.lpf-sub { margin: 0 0 14px; color: var(--grijs); }
.lpf-label { margin: 0 0 8px; font-size: .84rem; font-weight: 750; color: var(--grijs); }
.lp-kaart .kies-rij { margin-bottom: 14px; }
.lp-kaart .kies span { padding: 8px 12px; font-size: .84rem; }
.lp-kaart .velden { margin-bottom: 12px; }
.lpf-paal { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 12px; margin: 0 0 14px; padding: 10px 14px 10px 10px; border-radius: 16px; background: var(--kaart); box-shadow: 0 0 0 1px var(--lijn); }
.lpf-paal img { height: 56px; width: 64px; object-fit: contain; }
.lpf-paal span { display: grid; line-height: 1.2; }
.lpf-paal small { color: var(--grijs); font-size: .78rem; font-weight: 700; }
.lpf-paal strong { font-weight: 800; }
.lpf-paal b { padding: 4px 12px; border-radius: 999px; background: var(--lime); font-family: var(--f-kop); font-size: 1.3rem; font-weight: 800; }
.lpf-noot { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 12px 0 0; font-size: .8rem; color: var(--grijs); }
.lpf-noot .ico { width: 15px; height: 15px; color: var(--kers); }
.lp-usp { list-style: none; padding: 0; margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.lp-usp li { display: inline-flex; align-items: center; gap: 7px; color: #fff; font-weight: 700; font-size: .95rem; }
.lp-usp .ico { width: 18px; height: 18px; color: var(--lime); }
.lp-podium { height: 380px; }
.voet-lp .voet-onder { border-top: 0; }
@media (min-width: 1024px) { .held-lp .lp-kaart { justify-self: end; margin-top: 0; align-self: center; } }
@media (max-width: 1023px) { .held-lp .lp-kaart { margin: 22px auto 0; } .lp-usp { justify-content: center; } .lp-podium { height: 280px; } }
.held-foto .held-sheet.lp-kaart { background: var(--sneeuw); -webkit-backdrop-filter: none; backdrop-filter: none; }

/* ── cookiebanner (Consent Mode v2) ── */
.cb { position: fixed; z-index: 90; left: 16px; bottom: 16px; width: min(440px, calc(100vw - 32px)); display: grid; gap: 12px; padding: 16px 18px; border-radius: 20px;
  background: rgba(12,39,33,.94); color: #fff; box-shadow: 0 24px 50px -20px rgba(0,0,0,.6), inset 0 0 0 1px rgba(144,229,9,.22);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); animation: cbIn .45s var(--ease); }
.cb[hidden] { display: none; }
@keyframes cbIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.cb-tekst { margin: 0; font-size: .88rem; line-height: 1.5; color: rgba(255,255,255,.78); }
.cb-tekst strong { display: block; margin-bottom: 2px; color: #fff; font-weight: 800; }
.cb-tekst a { color: var(--lime); text-underline-offset: 2px; }
.cb-knoppen { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cb-knop { padding: 11px 14px; border-radius: 999px; border: 1px solid rgba(144,229,9,.45); background: rgba(144,229,9,.08); color: #fff; font: 800 .88rem/1 var(--f-tekst); cursor: pointer; transition: background .2s, color .2s; }
.cb-knop:hover, .cb-ja { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.cb-ja:hover { background: var(--rood-2); }
.voet-cb { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
@media (max-width: 767px) { .cb { left: 10px; right: 10px; bottom: 10px; width: auto; } body.cb-open .wg, body.cb-open .actiebalk { opacity: 0; pointer-events: none; } }
.voet-plaatsen { position: relative; margin: 34px 0 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: .86rem; line-height: 1.9; color: rgba(255,255,255,.55); }
.voet-plaatsen a { color: rgba(255,255,255,.75); text-decoration: none; }
.voet-plaatsen a:hover { color: var(--lime); }
.pz-cta { margin: 1.8em 0 0; padding: 20px 22px; border-radius: var(--r-kaart); background: var(--ink); color: #fff; display: grid; gap: 14px; justify-items: start; }
.pz-cta p { margin: 0; color: rgba(255,255,255,.85); }
.pz-cta strong { color: #fff; }
.pz .pz-cta a { color: var(--lime); }
.pz-bronnen a { word-break: break-word; }
.gb-prov { display: flex; align-items: center; gap: 10px; margin: 34px 0 14px; }
.gb-prov .ico { width: 26px; height: 26px; color: var(--kers); }
.gb-lead { margin: 0 0 4px; }
