/* Boelangerie Bakkerskast: opmaak van de kast, de receptrekenaar, het receptoverzicht en de receptpagina.
   Bron: ontwerp/site/prototype-thuisbakker/kast.css. Alles heeft het voorvoegsel bk-; de kleuren, lettertypen en de gedeelde
   onderdelen (knop, chip, stepper, kader, prijskaartje, stempel, bordje, veld, tekstlink, bovenregel, paginakop) komen van het thema. */

.bk{display:block;color:var(--tekst);font-family:var(--sans)}
.bk-wrap{max-width:1160px;margin:0 auto;padding:0 16px;box-sizing:border-box}
.bk-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bk-sectie{padding:12px 0 56px}
.bk-terug{margin:0 0 4px}
.bk-binnenkort{margin:0;padding:12px 14px;border-radius:12px;border:1.5px dashed #B99B72;background:transparent;color:var(--tekst-zacht);font:600 17px/1.3 var(--sans);text-align:center}

/* ---------- de tekeningen ---------- */
.bk-tekening{position:relative;display:block;width:100%;aspect-ratio:1/1;border-radius:9px;background:radial-gradient(circle at 50% 36%,#F4C971,var(--mosterd) 72%);overflow:hidden}
.bk-tekening svg{position:absolute;left:6%;top:6%;width:88%;height:88%}
.bk-thumb{display:block;width:64px;height:64px;border:2.5px solid var(--korst);border-radius:11px;padding:2px;background:var(--goud);overflow:hidden;flex:0 0 64px;box-sizing:border-box}
.bk-thumb .bk-tekening{height:100%;aspect-ratio:auto;border-radius:7px}

/* ---------- de receptrekenaar: dicht is hij klein ---------- */
.bk-recept{position:relative;background:var(--papier-licht);border:2px solid var(--korst);border-radius:18px;padding:18px 16px;box-shadow:0 5px 0 var(--lijn);scroll-margin-top:16px;box-sizing:border-box}
.bk-recept .bordje{margin-bottom:12px}
.bk-recept h2{font-size:clamp(25px,6vw,34px)}
.bk-sub{margin:6px 0 0;font-size:17px;color:var(--tekst-zacht);max-width:44em}
.bk-recepten{margin-top:14px}
.bk-rchip{min-height:48px;padding:0 14px;border-radius:10px;border:1.5px solid #B99B72;background:transparent;color:var(--tekst);font:600 17px/1 var(--sans);cursor:pointer}
.bk-rchip[aria-pressed=true]{background:var(--papier-licht);border:2px solid var(--korst);color:var(--korst);font-weight:700;box-shadow:inset 0 -4px 0 var(--goud)}
.bk-allerecepten,.bk-leesrecept{margin:8px 0 0}
.bk-allerecepten a,.bk-leesrecept a{display:inline-flex;align-items:center;min-height:44px}
.bk-koppel{font-size:clamp(26px,6.4vw,36px);margin:30px 0 6px}
.bk-rbody{margin-top:16px;padding-top:14px;border-top:2px dotted var(--stip)}
.bk-rbody[hidden]{display:none}
.bk-aantalrij{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-end}
.bk-aantalrij[hidden]{display:none}
.bk-aantalrij .stepper button{width:56px;height:52px}
.bk-aantalrij .stepper output{min-width:46px;font-size:23px}
.bk-aantalrij .chip{min-height:48px}
.bk-voor{margin:8px 0 0;font:700 18px/1.3 var(--slab);color:var(--terracotta-donker)}
.bk-opties{display:grid;gap:10px;margin-top:16px}
.bk-optie{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline;text-align:left;padding:12px 14px;border:1.5px solid #B99B72;border-radius:12px;background:transparent;cursor:pointer;min-height:64px;font:inherit;color:inherit}
.bk-optie[aria-checked=true]{border:2px solid var(--korst);background:#FFFDF8;box-shadow:inset 4px 0 0 var(--goud)}
.bk-optie b{font:700 20px var(--slab);color:var(--korst)}
.bk-optie i{font:700 20px var(--slab);font-style:normal;color:var(--korst);white-space:nowrap}
.bk-optie small{grid-column:1/-1;font-size:16px;line-height:1.3;color:var(--tekst-zacht)}
.bk-ruit{margin-top:6px}
.bk-mixdetail{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:start;margin-top:14px;padding-top:14px;border-top:2px dotted var(--stip)}
.bk-mixdetail b{display:block;font:700 19px/1.2 var(--slab);color:var(--korst)}
.bk-mixdetail p{font-size:17px;color:var(--tekst-zacht);margin:3px 0 0;line-height:1.4}
.bk-mixdetail .bk-thumb{width:72px;height:72px}
.bk-cadeaukeuze{display:flex;gap:12px;align-items:flex-start;margin-top:6px;padding:6px 0;min-height:44px;line-height:1.3;font-size:17px;cursor:pointer}
.bk-cadeaukeuze input{width:26px;height:26px;margin:0;flex:0 0 26px;accent-color:var(--terracotta)}
.bk-cadeaukeuze small{display:block;font-size:16px;color:var(--tekst-zacht)}
.bk-uitleg{margin:14px 0 10px;color:var(--tekst-zacht);font-size:17px;line-height:1.4}
.bk-lijst{list-style:none;margin:8px 0 0;padding:0}
.bk-rij{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:8px 0;border-bottom:2px dotted var(--stip)}
.bk-vink{display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer;position:relative}
.bk-vink input{width:26px;height:26px;accent-color:var(--terracotta);margin:0;cursor:pointer}
.bk-naam b{display:block;font:700 18px/1.2 var(--slab);color:var(--korst)}
.bk-naam small{display:block;font-size:16px;line-height:1.3;color:var(--tekst-zacht);margin-top:2px}
.bk-prijs{font:700 19px var(--slab);color:var(--korst);white-space:nowrap}
.bk-rij.is-uit .bk-naam,.bk-rij.is-uit .bk-prijs{opacity:.5}
.bk-rij.is-uit .bk-prijs{text-decoration:line-through}
.bk-extra{margin-top:12px;border:1.5px dashed #B99B72;border-radius:12px;padding:0 12px}
.bk-extra summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-height:52px;align-content:center;padding:6px 0}
.bk-extra summary::-webkit-details-marker{display:none}
.bk-extra summary span{font:700 18px var(--slab);color:var(--korst)}
.bk-extra summary small{font-size:16px;color:var(--tekst-zacht)}
.bk-extra summary:after{content:"+";margin-left:auto;width:32px;height:32px;border-radius:50%;border:2px solid var(--terracotta-donker);font:700 22px/27px var(--slab);text-align:center;color:var(--terracotta-donker)}
.bk-extra[open] summary:after{content:"\2013"}
.bk-extra .bk-lijst{margin-top:0}
.bk-extra .bk-rij:last-child{border-bottom:0}
.bk-tipje{font-size:16px;color:var(--tekst-zacht);margin:12px 0 0}
.bk-rvoet{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin-top:16px}
.bk-rtot span{display:block;font-size:16px;color:var(--tekst-zacht)}
.bk-rtot b{font:700 32px/1.05 var(--slab);color:var(--korst)}
.bk-rvoet .knop,.bk-rvoet .bk-binnenkort{flex:1 1 240px}
.bk-rvoet .knop[disabled]{opacity:.5;cursor:not-allowed}
.bk-klaar{margin:14px 0 0;font-size:18px;color:#2F6B1F}
.bk-fout{margin:14px 0 0;font-size:17px;color:#9A2A10;font-weight:700}
.bk-sluit{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;margin-top:8px;border:0;background:none;font:600 17px var(--sans);color:var(--terracotta-donker);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.bk-vers{margin-top:14px;padding-top:12px;border-top:1.5px dashed var(--lijn);font-size:17px}

/* ---------- het raster, per soort ---------- */
.bk-cats{display:flex;gap:8px;overflow-x:auto;padding:8px 16px 10px;margin:8px -16px 4px;scrollbar-width:none;position:sticky;top:0;z-index:6;background:var(--papier) var(--korrel)}
.bk-cats::-webkit-scrollbar{display:none}
/* Scrolsignaal: de rij loopt rechts zichtbaar uit, zodat je ziet dat er meer keuzes zijn (meting Frontend, 19 okt). */
.bk-cats{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent);mask-image:linear-gradient(to right,#000 82%,transparent)}
.bk-chip{flex:none;min-height:48px;padding:0 18px;border-radius:999px;border:1.5px solid #B99B72;background:transparent;font:700 17px var(--sans);color:var(--tekst);cursor:pointer;white-space:nowrap}
.bk-chip[aria-pressed=true]{background:var(--korst);color:var(--papier-licht);border-color:var(--korst)}
.bk-zoek{display:block;margin:10px 0 6px}
.bk-zoek .veld{border:2px solid var(--korst)}
.bk-groep{margin-top:26px;padding:0}
.bk-groep[hidden]{display:none}
.bk-groepkop{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;font-size:clamp(23px,5.4vw,30px);padding-bottom:8px;border-bottom:3px solid var(--korst)}
.bk-groepkop small{font:600 16px/1.3 var(--sans);color:var(--tekst-zacht)}
.bk-kaarten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px;margin-top:18px}
.bk-kaart{display:flex;flex-direction:column;gap:8px;min-width:0}
.bk-kaart[hidden]{display:none}
.bk-beeld{position:relative;display:block;margin-bottom:16px;text-decoration:none}
.bk-beeld .kader{padding:4px;border-radius:14px;background:var(--goud)}
.bk-beeld .stempel{position:absolute;left:-6px;top:-12px;z-index:2;font-size:16px;padding:6px 8px 5px}
.bk-beeld .prijskaartje{right:-8px;bottom:-14px}
.bk-tekst h3{font-size:20px;line-height:1.15}
.bk-tekst h3 a{display:block;padding:11px 0;margin:-11px 0;color:var(--korst);text-decoration:none}
.bk-tekst .feit{font-size:16px;margin:3px 0 0}
.bk-keuze .groep{gap:6px}
.bk-keuze .chip{padding:0 10px;font-size:16px}
.bk-actie{margin-top:auto;padding-top:4px}
.bk-actie .knop.vol{min-height:52px;font-size:17px;padding:8px 10px}
.bk-actie .bk-binnenkort{font-size:16px;padding:10px}
.bk-niets{padding:22px 0}
.bk-status{margin:6px 0 0;font:700 16px/1.3 var(--sans)}
.bk-status:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;background:currentColor}
.bk-status.bk-bestel{color:#7A4A06}
.bk-status.bk-uit{color:#9A2A10}
.is-uitverkocht .bk-tekening{filter:grayscale(.75);opacity:.7}
.bk-kaart.is-uitverkocht .knop{background:#E7DCC6;color:var(--tekst-zacht);border:2px dashed #B99B72;box-shadow:none;cursor:not-allowed}

/* ---------- productinformatie: de uitklapper "Ingrediënten, allergenen en voedingswaarde" ---------- */
.bk-info{display:block;margin-top:10px;border:1.5px dashed #B99B72;border-radius:12px;padding:0 12px;font-size:16px;line-height:1.4;font-weight:400;color:var(--tekst);box-sizing:border-box;max-width:100%}
.bk-info summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;min-height:48px;padding:6px 0;font:700 16px/1.25 var(--slab);color:var(--korst);overflow-wrap:anywhere;hyphens:auto}
.bk-info summary::-webkit-details-marker{display:none}
.bk-info summary:after{content:"+";flex:0 0 32px;width:32px;height:32px;border-radius:50%;border:2px solid var(--terracotta-donker);font:700 22px/27px var(--slab);text-align:center;color:var(--terracotta-donker)}
.bk-info[open] summary:after{content:"\2013"}
.bk-info-inhoud{padding:2px 0 12px;display:grid;gap:8px;overflow-wrap:anywhere;word-break:normal}
.bk-info-r{margin:0;color:var(--tekst)}
.bk-info-r[hidden]{display:none}
.bk-info-k{font-weight:700;color:var(--korst)}
.bk-info strong,.bk-allergeen{font-weight:800;color:var(--tekst)}
.bk-voeding{width:100%;border-collapse:collapse;margin:2px 0;font-size:16px}
.bk-voeding caption{caption-side:top;text-align:left;font-weight:700;color:var(--korst);padding:0 0 4px}
.bk-voeding th,.bk-voeding td{padding:6px 0;border-bottom:1px dotted var(--stip);font-weight:400;vertical-align:baseline;text-align:left}
.bk-voeding td{text-align:right;white-space:nowrap;padding-left:12px}
.bk-voeding tr:last-child th,.bk-voeding tr:last-child td{border-bottom:0}
.bk-ean{margin:0;font-size:16px;letter-spacing:.04em;color:#7A6A55}
.bk-ean[hidden]{display:none}
.bk-infovolgt{margin:0;padding:12px 14px;border-radius:12px;border:1.5px dashed #B99B72;background:transparent;color:var(--tekst-zacht);font:600 17px/1.3 var(--sans);text-align:center}
.bk-actie .bk-infovolgt{font-size:16px;padding:10px}
.bk-rvoet .bk-infovolgt{flex:1 1 240px}
/* In de kaart (twee kolommen op een telefoon) is er weinig ruimte: de kaart blijft op zijn plek en de inhoud klapt in de kaart uit. */
.bk-kaart .bk-info{margin-top:4px;padding:0 8px}
.bk-kaart .bk-info summary{gap:6px}
@media(max-width:699px){
  .bk-kaart .bk-voeding,.bk-kaart .bk-voeding tbody,.bk-kaart .bk-voeding tr{display:block}
  .bk-kaart .bk-voeding caption{display:block}
  .bk-kaart .bk-voeding tr{padding:5px 0;border-bottom:1px dotted var(--stip)}
  .bk-kaart .bk-voeding tr:last-child{border-bottom:0}
  .bk-kaart .bk-voeding th,.bk-kaart .bk-voeding td{display:block;padding:0;border:0;text-align:left;white-space:normal}
  .bk-kaart .bk-voeding td{font-weight:700}
}
.bk-rij .bk-info{margin-top:8px}
.bk-recing .bk-info{margin-top:8px;font-size:16px}
.bk-mixdetail+.bk-info{margin-top:12px}

/* melding */
.bk-toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%,16px);opacity:0;pointer-events:none;z-index:50;background:var(--korst);color:var(--papier-licht);font:700 17px/1.3 var(--slab);padding:13px 18px;border-radius:12px;border:2px solid var(--goud);max-width:min(92vw,420px);text-align:center;box-shadow:0 8px 22px rgba(42,23,11,.35);transition:opacity .2s,transform .2s}
.bk-toast.aan{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.bk-toast{transition:none}}

/* ---------- recepten: overzicht en receptpagina ---------- */
.bk-reclijst{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.bk-reckaart{display:grid;gap:4px;padding:16px;background:var(--papier-licht);border:2px solid var(--korst);border-radius:16px;box-shadow:0 4px 0 var(--lijn);text-decoration:none;color:var(--tekst);min-width:0}
.bk-reckaart b{font:700 clamp(21px,5vw,26px)/1.15 var(--slab);color:var(--korst)}
.bk-reckaart small{color:var(--tekst-zacht);font-size:16px}
.bk-reckaart em{font-style:normal;font-weight:700;color:var(--terracotta-donker);min-height:44px;display:flex;align-items:center}
.bk-recbadge{justify-self:start;font:700 16px var(--sans);font-style:normal;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:999px;background:var(--goud);color:var(--korst)}
.bk-recmeta{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;padding:0;margin:12px 0 0}
.bk-recmeta li{padding:5px 12px;border-radius:999px;background:var(--papier-licht);border:1.5px solid var(--lijn);font-weight:600;font-size:16px}
.bk-recraster{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.bk-reca h2,.bk-recc h2{font-size:clamp(24px,5.6vw,32px);margin:22px 0 8px}
.bk-reca h2:first-child,.bk-recc h2:first-child{margin-top:0}
.bk-recbestel{position:relative;background:var(--papier-licht);border:2px solid var(--korst);border-radius:18px;padding:18px 16px;box-shadow:0 5px 0 var(--lijn);scroll-margin-top:16px;box-sizing:border-box;min-width:0}
.bk-recbestel .bordje{margin-bottom:12px}
.bk-recbestel h2{font-size:clamp(24px,5.6vw,30px);margin:0}
.bk-recbestel .bk-opties{grid-template-columns:minmax(0,1fr)}
.bk-recbestel .bk-rbody{margin-top:14px}
.bk-recing{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:0}
.bk-recing li{padding:10px 2px;border-bottom:1px dotted var(--stip);font-size:18px}
.bk-recing b{display:inline-block;min-width:5.5em;font-weight:700;color:var(--korst)}
.bk-zelf{font:700 19px var(--slab);color:var(--korst);margin:20px 0 6px}
.bk-zelflijst{margin:0;padding-left:1.2em;display:grid;gap:3px;font-size:17px;color:var(--tekst-zacht)}
.bk-recstappen{padding-left:1.4em;display:grid;gap:12px;font-size:18px;line-height:1.5;margin:0}
.bk-recstappen li::marker{font-weight:700;color:var(--terracotta-donker)}
.bk-rectip{margin:18px 0 0;padding:12px 14px;border-radius:12px;background:#FFF3DA;border:1.5px solid #C48A1A;font-size:17px}
.bk-geenjs{margin:10px 0 0;font-size:17px;color:var(--tekst-zacht)}
.bk-leeg{padding:16px 0}
.bk-voetlink{margin:22px 0 0}

@media(min-width:700px){
  .bk-kaarten{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px}
  .bk-recept{padding:24px 24px 22px}
  .bk-opties{grid-template-columns:1fr 1fr}
  .bk-reclijst{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:980px){
  .bk-sectie{padding:30px 0 90px}
  .bk-cats{position:static;flex-wrap:wrap;overflow:visible;margin:8px 0 4px;padding:6px 0;-webkit-mask-image:none;mask-image:none}
  .bk-toast{bottom:30px}
  .bk-recraster{grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto 1fr;grid-template-areas:"a b" "c b";column-gap:56px;row-gap:0}
  .bk-reca{grid-area:a}
  .bk-recc{grid-area:c;margin-top:24px}
  .bk-recbestel{grid-area:b;position:sticky;top:90px}
}
@media(max-width:374px){
  .bk-kaarten{gap:26px 10px}
  .bk-keuze .chip{padding:0 8px}
}