/* =====================================================================================================
   BesteScheerapparaat.be: gedeelde basis (design tokens + componenten). Eigenaar: agent B. Eén bron voor gedeelde css.
   Andere weergaven (home, categorie, archief, merk, keuzehulp) gebruiken de variabelen en klassen hieronder; zie ook INTERFACE-NOTITIES-B.md.

   MERK: frisse, rustige huishoudstijl. Diepblauw als hoofdkleur, teal als accent, lichte achtergrond, witte kaarten met zachte schaduw.
   CONTRAST (wit/achtergrond): tekst #1B2733 14:1; gedempte tekst #4A5866 6,8:1; primair #0F4C81 8,9:1;
   CTA #C8460A met witte tekst 4,8:1 (hover #A83A08 6,4:1); accent als TEKST #0A6F79 5,9:1.
   LET OP: --bsa-accent (#0E9AA7) haalt als tekst op wit maar 3,4:1: alleen voor iconen, lijnen en vlakken, niet voor kleine tekst.

   TOKENS (alle onder :root)
     kleur   --bsa-primary --bsa-primary-dark --bsa-accent --bsa-accent-text --bsa-bg --bsa-card --bsa-soft --bsa-ink --bsa-muted --bsa-line
             --bsa-cta --bsa-cta-hover --bsa-cta-ink --bsa-ok --bsa-ok-bg --bsa-warn --bsa-warn-bg --bsa-danger --bsa-danger-bg
     vorm    --bsa-r (14px kaart) --bsa-r-sm (10px) --bsa-r-lg (18px) --bsa-pill --bsa-shadow --bsa-shadow-lg --bsa-focus
     tekst   --bsa-font --bsa-fs-h1 --bsa-fs-h2 --bsa-fs-h3 --bsa-fs-body --bsa-fs-small --bsa-lh
     ruimte  --bsa-gap (1rem) --bsa-gap-s --bsa-gap-l --bsa-wrap (1200px)
     alias   --bsa-c1 (= primary), --bsa-mut, --bsa-p, --bsa-p2, --bsa-cta-h, --bsa-radius: voor bestaande css van andere agents.

   KLASSEN
     layout     .bsa-wrap  .bsa-sec (sectiekader) .bsa-sec__h  .bsa-h1 .bsa-h2 .bsa-h3  .bsa-lead  .bsa-note  .bsa-sr (alleen voor schermlezers)
     knoppen    .bsa-btn (standaard = oranje CTA)  .bsa-btn--cta  .bsa-btn--primary (blauw)  .bsa-btn--secondary / .bsa-btn--ghost (omlijnd)  .bsa-btn--block  .bsa-btn--sm
     chips      .bsa-chips > li   .bsa-chip (los)  .bsa-chip--link (klikbaar)
     badges     .bsa-badge (+ --edit 'Keuze van de redactie', --pop 'Populair', --best, --ok, --warn)   .bsa-tags > .bsa-tag--edit|pop|best (uit BSA_Tags)
     kaart      .bsa-card (+ __lbl __rank __img __body __brand __t __buy)   .bsa-grid > li
     top-lijst  .bsa-top  .bsa-top__l > li > .bsa-row (+ __no __img __n __br __t __ks __k __kl __buy __more)
     prijs      .bsa-pb (+ --hero --card --row --price --sticky; __l __label __price __at __meta __stock __diff __upd __none)
     score      .bsa-rate  .bsa-rates > .bsa-rate__pill
     tabel      .bsa-tbl (+ --specs --prices)   .bsa-tblwrap (horizontaal scrollbaar op smal scherm)
     faq        .bsa-faq > details.bsa-faq__i > summary + .bsa-faq__a
     kruimelpad .bsa-bc (eigen, eenvoudig; agent E gebruikt .bsa-crumbs)
     kernkenmerk .bsa-kern > li (icoon, waarde, label)
   ===================================================================================================== */

