/* ================================================================
   kb.css — Kennisbank v4 (run 4, september 2026)
   Laadt ná rods.css en gebruikt uitsluitend de tokens daaruit (licht/donker gaat vanzelf mee).
   Gegenereerd door build-kennisbank.js; klassen beginnen met kb- om botsingen met rods.css te vermijden.
   ================================================================ */

.if-nojs{display:none}
.no-js .if-nojs{display:block}
.no-js .if-js{display:none !important}

/* ---------- Intro ---------- */
.kb-intro{padding:clamp(28px,5vw,64px) 0 clamp(36px,5vw,64px)}
.kb-intro-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center}
.kb-label{font-weight:700;color:var(--signaal-diep);font-size:15px;margin-bottom:12px}
.kb-intro h1{font-size:clamp(38px,5.2vw,68px);max-width:18ch}
.kb-lead{margin-top:20px;font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--grafiet-2);max-width:36em}
.kb-lead+.kb-lead{margin-top:12px}
.kb-meta{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.kb-meta-t{font-size:14.5px;color:var(--grafiet-2);font-weight:500;padding:0 4px}
.kb-concept{box-shadow:inset 0 0 0 1px var(--geel);color:var(--geel-diep);background:transparent}
.kb-held{margin:0}
.kb-held img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-l);background:var(--kalk-2)}
.kb-held figcaption{margin-top:10px;font-size:13.5px;color:var(--grafiet-2);max-width:40em}

/* ---------- Raster: inhoudsopgave + tekst ---------- */
.kb-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start;padding-bottom:clamp(56px,7vw,96px)}
.kb-toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--kop-h) + 20px);max-height:calc(100vh - var(--kop-h) - 40px);overflow:auto;padding:4px 0 12px}
.kb-toc p{font-weight:700;font-size:14px;color:var(--grafiet-2);margin-bottom:10px}
.kb-toc ol{border-left:1.5px solid var(--lijn)}
.kb-toc a{display:block;padding:7px 0 7px 16px;margin-left:-1.5px;border-left:2px solid transparent;text-decoration:none;font-size:15px;line-height:1.3;color:var(--grafiet-2);transition:color .2s,border-color .2s}
.kb-toc a:hover{color:var(--grafiet)}
.kb-toc a[aria-current]{border-left-color:var(--geel);color:var(--grafiet);font-weight:600}
.kb-body{min-width:0;max-width:820px}

/* ---------- Secties en lopende tekst ---------- */
.kb-sec{padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--lijn);scroll-margin-top:calc(var(--kop-h) + 16px)}
.kb-sec:first-child{border-top:0;padding-top:0}
.kb-kicker{display:block;font-weight:700;font-size:15px;color:var(--signaal-diep);margin-bottom:10px}
.kb-sec h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:22px;max-width:22ch}
.kb-sec h3{font-size:clamp(21px,2vw,26px);letter-spacing:-.02em;line-height:1.15;margin:34px 0 12px}
.kb-sec h4{font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:-.01em;line-height:1.2;margin:0 0 6px}
.kb-sec p{margin:0 0 16px;max-width:40em;line-height:1.65}
.kb-sec a{color:var(--signaal-diep);font-weight:500}
.kb-sec a:hover{text-decoration-thickness:2px}
.kb-sec strong{font-weight:700}
.kb-lijst{margin:4px 0 20px;display:grid;gap:9px;max-width:40em}
.kb-lijst li{position:relative;padding-left:24px;line-height:1.55}
.kb-lijst li::before{content:"";position:absolute;left:2px;top:.6em;width:9px;height:9px;border-radius:50%;background:var(--signaal-diep)}
.kb-num{counter-reset:n;margin:4px 0 20px;display:grid;gap:10px;max-width:40em}
.kb-num li{counter-increment:n;position:relative;padding-left:34px;line-height:1.55}
.kb-num li::before{content:counter(n);position:absolute;left:0;top:.05em;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:800 13px var(--disp);box-shadow:inset 0 0 0 1.5px var(--lijn)}
.kb-stappen{counter-reset:s;display:grid;gap:0;margin:8px 0 12px;border-top:1.5px solid var(--grafiet);max-width:44em}
.kb-stappen li{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--lijn);line-height:1.6}
.kb-nr{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--den);color:var(--signaal);font:800 18px var(--disp)}
.kb-stappen strong{display:block;font-family:var(--disp);font-weight:700;font-size:20px;letter-spacing:-.01em;line-height:1.25;margin-bottom:4px}

