:root { --groen:#1f9d55; --donker:#14532d; --rood:#b91c1c;
  --zacht:#e8f5ec; --licht:#f6faf7; --rand:#d1e7d9;
  /* spacing-schaal: alle verticale afstanden komen hieruit */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px;
  --breedte:600px; --zij:32px; --zacht-overgang:.25s ease; }
* { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background:#f3f7f4 linear-gradient(180deg, #e8f5ec 0, #f3f7f4 320px, #f3f7f4 100%) no-repeat; color:#1b1b1b; min-height:100vh; display:flex; align-items:flex-start; justify-content:center; padding:var(--s7) var(--s5); line-height:1.6; }
.kaart { background:#fff; max-width:var(--breedte); width:100%; border-radius:18px; box-shadow:0 1px 2px rgba(20,83,45,.06), 0 12px 36px rgba(20,83,45,.10); overflow:hidden; }
.kop { background:linear-gradient(160deg, var(--groen) 0%, var(--groen) 55%, color-mix(in srgb, var(--groen) 82%, var(--donker)) 100%); color:#fff; padding:var(--s6) var(--zij) calc(var(--s6) + 18px); position:relative; }
/* zachte, ronde overgang van de groene kop naar de inhoud in plaats van een harde rand */
.kop::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:22px; background:#fff; border-radius:22px 22px 0 0; }
.kop h1, .kop .merk { margin:0; line-height:0; }
/* kleurregel: op groen is het logo/de belettering wit, op wit is het groen (#1f9d55) */
.logo-kop { display:inline-block; transition:transform var(--zacht-overgang), opacity var(--zacht-overgang); }
a:hover .logo-kop { transform:translateY(-1px); opacity:.92; }
.logo-kop img { display:block; height:72px; width:auto; }
.kop p { margin-top:var(--s4); opacity:.97; font-size:1.1rem; line-height:1.45; max-width:34em; }
.kop nav { position:absolute; top:var(--s4); right:var(--s5); display:flex; gap:var(--s4); }
.kop nav a { color:#fff; font-weight:600; font-size:.9rem; opacity:.92; border-bottom:2px solid transparent; padding-bottom:2px; transition:opacity var(--zacht-overgang), border-color var(--zacht-overgang); }
.kop nav a:hover, .kop nav a:focus-visible { opacity:1; text-decoration:none; border-color:rgba(255,255,255,.7); }
.inhoud { padding:var(--s3) var(--zij) var(--s6); line-height:1.6; }
.inhoud h1.pagina { font-size:1.6rem; color:var(--groen); margin-bottom:var(--s3); line-height:1.25; }
.inhoud h2 { font-size:1rem; color:var(--groen); text-transform:uppercase; letter-spacing:.08em; margin:var(--s7) 0 var(--s3); line-height:1.3; }
/* zachte scheidingslijn boven elke nieuwe sectie: vloeit uit naar de randen */
.inhoud h2::before { content:""; display:block; height:1px; margin-bottom:var(--s5); background:linear-gradient(90deg, transparent, var(--rand) 15%, var(--rand) 85%, transparent); }
.inhoud h2:first-child::before, .inhoud h1 + h2::before, .inhoud .cta h2::before { display:none; }
.inhoud h1.pagina + p, .inhoud h1.pagina + p + p { margin-top:var(--s3); }
.inhoud h2:first-child { margin-top:var(--s2); }
.inhoud p + p { margin-top:var(--s3); }
ul.tags { list-style:none; display:flex; flex-wrap:wrap; gap:var(--s2); margin-top:var(--s4); }
ul.tags li { background:var(--zacht); color:var(--donker); padding:6px 14px; border-radius:999px; font-size:.95rem; transition:background-color var(--zacht-overgang), transform var(--zacht-overgang); }
ul.tags li:hover { background:#dcefe2; transform:translateY(-1px); }
ul.tags li small { font-size:.75rem; background:var(--groen); color:#fff; border-radius:999px; padding:1px 7px; margin-left:4px; vertical-align:1px; }
dl.diensten { margin-top:var(--s3); }
dl.diensten dt { font-weight:600; color:var(--donker); margin-top:var(--s4); }
dl.diensten dt:first-child { margin-top:0; }
dl.diensten dd { margin-top:2px; }
.ondersteunend { font-size:.92rem; color:#4b5563; margin-top:var(--s4); }
a { color:var(--groen); font-weight:600; text-decoration:none; transition:color var(--zacht-overgang); }
a:hover { color:var(--donker); }
a:hover { text-decoration:underline; }
.links-klein { font-size:.92rem; margin-top:var(--s6); padding:var(--s4) var(--s5); background:linear-gradient(180deg, var(--licht), #fff); border:1px solid #e3f0e7; border-radius:12px; }
.links-klein p { margin:0 0 var(--s1); }
.links-klein p:last-child { margin-bottom:0; }
form.aanvraag { display:grid; gap:var(--s4); margin-top:var(--s4); min-width:0; max-width:100%; }
form.aanvraag label { display:grid; gap:4px; font-size:.9rem; font-weight:600; color:var(--donker); }
form.aanvraag label span.opt { font-weight:400; color:#6b7280; }
form.aanvraag input:not([type="radio"]):not([type="checkbox"]), form.aanvraag textarea, form.aanvraag select { font:inherit; font-weight:400; padding:10px 12px; border:1px solid #cfe3d6; border-radius:10px; background:#fbfdfb; color:#1b1b1b; width:100%; transition:border-color var(--zacht-overgang), box-shadow var(--zacht-overgang), background-color var(--zacht-overgang); }
form.aanvraag input:not([type="radio"]):not([type="checkbox"]):hover, form.aanvraag textarea:hover, form.aanvraag select:hover { border-color:#a9d3b8; }
form.aanvraag input:not([type="radio"]):not([type="checkbox"]):focus, form.aanvraag textarea:focus, form.aanvraag select:focus { outline:2px solid var(--groen); outline-offset:1px; border-color:var(--groen); background:#fff; box-shadow:0 0 0 4px rgba(31,157,85,.12); }
form.aanvraag textarea { min-height:110px; resize:vertical; }
form.aanvraag fieldset { border:0; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.95rem; min-width:0; max-width:100%; }
form.aanvraag legend { font-size:.9rem; font-weight:600; color:var(--donker); margin-bottom:4px; }
form.aanvraag fieldset label { display:flex; align-items:center; gap:6px; font-weight:400; color:#1b1b1b; }
form.aanvraag fieldset input { width:auto; }
form.aanvraag button { justify-self:start; background:var(--groen); color:#fff; border:0; border-radius:999px; padding:12px 24px; margin-top:var(--s1); font:inherit; font-weight:700; cursor:pointer; box-shadow:0 2px 8px rgba(31,157,85,.25); transition:background-color var(--zacht-overgang), transform var(--zacht-overgang), box-shadow var(--zacht-overgang); }
form.aanvraag button:hover { background:var(--donker); transform:translateY(-1px); box-shadow:0 6px 14px rgba(20,83,45,.25); }
.hp { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.melding { display:none; border-radius:10px; padding:10px 14px; font-size:.95rem; margin-top:var(--s4); }
.melding.ok { background:#e8f5ec; color:var(--donker); border:1px solid #9fd5b3; }
.melding.fout { background:#fdecec; color:var(--rood); border:1px solid #f3b4b4; }
.melding.toon { display:block; }
.leeg { background:var(--licht); border:1px dashed #cfe3d6; border-radius:12px; padding:var(--s5); color:#4b5563; margin-top:var(--s4); }
.merken { border-top:1px solid transparent; border-image:linear-gradient(90deg, transparent, var(--rand) 15%, var(--rand) 85%, transparent) 1; background:linear-gradient(180deg, #fff 0, var(--licht) 100%); padding:var(--s5) var(--s5) var(--s3); display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:14px 22px; }
.merken img { height:30px; width:auto; max-width:120px; object-fit:contain; filter:grayscale(1) contrast(1.15); opacity:.6; transition:filter .2s, opacity .2s; }
.merken img:hover, .merken img:focus { filter:none; opacity:1; }
.merken img.wallbox { height:44px; }
/* NexBlue levert alleen een witte versie: tonen op het eigen zwarte vlak van het merk */
.merken img.nexblue { height:18px; padding:6px 10px; background:#111; border-radius:6px; box-sizing:content-box; }
.merken img.zaptec { height:34px; }
.voet { padding:var(--s3) var(--zij) var(--s5); font-size:.8rem; color:#6b7280; text-align:center; background:var(--licht); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:520px) {
  :root { --zij:20px; }
  body { padding:var(--s3) 10px var(--s5); }
  .kop { padding:52px var(--zij) calc(var(--s5) + 16px); }
  .kop::after { height:18px; border-radius:18px 18px 0 0; }
  .kop nav { right:var(--zij); gap:var(--s3); }
  .logo-kop img { height:56px; }
  .inhoud h2 { margin-top:var(--s6); }
  .inhoud h2::before { margin-bottom:var(--s4); }
  .inhoud { padding:var(--s2) var(--zij) var(--s5); }
  .merken { gap:12px 16px; padding:16px 14px 4px; }
  .merken img { height:26px; }
  .merken img.wallbox { height:38px; }
  .merken img.nexblue { height:15px; padding:5px 8px; }
}
/* laadpalen-componenten: alleen zachtere overgangen, geen andere opmaak */
.product, .dienst { transition:box-shadow var(--zacht-overgang), border-color var(--zacht-overgang); }
.product:hover, .dienst:hover { border-color:#b9dcc6; box-shadow:0 6px 18px rgba(20,83,45,.08); }
.inhoud .cta { background:linear-gradient(135deg, var(--groen) 0%, color-mix(in srgb, var(--groen) 80%, var(--donker)) 100%); margin-top:var(--s6); }
.cta a.knop { transition:transform var(--zacht-overgang), box-shadow var(--zacht-overgang); }
.cta a.knop:hover { text-decoration:none; transform:translateY(-1px); box-shadow:0 6px 14px rgba(0,0,0,.15); }
@media (prefers-reduced-motion:no-preference) {
  html { scroll-behavior:smooth; }
  .kaart { animation:kaart-in .45s ease-out both; }
  @keyframes kaart-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}
.inhoud .cta, .inhoud .cta h2, .inhoud .cta p { color:#fff; }
.inhoud .cta a.knop:not(.rand) { color:var(--groen); }
/* akkoord-vinkje bij het aanvraagformulier: klein, normaal gewicht, rustig */
form.aanvraag label.akkoord { display:block; padding-left:24px; text-indent:-24px; font-size:.85rem; font-weight:400; color:#4b5563; line-height:1.4; cursor:pointer; }
form.aanvraag label.akkoord input { width:auto; margin:0 8px 0 0; vertical-align:-2px; text-indent:0; accent-color:var(--groen); box-shadow:none; }
form.aanvraag label.akkoord input:focus-visible { outline:2px solid var(--groen); outline-offset:2px; }
form.aanvraag label.akkoord a { font-weight:600; }
form.aanvraag p.privacy-noot { font-size:.85rem; font-weight:400; color:#4b5563; line-height:1.4; margin-top:var(--s1); }
form.aanvraag p.privacy-noot a { font-weight:600; }
/* juridische pagina's (privacy, voorwaarden) */
.juridisch h1.pagina + p em { color:#6b7280; font-size:.9rem; }
.juridisch ol, .juridisch ul { margin:var(--s2) 0 0 var(--s5); }
.juridisch li { margin-top:var(--s1); }
.juridisch li ul { margin-top:var(--s1); }
.juridisch table { width:100%; border-collapse:collapse; margin-top:var(--s3); font-size:.92rem; }
.juridisch th, .juridisch td { text-align:left; vertical-align:top; padding:8px 10px; border-bottom:1px solid var(--rand); }
.juridisch th { color:var(--groen); background:var(--licht); }
mark.invullen { background:#fff3bf; color:#5c4400; border-radius:4px; padding:0 3px; }
/* hoofdmenu: laadpalen als primair item (wit vlak op groen = groene tekst) */
.kop nav a.primair { background:#fff; color:var(--groen); opacity:1; border:0; padding:3px 12px; border-radius:999px; }
.kop nav a.primair:hover, .kop nav a.primair:focus-visible { background:var(--zacht); color:var(--groen); }
/* groen CTA-blok (ook gebruikt op home en renovatie; laadpalen heeft dezelfde stijl inline) */
.cta { border-radius:12px; padding:20px 22px; margin-top:var(--s6); color:#fff; }
.inhoud .cta h2 { color:#fff; margin-top:0; }
.inhoud .cta p { margin-top:var(--s2); }
.cta a.knop { display:inline-block; background:#fff; border-radius:999px; padding:10px 20px; margin:12px 10px 0 0; }
.cta a.knop.rand { background:transparent; color:#fff; border:2px solid #fff; }
.inhoud .lead { margin-top:var(--s3); }
/* kleine tekstlinks in de voet */
.voet .voet-links { margin-top:var(--s1); font-size:.78rem; }
.voet .voet-links a { font-weight:600; }
.inhoud ul.voordelen { margin:var(--s2) 0 0 var(--s5); }
.inhoud ul.voordelen li { margin-top:var(--s1); }
/* beloftenbalk: compacte groene balk bovenaan elke pagina, boven de kop (wit op groen) */
body { flex-direction:column; align-items:center; }
.beloftenbalk { align-self:stretch; background:var(--groen); color:#fff; margin:calc(-1 * var(--s7)) calc(-1 * var(--s5)) var(--s5); padding:7px var(--s4); }
.beloftenbalk ul { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:4px 22px; max-width:960px; margin:0 auto; font-size:.84rem; font-weight:600; line-height:1.35; }
.beloftenbalk li { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.beloftenbalk .vink { flex:none; }
/* zo werkt het: 4 genummerde stappen */
ol.stappen { list-style:none; counter-reset:stap; display:grid; gap:var(--s3); margin-top:var(--s4); }
ol.stappen li { counter-increment:stap; position:relative; padding:12px 16px 12px 58px; background:var(--licht); border:1px solid #e3f0e7; border-radius:12px; font-size:.95rem; }
ol.stappen li::before { content:counter(stap); position:absolute; left:14px; top:12px; width:30px; height:30px; border-radius:50%; background:var(--groen); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:.95rem; }
ol.stappen li strong { display:block; color:var(--donker); }
/* over DYNO */
.over { display:grid; grid-template-columns:180px 1fr; gap:var(--s5); align-items:start; margin-top:var(--s4); }
.over-foto { width:100%; height:auto; border-radius:12px; display:block; border:1px solid #e3f0e7; }
.over p + p { margin-top:var(--s3); }
/* partners: grijs, kleur bij hover (zoals .merken); uniforme hoogte; wrappen zonder overflow */
ul.partners { list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:var(--s3); margin-top:var(--s4); }
ul.partners a.partner { display:flex; align-items:center; justify-content:center; gap:5px; height:64px; padding:6px 10px; overflow:hidden; background:#fff; border:1px solid var(--rand); border-radius:12px; transition:border-color var(--zacht-overgang), box-shadow var(--zacht-overgang), transform var(--zacht-overgang); }
ul.partners a.partner:hover, ul.partners a.partner:focus-visible { text-decoration:none; border-color:#b9dcc6; box-shadow:0 6px 18px rgba(20,83,45,.08); transform:translateY(-1px); }
ul.partners img { display:block; width:auto; max-width:100%; height:28px; object-fit:contain; filter:grayscale(1) contrast(1.15); opacity:.65; transition:filter .2s, opacity .2s; }
ul.partners a.partner:hover img, ul.partners a.partner:focus-visible img { filter:none; opacity:1; }
ul.partners img.icoon { height:20px; }
ul.partners img.dgs { height:34px; }
ul.partners img.solarwatt { height:16px; }
ul.partners img.senlyte { height:26px; }
ul.partners img.shell { height:34px; }
ul.partners img.zaptec { height:26px; }
ul.partners img.nexblue { height:14px; padding:6px 8px; background:#111; border-radius:6px; box-sizing:content-box; }
ul.partners img.alfen { height:22px; }
ul.partners img.easee { height:16px; }
ul.partners .naam { font-weight:700; line-height:1; white-space:nowrap; color:#6b7280; transition:color .2s; }
ul.partners .naam.laadkompas { font-size:.86rem; letter-spacing:-.01em; }
ul.partners .naam.tesla { font-size:.8rem; letter-spacing:.24em; margin-right:-.24em; }
ul.partners .naam.senlyte { font-size:.86rem; letter-spacing:-.01em; }
ul.partners a.partner:hover .naam.laadkompas, ul.partners a.partner:focus-visible .naam.laadkompas { color:#1b6b5d; }
ul.partners a.partner:hover .naam.tesla, ul.partners a.partner:focus-visible .naam.tesla { color:#171a20; }
ul.partners a.partner:hover .naam.senlyte, ul.partners a.partner:focus-visible .naam.senlyte { color:#a66b12; }
.partnerlijst dd { color:#374151; }
@media (max-width:520px) {
  .beloftenbalk { margin:calc(-1 * var(--s3)) -10px var(--s3); padding:6px 10px; }
  .beloftenbalk ul { font-size:.72rem; gap:2px 12px; }
  .beloftenbalk .vink { width:12px; height:12px; }
  ol.stappen li { padding:10px 14px 10px 52px; }
  ol.stappen li::before { left:12px; top:10px; width:28px; height:28px; }
  .over { grid-template-columns:1fr; }
  .over-foto { max-width:260px; }
  ul.partners { grid-template-columns:repeat(2, 1fr); gap:var(--s2); }
  ul.partners a.partner { height:58px; padding:5px 8px; }
  ul.partners img { height:24px; }
  ul.partners img.icoon { height:18px; }
  ul.partners img.dgs { height:28px; }
  ul.partners img.shell { height:30px; }
  ul.partners img.nexblue { height:12px; padding:5px 7px; }
}
/* 'Under construction'-lint linksboven (schakelaar: UNDER_CONSTRUCTION in tools/build.py).
   Klassieke diagonale hoeklint: het midden ligt op de diagonaal, zo blijft hij in de hoek. */
.uc-lint { position:fixed; z-index:9999; top:131px; left:-115px; width:520px; padding:7px 0; transform:rotate(-45deg); background:#c62828; color:#fff; font-weight:700; font-size:.8rem; line-height:1.2; text-align:center; letter-spacing:.02em; box-shadow:0 2px 8px rgba(0,0,0,.25); pointer-events:none; }
@media (max-width:520px) {
  .uc-lint { top:41px; left:-93px; width:300px; padding:4px 0; font-size:.56rem; }
  .uc-lint .uc-2 { display:block; }
}
/* tariefblok (schouwing) */
.prijsblok { border:1px solid var(--rand); border-radius:12px; padding:14px 18px; margin-top:var(--s3); background:#fbfdfb; }
.prijsblok h3 { font-size:1.02rem; color:var(--donker); margin-bottom:var(--s2); }
.prijsblok p.tarief { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:4px 12px; margin-top:var(--s2); }
.prijsblok p.tarief strong { color:var(--donker); background:var(--zacht); border-radius:999px; padding:4px 12px; }
/* kabelhouder en laadkabel (optioneel) in het aanvraagformulier: beeldkaartjes met radioknoppen */
form.aanvraag fieldset.extra { display:block; border:1px solid var(--rand); border-radius:12px; padding:12px 14px 14px; background:var(--licht); max-width:100%; min-width:0; box-sizing:border-box; }
form.aanvraag fieldset.extra legend { padding:0 6px; margin-left:-6px; }
form.aanvraag fieldset.extra .hulp { font-size:.85rem; color:#4b5563; margin:0 0 var(--s3); }
form.aanvraag fieldset.extra .sub { grid-column:1 / -1; font-size:.9rem; font-weight:600; color:var(--donker); }
form.aanvraag fieldset.extra .opties { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:var(--s2); min-width:0; max-width:100%; }
form.aanvraag fieldset.extra label.optie { display:block; position:relative; cursor:pointer; margin:0; font-weight:400; min-width:0; max-width:100%; }
form.aanvraag fieldset.extra label.optie input[type="radio"] { position:absolute; opacity:0; width:1px; height:1px; margin:0; padding:0; border:0; clip:rect(0,0,0,0); }
form.aanvraag fieldset.extra .optie-kaart { position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; height:100%; min-width:0; max-width:100%; padding:8px 6px 10px; background:#fff; border:2px solid var(--rand); border-radius:12px; text-align:center; box-sizing:border-box; transition:border-color var(--zacht-overgang), box-shadow var(--zacht-overgang); }
form.aanvraag fieldset.extra .optie-kaart picture { display:block; line-height:0; max-width:100%; }
form.aanvraag fieldset.extra .optie-kaart img { display:block; width:96px; max-width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:8px; }
form.aanvraag fieldset.extra .optie-naam { font-size:.8rem; font-weight:600; color:#1b1b1b; line-height:1.25; }
form.aanvraag fieldset.extra label.optie:hover .optie-kaart { border-color:#a9d3b8; }
/* Alleen :checked = geselecteerd (groene rand + vink). :focus-visible = losse outline, geen geselecteerd-stijl. */
form.aanvraag fieldset.extra label.optie input[type="radio"]:checked + .optie-kaart { border-color:var(--groen); box-shadow:0 0 0 3px rgba(31,157,85,.15); }
form.aanvraag fieldset.extra label.optie input[type="radio"]:checked + .optie-kaart .optie-naam { color:var(--groen); }
form.aanvraag fieldset.extra label.optie input[type="radio"]:checked + .optie-kaart::after { content:"\2713"; position:absolute; top:6px; right:6px; width:20px; height:20px; border-radius:50%; background:var(--groen); color:#fff; font-size:.75rem; font-weight:700; display:flex; align-items:center; justify-content:center; pointer-events:none; }
form.aanvraag fieldset.extra label.optie input[type="radio"]:focus-visible + .optie-kaart { outline:2px solid var(--groen); outline-offset:2px; }
form.aanvraag fieldset.extra fieldset.lb-keuze { border:0; padding:0; margin:var(--s3) 0 0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; max-width:100%; min-width:0; }
form.aanvraag fieldset.extra fieldset.lb-keuze > legend.sub { flex:0 0 100%; width:100%; max-width:100%; padding:0; float:none; font-size:.9rem; font-weight:600; color:var(--donker); margin:0 0 6px; }
form.aanvraag fieldset.extra label.pil { position:relative; display:inline-flex; flex:0 1 auto; min-width:0; max-width:100%; cursor:pointer; margin:0; font-weight:500; color:#1b1b1b; }
form.aanvraag fieldset.extra label.pil input[type="radio"] { position:absolute; opacity:0; width:1px; height:1px; margin:0; padding:0; border:0; clip:rect(0,0,0,0); }
form.aanvraag fieldset.extra label.pil span { display:inline-block; max-width:100%; padding:8px 12px; border:2px solid var(--rand); border-radius:999px; background:#fff; font-size:.88rem; color:#374151; white-space:normal; transition:border-color var(--zacht-overgang), background var(--zacht-overgang), color var(--zacht-overgang); box-sizing:border-box; }
form.aanvraag fieldset.extra label.pil:hover span { border-color:#a9d3b8; }
form.aanvraag fieldset.extra label.pil input[type="radio"]:checked + span { border-color:var(--groen); background:var(--zacht); color:var(--donker); font-weight:600; }
form.aanvraag fieldset.extra label.pil input[type="radio"]:focus-visible + span { outline:2px solid var(--groen); outline-offset:2px; }
form.aanvraag fieldset.extra label.pakket,
form.aanvraag fieldset.extra label.laadkabel { display:grid; gap:4px; margin-top:var(--s3); font-weight:600; color:var(--donker); }
form.aanvraag fieldset.extra label.pakket select,
form.aanvraag fieldset.extra label.laadkabel select { width:100%; }
form.aanvraag .bericht-hulp { margin:var(--s3) 0 var(--s2); font-size:.9rem; color:#4b5563; }
form.aanvraag textarea[name="bericht"] { min-height:14em; line-height:1.45; white-space:pre-wrap; }
@media (max-width:520px) {
  form.aanvraag textarea[name="bericht"] { min-height:15em; }
}
@media (max-width:520px) {
  form.aanvraag fieldset.extra .opties { grid-template-columns:repeat(2, 1fr); }
  form.aanvraag fieldset.extra .optie-kaart img { width:84px; height:84px; }
  form.aanvraag fieldset.extra fieldset.lb-keuze { flex-wrap:wrap; }
  form.aanvraag fieldset.extra label.pil span { white-space:normal; font-size:.82rem; padding:7px 10px; }
}

/* Montage-hulptekst onder de kaarten, over de volle breedte */
.opties .montage-hulp { grid-column:1 / -1; margin:2px 0 0; }

/* ---------- Recent door ons geïnstalleerd (laadpalen + compacte strip op de home) ---------- */
.installaties { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:var(--s4, 16px); margin:var(--s3, 12px) 0 var(--s5, 20px); }
.installatie { margin:0; }
.installatie img { display:block; width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; border-radius:14px; background:#eef5f0; box-shadow:0 1px 2px rgba(20,83,45,.06), 0 8px 24px rgba(20,83,45,.10); }
.installatie figcaption { font-size:.9rem; color:#4b5563; margin-top:8px; line-height:1.4; }
.installaties.compact { gap:10px; margin-bottom:var(--s2, 8px); }
.installaties.compact figcaption { display:none; }
.installaties.compact img { border-radius:12px; }
.installatie-klein { display:block; transition:transform var(--zacht-overgang, .2s); }
.installatie-klein:hover { transform:translateY(-2px); }
.installatie-klein:focus-visible { outline:3px solid var(--groen); outline-offset:3px; border-radius:14px; }
@media (max-width:640px) {
  .installaties:not(.compact) { grid-template-columns:1fr; gap:var(--s5, 20px); }
  .installaties:not(.compact) .installatie { max-width:420px; margin:0 auto; }
}
/* ---------- reviews (onderaan elke pagina, boven de merkenstrip/voet) ---------- */
.reviews { padding:var(--s5) var(--zij) var(--s5); background:var(--licht); border-top:1px solid var(--rand); line-height:1.5; }
.reviews h2 { font-size:1rem; color:var(--groen); text-transform:uppercase; letter-spacing:.08em; margin:0 0 var(--s2); }
.reviews-score { margin:0 0 var(--s3); font-size:1.05rem; }
.reviews-score a { color:var(--donker); }
.reviews-score a:hover, .reviews-score a:focus-visible { color:var(--groen); text-decoration:underline; }
.reviews-score .ster { color:var(--groen); font-size:1.2em; margin-right:2px; }
.reviews-lijst { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:var(--s3); }
.review { margin:0; background:#fff; border:1px solid var(--rand); border-radius:12px; padding:16px 18px; }
.review-sterren { color:var(--groen); letter-spacing:2px; font-size:.95rem; }
.review blockquote { margin:6px 0 0; }
.review blockquote p { font-size:1rem; color:#1f2937; }
.review figcaption { margin-top:8px; font-size:.82rem; color:#6b7280; }
.reviews-uitleg { margin-top:var(--s3); font-size:.78rem; color:#6b7280; }
/* ---------- winteractie ---------- */
.winter-banner { display:flex; gap:12px; align-items:flex-start; margin-top:var(--s4); padding:14px 16px; border-radius:12px; background:var(--zacht); border:1px solid var(--rand); border-left:5px solid var(--groen); color:var(--donker); font-weight:400; line-height:1.45; }
.winter-banner:hover, .winter-banner:focus-visible { text-decoration:none; background:#dcefe2; }
.winter-banner strong { color:var(--groen); }
.winter-icoon { font-size:1.5rem; line-height:1; color:var(--groen); }
.winter-meer { display:inline-block; font-weight:600; color:var(--groen); white-space:nowrap; }
.winter-blok { margin-top:var(--s4); padding:16px 18px; border-radius:12px; background:var(--zacht); border:1px solid var(--rand); border-left:5px solid var(--groen); }
.winter-blok h3 { color:var(--donker); margin:0; }
.winter-blok p { margin-top:var(--s2); }
.winter-aanbod { margin-top:var(--s4); padding:18px 20px; border-radius:12px; background:var(--zacht); border:1px solid var(--rand); border-left:5px solid var(--groen); }
.winter-aanbod .winter-label { font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; color:var(--groen); font-weight:700; }
.winter-aanbod .winter-prijs { font-size:1.15rem; color:var(--donker); margin-top:var(--s1); }
.winter-aanbod .winter-prijs s, .winter-blok s { color:#6b7280; }
.winter-aanbod .winter-prijs strong { color:var(--groen); }
ol.actievoorwaarden { margin:var(--s2) 0 0 var(--s5); font-size:.92rem; }
ol.actievoorwaarden li { margin-top:var(--s1); }
@media (max-width:520px) { .winter-banner { padding:12px 14px; } .reviews-lijst { grid-template-columns:1fr; } }

/* 21-10-2026: under construction-lint verborgen */
.uc-lint { display:none !important; }