:root {
	/* kleur */
	--bsa-primary: #0F4C81;
	--bsa-primary-dark: #0B2E4F;
	--bsa-accent: #0E9AA7;
	--bsa-accent-text: #0A6F79;
	--bsa-bg: #F3F7FA;
	--bsa-card: #FFFFFF;
	--bsa-soft: #E8F0F6;
	--bsa-ink: #1B2733;
	--bsa-muted: #4A5866;
	--bsa-line: #D9E2EA;
	--bsa-cta: #C8460A;
	--bsa-cta-hover: #A83A08;
	--bsa-cta-ink: #FFFFFF;
	--bsa-ok: #1E7A3C;
	--bsa-ok-bg: #E3F4E8;
	--bsa-warn: #8A5300;
	--bsa-warn-bg: #FFF3D6;
	--bsa-danger: #B3261E;
	--bsa-danger-bg: #FDE9E7;
	/* vorm */
	--bsa-r: 14px;
	--bsa-r-sm: 10px;
	--bsa-r-lg: 18px;
	--bsa-pill: 999px;
	--bsa-shadow: 0 2px 4px rgba(11, 46, 79, .04), 0 6px 18px rgba(11, 46, 79, .07);
	--bsa-shadow-lg: 0 4px 8px rgba(11, 46, 79, .05), 0 14px 34px rgba(11, 46, 79, .13);
	--bsa-focus: 3px solid #0B2E4F;
	/* tekst */
	--bsa-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--bsa-fs-h1: clamp(1.75rem, 4.6vw, 2.5rem);
	--bsa-fs-h2: clamp(1.3rem, 3vw, 1.7rem);
	--bsa-fs-h3: 1.1rem;
	--bsa-fs-body: 1rem;
	--bsa-fs-small: .875rem;
	--bsa-lh: 1.6;
	/* ruimte */
	--bsa-gap: 1rem;
	--bsa-gap-s: .5rem;
	--bsa-gap-l: 1.6rem;
	--bsa-wrap: 1200px;
	/* alias voor bestaande css van andere agents */
	--bsa-c1: var(--bsa-primary);
	--bsa-mut: var(--bsa-muted);
	--bsa-p: var(--bsa-primary);
	--bsa-p2: var(--bsa-primary-dark);
	--bsa-cta-h: var(--bsa-cta-hover);
	--bsa-radius: var(--bsa-r);
}

/* ---------- Basis ---------- */
.bsa-wrap { box-sizing: border-box; width: min(var(--bsa-wrap), calc(100vw - 32px)); margin-inline: auto; }
.bsa-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.bsa-h1 { margin: 0 0 .5rem; font-size: var(--bsa-fs-h1); line-height: 1.15; font-weight: 800; color: var(--bsa-primary-dark); letter-spacing: -.01em; }
.bsa-h2, .bsa-sec__h { margin: 0 0 .9rem; font-size: var(--bsa-fs-h2); line-height: 1.25; font-weight: 800; color: var(--bsa-primary-dark); }
.bsa-h3 { margin: 0 0 .5rem; font-size: var(--bsa-fs-h3); line-height: 1.3; font-weight: 700; color: var(--bsa-primary-dark); }
.bsa-lead { margin: 0 0 1rem; font-size: 1.06rem; line-height: var(--bsa-lh); color: var(--bsa-ink); }
.bsa-note { margin: .8rem 0 0; font-size: var(--bsa-fs-small); color: var(--bsa-muted); }
.bsa-sec { box-sizing: border-box; margin: 0 0 1.2rem; padding: 1.5rem; background: var(--bsa-card); border: 1px solid var(--bsa-line); border-radius: var(--bsa-r); box-shadow: var(--bsa-shadow); scroll-margin-top: 1rem; color: var(--bsa-ink); }
@media (max-width: 859px) { .bsa-sec { padding: 1.1rem; } }

/* ---------- Knoppen ----------
   Standaard (.bsa-btn) = oranje actieknop voor de winkel. Blauw = interne hoofdactie. Omlijnd = tweede keuze. */