/* Begin hier: donker paneel, zelfde taal als de werkwijze op de homepage */
.kb-sec.kb-begin{border-top:0;background:var(--den);color:var(--op-den);border-radius:var(--radius-l);padding:clamp(22px,3.4vw,40px);margin-bottom:clamp(20px,3vw,32px)}
.kb-begin .kb-kicker{color:var(--signaal)}
.kb-begin h2{color:var(--op-den)}
.kb-begin p{color:var(--op-den-2)}
.kb-begin a{color:var(--signaal)}
.kb-begin .kb-stappen{border-top-color:rgba(242,239,230,.28)}
.kb-begin .kb-stappen li{border-bottom-color:rgba(242,239,230,.14);color:var(--op-den-2)}
.kb-begin .kb-stappen strong{color:var(--op-den)}
.kb-begin .kb-nr{background:var(--signaal);color:#0E2018}
.kb-begin .kb-stappen li:last-child{border-bottom:0;padding-bottom:4px}

/* ---------- Gereedschap: keuzehulp, snelheidswijzer, dekking, werkblad ---------- */
.kb-sec-tool{padding-top:clamp(20px,3vw,32px)}
.kb-tool{position:relative;margin:28px 0;padding:clamp(22px,3vw,34px);border-radius:var(--radius-m);background:var(--paper);box-shadow:inset 0 0 0 1px var(--lijn);border-top:4px solid var(--geel)}
.kb-sec-tool>.kb-tool:first-child{margin-top:0}
.kb-tool-label{font-weight:700;font-size:14.5px;color:var(--signaal-diep);margin:0 0 8px !important}
.kb-sec .kb-tool-kop{font-size:clamp(24px,2.6vw,34px);margin:0 0 12px;max-width:24ch}
.kb-tool-lead{color:var(--grafiet-2)}
.kb-noot{font-size:14.5px;color:var(--grafiet-2);margin:16px 0 0 !important}
.kb-knop{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--grafiet);font:600 15px var(--body);cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--lijn);transition:box-shadow .2s,background .2s}
.kb-knop:hover{box-shadow:inset 0 0 0 1.5px var(--grafiet)}
.kb-knop[aria-pressed="true"]{background:var(--den);color:var(--op-den);box-shadow:none}
.kb-knop[hidden]{display:none}

