/* Interactieve stamboom — leeft in de A2-opmaak van de site (papier/inkt/olijf).
   Telefoon: schermvullend (eigen bovenbalk, tabbalk onderaan). Desktop: gereedschap links, persoon rechts. */
.prose:has(.stamboom){max-width:none}
.stamboom{--kaart:#fffdf7;--kaart-focus:#f1ece0;--sel:var(--rood,#4f5608);--bruin:#8a5a2b;--onb:#bdb7a9;--rand:var(--lijn,#d9d2c3);margin:1.25rem 0 2rem;font-size:.95rem;position:relative;visibility:hidden}
.stamboom.klaar{visibility:visible}
.stamboom *{box-sizing:border-box}
.stamboom button{font:inherit;color:inherit}
/* bovenbalk */
.sb-top{display:flex;gap:.6rem;align-items:center;margin-bottom:.7rem;position:sticky;top:0;z-index:1100;background:var(--papier,#f7f3ea);padding:.5rem 0}
.sb-menu{display:none}
.sb-zoek{position:relative;flex:1 1 14rem;min-width:9rem}
.sb-zoek input{width:100%;padding:.55rem .9rem;border:1px solid var(--rand);border-radius:.5rem;background:var(--kaart);font:inherit;color:inherit}
.sb-zoek input:focus{outline:2px solid var(--sel);outline-offset:1px}
.sb-treffers{position:absolute;left:0;right:0;top:100%;z-index:60;background:var(--kaart);border:1px solid var(--rand);border-radius:.5rem;box-shadow:0 .6rem 1.6rem rgba(0,0,0,.14);max-height:min(24rem,70vh);overflow:auto;margin:.25rem 0 0;padding:.25rem 0;list-style:none;display:none}
.sb-treffers.open{display:block}
.sb-tr{padding:.45rem .9rem;cursor:pointer;line-height:1.3}
.sb-tr b{font-weight:600}.sb-tr mark{background:#f3e9b8;color:inherit;padding:0 .05em;border-radius:2px}
.sb-tr:hover,.sb-tr.actief{background:var(--kaart-focus)}
.sb-tr small,.sb-tr-leeg small{display:block;color:var(--grijs,#6a655c);font-size:.8em}
.sb-tr--begrip{cursor:default}.sb-tr--begrip:hover{background:none}
.sb-tr-kop{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grijs,#6a655c);padding:.5rem .9rem .15rem}
.sb-tr-leeg{padding:.6rem .9rem}
.sb-tabs{display:flex;gap:.3rem}
.sb-tab{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;padding:.45rem .8rem;border:1px solid var(--rand);border-radius:999px;background:var(--kaart);cursor:pointer;line-height:1;font-size:.88rem}
.sb-tab svg{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sb-tab:hover{border-color:var(--grijs,#6a655c)}.sb-tab[aria-selected=true]{background:var(--inkt,#1c1a17);color:#fff;border-color:var(--inkt,#1c1a17)}
.sb-info{width:2.3rem;height:2.3rem;border-radius:50%;border:1px solid var(--rand);background:var(--kaart);cursor:pointer;font-family:var(--serif,Georgia,serif);font-style:italic;font-size:1.05rem;flex:0 0 auto}
.sb-info:hover{border-color:var(--grijs,#6a655c)}
.sb-knop{font-size:.85rem;padding:.4rem .75rem;border:1px solid var(--rand);border-radius:999px;background:var(--kaart);cursor:pointer;line-height:1.2}
.sb-knop:hover{border-color:var(--grijs,#6a655c)}
.sb-knop--klein{font-size:.78rem;padding:.3rem .6rem}
/* hoofd: twee kolommen */
.sb-hoofd{display:grid;grid-template-columns:minmax(20rem,1fr) minmax(20rem,28rem);gap:1rem;height:calc(100vh - 6rem);min-height:32rem}
.sb-gereedschap{min-height:0;display:flex;flex-direction:column}
.sb-gereedschap>[hidden]{display:none}
.sb-overzicht,.sb-boom,.sb-kaartweergave{flex:1 1 auto;min-height:0;border:1px solid var(--rand);border-radius:.6rem;background:var(--kaart);position:relative}
.sb-persoon{min-height:0;overflow:auto;border:1px solid var(--rand);border-radius:.6rem;background:var(--kaart);padding:0 1.1rem 1.5rem;line-height:1.5;font-size:.93rem;scroll-behavior:smooth}
.sb-tabbalk{display:none}
/* oriëntatielint */
.sb-lint{position:sticky;top:0;z-index:2;background:var(--kaart);display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .25rem;padding:.6rem 0 .5rem;margin:0 0 .4rem;border-bottom:1px solid var(--rand);font-size:.78rem;color:var(--grijs,#6a655c);line-height:1.3}
.sb-lint-stap{border:0;background:none;padding:.15rem .25rem;color:var(--rood,#4f5608);cursor:pointer;border-radius:.3rem;font-size:inherit}
.sb-lint-stap:hover{background:var(--kaart-focus)}
.sb-lint-start{font-size:1rem;padding:0 .3rem;color:var(--grijs,#6a655c)}
.sb-lint-meer{color:var(--grijs,#6a655c);border:1px dashed var(--rand)}
.sb-lint-pijl{color:var(--onb)}.sb-lint-hier{color:var(--inkt,#1c1a17);font-weight:600;padding:.15rem .25rem}.sb-lint-los{font-style:italic;padding:.15rem .25rem}
/* persoonskop */
.sb-pkop{margin:.2rem 0 .6rem}
.sb-pkop h2{font-size:1.45rem;font-weight:600;line-height:1.15;margin:0 0 .2rem;letter-spacing:0;font-variant:normal}
.sb-pkop-rij{display:flex;align-items:flex-start;gap:.6rem}.sb-pkop-rij h2{flex:1 1 auto;min-width:0}
.sb-deel{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;margin-top:.15rem;padding:.3rem .7rem;border:1px solid var(--rand);border-radius:999px;background:var(--kaart);color:var(--grijs,#6a655c);cursor:pointer;font-size:.82rem;line-height:1.2;white-space:nowrap}
.sb-deel svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sb-deel:hover{color:var(--rood,#4f5608);border-color:var(--grijs,#6a655c)}
.sb-jaren{margin:0 0 .15rem;color:var(--inkt,#1c1a17)}
.sb-orient{margin:0 0 .5rem;font-size:.8rem;color:var(--grijs,#6a655c)}
.sb-nn{font-size:.85rem;color:var(--grijs,#6a655c);font-style:italic;margin:0 0 .4rem}
.sb-noot{display:block;font-size:.8rem;color:var(--grijs,#6a655c);font-style:italic;margin:.15rem 0 .3rem;line-height:1.4}
li .sb-noot{margin:.05rem 0 .2rem}
.sb-onzeker{display:inline-block;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-style:normal;color:#8a5a2b;border:1px solid #c9a98a;border-radius:999px;padding:0 .4rem;vertical-align:middle}
.sb-term--noot{text-decoration-color:#8a5a2b}
.sb-pacties{display:flex;gap:.4rem;flex-wrap:wrap}
.sb-nieuw .sb-pkop{animation:sb-flits .8s ease-out}
@keyframes sb-flits{from{background:#f3ecd6}to{background:transparent}}
@media(prefers-reduced-motion:reduce){.sb-nieuw .sb-pkop{animation:none}.sb-persoon{scroll-behavior:auto}}
/* koppen en rijen */
.stamboom h3.sb-kop{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-style:normal;color:var(--grijs,#6a655c);margin:1rem 0 .3rem;font-weight:400;display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}
.stamboom .sb-kop .sb-aantal{font-size:.66rem;border:1px solid var(--rand);border-radius:999px;padding:0 .4rem;letter-spacing:0}
.stamboom .sb-kop-sub{letter-spacing:0;text-transform:none;font-style:italic;font-size:.78rem}
.sb-rijen{display:flex;flex-direction:column;gap:.3rem}
.sb-rijen--kind{margin-left:.9rem;padding-left:.6rem;border-left:2px solid var(--rand)}
.sb-rij-p{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:var(--papier,#f7f3ea);border:1px solid var(--rand);border-radius:.5rem;padding:.45rem .6rem .45rem .85rem;cursor:pointer;position:relative;min-height:2.75rem;line-height:1.3}
.sb-rij-p::before{content:"";position:absolute;left:.3rem;top:.45rem;bottom:.45rem;width:4px;border-radius:2px;background:var(--onb)}
.sb-rij-p.m::before{background:var(--olijf,#6a7007)}.sb-rij-p.v::before{background:var(--bruin)}
.sb-rij-p:hover{border-color:var(--grijs,#6a655c);background:var(--kaart)}
.sb-rij-p .sb-tekst{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.sb-rij-p b{font-weight:600}.sb-rij-p small{color:var(--grijs,#6a655c);font-size:.8rem}.sb-rij-p .sb-half{font-style:italic}
.sb-rij-p .sb-chev{color:var(--onb);font-size:1.2rem;line-height:1}
.sb-rij-p--leeg{cursor:default;color:var(--grijs,#6a655c);font-style:italic;border-style:dashed;background:transparent;min-height:2.2rem}
.sb-rij-p--leeg::before{display:none}
.sb-leeg{margin:.1rem 0 .2rem;color:var(--grijs,#6a655c);font-style:italic;font-size:.85rem}
.sb-meer{align-self:flex-start;margin-top:.2rem}
/* leven, bronnen, tekst */
.sb-feiten,.sb-prose ul,.sb-prose ol{margin:0;padding-left:1.15rem}
.sb-feiten li,.sb-prose li{margin:.1rem 0}
.sb-woonde{margin:.3rem 0}
.sb-prose p{margin:.3rem 0}
.sb-prose a,.sb-bron a,.sb-elders a{color:var(--rood,#4f5608)}
.sb-prose blockquote{margin:.4rem 0;padding:.4rem .8rem;border-left:3px solid var(--rand);font-size:.86rem;color:#3a3732;font-style:normal}
.sb-bronnen details{margin:.4rem 0}.sb-bronnen summary{cursor:pointer;color:var(--grijs,#6a655c);font-size:.85rem}
.sb-elders .sb-prose{font-size:.86rem;margin-top:.3rem}
.sb-meta{font-size:.78rem;color:var(--grijs,#6a655c);margin:.4rem 0 0}
.sb-minikaart{display:block;width:100%;margin:.5rem 0 0;padding:0;border:1px solid var(--rand);border-radius:.5rem;overflow:hidden;background:#e9e4d6;cursor:pointer;text-align:left;position:relative}
.sb-minikaart-vlak{display:block;position:relative;width:100%;aspect-ratio:360/200;overflow:hidden}
.sb-mini-binnen{position:absolute;left:0;top:0;width:360px;height:200px;transform-origin:0 0}
.sb-minikaart-vlak img{position:absolute;width:256px;height:256px;max-width:none;margin:0;padding:0;border:0;filter:saturate(.75) contrast(.95)}
.sb-minikaart-vlak svg{position:absolute;left:0;top:0;width:360px;height:200px}
.sb-minikaart-vlak small{position:absolute;right:.2rem;bottom:0;font-size:.55rem;color:#555;background:rgba(255,255,255,.7);padding:0 .2rem}
.sb-minikaart-tekst{display:block;padding:.35rem .6rem;font-size:.8rem;color:var(--rood,#4f5608);background:var(--kaart)}
/* startscherm */
.sb-start h2{font-size:1.35rem;font-weight:600;line-height:1.2;margin:1rem 0 .3rem;letter-spacing:0;font-variant:normal}
.sb-start>p{margin:0 0 .4rem}
.sb-instappen{display:flex;flex-direction:column;gap:.45rem}
.sb-instap{display:flex;align-items:stretch;gap:.9rem;width:100%;min-height:6.6rem;text-align:left;background:var(--papier,#f7f3ea);border:1px solid var(--rand);border-radius:.6rem;padding:.6rem .8rem .6rem .6rem;cursor:pointer;line-height:1.3}   /* alle kaarten even hoog, beeld over de volle hoogte, tekst ernaast gecentreerd (Durk 2026-09-14) */
.sb-instap:hover{border-color:var(--grijs,#6a655c);background:var(--kaart)}
.sb-instap img,.sb-instap-letter{flex:0 0 4.4rem;width:4.4rem;height:5.4rem;margin:0;align-self:center;border-radius:.45rem;object-fit:cover;filter:sepia(.15)}
.sb-instap-letter{display:grid;place-items:center;font-size:1.8rem;color:#fff;background:var(--onb);font-family:var(--serif,Georgia,serif)}
.sb-instap-letter.m{background:var(--olijf,#6a7007)}.sb-instap-letter.v{background:var(--bruin)}
.sb-instap-tekst{display:flex;flex-direction:column;justify-content:center;gap:.05rem;min-width:0}
.sb-instap-tekst small{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grijs,#6a655c)}
.sb-instap-tekst b{font-weight:600;font-size:1rem}
.sb-instap-tekst span{font-size:.83rem;color:var(--grijs,#6a655c)}
.sb-start>.sb-start-of{margin:1.5rem 0 .6rem;font-style:italic;color:var(--grijs,#6a655c)}   /* .sb-start>p wint anders van .sb-start-of (Durk 2026-09-14: te kleine marge) */
.sb-start-knoppen{display:flex;flex-wrap:wrap;gap:.5rem}
.sb-start>.sb-meta{margin:1.4rem 0 0;padding-top:.8rem;border-top:1px solid var(--rand)}
/* overzicht */
.sb-overzicht{overflow:auto;padding:0 .5rem .6rem}
/* lenskop: de keuze Boom/Schema/Kaart en de bediening van de gekozen lens, boven het rechterpaneel (Durk 2026-09-14) */
.sb-lenskop{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;padding:0 0 .55rem;margin:0 0 .6rem;border-bottom:1px solid var(--rand)}
.sb-lensknoppen{display:flex;align-items:center;gap:.4rem;margin-left:auto;min-width:0}
.sb-lensknoppen>[hidden]{display:none}
.sb-lens-ov{display:flex;align-items:center;gap:.4rem}
.sb-ov-filter{width:12rem;max-width:40vw;padding:.4rem .7rem;border:1px solid var(--rand);border-radius:.5rem;background:var(--papier,#f7f3ea);font:inherit;font-size:.88rem}
.sb-ov-filter[hidden]{display:none}
.sb-lens-ov .sb-knop{width:2.3rem;height:2.1rem;padding:0;display:grid;place-items:center;font-size:1rem}
.sb-lens-ov .sb-knop svg{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.sb-lens-ov .sb-knop[aria-pressed=true]{background:var(--inkt,#1c1a17);color:#fff;border-color:var(--inkt,#1c1a17)}
.sb-lens-kaart .sb-lagen{margin:0;padding:0;border:0}
.sb-ov-strook{position:sticky;top:0;z-index:2;background:var(--kaart);font-size:.74rem;color:var(--grijs,#6a655c);padding:.25rem .3rem;border-bottom:1px solid var(--rand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
.sb-ov-strook[hidden]{display:block}
.sb-ov-strook{min-height:1.55rem}
.sb-ov-strook .sb-lint-stap{padding:0 .1rem}
.sb-ov-rij{display:flex;align-items:center;gap:.15rem;padding:0 0 0 min(calc(var(--d) * 1.1rem), calc(100% - 13rem));border-radius:.4rem;font-size:.92rem;min-height:2.3rem}
.sb-ov-rij.focus{background:var(--kaart-focus)}
.sb-ov-rij.treffer .sb-ov-naam b{color:var(--rood,#4f5608)}
.sb-ov-knop{flex:0 0 2.4rem;width:2.4rem;min-height:2.3rem;border:0;background:none;color:var(--rood,#4f5608);cursor:pointer;padding:0;font-size:1rem;display:grid;place-items:center;border-radius:.4rem}
.sb-ov-knop:hover{background:var(--kaart-focus)}
.sb-ov-knop--leeg{cursor:default}
.sb-ov-naam{border:0;background:none;text-align:left;padding:.25rem .4rem .25rem .65rem;cursor:pointer;color:var(--inkt,#1c1a17);position:relative;line-height:1.3;flex:1 1 auto;min-width:7rem;display:flex;flex-direction:column}
.sb-ov-naam::before{content:"";position:absolute;left:0;top:.45rem;bottom:.45rem;width:3px;border-radius:2px;background:var(--onb)}
.sb-ov-rij.m .sb-ov-naam::before{background:var(--olijf,#6a7007)}.sb-ov-rij.v .sb-ov-naam::before{background:var(--bruin)}
.sb-ov-naam:hover b{color:var(--rood,#4f5608)}
.sb-ov-naam b{font-weight:600}.sb-ov-naam small{color:var(--grijs,#6a655c);font-size:.8em}
.sb-ov-jaren{display:inline;margin-left:.2rem}.sb-ov-naam b+.sb-ov-jaren{display:inline}
.sb-ov-naam{display:block}
.sb-ov-sub{display:block}
.sb-ov-aantal{white-space:nowrap;flex:0 0 auto;font-size:.72rem;color:var(--grijs,#6a655c);border:1px solid var(--rand);border-radius:999px;padding:0 .45rem;line-height:1.5;margin-right:.3rem}
.sb-ov-kop{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grijs,#6a655c);margin:1rem 0 .3rem .3rem}
.sb-ov-kop--archief{margin-top:1.4rem;padding-top:.8rem;border-top:1px solid var(--rand)}
.sb-ov-uitleg{font-size:.8rem;color:var(--grijs,#6a655c);margin:0 .3rem .5rem;line-height:1.4}
.sb-ov-laad{margin:.2rem .3rem .8rem}
.sb-ov-fam .sb-ov-naam::before{background:var(--rand)}
.sb-ov-fam .sb-ov-naam b{font-weight:500;font-style:italic}
.sb-stam-wrap{display:inline-block;margin-left:.3em;vertical-align:-.08em}
.sb-stam{width:.85em;height:.85em;fill:none;stroke:var(--rood,#4f5608);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sb-stam--los{vertical-align:-.1em;margin:0 .1em}
.sb-tag{display:inline-block;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grijs,#6a655c);border:1px solid var(--rand);border-radius:999px;padding:0 .35rem;vertical-align:middle;margin-left:.3rem}
.sb-tr--archief b{font-weight:500;color:var(--rood,#4f5608)}
.sb-akten{margin:0;padding:0;list-style:none;font-size:.88rem}.sb-akten li{padding:.3rem 0;border-bottom:1px dotted var(--rand);line-height:1.4}.sb-akten li:last-child{border-bottom:0}.sb-akten a{color:var(--rood,#4f5608)}.sb-akten small{color:var(--grijs,#6a655c);white-space:nowrap}
/* tekening */
.sb-boom{overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background:var(--papier,#f7f3ea)}
.sb-boom svg{width:100%;height:100%;display:block;cursor:grab}
.sb-boom svg.sleep{cursor:grabbing}
.sb-boom .sb-zoom{position:absolute;right:.6rem;bottom:.6rem;display:flex;flex-direction:column;gap:.35rem}
.sb-boom .sb-zoom .sb-knop{width:2.6rem;height:2.6rem;padding:0;font-size:1.2rem;display:grid;place-items:center;box-shadow:0 .1rem .4rem rgba(0,0,0,.08)}
.sb-legenda{position:absolute;left:.6rem;bottom:.6rem;font-size:.72rem;color:var(--grijs,#6a655c);background:rgba(247,243,234,.9);padding:.25rem .5rem;border-radius:.3rem;pointer-events:none;display:none}
.sb-legenda.open{display:block}.sb-legenda i{display:inline-block;width:1.2em;height:.2em;vertical-align:middle;margin-right:.3em}
.sb-kaart{cursor:pointer}
.sb-kaart rect.vlak{fill:var(--kaart);stroke:var(--rand);stroke-width:1}
.sb-kaart:hover rect.vlak{stroke:var(--grijs,#6a655c)}
.sb-kaart.sel rect.vlak{stroke:var(--sel);stroke-width:2}
.sb-kaart.focus rect.vlak{fill:var(--kaart-focus)}
.sb-kaart.voorouder rect.vlak{fill:#f4f0e6;stroke-dasharray:3 2}
.sb-kaart text{font-family:var(--serif,Georgia,serif);fill:var(--inkt,#1c1a17);pointer-events:none}
.sb-kaart .naam{font-size:13.5px;font-weight:600}
.sb-kaart .regel{font-size:11.5px;fill:var(--grijs,#6a655c)}
.sb-kaart .partner{font-size:11.5px;fill:var(--inkt,#1c1a17)}
.sb-kaart .gesl{font-size:11px;fill:var(--grijs,#6a655c)}
.sb-kaart .band{fill:var(--olijf,#6a7007)}.sb-kaart.v .band{fill:var(--bruin)}.sb-kaart.onb .band{fill:var(--onb)}
.sb-toggle rect{fill:var(--kaart);stroke:var(--rood,#4f5608);stroke-width:1;cursor:pointer}
.sb-toggle.open rect{fill:var(--kaart-focus);stroke:var(--grijs,#6a655c)}
.sb-toggle text{font-size:11px;fill:var(--rood,#4f5608);pointer-events:none;font-family:var(--serif,Georgia,serif)}
.sb-toggle.open text{fill:var(--grijs,#6a655c)}
.sb-lijn{fill:none;stroke:var(--inkt,#1c1a17);stroke-width:1.4;stroke-linecap:square}
.sb-lijn.h2{stroke:var(--olijf,#6a7007)}.sb-lijn.h3{stroke:var(--bruin)}.sb-lijn.h4{stroke:var(--onb)}
.sb-lijn.voorouder{stroke-dasharray:4 3;stroke:var(--grijs,#6a655c)}
/* kaart */
.sb-kaartweergave{overflow:hidden;display:flex;flex-direction:column}
.sb-kaartvlak{flex:1 1 auto;min-height:0;background:#e9e4d6}
.sb-kaartlegenda{font-size:.75rem;color:var(--grijs,#6a655c);padding:.35rem .6rem .45rem;border-top:1px solid var(--rand);background:var(--kaart);line-height:1.5}
.sb-periodes{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem}
.sb-chip{font-size:.75rem;padding:.25rem .6rem;border:1px solid var(--rand);border-radius:999px;background:var(--kaart);cursor:pointer;line-height:1.2}
.sb-chip[aria-pressed=true]{background:var(--inkt,#1c1a17);color:#fff;border-color:var(--inkt,#1c1a17)}
.sb-kaart-legenda span{margin-right:.6rem;white-space:nowrap}.sb-kaart-legenda i{display:inline-block;width:.75em;height:.75em;border-radius:50%;vertical-align:middle;margin-right:.25em}
.sb-kaart-legenda .sb-anker-legenda{border-radius:0;width:auto;height:auto;font-style:normal;color:var(--rood,#4f5608);font-size:1em}
.sb-kaart-tip{white-space:normal!important}
.sb-kaart-melding{margin:.3rem 0 0;font-style:italic}
.sb-kaartweergave .leaflet-container{font-family:var(--serif,Georgia,serif);font-size:.85rem}
/* de site geeft afbeeldingen in de tekst een marge van 2rem; Leaflet-tegels en -iconen mogen die niet krijgen (anders staan de kringen 32px te noordelijk) */
.sb-kaartweergave .leaflet-container img,.sb-kaartweergave .leaflet-tile,.sb-kaartweergave .leaflet-marker-icon,.sb-kaartweergave .leaflet-marker-shadow{margin:0!important;max-width:none!important;max-height:none!important;filter:none}
.sb-kaartweergave .leaflet-marker-icon.sb-anker{margin-left:-13px!important;margin-top:-13px!important}   /* de margin-reset hierboven haalde Leaflets iconAnchor weg: de punt zat linksboven i.p.v. in het midden */
.sb-anker{display:grid;place-items:center;color:#fff;background:var(--rood,#4f5608);border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:pointer}
.sb-anker svg{width:15px;height:15px;display:block;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sb-popup-lagen a{color:var(--rood,#4f5608);white-space:nowrap}
.sb-popup{list-style:none;margin:.15rem 0 .3rem;padding:0;max-height:10rem;overflow:auto}.sb-popup li{padding:.05rem 0}.sb-popup a{color:var(--rood,#4f5608)}
.sb-popup-kop{margin:.4rem 0 .1rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grijs,#6a655c)}
.sb-popup-kop i{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:.3em;vertical-align:middle}
/* begrippen */
.sb-term{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:help;text-decoration:underline dotted var(--rood,#4f5608);text-decoration-thickness:1.5px;text-underline-offset:.15em}
.sb-term:hover{color:var(--rood,#4f5608)}
.sb-popover{position:absolute;z-index:1200;background:#fffdf7;border:1px solid var(--grijs,#6a655c);border-radius:.5rem;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.15);padding:.7rem .9rem;font-size:.88rem;line-height:1.45;color:var(--inkt,#1c1a17)}
.sb-popover b{font-weight:600;display:block;margin-right:1.5rem}.sb-popover p{margin:.3rem 0 0}
.sb-popover-sluit{position:absolute;right:.4rem;top:.3rem;font-size:1.1rem;line-height:1;border:0;background:none;color:var(--grijs,#6a655c);cursor:pointer;padding:.1rem .3rem}
/* uitleg-blad en melding */
.sb-blad{border:1px solid var(--rand);border-radius:.8rem;padding:1rem 1.25rem 1.25rem;max-width:34rem;width:calc(100% - 2rem);background:var(--kaart);color:var(--inkt,#1c1a17);font-size:.93rem;line-height:1.5;box-shadow:0 1rem 3rem rgba(0,0,0,.2)}
.sb-blad::backdrop{background:rgba(28,26,23,.45)}
.sb-blad-kop{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3rem}
.sb-blad h2{font-size:1.2rem;font-weight:600;margin:0;letter-spacing:0;font-variant:normal}
.sb-blad p{margin:.5rem 0}.sb-blad a{color:var(--rood,#4f5608)}
.sb-blad-sluit{border:0;background:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--grijs,#6a655c);padding:.2rem .4rem}
.sb-status{position:absolute;left:-9999px}
.sb-toast{position:fixed;left:50%;bottom:5rem;transform:translateX(-50%);z-index:80;background:var(--inkt,#1c1a17);color:#fff;padding:.5rem 1rem;border-radius:999px;font-size:.85rem}
/* breed: de app vult het scherm naast de inhoudsopgave van de site (Durk 2026-09-14: niet scrollen om alles te zien) */
.sb-titel{display:none;border:0;background:none;padding:0;cursor:pointer;font:inherit;color:inherit}
@media(min-width:58.01rem){
  html:has(.stamboom.klaar),body:has(.stamboom.klaar){overflow:hidden}
  .stamboom.klaar{position:fixed;top:0;right:0;bottom:0;left:19rem;z-index:35;display:flex;flex-direction:column;margin:0;padding:0 1.5rem 1rem;background:var(--papier,#f7f3ea)}
  .stamboom.klaar .sb-top{flex:0 0 auto;margin:0 0 .8rem;padding:.85rem 8.5rem .7rem 0;border-bottom:1px solid var(--rand)}
  .stamboom.klaar .sb-titel{display:block;font-family:var(--serif,Georgia,serif);font-size:1.2rem;white-space:nowrap;margin-right:.6rem;color:var(--inkt,#1c1a17);border:0;background:none;padding:0;cursor:pointer}
  .stamboom.klaar .sb-titel:hover{color:var(--rood,#4f5608)}
  .stamboom.klaar .sb-hoofd{flex:1 1 auto;min-height:0;height:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}   /* persoon links, gereedschap rechts, ieder de helft (Durk 2026-09-14) */
  .stamboom.klaar .sb-persoon{grid-column:1;grid-row:1}
  .stamboom.klaar .sb-gereedschap{grid-column:2;grid-row:1}
  html:has(.stamboom.klaar) .taal{z-index:40}
}
/* smal: schermvullende app */
@media(max-width:58rem){
  html:has(.stamboom) .mnav{display:none}
  html:has(.stamboom.klaar),body:has(.stamboom.klaar){overflow:hidden;height:100%}
  .stamboom{position:fixed;inset:0;z-index:35;display:flex;flex-direction:column;background:var(--papier,#f7f3ea);margin:0;font-size:1rem}
  .sb-top{flex:0 0 auto;margin:0;padding:.5rem .6rem;gap:.4rem;background:var(--papier,#f7f3ea);border-bottom:1px solid var(--rand)}
  .sb-menu{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:0;background:none;padding:0;flex:0 0 auto;cursor:pointer}
  .sb-menu span{position:relative;display:block;width:20px;height:2px;background:currentColor}
  .sb-menu span::before,.sb-menu span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor}
  .sb-menu span::before{top:-6px}.sb-menu span::after{top:6px}
  .sb-menu[hidden]{display:none}
  .sb-tabs--desk{display:none}
  .sb-lenskop{display:none;position:sticky;top:0;z-index:3;background:var(--papier,#f7f3ea);padding:.5rem .6rem;margin:0}
  .stamboom[data-w=overzicht] .sb-lenskop,.stamboom[data-w=kaart] .sb-lenskop{display:flex}
  .sb-lensknoppen{margin-left:0;flex-wrap:wrap}
  .sb-zoek input{padding:.6rem .9rem;font-size:1rem}
  .sb-info{width:2.6rem;height:2.6rem}
  .sb-hoofd{display:block;flex:1 1 auto;min-height:0;position:relative;height:auto;min-height:0}
  .sb-gereedschap,.sb-persoon{position:absolute;inset:0;overflow:auto;border:0;border-radius:0}
  .sb-persoon{padding:0 .9rem 2rem;-webkit-overflow-scrolling:touch}
  .stamboom[data-w=persoon] .sb-gereedschap{display:none}
  .stamboom:not([data-w=persoon]) .sb-persoon{display:none}
  .sb-overzicht,.sb-boom,.sb-kaartweergave{border:0;border-radius:0}
  .sb-tabbalk{flex:0 0 auto;display:flex;justify-content:space-around;background:var(--kaart);border-top:1px solid var(--rand);padding:.25rem .25rem calc(.25rem + env(safe-area-inset-bottom))}
  .sb-tabbalk .sb-tab{flex:1 1 0;flex-direction:column;gap:.15rem;border:0;border-radius:.6rem;background:none;padding:.35rem .2rem;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--grijs,#6a655c)}
  .sb-tabbalk .sb-tab svg{width:1.5rem;height:1.5rem;stroke-width:1.6}
  .sb-tabbalk .sb-tab[aria-selected=true]{background:none;color:var(--rood,#4f5608);font-weight:600}
  .sb-lint{top:0;padding:.5rem 0 .45rem}
  .sb-ov-rij{padding-left:min(calc(var(--d) * .7rem), calc(100% - 12rem))}
  .sb-ov-sub{display:none}.sb-ov-rij.focus .sb-ov-sub{display:block}
  .sb-toast{bottom:5.5rem}
  .sb-laag-uitleg{display:none}   /* op de telefoon is de kaart al krap; de laagkeuze staat bovenaan met tellingen en de uitleg zit achter de i-knop */
  .sb-kaartweergave .leaflet-control-zoom{display:none}   /* de +/− knoppen stonden linksboven óver de popup (plaatsnaam onleesbaar); op de telefoon zoomt men met knijpen of dubbeltikken */
  .sb-treffers{position:fixed;left:.6rem;right:.6rem;top:3.9rem;max-height:calc(100vh - 9rem)}
  .sb-blad{width:calc(100% - 1.5rem);max-height:80vh;overflow:auto}
}
/* smalle desktop (site-zijkolom van 19rem erbij): persoonskolom smaller, lijst rustiger ingesprongen */
@media(min-width:58.01rem) and (max-width:80rem){.sb-hoofd{grid-template-columns:minmax(0,1fr) minmax(18rem,22rem)}.stamboom.klaar .sb-hoofd{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sb-ov-rij{padding-left:min(calc(var(--d) * .7rem), calc(100% - 12rem))}.sb-ov-sub{display:none}.sb-ov-rij.focus .sb-ov-sub{display:block}.sb-tabs--desk .sb-tab span{display:none}.sb-tabs--desk .sb-tab{padding:.55rem .7rem}}
/* te smal voor twee kolommen naast de site-zijkolom: gereedschap boven, persoon eronder */
@media(min-width:58.01rem) and (max-width:70rem){.sb-laag-uitleg{display:none}.sb-hoofd{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;grid-template-rows:28rem auto}.sb-persoon{max-height:70vh}.stamboom.klaar .sb-hoofd{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1.15fr)}.stamboom.klaar .sb-persoon{max-height:none;grid-column:1;grid-row:1}.stamboom.klaar .sb-gereedschap{grid-column:1;grid-row:2}}

.sb-taal{margin:1rem 0 0;font-size:.9rem}

.sb-plaatslink{background:none;border:0;padding:0;font:inherit;color:var(--sel);text-decoration:underline dotted;cursor:pointer}
.sb-plaatslink:hover{text-decoration-style:solid}
.sb-lagen{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.35rem;padding-bottom:.35rem;border-bottom:1px dashed var(--rand)}
.sb-lagen .sb-chip small{opacity:.75;font-size:.68rem;margin-left:.15rem}
.sb-laag-uitleg{margin:0 0 .35rem;font-size:.72rem;line-height:1.35;color:var(--grijs,#6a655c)}

.sb-beeld{margin:.6rem 0 .8rem;padding:0}
.sb-beeld img{display:block;width:100%;height:auto;max-height:22rem;object-fit:contain;background:#efe9db;border:1px solid var(--rand);border-radius:.5rem}
.sb-beeld--kop img{max-height:18rem}
.sb-beeld figcaption{font-size:.8rem;color:var(--grijs,#6a655c);margin:.3rem 0 0;line-height:1.35}
.sb-beeld figcaption small{display:block;opacity:.8}
.sb-beeld-rij{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.8rem}

/* familie van nu: discrete ontgrendelknop (beginscherm, uitleg) en het wachtwoordblad */
.sb-slot{border:0;background:none;padding:0 .1rem;margin-left:.6rem;font:inherit;font-size:.78rem;color:var(--grijs,#6a655c);cursor:pointer;text-decoration:underline dotted;text-underline-offset:.2em;vertical-align:baseline}
.sb-slot::before{content:"· ";text-decoration:none;color:var(--onb)}
.sb-slot:hover,.sb-slot:focus-visible{color:var(--grijs,#6a655c);text-decoration:underline dotted}
.sb-slot-veld{display:flex;flex-direction:column;gap:.3rem;margin:.8rem 0 .4rem;font-size:.85rem;color:var(--grijs,#6a655c)}
.sb-slot-veld input{padding:.55rem .8rem;border:1px solid var(--rand);border-radius:.5rem;background:var(--papier,#f7f3ea);font:inherit;font-size:1rem;color:inherit}
.sb-slot-veld input:focus{outline:2px solid var(--sel);outline-offset:1px}
.sb-slot-fout{color:#8a2b2b;font-size:.88rem;margin:.2rem 0}
.sb-slot-fout[hidden],.sb-slot-form[hidden],.sb-slot-open[hidden]{display:none}
.sb-slot-knoppen{display:flex;gap:.4rem;margin:.6rem 0 0}
.sb-slot-status{color:var(--grijs,#6a655c)}