.bsa-btn, a.bsa-btn, a.bsa-btn:visited { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 48px; padding: .55rem 1.2rem; border: 2px solid var(--bsa-cta); border-radius: 12px; background: var(--bsa-cta); color: var(--bsa-cta-ink); font-family: inherit; font-weight: 800; font-size: 1rem; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, transform .15s, box-shadow .15s; }
.bsa-btn:hover, a.bsa-btn:hover { background: var(--bsa-cta-hover); border-color: var(--bsa-cta-hover); color: var(--bsa-cta-ink); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(200, 70, 10, .25); }
.bsa-btn:focus-visible, a.bsa-btn:focus-visible { outline: var(--bsa-focus); outline-offset: 2px; }
.bsa-btn--cta { }
a.bsa-btn.bsa-btn--primary, a.bsa-btn.bsa-btn--primary:visited, .bsa-btn.bsa-btn--primary { background: var(--bsa-primary); border-color: var(--bsa-primary); color: #fff; }
a.bsa-btn.bsa-btn--primary:hover, .bsa-btn.bsa-btn--primary:hover { background: var(--bsa-primary-dark); border-color: var(--bsa-primary-dark); color: #fff; box-shadow: 0 6px 14px rgba(15, 76, 129, .25); }
a.bsa-btn.bsa-btn--ghost, a.bsa-btn.bsa-btn--ghost:visited, a.bsa-btn.bsa-btn--secondary, a.bsa-btn.bsa-btn--secondary:visited, .bsa-btn.bsa-btn--ghost, .bsa-btn.bsa-btn--secondary { background: var(--bsa-card); border-color: var(--bsa-primary); color: var(--bsa-primary); font-weight: 700; }
a.bsa-btn.bsa-btn--ghost:hover, a.bsa-btn.bsa-btn--secondary:hover, .bsa-btn.bsa-btn--ghost:hover, .bsa-btn.bsa-btn--secondary:hover { background: var(--bsa-soft); border-color: var(--bsa-primary-dark); color: var(--bsa-primary-dark); box-shadow: none; }
.bsa-btn--block, a.bsa-btn.bsa-btn--block { display: flex; width: 100%; }
.bsa-btn--sm, a.bsa-btn.bsa-btn--sm { min-height: 44px; padding: .4rem .9rem; font-size: .92rem; }
@media (prefers-reduced-motion: reduce) { .bsa-btn, a.bsa-btn { transition: none; } .bsa-btn:hover, a.bsa-btn:hover { transform: none; } }

/* ---------- Chips en badges ---------- */
.bsa-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.bsa-chips li, .bsa-chip { display: inline-block; margin: 0; padding: .22rem .65rem; border-radius: var(--bsa-pill); background: var(--bsa-soft); border: 1px solid var(--bsa-line); color: var(--bsa-primary-dark); font-size: .82rem; line-height: 1.4; font-weight: 600; }
a.bsa-chip--link { text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; background: var(--bsa-card); }
a.bsa-chip--link:hover { border-color: var(--bsa-primary); }
.bsa-badge, .bsa-tag { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .6rem; border-radius: 6px; font-size: .75rem; font-weight: 700; line-height: 1.4; background: var(--bsa-soft); color: var(--bsa-primary-dark); }
.bsa-badge--edit, .bsa-tag--edit { background: var(--bsa-primary-dark); color: #fff; }
.bsa-badge--pop, .bsa-tag--pop { background: var(--bsa-warn-bg); color: var(--bsa-warn); }
.bsa-badge--best, .bsa-badge--ok, .bsa-tag--best { background: var(--bsa-ok-bg); color: var(--bsa-ok); }
.bsa-badge--warn { background: var(--bsa-warn-bg); color: var(--bsa-warn); }
.bsa-tags { display: flex; flex-wrap: wrap; gap: .3rem; margin: .4rem 0 0; }

/* ---------- Beoordelingen van de winkels ---------- */
.bsa-rate { margin: .35rem 0 0; font-size: .86rem; color: var(--bsa-muted); }
.bsa-rate__s { color: #9A5B00; }
.bsa-rates { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0 0; padding: 0; list-style: none; }
.bsa-rate__pill { display: inline-flex; align-items: center; gap: .35rem; margin: 0; padding: .25rem .7rem; border-radius: var(--bsa-pill); background: var(--bsa-card); border: 1px solid var(--bsa-line); font-size: .85rem; color: var(--bsa-ink); }
.bsa-rate__pill b { font-weight: 800; }
.bsa-rate__pill i { font-style: normal; color: #9A5B00; }
.bsa-rate__pill small { color: var(--bsa-muted); font-size: .8rem; }

/* ---------- Kernkenmerken: tegels met icoon ---------- */
.bsa-kern { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0; padding: 0; list-style: none; }
.bsa-kern li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; min-height: 92px; margin: 0; padding: .7rem .4rem; border: 1px solid var(--bsa-line); border-radius: 12px; background: var(--bsa-card); text-align: center; line-height: 1.2; }
.bsa-kern__ic { display: inline-flex; color: var(--bsa-accent); }
.bsa-kern__ic svg { display: block; }
.bsa-kern b { font-size: 1.05rem; font-weight: 800; color: var(--bsa-primary-dark); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.bsa-kern small { font-size: .78rem; color: var(--bsa-muted); }
@media (max-width: 420px) { .bsa-kern { gap: .4rem; } .bsa-kern li { min-height: 84px; } .bsa-kern b { font-size: .98rem; } }

/* ---------- Prijsblok ----------
   Hiërarchie overal: titel > knop > prijs. De prijs is één kleine regel ("€ 619,99 bij bol") boven de grote knop. */
.bsa-pb p { margin: 0; }
.bsa-pb__price { font-size: .95rem; font-weight: 700; line-height: 1.3; font-variant-numeric: tabular-nums; color: var(--bsa-ink); }
.bsa-pb__at { font-weight: 500; color: var(--bsa-muted); }
.bsa-pb__shop, .bsa-pb__meta, .bsa-pb__upd, .bsa-pb__diff { font-size: var(--bsa-fs-small); color: var(--bsa-muted); }
.bsa-pb__none { font-weight: 700; color: var(--bsa-ink); }
.bsa-pb--card .bsa-btn, .bsa-pb--hero .bsa-btn, .bsa-pb--row .bsa-btn { display: flex; width: 100%; margin-top: .4rem; }
.bsa-pb--card .bsa-btn { min-height: 46px; }
.bsa-pb--hero .bsa-pb__label { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--bsa-muted); }
.bsa-pb--hero .bsa-pb__price { margin-top: .1rem; font-size: 1.05rem; }
.bsa-pb--hero a.bsa-btn:not(.bsa-btn--ghost) { min-height: 58px; margin-top: .7rem; font-size: 1.15rem; }
.bsa-pb--hero a.bsa-btn.bsa-btn--ghost { margin-top: .6rem; min-height: 46px; font-size: .95rem; }
.bsa-pb--hero .bsa-pb__meta { margin: .65rem 0 .2rem; display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; }
.bsa-pb__stock { display: inline-block; padding: .05rem .55rem; border-radius: var(--bsa-pill); background: var(--bsa-ok-bg); color: var(--bsa-ok); font-weight: 700; font-size: .8rem; }
.bsa-pb__diff { margin-top: .4rem !important; font-weight: 600; }
.bsa-pb__upd { margin-top: .2rem !important; }
/* Er is maar één land (België): data-land="BE" blijft in de html voor oudere scripts, NL wordt nooit getoond. */
[data-land="NL"] { display: none !important; }

/* ---------- Kaart (raster) ---------- */
.bsa-card { position: relative; display: flex; flex-direction: column; box-sizing: border-box; height: 100%; background: var(--bsa-card); border: 1px solid var(--bsa-line); border-radius: var(--bsa-r); box-shadow: var(--bsa-shadow); overflow: hidden; transition: box-shadow .15s, transform .15s; color: var(--bsa-ink); }
.bsa-card:hover { box-shadow: var(--bsa-shadow-lg); }
.bsa-card__lbl { margin: 0; padding: .3rem .8rem; background: var(--bsa-primary-dark); color: #fff; font-size: .78rem; font-weight: 700; }
.bsa-card__rank { position: absolute; top: .5rem; left: .5rem; z-index: 2; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bsa-primary-dark); color: #fff; font-weight: 800; font-size: .95rem; }
.bsa-card__img { display: block; height: 260px; background: #fff; padding: .6rem .6rem 0; box-sizing: border-box; }
.bsa-card__img img { display: block; width: 100%; height: 100%; object-fit: contain; }
.bsa-card__ph { display: block; width: 100%; height: 100%; background: var(--bsa-bg); border-radius: 8px; }
.bsa-card__body { flex: 1 1 auto; padding: .6rem .95rem 0; min-width: 0; }
.bsa-card__brand { margin: 0; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--bsa-muted); }
.bsa-card__t { margin: .15rem 0 0; font-size: 1.08rem; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bsa-card__t a { color: var(--bsa-primary-dark); text-decoration: none; }
.bsa-card__t a:hover { text-decoration: underline; }
.bsa-card__buy { padding: .7rem .95rem .95rem; }
.bsa-card__buy .bsa-pb__price { text-align: center; }
.bsa-card__buy .bsa-btn--page { display: flex; width: 100%; margin-top: .4rem; min-height: 46px; font-size: 1rem; white-space: nowrap; }
@media (max-width: 639px) {
	.bsa-card__img { height: 210px; }
	.bsa-card__body { padding: .5rem .7rem 0; }
	.bsa-card__t { font-size: 1rem; }
	.bsa-card .bsa-chips { gap: .25rem; }
	.bsa-card .bsa-chips li { padding: .1rem .5rem; font-size: .76rem; }
	.bsa-card__buy { padding: .6rem .7rem .8rem; }
}
@media (prefers-reduced-motion: reduce) { .bsa-card { transition: none; } }

/* ---------- Raster en top-lijst: brede rij per model ---------- */
.bsa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: .9rem; margin: 0; padding: 0; list-style: none; }
.bsa-grid > li { margin: 0; min-width: 0; }
.bsa-top__h { margin: 0 0 .8rem; color: var(--bsa-primary-dark); }
.bsa-top__l { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.bsa-top__l > li { margin: 0; min-width: 0; }

.bsa-row { box-sizing: border-box; display: grid; align-items: center; gap: .6rem 1rem; padding: .9rem 1.1rem; background: var(--bsa-card); border: 1px solid var(--bsa-line); border-radius: var(--bsa-r); box-shadow: var(--bsa-shadow); transition: box-shadow .15s; color: var(--bsa-ink); grid-template-columns: 32px 72px minmax(0, 1fr); grid-template-areas: "no img n" "ks ks ks" "kl kl kl" "buy buy buy"; }
.bsa-row:hover { box-shadow: var(--bsa-shadow-lg); }
.bsa-row *, .bsa-row *::before, .bsa-row *::after { box-sizing: border-box; min-width: 0; }
.bsa-row__no { grid-area: no; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bsa-primary); color: #fff; font-weight: 800; font-size: .95rem; }
.bsa-top__l > li:nth-child(n+4) .bsa-row__no { background: var(--bsa-soft); color: var(--bsa-primary-dark); }
.bsa-row__img { grid-area: img; display: block; width: 72px; height: 72px; }
.bsa-row__img img { display: block; width: 100%; height: 100%; object-fit: contain; }
.bsa-row__img .bsa-card__ph { border-radius: 10px; }
.bsa-row__n { grid-area: n; }
.bsa-row__n .bsa-tags { margin: 0 0 .3rem; gap: .25rem; }
.bsa-row__n .bsa-tag { font-size: .72rem; padding: .08rem .5rem; }
.bsa-row__br { margin: 0; font-size: .8rem; line-height: 1.3; }
.bsa-row__br .bsa-brand { font-size: .74rem; color: var(--bsa-accent-text); text-decoration: underline; text-underline-offset: 2px; }
.bsa-row__br .bsa-brand:hover { text-decoration-thickness: 2px; }
.bsa-row__t { margin: .1rem 0 0; font-size: 1.15rem; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.bsa-row__t a { color: var(--bsa-primary-dark); text-decoration: none; }
.bsa-row__t a:hover { text-decoration: underline; }
.bsa-row__ks { grid-area: ks; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin: 0; padding: 0; list-style: none; }
.bsa-row__k { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .1rem; margin: 0; padding: .45rem .35rem; border-radius: var(--bsa-r-sm); background: var(--bsa-bg); text-align: center; line-height: 1.2; }
.bsa-row__k b { font-size: .88rem; font-weight: 800; color: var(--bsa-primary-dark); overflow-wrap: anywhere; }
.bsa-row__k small { font-size: .72rem; color: var(--bsa-muted); }
.bsa-row__kl { grid-area: kl; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .5rem; margin: 0; line-height: 1.25; }
.bsa-row__kl b { font-size: 1.05rem; font-weight: 800; color: var(--bsa-primary-dark); }
.bsa-row__kl b i { font-style: normal; color: #9A5B00; }
.bsa-row__kl small { font-size: .8rem; font-weight: 400; color: var(--bsa-muted); }
.bsa-row__buy { grid-area: buy; text-align: center; }
.bsa-row__buy .bsa-pb--row .bsa-btn { min-height: 52px; font-size: 1.05rem; }
.bsa-row__buy .bsa-pb__none { font-size: .92rem; }
.bsa-row__more { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 .4rem; font-size: .88rem; font-weight: 600; color: var(--bsa-primary); text-decoration: underline; text-underline-offset: 2px; }
.bsa-row__more:hover { text-decoration-thickness: 2px; }
.bsa-row__more:focus-visible { outline: var(--bsa-focus); outline-offset: 2px; border-radius: 4px; }
@media (min-width: 640px) {
	.bsa-row { grid-template-columns: 36px 88px minmax(0, 1fr) 230px; grid-template-areas: "no img n buy" ". ks ks buy" ". kl kl buy"; gap: .55rem 1.1rem; padding: 1rem 1.3rem; }
	.bsa-row__no { width: 36px; height: 36px; }
	.bsa-row__img { width: 88px; height: 88px; }
	.bsa-row__ks { grid-template-columns: repeat(3, 118px); gap: .5rem; }
	.bsa-row__buy { align-self: center; }
}
@media (min-width: 1100px) {
	.bsa-row { grid-template-columns: 36px 112px minmax(0, 1fr) auto auto 220px; grid-template-areas: "no img n ks kl buy"; gap: 1rem 1.1rem; }
	.bsa-row__img { width: 112px; height: 88px; }
	.bsa-row__ks { grid-template-columns: repeat(3, 114px); }
	.bsa-row__kl { flex-direction: column; align-items: center; gap: .1rem; width: 120px; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .bsa-row { transition: none; } }

/* ---------- Tabellen ---------- */
.bsa-tblwrap { overflow-x: auto; }
.bsa-tbl { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: .95rem; color: var(--bsa-ink); }
.bsa-tbl th, .bsa-tbl td { padding: .65rem .6rem; text-align: left; vertical-align: middle; border: 0; border-top: 1px solid var(--bsa-line); background: transparent; }
.bsa-tbl tbody tr:first-child > * { border-top: 0; }
.bsa-tbl thead th { border-top: 0; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bsa-muted); }
.bsa-tbl--specs tbody tr:nth-child(odd) > * { background: var(--bsa-bg); }
.bsa-tbl--specs th { width: 38%; font-weight: 600; color: var(--bsa-primary-dark); }

/* ---------- FAQ-accordeon ---------- */
.bsa-faq__i { margin: 0 0 .5rem; border: 1px solid var(--bsa-line); border-radius: 12px; background: var(--bsa-card); }
.bsa-faq__i summary { position: relative; display: flex; align-items: center; min-height: 52px; padding: .5rem 2.8rem .5rem 1rem; cursor: pointer; list-style: none; font-weight: 700; color: var(--bsa-primary-dark); }
.bsa-faq__i summary::-webkit-details-marker { display: none; }
.bsa-faq__i summary::after { content: ""; position: absolute; right: 1.1rem; top: 50%; width: .55rem; height: .55rem; margin-top: -.4rem; border-right: 2px solid var(--bsa-primary); border-bottom: 2px solid var(--bsa-primary); transform: rotate(45deg); transition: transform .15s; }
.bsa-faq__i[open] summary::after { transform: rotate(-135deg); margin-top: -.1rem; }
.bsa-faq__i summary:focus-visible { outline: var(--bsa-focus); outline-offset: 2px; border-radius: 12px; }
.bsa-faq__a { padding: 0 1rem 1rem; line-height: var(--bsa-lh); color: var(--bsa-ink); }
.bsa-faq__a p { margin: 0; }

/* ---------- Kruimelpad (eenvoudig; agent E heeft .bsa-crumbs) ---------- */
.bsa-bc ol { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0 0 .4rem; padding: 0; list-style: none; font-size: .85rem; color: var(--bsa-muted); }
.bsa-bc li { margin: 0; }
.bsa-bc li + li::before { content: "\203A"; margin-right: .25rem; }
.bsa-bc a { color: var(--bsa-primary); }