.kb-kh-pad{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 14px}
.kb-kh-pad:empty{display:none}
.kb-kh-pad li{font-size:14px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--kalk-2);color:var(--grafiet-2)}
.kb-kh-pad li::before{content:"✓ ";color:var(--signaal-diep)}
.kb-kh-q{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2vw,24px);line-height:1.25;letter-spacing:-.01em;margin:4px 0 16px !important;max-width:30em}
.kb-kh-q:focus{outline:none}
.kb-opties{display:grid;gap:8px}
.kb-optie{display:flex;align-items:center;gap:14px;width:100%;min-height:54px;padding:12px 18px;border:0;border-radius:var(--radius-m);background:var(--kalk);color:var(--grafiet);font:600 16.5px/1.35 var(--body);text-align:left;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--lijn);transition:box-shadow .2s,background .2s,transform .15s}
.kb-optie::before{content:"";flex:0 0 12px;height:12px;border-radius:50%;background:var(--lijn);transition:background .2s,box-shadow .2s}
.kb-optie:hover{box-shadow:inset 0 0 0 1.5px var(--grafiet)}
.kb-optie:hover::before{background:var(--signaal);box-shadow:0 0 0 4px rgba(67,224,138,.2)}
.kb-optie:active{transform:scale(.99)}
.kb-uitkomst{background:var(--den);color:var(--op-den);border-radius:var(--radius-m);padding:clamp(20px,2.6vw,28px)}
.kb-uitkomst .kb-tool-label{color:var(--signaal)}
.kb-uitkomst h4{font-size:clamp(22px,2.2vw,28px);color:var(--op-den);margin-bottom:10px}
.kb-uitkomst h4:focus{outline:none}
.kb-uitkomst p{color:var(--op-den-2)}
.kb-uitkomst ol{counter-reset:u;display:grid;gap:10px;margin:6px 0 18px}
.kb-uitkomst ol li{counter-increment:u;position:relative;padding-left:34px;color:var(--op-den);line-height:1.5}
.kb-uitkomst ol li::before{content:counter(u);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--signaal);color:#0E2018;font:800 13px var(--disp)}
.kb-uitkomst a{color:var(--signaal);font-weight:700}
.kb-kh-knoppen{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.kb-kh-knoppen[hidden]{display:none}
.kb-fade{animation:kbIn .35s ease-out}
@keyframes kbIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.kb-kh-statisch details{border-top:1px solid var(--lijn)}
.kb-kh-statisch details:last-child{border-bottom:1px solid var(--lijn)}
.kb-kh-statisch summary{cursor:pointer;padding:14px 0;font-weight:700;min-height:44px}
.kb-kh-uit{padding:0 0 16px}
.kb-kh-uit ol{list-style:decimal;padding-left:22px;margin:0 0 10px}

/* Checklist */
.kb-check{min-width:0;border:0;border-top:4px solid var(--geel);margin:22px 0}
.kb-check-kop{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px}
.kb-check-tel{font-weight:700}
.kb-balk{flex:1 1 140px;height:8px;border-radius:999px;background:var(--kalk-2);overflow:hidden;box-shadow:inset 0 0 0 1px var(--lijn)}
.kb-balk span{display:block;height:100%;width:0;background:var(--signaal);transition:width .3s}
.kb-check-groep{font-family:var(--disp);font-weight:700;font-size:19px;margin:22px 0 6px !important}
.kb-check ul{display:grid}
.kb-check li{border-bottom:1px solid var(--lijn)}
.kb-check label{display:flex;gap:14px;align-items:flex-start;padding:12px 2px;cursor:pointer;line-height:1.5;min-height:44px}
.kb-check input{flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;accent-color:var(--signaal-diep);cursor:pointer}
.kb-check input:checked+span{color:var(--grafiet-2);text-decoration:line-through;text-decoration-color:var(--signaal-diep);text-decoration-thickness:2px}

/* Schema's (gidsen 02–04) */
.kb-schema{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 12px}
.kb-schema-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kb-cel{background:var(--paper);border-radius:var(--radius-m);padding:20px;box-shadow:inset 0 0 0 1px var(--lijn)}
.kb-cel svg{width:40px;height:40px;color:var(--signaal-diep);margin-bottom:12px}
.kb-cel p{font-size:16px;color:var(--grafiet-2);margin:0 !important}
.kb-cel .kb-cel-q{font-weight:700;color:var(--grafiet);margin-bottom:6px !important}
.kb-cel-pijl{display:block;font-size:14px;font-weight:700;color:var(--signaal-diep);margin-bottom:4px}
.kb-schema-noot{font-size:15.5px;color:var(--grafiet-2)}

/* Kaarten (twee kolommen) */
.kb-kaarten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 22px}
.kb-kaarten-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.kb-kaart{background:var(--paper);border-radius:var(--radius-m);padding:22px;box-shadow:inset 0 0 0 1px var(--lijn)}
.kb-sec .kb-kaart h3{margin:0 0 8px;font-size:21px}
.kb-kaart p{font-size:16.5px;color:var(--grafiet-2);margin:0 !important}

/* FAQ (bouwt op .faq uit rods.css) */
.kb-faq-knoppen{display:flex;gap:8px;margin:0 0 6px}
.kb-faq summary{font-size:clamp(19px,1.8vw,22px)}
.kb-faq details p{padding:0;margin-bottom:14px}
.kb-faq details p:last-child{padding-bottom:22px;margin-bottom:0}

