/* =====================================================================================================
   BesteBlenders.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: fris, rustig keukengevoel. Vers groen als hoofdkleur, warm geel als accent, lichte achtergrond, witte kaarten met zachte schaduw.
   CONTRAST (wit/achtergrond): tekst #1B2733 14:1; gedempte tekst #4A5866 6,8:1; primair #1F7A5C 6,0:1 (donker #14543F 9,4:1);
   CTA #C8460A met witte tekst 4,8:1 (hover #A83A08 6,4:1); accent als TEKST #14543F 5,9:1.
   LET OP: --bbl-accent (#E2A33B) haalt als tekst op wit maar 3,0:1: alleen voor iconen, lijnen en vlakken, niet voor kleine tekst.

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

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

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

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

/* ---------- Knoppen ----------
   Standaard (.bbl-btn) = oranje actieknop voor de winkel. Groen = interne hoofdactie. Omlijnd = tweede keuze. */
.bbl-btn, a.bbl-btn, a.bbl-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(--bbl-cta); border-radius: 12px; background: var(--bbl-cta); color: var(--bbl-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; }
.bbl-btn:hover, a.bbl-btn:hover { background: var(--bbl-cta-hover); border-color: var(--bbl-cta-hover); color: var(--bbl-cta-ink); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(200, 70, 10, .25); }
.bbl-btn:focus-visible, a.bbl-btn:focus-visible { outline: var(--bbl-focus); outline-offset: 2px; }
.bbl-btn--cta { }
a.bbl-btn.bbl-btn--primary, a.bbl-btn.bbl-btn--primary:visited, .bbl-btn.bbl-btn--primary { background: var(--bbl-primary); border-color: var(--bbl-primary); color: #fff; }
a.bbl-btn.bbl-btn--primary:hover, .bbl-btn.bbl-btn--primary:hover { background: var(--bbl-primary-dark); border-color: var(--bbl-primary-dark); color: #fff; box-shadow: 0 6px 14px rgba(15, 110, 122, .25); }
a.bbl-btn.bbl-btn--ghost, a.bbl-btn.bbl-btn--ghost:visited, a.bbl-btn.bbl-btn--secondary, a.bbl-btn.bbl-btn--secondary:visited, .bbl-btn.bbl-btn--ghost, .bbl-btn.bbl-btn--secondary { background: var(--bbl-card); border-color: var(--bbl-primary); color: var(--bbl-primary); font-weight: 700; }
a.bbl-btn.bbl-btn--ghost:hover, a.bbl-btn.bbl-btn--secondary:hover, .bbl-btn.bbl-btn--ghost:hover, .bbl-btn.bbl-btn--secondary:hover { background: var(--bbl-soft); border-color: var(--bbl-primary-dark); color: var(--bbl-primary-dark); box-shadow: none; }
.bbl-btn--block, a.bbl-btn.bbl-btn--block { display: flex; width: 100%; }
.bbl-btn--sm, a.bbl-btn.bbl-btn--sm { min-height: 44px; padding: .4rem .9rem; font-size: .92rem; }
@media (prefers-reduced-motion: reduce) { .bbl-btn, a.bbl-btn { transition: none; } .bbl-btn:hover, a.bbl-btn:hover { transform: none; } }

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

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

/* ---------- Kernkenmerken: tegels met icoon ---------- */
.bbl-kern { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0; padding: 0; list-style: none; }
.bbl-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(--bbl-line); border-radius: 12px; background: var(--bbl-card); text-align: center; line-height: 1.2; }
.bbl-kern__ic { display: inline-flex; color: var(--bbl-accent); }
.bbl-kern__ic svg { display: block; }
.bbl-kern b { font-size: 1.05rem; font-weight: 800; color: var(--bbl-primary-dark); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.bbl-kern small { font-size: .78rem; color: var(--bbl-muted); }
@media (max-width: 420px) { .bbl-kern { gap: .4rem; } .bbl-kern li { min-height: 84px; } .bbl-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. */
.bbl-pb p { margin: 0; }
.bbl-pb__price { font-size: .95rem; font-weight: 700; line-height: 1.3; font-variant-numeric: tabular-nums; color: var(--bbl-ink); }
.bbl-pb__at { font-weight: 500; color: var(--bbl-muted); }
.bbl-pb__shop, .bbl-pb__meta, .bbl-pb__upd, .bbl-pb__diff { font-size: var(--bbl-fs-small); color: var(--bbl-muted); }
.bbl-pb__none { font-weight: 700; color: var(--bbl-ink); }
.bbl-pb--card .bbl-btn, .bbl-pb--hero .bbl-btn, .bbl-pb--row .bbl-btn { display: flex; width: 100%; margin-top: .4rem; }
.bbl-pb--card .bbl-btn { min-height: 46px; }
.bbl-pb--hero .bbl-pb__label { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--bbl-muted); }
.bbl-pb--hero .bbl-pb__price { margin-top: .1rem; font-size: 1.05rem; }
.bbl-pb--hero a.bbl-btn:not(.bbl-btn--ghost) { min-height: 58px; margin-top: .7rem; font-size: 1.15rem; }
.bbl-pb--hero a.bbl-btn.bbl-btn--ghost { margin-top: .6rem; min-height: 46px; font-size: .95rem; }
.bbl-pb--hero .bbl-pb__meta { margin: .65rem 0 .2rem; display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; }
.bbl-pb__stock { display: inline-block; padding: .05rem .55rem; border-radius: var(--bbl-pill); background: var(--bbl-ok-bg); color: var(--bbl-ok); font-weight: 700; font-size: .8rem; }
.bbl-pb__diff { margin-top: .4rem !important; font-weight: 600; }
.bbl-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) ---------- */
.bbl-card { position: relative; display: flex; flex-direction: column; box-sizing: border-box; height: 100%; background: var(--bbl-card); border: 1px solid var(--bbl-line); border-radius: var(--bbl-r); box-shadow: var(--bbl-shadow); overflow: hidden; transition: box-shadow .15s, transform .15s; color: var(--bbl-ink); }
.bbl-card:hover { box-shadow: var(--bbl-shadow-lg); }
.bbl-card__lbl { margin: 0; padding: .3rem .8rem; background: var(--bbl-primary-dark); color: #fff; font-size: .78rem; font-weight: 700; }
.bbl-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(--bbl-primary-dark); color: #fff; font-weight: 800; font-size: .95rem; }
.bbl-card__img { display: block; height: 260px; background: #fff; padding: .6rem .6rem 0; box-sizing: border-box; }
.bbl-card__img img { display: block; width: 100%; height: 100%; object-fit: contain; }
.bbl-card__ph { display: block; width: 100%; height: 100%; background: var(--bbl-bg); border-radius: 8px; }
.bbl-card__body { flex: 1 1 auto; padding: .6rem .95rem 0; min-width: 0; }
.bbl-card__brand { margin: 0; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--bbl-muted); }
.bbl-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; }
.bbl-card__t a { color: var(--bbl-primary-dark); text-decoration: none; }
.bbl-card__t a:hover { text-decoration: underline; }
.bbl-card__buy { padding: .7rem .95rem .95rem; }
.bbl-card__buy .bbl-pb__price { text-align: center; }
.bbl-card__buy .bbl-btn--page { display: flex; width: 100%; margin-top: .4rem; min-height: 46px; font-size: 1rem; white-space: nowrap; }
@media (max-width: 639px) {
	.bbl-card__img { height: 210px; }
	.bbl-card__body { padding: .5rem .7rem 0; }
	.bbl-card__t { font-size: 1rem; }
	.bbl-card .bbl-chips { gap: .25rem; }
	.bbl-card .bbl-chips li { padding: .1rem .5rem; font-size: .76rem; }
	.bbl-card__buy { padding: .6rem .7rem .8rem; }
}
@media (prefers-reduced-motion: reduce) { .bbl-card { transition: none; } }

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

.bbl-row { box-sizing: border-box; display: grid; align-items: center; gap: .6rem 1rem; padding: .9rem 1.1rem; background: var(--bbl-card); border: 1px solid var(--bbl-line); border-radius: var(--bbl-r); box-shadow: var(--bbl-shadow); transition: box-shadow .15s; color: var(--bbl-ink); grid-template-columns: 32px 72px minmax(0, 1fr); grid-template-areas: "no img n" "ks ks ks" "kl kl kl" "buy buy buy"; }
.bbl-row:hover { box-shadow: var(--bbl-shadow-lg); }
.bbl-row *, .bbl-row *::before, .bbl-row *::after { box-sizing: border-box; min-width: 0; }
.bbl-row__no { grid-area: no; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bbl-primary); color: #fff; font-weight: 800; font-size: .95rem; }
.bbl-top__l > li:nth-child(n+4) .bbl-row__no { background: var(--bbl-soft); color: var(--bbl-primary-dark); }
.bbl-row__img { grid-area: img; display: block; width: 72px; height: 72px; }
.bbl-row__img img { display: block; width: 100%; height: 100%; object-fit: contain; }
.bbl-row__img .bbl-card__ph { border-radius: 10px; }
.bbl-row__n { grid-area: n; }
.bbl-row__n .bbl-tags { margin: 0 0 .3rem; gap: .25rem; }
.bbl-row__n .bbl-tag { font-size: .72rem; padding: .08rem .5rem; }
.bbl-row__br { margin: 0; font-size: .8rem; line-height: 1.3; }
.bbl-row__br .bbl-brand { font-size: .74rem; color: var(--bbl-accent-text); text-decoration: underline; text-underline-offset: 2px; }
.bbl-row__br .bbl-brand:hover { text-decoration-thickness: 2px; }
.bbl-row__t { margin: .1rem 0 0; font-size: 1.15rem; font-weight: 800; line-height: 1.25; overflow-wrap: break-word; }
.bbl-row__t a { color: var(--bbl-primary-dark); text-decoration: none; }
.bbl-row__t a:hover { text-decoration: underline; }
.bbl-row__ks { grid-area: ks; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin: 0; padding: 0; list-style: none; }
.bbl-row__k { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .1rem; margin: 0; padding: .45rem .35rem; border-radius: var(--bbl-r-sm); background: var(--bbl-bg); text-align: center; line-height: 1.2; }
.bbl-row__k b { font-size: .88rem; font-weight: 800; color: var(--bbl-primary-dark); overflow-wrap: anywhere; }
.bbl-row__k small { font-size: .72rem; color: var(--bbl-muted); }
.bbl-row__kl { grid-area: kl; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .5rem; margin: 0; line-height: 1.25; }
.bbl-row__kl b { font-size: 1.05rem; font-weight: 800; color: var(--bbl-primary-dark); }
.bbl-row__kl b i { font-style: normal; color: #9A5B00; }
.bbl-row__kl small { font-size: .8rem; font-weight: 400; color: var(--bbl-muted); }
.bbl-row__buy { grid-area: buy; text-align: center; }
.bbl-row__buy .bbl-pb--row .bbl-btn { min-height: 52px; font-size: 1.05rem; }
.bbl-row__buy .bbl-pb__none { font-size: .92rem; }
.bbl-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(--bbl-primary); text-decoration: underline; text-underline-offset: 2px; }
.bbl-row__more:hover { text-decoration-thickness: 2px; }
.bbl-row__more:focus-visible { outline: var(--bbl-focus); outline-offset: 2px; border-radius: 4px; }
@media (min-width: 640px) {
	.bbl-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; }
	.bbl-row__no { width: 36px; height: 36px; }
	.bbl-row__img { width: 88px; height: 88px; }
	.bbl-row__ks { grid-template-columns: repeat(3, 118px); gap: .5rem; }
	.bbl-row__buy { align-self: center; }
}
/* Brede variant (alles op één regel) pas als er echt ruimte is: de naamkolom heeft minstens ~320 px nodig, anders breekt de naam letter voor letter af. */
@media (min-width: 1500px) {
	.bbl-row { grid-template-columns: 36px 112px minmax(280px, 1fr) auto auto 220px; grid-template-areas: "no img n ks kl buy"; gap: 1rem 1.1rem; }
	.bbl-row__img { width: 112px; height: 88px; }
	.bbl-row__ks { grid-template-columns: repeat(3, 114px); }
	.bbl-row__kl { flex-direction: column; align-items: center; gap: .1rem; width: 120px; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .bbl-row { transition: none; } }

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

/* ---------- FAQ-accordeon ---------- */
.bbl-faq__i { margin: 0 0 .5rem; border: 1px solid var(--bbl-line); border-radius: 12px; background: var(--bbl-card); }
.bbl-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(--bbl-primary-dark); }
.bbl-faq__i summary::-webkit-details-marker { display: none; }
.bbl-faq__i summary::after { content: ""; position: absolute; right: 1.1rem; top: 50%; width: .55rem; height: .55rem; margin-top: -.4rem; border-right: 2px solid var(--bbl-primary); border-bottom: 2px solid var(--bbl-primary); transform: rotate(45deg); transition: transform .15s; }
.bbl-faq__i[open] summary::after { transform: rotate(-135deg); margin-top: -.1rem; }
.bbl-faq__i summary:focus-visible { outline: var(--bbl-focus); outline-offset: 2px; border-radius: 12px; }
.bbl-faq__a { padding: 0 1rem 1rem; line-height: var(--bbl-lh); color: var(--bbl-ink); }
.bbl-faq__a p { margin: 0; }

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