/* Hulp nodig */
.kb-sec-contact{border-top:0;padding-bottom:clamp(24px,3vw,40px)}
.kb-contact{background:var(--den);color:var(--op-den);border-radius:var(--radius-l);padding:clamp(24px,3.4vw,40px);border-top:4px solid var(--geel)}
.kb-sec .kb-contact h2{color:var(--op-den)}
.kb-contact p,.kb-contact li{color:var(--op-den-2)}
.kb-contact .kb-lijst li::before{background:var(--signaal)}
.kb-contact a:not(.btn){color:var(--op-den)}
.kb-contact .acts{margin-top:22px}
.kb-contact .btn{color:#0E2018}

/* Bronnen en colofon */
.kb-colofon{font-size:16px;color:var(--grafiet-2)}
.kb-colofon strong{color:var(--grafiet)}
.kb-bronnen{margin-top:16px}
.kb-bronnen>summary{font-size:clamp(18px,1.7vw,21px)}
.kb-bronnen ol{display:grid;gap:10px;padding:6px 0 26px}
.kb-bronnen li{display:grid;grid-template-columns:78px 1fr;gap:10px;font-size:15.5px;line-height:1.45}
.kb-bid{font-weight:700;color:var(--grafiet-2);font-size:13.5px;padding-top:2px}

/* Verder lezen */
.kb-verder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kb-verder a{display:block;height:100%;padding:18px 20px;border-radius:var(--radius-m);background:var(--paper);box-shadow:inset 0 0 0 1px var(--lijn);text-decoration:none;color:var(--grafiet) !important;font-weight:500 !important;line-height:1.45;transition:box-shadow .2s,transform .25s}
.kb-verder a:hover{box-shadow:inset 0 0 0 1.5px var(--grafiet);transform:translateY(-2px)}
.kb-verder span{display:block;font-weight:700;color:var(--signaal-diep);font-size:14.5px;margin-bottom:4px}

/* ---------- Oefenberichten (gids 04) ---------- */
.kb-oefen{margin-top:26px}
.kb-oefen-banner{display:inline-block;padding:6px 12px;border-radius:6px;background:color-mix(in srgb,var(--geel) 22%,transparent);box-shadow:inset 0 0 0 1px var(--geel);color:var(--grafiet);font-weight:700;font-size:15px}
.msg{margin:22px 0;border-radius:var(--radius-m);background:var(--paper);box-shadow:inset 0 0 0 1px var(--lijn);overflow:hidden}
.msg-head{padding:16px 20px;background:var(--kalk-2);border-bottom:1px solid var(--lijn)}
.msg-head .chan{display:block;font-size:13.5px;font-weight:700;color:var(--geel-diep);margin-bottom:6px}
.msg-head .rij{margin:0 !important;font-size:16px}
.zacht{color:var(--grafiet-2)}
.addr{font-family:ui-monospace,'SFMono-Regular',Consolas,monospace;font-size:.9em;word-break:break-all}
.msg-body{padding:18px 20px 4px}
.msg-body .fict{font-size:14px;color:var(--grafiet-2);font-style:italic}
.sig{display:inline;padding:1px 3px;margin:0 -1px;border:0;border-radius:3px;background:color-mix(in srgb,var(--geel) 24%,transparent);box-shadow:inset 0 -2px 0 var(--geel);color:inherit;font:inherit;text-align:inherit;cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.sig:hover{background:color-mix(in srgb,var(--geel) 40%,transparent)}
.sig[aria-expanded="true"]{background:var(--geel);color:#122218}
.sig-exp{margin:0 0 16px;padding:14px 16px;border-radius:10px;background:var(--den);color:var(--op-den)}
.sig-exp p{color:var(--op-den-2);margin:4px 0 0 !important;font-size:16px}
.sig-label{display:block;font-weight:700;font-size:13.5px;color:var(--signaal)}
.msg-wat{padding:0 20px;font-size:14.5px;color:var(--grafiet-2)}
.msg-foot{padding:0 20px 20px}
.msg-answer{margin-top:14px;padding:18px 20px;border-radius:10px;background:var(--den);color:var(--op-den)}
.msg-answer p{color:var(--op-den-2)}
.msg-answer h4{color:var(--op-den);margin-top:10px}
.msg-answer:focus{outline:none}
.no-js .sig-exp[hidden],.no-js .msg-answer[hidden]{display:block}
.no-js .sig{cursor:default}

/* ---------- Wifi-gids: van meterkast tot telefoon ---------- */
.kb-pad-fig{margin:26px 0 30px}
.kb-pad{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;position:relative}
.kb-pad li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 6px}
.kb-pad li::before{content:"";position:absolute;top:27px;left:-50%;width:100%;height:5px;border-radius:3px;background:var(--geel);z-index:0}
.kb-pad li:first-child::before{display:none}
.kb-pad li:last-child::before{background:repeating-linear-gradient(90deg,var(--signaal-diep) 0 6px,transparent 6px 12px);height:3px;top:28px}
.kb-pad-ic{position:relative;z-index:1;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--grafiet);box-shadow:inset 0 0 0 1.5px var(--lijn);margin-bottom:10px}
.kb-pad .kastje .kb-pad-ic{box-shadow:inset 0 0 0 2px var(--signaal-diep);background:var(--kalk-2)}
.kb-pad .kastje .kb-pad-ic::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1.5px dashed var(--signaal-diep)}
.kb-pad [data-draadloos] .kb-pad-ic{background:var(--den);color:var(--signaal);box-shadow:none}
.kb-pad-ic .ic{width:26px;height:26px;flex-basis:26px}
.kb-pad b{font-family:var(--disp);font-weight:700;font-size:17px;line-height:1.15}
.kb-pad small{margin-top:4px;font-size:13.5px;line-height:1.35;color:var(--grafiet-2)}
.kb-pad-fig figcaption{margin-top:18px;font-size:14.5px;color:var(--grafiet-2);max-width:44em;display:flex;gap:10px;align-items:flex-start}
.kb-pad-kastje{flex:0 0 18px;height:18px;border-radius:50%;border:1.5px dashed var(--signaal-diep);margin-top:2px}

/* Snelheidswijzer */
.kb-snel-regel{display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px 14px;margin:6px 0 18px}
.kb-snel-regel label{font-weight:600;color:var(--grafiet-2);font-size:15px}
.kb-snel-regel output{font-family:var(--disp);font-weight:800;font-size:clamp(30px,3.4vw,42px);letter-spacing:-.03em;line-height:1;text-align:right}
.kb-snel-regel input{grid-column:1/-1;width:100%;height:44px;accent-color:var(--signaal-diep);cursor:pointer}
.kb-snel-lijst{display:grid;border-top:1.5px solid var(--grafiet)}
.kb-snel-lijst li{display:grid;grid-template-columns:14px 1fr auto;gap:14px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--lijn);transition:color .2s}
.kb-snel-lijst b{font-size:14.5px;font-weight:600;color:var(--grafiet-2);white-space:nowrap}
.js .kb-snel-lijst li{color:var(--grafiet-2)}
.js .kb-snel-lijst li.ok{color:var(--grafiet)}
.js .kb-snel-lijst li.ok .led{background:var(--signaal);box-shadow:0 0 0 4px rgba(67,224,138,.18)}
.no-js .kb-snel-lijst .led{background:var(--signaal-diep)}

/* Dekking */
.kb-dk-knoppen{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}
.kb-dk{margin:0 0 12px}
.js .kb-dk[hidden]{display:none}
.kb-dk svg{width:100%;height:auto;display:block;border-radius:var(--radius-m);background:var(--kalk)}
.kb-dk figcaption{margin-top:10px;font-size:15.5px;color:var(--grafiet-2);max-width:44em}
.no-js .kb-dk+.kb-dk{margin-top:26px}
.dk-huis{stroke:none}
.dk-arcering{stroke:var(--lijn);stroke-width:3}
.dk-goed{fill:var(--signaal);opacity:.5}
.dk-matig{fill:var(--geel);opacity:.42}
.dk-rand{fill:none;stroke:var(--grafiet);stroke-width:3;stroke-linejoin:round}
.dk-vloer line{stroke:var(--grafiet);stroke-width:2.5}
.dk-kast{fill:var(--kalk-2);stroke:var(--grafiet);stroke-width:2}
.dk-zender{fill:var(--den);stroke:var(--signaal);stroke-width:4}
.dk-kabel{fill:none;stroke:var(--geel);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.dk-label text,.dk-klein{fill:var(--grafiet);font:600 17px var(--body)}
.dk-klein{font-size:15px}
.kb-dk-legenda{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14.5px;color:var(--grafiet-2);margin:8px 0 0 !important}
.kb-dk-legenda span{display:inline-flex;align-items:center;gap:8px}
.kb-dk-legenda i{width:18px;height:12px;border-radius:3px;display:inline-block}
.dk-l-goed{background:color-mix(in srgb,var(--signaal) 50%,var(--kalk))}
.dk-l-matig{background:color-mix(in srgb,var(--geel) 45%,var(--kalk))}
.dk-l-zwak{background:repeating-linear-gradient(45deg,var(--lijn) 0 2px,var(--kalk) 2px 6px);box-shadow:inset 0 0 0 1px var(--lijn)}

/* Werkblad */
.kb-werkblad fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}
.kb-werkblad legend{font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:-.01em;margin-bottom:12px;padding:0}
.kb-velden{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.kb-veld{margin:0 !important;display:grid;gap:4px}
.kb-veld label{font-weight:600;font-size:14.5px;color:var(--grafiet-2)}
.kb-werkblad input[type=text],.kb-werkblad select,.kb-zoek input{width:100%;min-height:46px;padding:8px 12px;border:0;border-radius:10px;background:var(--kalk);color:var(--grafiet);font:500 16px var(--body);box-shadow:inset 0 0 0 1.5px var(--lijn)}
.kb-werkblad input[type=text]:focus,.kb-werkblad select:focus,.kb-zoek input:focus{outline:3px solid var(--signaal);outline-offset:1px}
.kb-werkblad input::placeholder{color:var(--grafiet-2);opacity:.7}
.kb-wb-tabel{width:100%;border-collapse:collapse;min-width:560px}
.kb-wb-smal{min-width:0;max-width:420px}
.kb-wb-tabel th,.kb-wb-tabel td{padding:8px 8px 8px 0;text-align:left;border-bottom:1px solid var(--lijn);font-size:15.5px;vertical-align:middle}
.kb-wb-tabel thead th{font-size:14px;color:var(--grafiet-2);border-bottom:1.5px solid var(--grafiet)}
.kb-wb-tabel tbody th{font-weight:600;white-space:nowrap;padding-right:14px}
.kb-wb-tabel input[type=checkbox]{width:22px;height:22px;accent-color:var(--signaal-diep)}
.kb-wb-knoppen{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Woordenlijst */
.kb-zoek{display:grid;gap:6px;max-width:360px;margin:0 0 14px !important}
.kb-zoek label{font-weight:600;font-size:14.5px;color:var(--grafiet-2)}
.kb-zoek-leeg{color:var(--grafiet-2);font-weight:600}
.kb-woorden dl{margin:0;display:grid;border-top:1.5px solid var(--grafiet)}
.kb-woorden dl>div{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:6px 22px;padding:14px 0;border-bottom:1px solid var(--lijn)}
.kb-woorden dl>div[hidden]{display:none}
.kb-woorden dt{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:-.01em;line-height:1.3}
.kb-woorden dd{margin:0;color:var(--grafiet-2);font-size:16.5px;line-height:1.55}

/* ---------- Overzichtspagina ---------- */
.kb-ov-intro h1{max-width:15ch}
.kb-ov-h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:22px}
.kb-ov-kies{padding-bottom:clamp(24px,4vw,48px)}
.kb-ov-problemen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kb-ov-problemen a{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 18px;border-radius:var(--radius-m);background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--lijn);text-decoration:none;font-weight:600;font-size:16.5px;line-height:1.3;transition:box-shadow .2s,background .2s}
.kb-ov-problemen a:hover{box-shadow:inset 0 0 0 1.5px var(--grafiet)}
.kb-ov-problemen .ic{color:var(--signaal-diep)}
.kb-ov-gidsen{padding-top:clamp(40px,5vw,72px)}
.kb-ov-lijst{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.kb-ov-kaart{display:flex;flex-direction:column;height:100%;border-radius:var(--radius-m);overflow:hidden;background:var(--paper);text-decoration:none;color:var(--grafiet);box-shadow:0 1px 0 var(--lijn);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.kb-ov-kaart:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.kb-ov-beeld{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--kalk-2)}
.kb-ov-beeld img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.kb-ov-kaart:hover .kb-ov-beeld img{transform:scale(1.03)}
.kb-ov-txt{display:flex;flex-direction:column;flex:1;padding:22px 24px 26px}
.kb-ov-txt .kb-label{margin-bottom:6px}
.kb-ov-t{font-family:var(--disp);font-weight:800;font-size:clamp(24px,2.4vw,32px);line-height:1.05;letter-spacing:-.025em}
.kb-ov-p{margin-top:12px;color:var(--grafiet-2);font-size:16.5px;line-height:1.5}
.kb-ov-chips{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 18px}
.kb-ov-lees{margin-top:auto;font-weight:700;color:var(--signaal-diep)}
.kb-ov-uitleg{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px);border-top:1.5px solid var(--grafiet);padding-top:26px}
.kb-ov-uitleg h3{font-size:22px;margin-bottom:8px}
.kb-ov-uitleg p{color:var(--grafiet-2);font-size:16.5px}
.kb-ov-uitleg a{font-weight:600}

/* ---------- Responsief ---------- */
@media (max-width:1080px){
  .kb-intro-in{grid-template-columns:1fr}
  .kb-held{max-width:620px}
  .kb-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .kb-toc{min-width:0}
  .kb-toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--kop-h));z-index:5;max-height:none;overflow-x:auto;overflow-y:hidden;margin:0 calc(-1 * var(--gut)) 28px;padding:0 var(--gut);background:color-mix(in srgb,var(--kalk) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--lijn);scrollbar-width:none}
  .kb-toc::-webkit-scrollbar{display:none}
  .kb-toc p{display:none}
  .kb-toc ol{display:flex;border:0;gap:4px;width:max-content}
  .kb-toc a{white-space:nowrap;border-left:0;margin:0;padding:13px 10px 11px;border-bottom:2.5px solid transparent;font-size:14.5px;min-height:44px}
  .kb-toc a[aria-current]{border-bottom-color:var(--geel)}
  .kb-body{max-width:none}
  .kb-ov-problemen{grid-template-columns:1fr 1fr}
  .kb-pad{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:26px}
  .kb-pad li:nth-child(4)::before{display:none}
}
@media (max-width:900px){.kb-kaarten-3{grid-template-columns:1fr}}
@media (max-width:720px){
  .kb-schema,.kb-schema-2,.kb-kaarten,.kb-verder,.kb-velden,.kb-ov-lijst,.kb-ov-problemen,.kb-ov-uitleg{grid-template-columns:1fr}
  .kb-woorden dl>div{grid-template-columns:1fr}
  .kb-stappen li{grid-template-columns:40px 1fr;gap:12px}
  .kb-nr{width:34px;height:34px;font-size:16px}
  .kb-bronnen li{grid-template-columns:1fr;gap:2px}
  .kb-pad{grid-template-columns:1fr;row-gap:0}
  .kb-pad li{flex-direction:row;flex-wrap:wrap;align-items:center;text-align:left;padding:0 0 18px 0;column-gap:14px}
  .kb-pad li::before{top:-100%;left:26px;width:5px;height:100%}
  .kb-pad li:nth-child(4)::before{display:block}
  .kb-pad li:last-child::before{width:3px;height:100%;background:repeating-linear-gradient(180deg,var(--signaal-diep) 0 6px,transparent 6px 12px);top:-100%;left:27px}
  .kb-pad-ic{margin:0;flex:0 0 58px}
  .kb-pad li>b,.kb-pad li>small{flex:1 1 calc(100% - 72px)}
  .kb-pad li>small{margin-left:72px;margin-top:-10px}
  .kb-pad li>b{align-self:center}
}
@media (prefers-reduced-motion:reduce){
  .kb-fade{animation:none}
}

/* ---------- Printen ---------- */
@media print{
  .kb-toc,.kb-held,.kb-kh-knoppen,.kb-faq-knoppen,.kb-dk-knoppen,.kb-wb-knoppen,.kb-check-kop .kb-knop,.kb-contact .acts,.site-foot,.skip,.slot{display:none !important}
  .kb-grid{display:block}
  .kb-begin,.kb-contact,.kb-uitkomst,.sig-exp,.msg-answer{background:#fff !important;color:#000 !important;box-shadow:inset 0 0 0 1px #999}
  .kb-begin *,.kb-contact *,.kb-uitkomst *{color:#000 !important}
  .kb-dk[hidden]{display:block !important}
  .kb-sec{break-inside:auto;padding:24px 0}
  .kb-tool{break-inside:avoid}
  html.kb-print-werkblad main>*:not(.kb-grid),
  html.kb-print-werkblad .kb-body>*:not(#zelf),
  html.kb-print-werkblad #zelf>*:not(.kb-werkblad):not(h2){display:none !important}
}

/* Donkere modus: donkere panelen krijgen een rand, anders vallen ze weg tegen de achtergrond */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .kb-sec.kb-begin,:root:not([data-theme="light"]) .kb-contact,:root:not([data-theme="light"]) .kb-uitkomst{box-shadow:inset 0 0 0 1px var(--lijn)}
}
:root[data-theme="dark"] .kb-sec.kb-begin,:root[data-theme="dark"] .kb-contact,:root[data-theme="dark"] .kb-uitkomst{box-shadow:inset 0 0 0 1px var(--lijn)}
