/*
 * BredaVuurwerk, versie 3: de huisstijl van de vorige site (ADR-0041). Mobiel eerst.
 * Zwarte kopbalk, grijze categoriebalk met rode hoofdletters, het vuurwerkbeeld als achtergrond met witte vakken,
 * Open Sans extra vet voor koppen en Lato voor de tekst. De blokken onderaan dit bestand leggen die stijl over de
 * opbouw heen.
 */

:root {
  --bv-red: #be1622;
  --bv-red-hover: #a3131d;
  --bv-ember: #8c0f18;
  --bv-ember-deep: #6e0b13;
  --bv-spark: #ffc23d;
  --bv-ink: #1d1f23;
  --bv-text: #1d1f23;
  --bv-muted: #5c6168;
  --bv-mist: #f4f2f2;
  --bv-surface: #f4f2f2;
  --bv-line: #e4dfdf;
  --bv-border: #e4dfdf;
  --bv-paper: #fff;
  --bv-success: #0b6b2a;
  --bv-danger: #c4101c;
  --bv-info: #1032be;
  --bv-warning: #a85300;

  --bv-font-display: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bv-font-body: Lato, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bv-font-heading: var(--bv-font-display);

  --bv-r-sm: 10px;
  --bv-r-md: 16px;
  --bv-r-lg: 28px;
  --bv-pill: 999px;
  --bv-gutter: 16px;
  --bv-tabbar-h: 64px;
  --bv-ease: cubic-bezier(.2, .7, .2, 1);
}

/* Basis */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 8rem; }
body {
  margin: 0;
  font: 400 1rem/1.55 var(--bv-font-body);
  color: var(--bv-text);
  background: var(--bv-mist);
  -webkit-font-smoothing: antialiased;
  padding-bottom: calc(var(--bv-tabbar-h) + env(safe-area-inset-bottom));
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--bv-red); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--bv-ember); }
:focus-visible { outline: 3px solid var(--bv-ink); outline-offset: 2px; box-shadow: 0 0 0 2px var(--bv-spark); border-radius: 4px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--bv-font-display); font-weight: 800; line-height: 1; margin: 0 0 .5em; text-wrap: balance; letter-spacing: .005em; }
h1 { font-size: clamp(2.5rem, 7vw, 4rem); font-weight: 900; }
h2 { font-size: clamp(1.9rem, 4.2vw, 2.6rem); }
h3 { font-size: 1.4rem; }
p { margin: 0 0 1rem; text-wrap: pretty; }
ul, ol { padding-left: 1.25rem; }
.bv-sr, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bv-skip { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--bv-ink); color: #fff; padding: .75rem 1rem; }
.bv-skip:focus { left: 0; }
.bv-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--bv-gutter); }
.bv-content { padding-top: 1.5rem; padding-bottom: 3rem; }
.bv-main { min-height: 50vh; }
.bv-prose { max-width: 70ch; }
.bv-seo { max-width: 70ch; }
.bv-icon { flex: none; }

/* Pagina-overgangen: de header blijft staan, de inhoud wisselt rustig */
@view-transition { navigation: auto; }
.bv-header { view-transition-name: bv-header; }
.bv-tabbar { view-transition-name: bv-tabbar; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .18s; }

/* Knoppen: rond, ruim aanraakvlak */
.bv-btn, .button, button.button, a.button, input.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.wc-block-components-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px;
  font: 700 1rem/1.2 var(--bv-font-body); text-align: center; text-decoration: none; cursor: pointer;
  padding: .7rem 1.35rem; border: 2px solid var(--bv-red); border-radius: var(--bv-pill); background: var(--bv-red); color: #fff;
  transition: background-color .15s, border-color .15s, color .15s, transform .1s;
}
.bv-btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--bv-red-hover); border-color: var(--bv-red-hover); color: #fff; text-decoration: none; }
.bv-btn:active, .woocommerce button.button:active, .woocommerce a.button:active { transform: scale(.98); }
.bv-btn-lg { min-height: 52px; padding: .85rem 1.6rem; font-size: 1.05rem; }
.bv-btn-sm { min-height: 36px; padding: .35rem .9rem; font-size: .9rem; }
.bv-btn-secondary { background: var(--bv-ink); border-color: var(--bv-ink); }
.bv-btn-secondary:hover { background: #000; border-color: #000; }
.bv-btn-outline { background: transparent; color: var(--bv-red); }
.bv-btn-outline:hover { background: var(--bv-red); color: #fff; }
.bv-btn-light { background: #fff; color: var(--bv-red); border-color: #fff; }
.bv-btn-light:hover { background: var(--bv-mist); border-color: var(--bv-mist); color: var(--bv-ember); }
.bv-btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.bv-btn-ghost:hover { background: rgba(255, 255, 255, .12); border-color: #fff; color: #fff; }
.bv-btn-link { background: transparent; border-color: transparent; color: var(--bv-red); text-decoration: underline; padding-left: .25rem; padding-right: .25rem; }
.bv-btn-link:hover { background: transparent; border-color: transparent; color: var(--bv-ember); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #place_order { min-height: 54px; font-size: 1.1rem; padding: .85rem 1.75rem; }
.woocommerce a.button.disabled, .woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .5; cursor: not-allowed; }
.bv-link-button { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }

/* Formulieren */
input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="password"], input[type="number"], input[type="date"], select, textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  display: block; width: 100%; min-height: 48px; padding: .6rem .9rem;
  font: 400 1rem/1.4 var(--bv-font-body); color: var(--bv-ink);
  background: #fff; border: 1.5px solid #cfc8c8; border-radius: var(--bv-r-sm);
  transition: border-color .15s, box-shadow .15s;
}
textarea { min-height: 6rem; }
input:focus, select:focus, textarea:focus { border-color: var(--bv-red); outline: 0; box-shadow: 0 0 0 4px rgba(190, 22, 34, .16); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--bv-danger); }
label { display: inline-block; margin-bottom: .3rem; }
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { font-weight: 600; }
.woocommerce form .form-row .required { color: var(--bv-danger); text-decoration: none; }
input[type="checkbox"], input[type="radio"] { width: 1.25rem; height: 1.25rem; accent-color: var(--bv-red); vertical-align: -.25rem; margin-right: .5rem; }
.select2-container .select2-selection--single { height: 48px; border-radius: var(--bv-r-sm); border: 1.5px solid #cfc8c8; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 45px; padding-left: .9rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 45px; }

/* Header */
.bv-header { position: sticky; top: 0; z-index: 1020; background: var(--bv-red); color: #fff; }
.bv-bar-row { display: flex; align-items: center; gap: .75rem; min-height: 60px; padding-top: .5rem; padding-bottom: .5rem; }
.bv-logo { display: block; flex: none; line-height: 0; }
.bv-logo img { height: 38px; width: auto; }
.bv-search { flex: 1; min-width: 0; }
.bv-searchform { position: relative; display: flex; }
.bv-searchform input[type="search"] { min-height: 44px; border: 0; border-radius: var(--bv-pill); padding: .55rem 3.25rem .55rem 1.1rem; font-size: 1rem; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06); }
.bv-searchform input[type="search"]:focus { box-shadow: 0 0 0 3px var(--bv-spark); }
.bv-searchform input[type="search"]::-webkit-search-cancel-button { margin-right: .25rem; }
.bv-searchform button { position: absolute; right: 4px; top: 4px; bottom: 4px; width: 40px; display: grid; place-items: center; background: var(--bv-ink); border: 0; border-radius: 50%; color: #fff; cursor: pointer; padding: 0; }
.bv-searchform button:hover { background: #000; }
.bv-actions { display: none; }
.bv-actions a { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #fff; }
.bv-actions a:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.bv-count { position: absolute; top: 2px; right: 0; min-width: 1.2rem; height: 1.2rem; padding: 0 .3rem; border-radius: var(--bv-pill); background: var(--bv-spark); color: var(--bv-ink); font: 700 .72rem/1.2rem var(--bv-font-body); text-align: center; }
.bv-count[hidden] { display: none; }

/* Categorieen als chips: op mobiel een veegbare rij */
.bv-cats { background: var(--bv-red); padding-bottom: .6rem; }
.bv-nav-list { display: flex; gap: .5rem; list-style: none; margin: 0; padding: 0 0 2px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
.bv-nav-list::-webkit-scrollbar { display: none; }
.bv-nav-list li { flex: none; scroll-snap-align: start; }
.bv-nav-list a {
  display: block; padding: .35rem .95rem; border-radius: var(--bv-pill);
  background: rgba(255, 255, 255, .14); color: #fff; text-decoration: none; white-space: nowrap;
  font: 700 1.05rem/1.3 var(--bv-font-display); letter-spacing: .02em;
}
.bv-nav-list a:hover { background: rgba(255, 255, 255, .26); color: #fff; }
.bv-nav-list a[aria-current="page"], .bv-nav-list .current-menu-item > a { background: #fff; color: var(--bv-red); }

/* Voordelen: een smalle witte strook */
.bv-usp { position: relative; overflow: hidden; background: #fff; border-bottom: 1px solid var(--bv-line); font-size: .875rem; font-weight: 600; color: var(--bv-ink); }
.bv-usp-list { display: flex; justify-content: center; gap: 2rem; width: max-content; max-width: 100%; list-style: none; margin: 0 auto; padding: .55rem 1rem; white-space: nowrap; }
.bv-usp li { display: inline-flex; align-items: center; gap: .35rem; }
.bv-usp svg { flex: none; color: var(--bv-red); }
/* Verspringen: een voordeel tegelijk, het volgende schuift van onder in beeld. */
.bv-usp.is-rotating .bv-usp-list { display: grid; width: auto; padding: .55rem 48px .55rem var(--bv-gutter); white-space: normal; }
.bv-usp.is-rotating li {
  grid-area: 1 / 1; justify-self: center; align-self: center; opacity: 0; visibility: hidden; transform: translateY(.7em);
  transition: opacity .35s ease, transform .35s var(--bv-ease), visibility 0s linear .35s;
}
.bv-usp.is-rotating li.is-current { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.bv-usp.is-rotating li.is-leaving { transform: translateY(-.7em); }
.bv-usp-pause { position: absolute; right: 0; top: 0; bottom: 0; display: grid; place-items: center; width: 44px; padding: 0; border: 0; background: #fff; color: var(--bv-muted); cursor: pointer; }
.bv-usp-pause[hidden] { display: none; }

/* Tabbalk op mobiel */
.bv-tabbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
  display: grid; grid-template-columns: repeat(5, 1fr);
  height: calc(var(--bv-tabbar-h) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
  background: rgba(255, 255, 255, .92); border-top: 1px solid var(--bv-line);
  -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px);
}
.bv-tabbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: var(--bv-muted); text-decoration: none; font-size: .7rem; font-weight: 600; }
.bv-tabbar a[aria-current="page"] { color: var(--bv-red); }
.bv-tab-icon { position: relative; display: inline-flex; }
.bv-tab-icon .bv-count { top: -6px; right: -10px; }
.woocommerce-checkout .bv-tabbar { display: none; }
.woocommerce-checkout { padding-bottom: 0; }

/* Hero met de vuurwerkpijl */
.bv-hero {
  position: relative; overflow: hidden; color: #fff;
  background:
    radial-gradient(60% 70% at 78% 30%, rgba(255, 194, 61, .22), transparent 70%),
    linear-gradient(var(--bv-red), var(--bv-ember) 140%);
}
.bv-hero-grid { position: relative; display: grid; padding-top: .5rem; padding-bottom: 2.25rem; }
.bv-hero-copy { position: relative; z-index: 1; max-width: 36rem; }
.bv-hero h1 { font-size: clamp(3.4rem, 15vw, 7.5rem); line-height: .86; letter-spacing: -.005em; margin-bottom: .35em; }
.bv-hero-lead { font-size: 1.125rem; max-width: 34ch; color: rgba(255, 255, 255, .92); }
.bv-hero-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.5rem 0; }
.bv-next-pickup { display: inline-flex; align-items: center; gap: .6rem; margin: 0; padding: .55rem 1rem .55rem .8rem; border-radius: var(--bv-pill); background: var(--bv-ember-deep); color: #fff; font-size: .95rem; }
.bv-next-pickup svg { color: var(--bv-spark); }
.bv-hero-art { order: -1; width: min(78%, 20rem); margin: 0 -1.5rem -3.5rem auto; pointer-events: none; }
.bv-burst { display: block; width: 100%; height: auto; overflow: visible; }
.bv-burst-trail { fill: none; stroke: rgba(255, 255, 255, .7); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: bv-draw .55s ease-in forwards, bv-fade .5s .55s forwards; }
.bv-burst-ray { stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: bv-draw .9s var(--bv-ease) forwards; animation-delay: var(--t); }
.bv-burst-tip { opacity: 0; transform-box: fill-box; transform-origin: center; animation: bv-pop .5s var(--bv-ease) forwards; animation-delay: var(--t); }
.bv-burst-gold .bv-burst-ray { stroke: var(--bv-spark); }
.bv-burst-gold .bv-burst-tip { fill: #ffe39a; }
.bv-burst-white .bv-burst-ray { stroke: #fff; }
.bv-burst-white .bv-burst-tip { fill: #fff; }
.bv-burst-pink .bv-burst-ray { stroke: #ff9aa2; }
.bv-burst-pink .bv-burst-tip { fill: #ffd0d4; }
@keyframes bv-draw { to { stroke-dashoffset: 0; } }
@keyframes bv-fade { to { opacity: 0; } }
@keyframes bv-pop { 0% { opacity: 0; transform: scale(0); } 60% { opacity: 1; transform: scale(1.6); } 100% { opacity: 1; transform: scale(1); } }

/* Secties */
.bv-section { padding: 2.75rem 0; }
.bv-section-paper { background: #fff; }
.bv-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.bv-section-head h2 { margin: 0; }
.bv-section-head a { font-weight: 700; white-space: nowrap; }

/* Zo werkt afhalen: drie stappen aan een lont */
.bv-how { background: #fff; }
.bv-steps { position: relative; list-style: none; display: grid; gap: 1.5rem; padding: 0; margin: 1.5rem 0 0; counter-reset: none; }
.bv-steps li { position: relative; padding-left: 4rem; }
.bv-steps h3 { margin: .2rem 0 .35rem; font-size: 1.55rem; }
.bv-steps p { margin: 0; color: var(--bv-muted); max-width: 34ch; }
.bv-step-no {
  position: absolute; left: 0; top: 0; z-index: 1; width: 2.9rem; height: 2.9rem; display: grid; place-items: center;
  border-radius: 50%; background: var(--bv-red); color: #fff; font: 900 1.6rem/1 var(--bv-font-display);
  box-shadow: 0 0 0 5px #fff;
}
.bv-steps::before { content: ""; position: absolute; left: 1.45rem; top: 1rem; bottom: 1rem; border-left: 2px dashed #e0a2a6; }

/* Categorietegels */
.bv-category-grid { list-style: none; display: grid; gap: .75rem; grid-template-columns: repeat(2, 1fr); padding: 0; margin: 0; }
.bv-category-card a { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--bv-r-md); overflow: hidden; color: var(--bv-ink); text-decoration: none; }
.bv-category-image { display: grid; place-items: center; aspect-ratio: 4 / 3; background: #fff; overflow: hidden; }
.bv-category-image img { width: 72%; height: 85%; object-fit: contain; transition: transform .35s var(--bv-ease); }
.bv-category-card a:hover img { transform: scale(1.05); }
.bv-placeholder { display: grid; place-items: center; width: 100%; height: 100%; background: var(--bv-mist); color: var(--bv-red); }
.bv-placeholder svg { width: 38%; height: auto; }
.bv-category-text { padding: .7rem .9rem 1rem; border-top: 1px solid var(--bv-line); }
.bv-category-card h3 { margin: 0; font-size: 1.35rem; line-height: 1.05; }
.bv-category-card a:hover h3 { color: var(--bv-red); }
.bv-category-desc { display: none; margin-top: .3rem; font-size: .9rem; color: var(--bv-muted); line-height: 1.4; }

/* Productraster en kaart */
ul.products { list-style: none; display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; margin: 1rem 0; }
ul.products li.product { position: relative; display: flex; flex-direction: column; margin: 0; padding: 0; width: auto; float: none; background: #fff; border-radius: var(--bv-r-md); overflow: hidden; container-type: inline-size; }
ul.products li.product > a:first-child { display: none; }
.bv-card-media { position: relative; display: grid; place-items: center; aspect-ratio: 1; padding: .75rem; background: #fff; }
.bv-card-media > a { display: grid; place-items: center; width: 100%; height: 100%; }
.bv-card-media img { width: 100%; height: 100%; object-fit: contain; transition: transform .35s var(--bv-ease); }
li.product:hover .bv-card-media img { transform: scale(1.04); }
.bv-labels { position: absolute; top: .6rem; z-index: 1; display: flex; flex-direction: column; gap: .3rem; }
.bv-labels-left { left: .6rem; }
.bv-labels-right { right: .6rem; align-items: flex-end; }
.bv-label { display: inline-block; padding: .3em .6em; border-radius: var(--bv-pill); font: 800 .8rem/1 var(--bv-font-body); color: #fff; background: var(--bv-danger); }
.bv-label-new { background: var(--bv-spark); color: var(--bv-ink); }
.bv-label-f2 { background: var(--bv-ink); color: #fff; }
.bv-card-brand { padding: .6rem .85rem 0; font-size: .8rem; color: var(--bv-muted); border-top: 1px solid var(--bv-line); }
.bv-card-title { font: 800 1.3rem/1.02 var(--bv-font-display); padding: 0 .85rem; margin: .15rem 0 .3rem; }
.bv-card-title a { color: var(--bv-ink); text-decoration: none; }
.bv-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 0; } /* hele kaart klikbaar */
.bv-card-title a:hover { color: var(--bv-red); }
.bv-card-summary { display: none; padding: 0 .85rem; font-size: .85rem; color: var(--bv-muted); margin: 0 0 .5rem; }
.bv-card-foot { margin-top: auto; padding: .5rem .85rem .85rem; }
.bv-card-video { position: relative; z-index: 1; margin-bottom: .5rem; }
.bv-card-video .bv-btn, .bv-card-video button { min-height: 34px; padding: .3rem .8rem; font-size: .85rem; background: var(--bv-ink); border-color: var(--bv-ink); border-radius: var(--bv-pill); color: #fff; }
.bv-card-buy { display: flex; align-items: center; gap: .35rem; }
.bv-card-buy .bv-price { margin-right: auto; }
.bv-price, .price { font: 900 1.55rem/1 var(--bv-font-display); color: var(--bv-ink); }
.price del, .bv-price del { display: block; font: 400 .85rem/1.2 var(--bv-font-body); color: var(--bv-muted); }
.price ins, .bv-price ins { text-decoration: none; color: var(--bv-danger); }
.bv-wish { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: none; border: 0; color: var(--bv-red); cursor: pointer; padding: 0; }
.bv-wish:hover { background: var(--bv-mist); }
.bv-wish .bv-icon-heart-fill { display: none; }
.bv-wish.is-on .bv-icon-heart { display: none; }
.bv-wish.is-on .bv-icon-heart-fill { display: inline; }
.bv-add { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--bv-red); color: #fff; transition: background-color .15s, transform .1s; }
.bv-add:hover { background: var(--bv-red-hover); color: #fff; }
.bv-add:active { transform: scale(.94); }
.bv-add.loading { opacity: .6; pointer-events: none; }
.bv-add.added { background: var(--bv-success); }
.bv-card-buy .added_to_cart { display: none; }
.bv-single-wish { display: flex; align-items: center; gap: .25rem; margin: 1rem 0; }
@container (min-width: 230px) {
  .bv-card-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .bv-card-title { font-size: 1.45rem; }
}

/* WooCommerce algemeen */
.bv-woo .woocommerce-products-header__title, .bv-woo .product_title { font-size: clamp(2.2rem, 6vw, 3.4rem); }
.woocommerce-products-header { margin-bottom: .5rem; }
.term-description { color: var(--bv-muted); max-width: 65ch; }
.bv-breadcrumb { margin: 0 0 1rem; font-size: .9rem; color: var(--bv-muted); }
.bv-breadcrumb ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.bv-breadcrumb li + li::before { content: "/"; padding: 0 .45rem; color: #b9b2b2; }
.bv-breadcrumb a { color: var(--bv-muted); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  list-style: none; display: flow-root; margin: 0 0 1.25rem; padding: .9rem 1.1rem; border-radius: var(--bv-r-sm);
  background: #fff; border: 1px solid var(--bv-line); border-left: 5px solid var(--bv-info);
}
.woocommerce-message { border-left-color: var(--bv-success); }
.woocommerce-error { border-left-color: var(--bv-danger); }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 1rem; min-height: 36px; padding: .35rem .9rem; font-size: .9rem; }
.woocommerce-pagination ul, .page-numbers { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; padding: 0; justify-content: center; }
.page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .75rem; border-radius: var(--bv-pill); background: #fff; color: var(--bv-ink); text-decoration: none; font-weight: 700; }
.page-numbers.current { background: var(--bv-red); color: #fff; }

/* Interne bouwstenen van WooCommerce */
.woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; gap: 1.5rem; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; }
.woocommerce form .form-row::after, .clear { content: ""; display: table; clear: both; }
.woocommerce-Price-currencySymbol { margin-right: .08em; }
/* Aantal met min- en plusknop (de knoppen alleen met JavaScript) */
.quantity { display: inline-flex; align-items: center; border: 1.5px solid #cfc8c8; border-radius: var(--bv-pill); background: #fff; }
.quantity:focus-within { border-color: var(--bv-red); box-shadow: 0 0 0 4px rgba(190, 22, 34, .16); }
.quantity input.qty { width: 3.25rem; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: center; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.quantity input.qty:focus { box-shadow: none; }
.quantity input.qty::-webkit-inner-spin-button, .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.bv-step { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--bv-ink); cursor: pointer; }
.bv-step:hover { color: var(--bv-red); }
html:not(.bv-js) .bv-step, .quantity:has(input[readonly], input[type="hidden"]) .bv-step { display: none; }
html:not(.bv-js) .quantity input.qty { width: 5rem; }
.quantity:has(input[readonly], input[type="hidden"]) { border: 0; background: none; }
.bv-js .woocommerce-cart-form [name="update_cart"] { display: none; } /* aantallen worden meteen bijgewerkt */
.woocommerce a.remove { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--bv-mist); color: var(--bv-red); font-size: 1.3rem; text-decoration: none; }
.woocommerce a.remove:hover { background: var(--bv-red); color: #fff; }
.woocommerce-shipping-methods, .woocommerce-shipping-methods li { list-style: none; padding: 0; margin: 0; }
.woocommerce-cart-form .coupon { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .75rem; }
.woocommerce-cart-form .coupon input { width: auto; flex: 1 1 10rem; }

/* Productpagina */
.single-product div.product { display: grid; gap: 1.25rem; }
.woocommerce-product-gallery { position: relative; background: #fff; border-radius: var(--bv-r-lg); padding: 1rem; overflow: hidden; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img, .woocommerce-product-gallery img { display: block; width: 100%; border-radius: var(--bv-r-sm); }
.woocommerce-product-gallery .flex-control-thumbs { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; padding: 0; margin: .75rem 0 0; }
.woocommerce-product-gallery .flex-control-thumbs img { cursor: pointer; opacity: .6; border-radius: var(--bv-r-sm); border: 2px solid transparent; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; border-color: var(--bv-red); }
.woocommerce-product-gallery__trigger { position: absolute; top: 1rem; right: 1rem; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; box-shadow: 0 2px 10px rgba(29, 31, 35, .12); text-decoration: none; }
.single-product .summary { background: #fff; border-radius: var(--bv-r-lg); padding: 1.5rem 1.25rem; }
.single-product .summary .product_title { margin-bottom: .25em; }
.single-product .summary .price { font-size: 2.6rem; margin: .25rem 0 1rem; }
.single-product .summary .price del { font-size: 1rem; }
.single-product .woocommerce-product-details__short-description { color: var(--bv-muted); font-size: 1.05rem; }
.single-product form.cart { display: flex; gap: .6rem; align-items: stretch; flex-wrap: wrap; margin: 1.25rem 0; }
.single-product form.cart .quantity input.qty { min-height: 50px; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 14rem; min-height: 54px; font-size: 1.1rem; }
.single-product .product_meta { font-size: .9rem; color: var(--bv-muted); }
.single-product .product_meta > span { display: block; }
.single-product .woocommerce-tabs, .single-product .related, .single-product .upsells, .single-product .bv-specs { grid-column: 1 / -1; }
.woocommerce-tabs { background: #fff; border-radius: var(--bv-r-lg); padding: 1.25rem; }
.woocommerce-tabs ul.tabs { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0 0 1.25rem; }
.woocommerce-tabs ul.tabs li a { display: block; padding: .45rem 1.1rem; border-radius: var(--bv-pill); background: var(--bv-mist); color: var(--bv-ink); text-decoration: none; font-weight: 700; }
.woocommerce-tabs ul.tabs li.active a { background: var(--bv-ink); color: #fff; }
.woocommerce-tabs .panel { max-width: 70ch; }
.related > h2, .upsells > h2 { margin-top: 1rem; }
.bv-video-thumb { margin-top: .75rem; }
.bv-video-thumb button { position: relative; display: block; width: 100%; padding: 0; border: 0; border-radius: var(--bv-r-md); overflow: hidden; background: var(--bv-ink); cursor: pointer; min-height: 120px; }
.bv-video-thumb img { display: block; width: 100%; opacity: .75; }
.bv-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; }
.bv-play svg { background: var(--bv-red); padding: 16px; width: 60px; height: 60px; border-radius: 50%; }

/* Voordelen op de productpagina: compact, onder de bestelknop */
.bv-product-usps { display: grid; gap: .6rem 1.25rem; list-style: none; margin: 1.25rem 0; padding: 1rem 1.1rem; border-radius: var(--bv-r-md); background: var(--bv-mist); font-size: .92rem; font-weight: 600; line-height: 1.35; }
.bv-product-usps li { display: flex; align-items: flex-start; gap: .55rem; }
.bv-product-usps svg { flex: none; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--bv-red); color: #fff; }
.bv-product-usps small { display: block; margin-top: .1rem; font-size: .85rem; font-weight: 400; color: var(--bv-muted); }
@media (min-width: 480px) {
  .bv-product-usps { grid-template-columns: 1fr 1fr; }
  .bv-product-usps li:first-child { grid-column: 1 / -1; }
}
.bv-f2-pickup { margin: .5rem 0 0; font-size: .92rem; font-weight: 600; color: var(--bv-ink); }
.bv-pickup-note { padding: .75rem 1rem; border-radius: var(--bv-r-sm); background: #fff4d6; font-weight: 600; }
.bv-available-from { display: inline-flex; align-items: center; gap: .4rem; margin: .25rem 0 .75rem; padding: .45rem .9rem; border-radius: var(--bv-pill); background: #fff4d6; color: var(--bv-ink); font-weight: 700; }
.bv-card-from { margin: .35rem .85rem 0; font-size: .85rem; font-weight: 700; color: var(--bv-ember); }

/* Specificaties (ADR-0030): kenmerken als labels bij de prijs, de volledige tabel onder het product */
.bv-spec-facts { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: -.25rem 0 1rem; padding: 0; }
.bv-spec-facts li { padding: .3rem .8rem; border-radius: var(--bv-pill); background: var(--bv-mist); font: 800 1.15rem/1.2 var(--bv-font-display); letter-spacing: .01em; }
.bv-specs { background: #fff; border-radius: var(--bv-r-lg); padding: 1.25rem; }
.bv-specs h2 { margin-bottom: .75rem; }
.bv-specs-list { display: grid; margin: 0; column-gap: 2.5rem; }
.bv-spec { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--bv-line); }
.bv-spec dt { color: var(--bv-muted); }
.bv-spec dd { margin: 0; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.bv-card-specs { padding: 0 .85rem; margin: 0 0 .3rem; font-size: .85rem; font-weight: 700; color: var(--bv-ink); }
@media (min-width: 700px) {
  .bv-specs { padding: 1.75rem 2rem; }
  .bv-specs-list { grid-template-columns: 1fr 1fr; }
}

/* Winkelwagen en afrekenen */
.woocommerce table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: var(--bv-r-md); overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .85rem; border-bottom: 1px solid var(--bv-line); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table tr:last-child > * { border-bottom: 0; }
.woocommerce table.shop_table img { width: 64px; border-radius: var(--bv-r-sm); }
.woocommerce table.shop_table .product-name a { color: var(--bv-ink); font-weight: 700; }
.woocommerce-cart .cart-collaterals, .woocommerce-checkout #order_review { background: #fff; border-radius: var(--bv-r-lg); padding: 1.25rem; margin-top: 1rem; }
.cart_totals h2 { font-size: 1.8rem; }
.cart_totals .order-total .amount, .woocommerce-checkout .order-total .amount { font: 900 1.6rem/1 var(--bv-font-display); }
.order-total .includes_tax, .order-total .includes_tax .amount { font: 400 .85rem/1.3 var(--bv-font-body); display: block; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
.woocommerce-checkout h3 { font-size: 1.6rem; margin-top: 1.5rem; }
.bv-pickup { background: #fff; border-radius: var(--bv-r-lg); padding: 1.25rem; margin: 1.5rem 0; box-shadow: inset 0 0 0 2px var(--bv-red); }
.bv-pickup h3 { margin-top: 0; color: var(--bv-red); }
.bv-pickup select { font-size: 1.05rem; min-height: 52px; }
.woocommerce-checkout #payment { background: var(--bv-mist); border-radius: var(--bv-r-md); }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 1rem; border-bottom: 1px solid var(--bv-line); }
.woocommerce-checkout #payment div.form-row { padding: 1rem; }
.woocommerce-checkout #place_order { width: 100%; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.25rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: .45rem 1rem; border-radius: var(--bv-pill); background: #fff; color: var(--bv-ink); text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--bv-ink); color: #fff; }
.woocommerce-checkout .woocommerce .col2-set, .woocommerce-checkout.woocommerce-page .col2-set { grid-template-columns: 1fr; }
.woocommerce-checkout form.checkout { display: block; }

/* Zoeken met uitklapresultaten */
.bv-search-wrap { position: relative; width: 100%; }
.bv-suggest {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 1100; overflow-y: auto; max-height: min(70vh, 560px);
  background: #fff; color: var(--bv-ink); border-radius: var(--bv-r-md); box-shadow: 0 18px 50px rgba(29, 31, 35, .28), 0 0 0 1px rgba(29, 31, 35, .06);
  font-family: var(--bv-font-body);
}
.bv-suggest[hidden] { display: none; }
.bv-suggest-heading { padding: .75rem .9rem .35rem; font: 800 1rem/1 var(--bv-font-display); letter-spacing: .02em; color: var(--bv-muted); }
.bv-suggest-item { display: flex; align-items: center; gap: .75rem; margin: 0 .35rem; padding: .5rem .55rem; border-radius: var(--bv-r-sm); color: var(--bv-ink); text-decoration: none; }
.bv-suggest-item:hover, .bv-suggest-item.is-active { background: #fdecee; color: var(--bv-ink); }
.bv-suggest-item.is-active { box-shadow: inset 3px 0 0 var(--bv-red); }
.bv-suggest-thumb { flex: none; width: 48px; height: 48px; display: grid; place-items: center; background: #fff; border-radius: var(--bv-r-sm); border: 1px solid var(--bv-line); overflow: hidden; }
.bv-suggest-thumb img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.bv-suggest-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bv-suggest-brand { font-size: .75rem; color: var(--bv-muted); }
.bv-suggest-name { font-weight: 700; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.bv-suggest-name mark { background: transparent; color: var(--bv-red); text-decoration: underline; }
.bv-suggest-meta { font-size: .8rem; color: var(--bv-muted); white-space: nowrap; }
.bv-suggest-price { flex: none; font: 900 1.15rem/1 var(--bv-font-display); text-align: right; }
.bv-suggest-price del { display: block; font: 400 .75rem/1.2 var(--bv-font-body); color: var(--bv-muted); }
.bv-suggest-price ins { text-decoration: none; color: var(--bv-danger); }
.bv-suggest-empty { padding: 1rem .9rem; color: var(--bv-muted); }
.bv-suggest-all { display: block; margin: .5rem .35rem .35rem; padding: .7rem; border-radius: var(--bv-pill); font-weight: 700; text-align: center; color: #fff; background: var(--bv-red); text-decoration: none; }
.bv-suggest-all.is-active, .bv-suggest-all:hover { background: var(--bv-red-hover); color: #fff; }
.bv-suggest-item.bv-suggest-extra { display: block; font-size: .9rem; color: var(--bv-muted); background: var(--bv-mist); margin-top: .35rem; }

/* Footer */
.bv-footer { background: var(--bv-ember); color: rgba(255, 255, 255, .88); margin-top: 3rem; }
.bv-footer a { color: #fff; }
.bv-footer a:hover { color: var(--bv-spark); }
.bv-footer-columns { display: grid; gap: 2rem; padding-top: 2.75rem; padding-bottom: 2.25rem; }
.bv-footer h2 { font-size: 1.6rem; color: #fff; margin-bottom: .6rem; }
.bv-footer h3 { font: 700 1rem/1.3 var(--bv-font-body); color: #fff; margin: 1rem 0 .25rem; }
.bv-footer address { font-style: normal; }
.bv-footer p { margin-bottom: .5rem; }
.bv-footer-links { list-style: none; padding: 0; margin: 0; }
.bv-footer-links li { margin-bottom: .45rem; }
.bv-payments { padding: 0 0 1.75rem; }
.bv-payments ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0; }
.bv-payments li { padding: .35rem .9rem; border-radius: var(--bv-pill); background: #fff; color: var(--bv-ink); font-weight: 700; font-size: .9rem; }
.bv-footer-base { padding: 1.25rem 0; background: var(--bv-ember-deep); font-size: .85rem; }
.bv-footer-base ul { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; list-style: none; padding: 0; margin: 0 0 .6rem; }
.bv-footer-base p { margin: 0; }

/* Cookiebanner en dialogen */
.bv-cookie-banner {
  position: fixed; z-index: 1500; left: .75rem; right: .75rem; bottom: calc(var(--bv-tabbar-h) + env(safe-area-inset-bottom) + .75rem);
  max-width: 34rem; padding: 1.1rem 1.25rem; border-radius: var(--bv-r-md); background: var(--bv-ink); color: #fff; box-shadow: 0 18px 50px rgba(0, 0, 0, .35);
}
.bv-cookie-banner[hidden] { display: none; }
.bv-cookie-banner .bv-container { padding: 0; }
.bv-cookie-banner a { color: #fff; }
.bv-cookie-banner p { margin-bottom: .85rem; font-size: .95rem; }
.bv-cookie-banner .bv-btn-link { color: #fff; }
.bv-cookie-banner .bv-btn-outline { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }
.bv-cookie-banner .bv-btn-outline:hover { background: #fff; color: var(--bv-ink); }
.bv-cookie-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.bv-dialog { border: 0; padding: 0; width: min(92vw, 640px); max-height: 92vh; border-radius: var(--bv-r-lg); background: #fff; color: var(--bv-ink); }
.bv-dialog::backdrop { background: rgba(29, 31, 35, .6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.bv-dialog[open] { animation: bv-dialog-in .22s var(--bv-ease); }
@keyframes bv-dialog-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.bv-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--bv-line); }
.bv-dialog-head h2 { margin: 0; font-size: 1.7rem; }
.bv-dialog-close { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--bv-mist); border: 0; cursor: pointer; padding: 0; color: var(--bv-ink); }
.bv-cookie-form fieldset { border: 0; padding: 1rem 1.25rem; margin: 0; }
.bv-cookie-form .bv-cookie-actions { padding: 0 1.25rem 1.25rem; }
.bv-switch { display: flex; gap: .75rem; align-items: flex-start; padding: .85rem 0; border-bottom: 1px solid var(--bv-line); }
.bv-video-dialog { width: min(94vw, 900px); overflow: hidden; }
.bv-video-stage { background: #000; aspect-ratio: 16 / 9; position: relative; }
.bv-video-consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 1.25rem; text-align: center; color: #fff; background-size: cover; background-position: center; }
.bv-video-consent[hidden], .bv-video-frame[hidden] { display: none; }
.bv-video-consent p { max-width: 50ch; margin: 0; }
.bv-video-frame, .bv-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Voordelenlijst met echte vinkjes */
.bv-prose ul.bv-checklist, .bv-seo ul.bv-checklist { list-style: none; padding: 0; }
.bv-prose ul.bv-checklist li, .bv-seo ul.bv-checklist li { position: relative; padding-left: 1.9rem; margin-bottom: .5rem; }
.bv-prose ul.bv-checklist li::before, .bv-seo ul.bv-checklist li::before {
  content: ""; position: absolute; left: 0; top: .2rem; width: 1.2rem; height: 1.2rem; background: var(--bv-red);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 16.6 4.9 12.3l-1.4 1.4 5.7 5.7L20.5 8.1l-1.4-1.4L9.2 16.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 16.6 4.9 12.3l-1.4 1.4 5.7 5.7L20.5 8.1l-1.4-1.4L9.2 16.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Verenigingen */
.bv-form { max-width: 40rem; }
.bv-form fieldset { margin: 0 0 1.75rem; padding: 0; border: 0; }
.bv-form legend { margin-bottom: .75rem; padding: 0; font: 800 1.7rem/1 var(--bv-font-display); }
.bv-field { margin: 0 0 1rem; }
.bv-field label { display: block; margin-bottom: .3rem; font-weight: 600; }
.bv-consent label { font-weight: 400; }
.bv-error { display: block; margin-top: .3rem; color: var(--bv-danger); font-weight: 600; font-size: .95rem; }
.bv-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.bv-members-only { margin: 1.25rem 0; padding: 1.1rem 1.25rem; border-radius: var(--bv-r-md); background: var(--bv-mist); box-shadow: inset 4px 0 0 var(--bv-ink); }
.bv-members-only p:last-child { margin-bottom: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.bv-f2-notice { padding: .7rem 1rem; border-radius: var(--bv-r-sm); background: #fff; }
.bv-catalog-status { font-weight: 700; color: var(--bv-success); }
.bv-intro { max-width: 60ch; }
.bv-intro p:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }

/* Menuknop en schermvullend menu (mobiel) */
.bv-menu-button { display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin-left: -.5rem; padding: 0; border: 0; border-radius: 50%; background: none; color: #fff; cursor: pointer; }
.bv-menu-button:hover { background: rgba(255, 255, 255, .14); }
.bv-cats { display: none; }
html.bv-dialog-open, html.bv-search-open { overflow: hidden; }
.bv-menu {
  position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0;
  background: #fff; color: var(--bv-ink);
}
.bv-menu[open] { display: grid; grid-template-rows: minmax(0, 1fr) auto; animation: bv-from-left .28s var(--bv-ease); }
.bv-menu::backdrop { background: rgba(29, 31, 35, .6); }
@keyframes bv-from-left { from { transform: translateX(-24px); opacity: 0; } }
.bv-menu-scroll { overflow-y: auto; overscroll-behavior: contain; padding: calc(env(safe-area-inset-top) + 1.25rem) var(--bv-gutter) 2rem; }
.bv-menu-title { margin: 0 0 .25rem; font-weight: 600; color: var(--bv-muted); }
.bv-menu-list, .bv-menu-sub, .bv-menu-service { list-style: none; margin: 0; padding: 0; }
.bv-menu-list > li { border-bottom: 1px solid var(--bv-line); }
.bv-menu-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 60px; padding: .5rem 0;
  color: var(--bv-ink); text-decoration: none; cursor: pointer; list-style: none;
  font: 800 1.75rem/1.1 var(--bv-font-display); letter-spacing: .01em;
}
.bv-menu-item::-webkit-details-marker { display: none; }
.bv-menu-item .bv-icon { flex: none; color: var(--bv-red); transition: transform .2s var(--bv-ease); }
.bv-menu-item:hover, .bv-menu-item[aria-current="page"] { color: var(--bv-red); }
.bv-menu-item[aria-current="page"] span { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; text-decoration-color: var(--bv-spark); }
.bv-menu-group[open] > .bv-menu-item .bv-icon { transform: rotate(180deg); }
.bv-menu-sub { padding: 0 0 1rem; }
.bv-menu-sub a { display: block; padding: .6rem 0 .6rem 1rem; border-left: 3px solid var(--bv-line); color: var(--bv-ink); font-size: 1.1rem; font-weight: 600; text-decoration: none; }
.bv-menu-sub a[aria-current="page"] { border-color: var(--bv-red); color: var(--bv-red); }
.bv-menu-service { display: grid; gap: .1rem; margin-top: 1.5rem; }
.bv-menu-service a { display: flex; align-items: center; min-height: 44px; color: var(--bv-ink); font-size: 1.05rem; font-weight: 600; text-decoration: none; }
.bv-menu-service a:hover { color: var(--bv-red); }
.bv-menu-pickup { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 1.5rem 0 0; padding: .85rem 1rem; border-radius: var(--bv-r-md); background: var(--bv-mist); font-size: .95rem; }
.bv-menu-pickup .bv-icon { color: var(--bv-red); }
[data-bv-pickup][hidden] { display: none; }
.bv-menu-bar { padding: .75rem var(--bv-gutter) calc(.75rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--bv-line); background: #fff; }
.bv-menu-bar .bv-btn { width: 100%; gap: .5rem; }

/* Zoeken: op mobiel schermvullend zodra je in het veld tikt */
.bv-searchform .bv-search-cancel { display: none; }
.bv-search-start[hidden] { display: none; }
@media (max-width: 899.98px) {
  .bv-search-wrap.is-open {
    position: fixed; inset: 0; z-index: 2000; display: flex; flex-direction: column;
    padding: calc(env(safe-area-inset-top) + .6rem) var(--bv-gutter) 0; background: #fff; color: var(--bv-ink);
    animation: bv-fade .18s ease-out;
  }
  .bv-search-wrap.is-open .bv-searchform { align-items: center; gap: .5rem; }
  .bv-search-wrap.is-open .bv-searchform input[type="search"] { flex: 1; padding-right: 1.1rem; background: var(--bv-mist); box-shadow: none; }
  .bv-search-wrap.is-open .bv-searchform input[type="search"]:focus { box-shadow: 0 0 0 3px rgba(190, 22, 34, .35); }
  .bv-search-wrap.is-open .bv-searchform button[type="submit"] { display: none; }
  .bv-search-wrap.is-open .bv-search-cancel { display: block; position: static; flex: none; width: auto; min-height: 44px; padding: 0 .25rem; border: 0; border-radius: 0; background: none; color: var(--bv-red); font: 700 1rem var(--bv-font-body); cursor: pointer; }
  .bv-search-wrap.is-open .bv-suggest {
    position: static; flex: 1; max-height: none; margin: .75rem calc(-1 * var(--bv-gutter)) 0; padding: 0 .35rem calc(1rem + env(safe-area-inset-bottom));
    border-top: 1px solid var(--bv-line); border-radius: 0; box-shadow: none; overscroll-behavior: contain;
  }
  .bv-search-wrap.is-open .bv-suggest-item { padding: .65rem .55rem; }
  .bv-search-wrap.is-open .bv-suggest-thumb { width: 56px; height: 56px; }
  .bv-search-start { padding: 1.25rem 0; }
  .bv-search-start-title { margin: 0 0 .75rem; font: 800 1.4rem/1.1 var(--bv-font-display); }
  .bv-search-start ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
  .bv-search-start a { display: block; padding: .5rem 1rem; border-radius: var(--bv-pill); background: var(--bv-mist); color: var(--bv-ink); font-weight: 600; text-decoration: none; }
  html.bv-search-open .bv-tabbar, html.bv-search-open .bv-cookie-banner { display: none; }
}
@keyframes bv-fade { from { opacity: 0; } }

/* Filteren en sorteren */
.bv-shop-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .5rem 0 1rem; }
.bv-filter-button {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem 1.15rem .5rem .95rem;
  border: 0; border-radius: var(--bv-pill); background: var(--bv-ink); color: #fff; font: 700 1rem/1 var(--bv-font-body); cursor: pointer;
}
.bv-filter-button:hover { background: #000; }
.bv-filter-badge { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .3rem; border-radius: var(--bv-pill); background: var(--bv-spark); color: var(--bv-ink); font-size: .8rem; }
.bv-result-count { margin: 0; color: var(--bv-muted); font-size: .9rem; }
.bv-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; list-style: none; margin: -.25rem 0 1rem; padding: 0; }
.bv-filter-chip { display: inline-flex; align-items: center; gap: .3rem; min-height: 36px; padding: .25rem .55rem .25rem .9rem; border: 1px solid var(--bv-line); border-radius: var(--bv-pill); background: #fff; color: var(--bv-ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.bv-filter-chip:hover { border-color: var(--bv-red); color: var(--bv-red); }
.bv-filter-clear { display: inline-flex; align-items: center; min-height: 36px; padding: 0 .5rem; color: var(--bv-red); font-size: .9rem; font-weight: 600; }
.bv-sheet { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: #fff; color: var(--bv-ink); }
.bv-sheet[open] { display: block; animation: bv-from-bottom .26s var(--bv-ease); }
.bv-sheet::backdrop { background: rgba(29, 31, 35, .6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
@keyframes bv-from-right { from { transform: translateX(32px); opacity: 0; } }
@keyframes bv-from-bottom { from { transform: translateY(32px); opacity: 0; } }
.bv-sheet-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
.bv-sheet-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: calc(env(safe-area-inset-top) + .75rem) var(--bv-gutter) .75rem; border-bottom: 1px solid var(--bv-line); }
.bv-sheet-head h2 { margin: 0; font-size: 1.8rem; }
.bv-sheet-body { overflow-y: auto; overscroll-behavior: contain; padding: 0 var(--bv-gutter) 2rem; }
.bv-sheet-foot { display: flex; gap: .75rem; padding: .75rem var(--bv-gutter) calc(.75rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--bv-line); background: #fff; }
.bv-sheet-foot > * { flex: 1 1 0; min-width: 0; }
.bv-sheet-foot > button { flex-grow: 1.6; }
.bv-filter-group { margin: 0; padding: 1.25rem 0; border: 0; border-bottom: 1px solid var(--bv-line); min-width: 0; }
.bv-filter-group:last-child { border-bottom: 0; }
.bv-filter-group legend, .bv-filter-legend { float: left; width: 100%; margin: 0 0 .75rem; padding: 0; font: 800 1.45rem/1 var(--bv-font-display); }
.bv-filter-group legend + * { clear: both; }
.bv-filter-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.bv-option { position: relative; display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; margin: 0; padding: .45rem 1rem; border-radius: var(--bv-pill); background: var(--bv-mist); font-weight: 600; cursor: pointer; }
.bv-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.bv-option:has(input:checked) { background: var(--bv-ink); color: #fff; }
.bv-option:has(input:focus-visible) { outline: 3px solid var(--bv-red); outline-offset: 2px; }
.bv-option-count { color: var(--bv-muted); font-size: .85rem; font-weight: 400; }
.bv-option:has(input:checked) .bv-option-count { color: rgba(255, 255, 255, .75); }
.bv-price-range { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.bv-price-range label { display: block; margin: 0; font-weight: 600; }
.bv-euro-input { position: relative; display: block; margin-top: .3rem; }
.bv-euro-input > span { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--bv-muted); font-weight: 400; }
.bv-euro-input input { padding-left: 2rem; }
.bv-filter-links { list-style: none; margin: 0; padding: 0; clear: both; }
.bv-filter-links a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; color: var(--bv-ink); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--bv-line); }
.bv-filter-links li:last-child a { border-bottom: 0; }
.bv-filter-links a span { color: var(--bv-muted); font-weight: 400; font-size: .9rem; }

/* Winkelwagen op mobiel: elk product als kaartje in plaats van een brede tabel */
@media (max-width: 699.98px) {
  .woocommerce-cart-form .shop_table thead { display: none; }
  .woocommerce-cart-form table.shop_table, .woocommerce-cart-form .shop_table tbody, .woocommerce-cart-form .shop_table tr { display: block; }
  .woocommerce-cart-form .shop_table tr.cart_item {
    display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; column-gap: .85rem; row-gap: .4rem; align-items: center;
    grid-template-areas: "img name remove" "img price price" "qty qty sub";
    padding: 1rem; border-bottom: 1px solid var(--bv-line);
  }
  .woocommerce table.shop_table tr.cart_item td { display: block; padding: 0; border: 0; }
  .woocommerce-cart-form .cart_item .product-thumbnail { grid-area: img; align-self: start; }
  .woocommerce-cart-form .cart_item .product-thumbnail img { width: 72px; }
  .woocommerce-cart-form .cart_item .product-name { grid-area: name; font-size: 1.05rem; line-height: 1.3; }
  .woocommerce-cart-form .cart_item .product-remove { grid-area: remove; align-self: start; }
  .woocommerce-cart-form .cart_item .product-price { grid-area: price; color: var(--bv-muted); font-size: .9rem; }
  .woocommerce-cart-form .cart_item .product-price::after { content: " per stuk"; }
  .woocommerce-cart-form .cart_item .product-quantity { grid-area: qty; margin-top: .35rem; }
  .woocommerce-cart-form .cart_item .product-subtotal { grid-area: sub; margin-top: .35rem; font: 900 1.35rem/1 var(--bv-font-display); text-align: right; }
  .woocommerce-cart-form .shop_table td.actions { display: block; padding: 1rem; border: 0; }
  .woocommerce-cart-form .coupon { margin-top: 0; }
}

/* Tablet */
@media (min-width: 600px) {
  :root { --bv-gutter: 24px; }
  .bv-category-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .bv-category-desc { display: block; }
  ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .bv-hero-art { width: 22rem; margin-bottom: -5rem; }
  .bv-footer-columns { grid-template-columns: repeat(2, 1fr); }
  .woocommerce .col2-set, .woocommerce-page .col2-set { grid-template-columns: 1fr 1fr; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - .5rem); float: left; }
  .woocommerce form .form-row-last { float: right; }
}

/* Desktop: acties in de header, geen tabbalk */
@media (min-width: 900px) {
  body { padding-bottom: 0; }
  .bv-tabbar { display: none; }
  .bv-cookie-banner { left: 1.5rem; bottom: 1.5rem; }
  .bv-bar-row { gap: 2rem; min-height: 76px; }
  .bv-logo img { height: 54px; }
  .bv-search { max-width: 560px; }
  .bv-actions { display: flex; gap: .25rem; margin-left: auto; }
  .bv-nav-list { flex-wrap: wrap; justify-content: center; overflow: visible; }
  .bv-cats { display: block; }
  .bv-menu-button { display: none; }
  .bv-menu { width: min(420px, 100%); }
  .bv-sheet { left: auto; width: min(440px, 100%); box-shadow: -18px 0 50px rgba(29, 31, 35, .2); }
  .bv-sheet[open] { animation-name: bv-from-right; }
  .bv-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; min-height: 480px; padding-top: 3rem; padding-bottom: 3.5rem; }
  .bv-hero-art { order: 0; width: 100%; max-width: 520px; margin: 0; justify-self: end; }
  .bv-hero-lead { font-size: 1.25rem; }
  .bv-section { padding: 4rem 0; }
  .bv-steps { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
  .bv-steps li { padding-left: 0; padding-top: 4.25rem; }
  .bv-steps::before { left: 1.45rem; right: 1.45rem; top: 1.45rem; bottom: auto; border-left: 0; border-top: 2px dashed #e0a2a6; }
  .bv-category-grid { grid-template-columns: repeat(4, 1fr); }
  ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .single-product div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2rem; align-items: start; }
  .single-product .summary { position: sticky; top: 9rem; padding: 2rem; }
  .bv-footer-columns { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
  .woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; column-gap: 2rem; align-items: start; }
  .woocommerce-checkout form.checkout > .bv-pickup { grid-column: 1; grid-row: 1; margin-top: 0; }
  .woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 2; }
  .woocommerce-checkout form.checkout > #order_review_heading { display: none; }
  .woocommerce-checkout form.checkout > #order_review::before { content: "Je bestelling"; display: block; font: 800 1.8rem/1 var(--bv-font-display); margin-bottom: .75rem; }
  .woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; position: sticky; top: 9rem; }
  .woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 2rem; align-items: start; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-cart .cart-collaterals { margin-top: 0; position: sticky; top: 9rem; }
}

@media (min-width: 1200px) {
  .bv-hero h1 { font-size: 8.25rem; }
}

/* Minder beweging: de pijl staat er meteen, zonder animatie */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .bv-burst-ray { stroke-dashoffset: 0; }
  .bv-burst-tip { opacity: 1; }
  .bv-burst-trail { opacity: 0; }
  @view-transition { navigation: none; }
}

/* Verlanglijst delen (ADR-0038) */
.bv-wishlist-share, .bv-wishlist-shared { margin: 0 0 1.25rem; padding: .9rem 1.1rem; background: var(--bv-mist); border: 1px solid var(--bv-line); border-radius: 14px; }
.bv-wishlist-share h2 { margin: 0 0 .2rem; font-size: 1.25rem; }
.bv-wishlist-share p, .bv-wishlist-shared p { margin: 0 0 .75rem; max-width: 60ch; }
.bv-wishlist-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.bv-wishlist-actions [hidden] { display: none; }
.bv-wishlist-status { margin: .5rem 0 0; color: var(--bv-success); font-weight: 600; }
.bv-wishlist-status:empty { display: none; }
.bv-wishlist-shared { border-left: 4px solid var(--bv-spark); }

/* Kies je moment (homepage): gelegenheden voor de categorieen */
.bv-moments { padding-bottom: 1rem; }
.bv-moment-grid { list-style: none; display: grid; gap: .75rem; grid-template-columns: repeat(2, 1fr); padding: 0; margin: 1.25rem 0 0; }
.bv-moment { display: flex; flex-direction: column; gap: .3rem; height: 100%; padding: 1rem 1.1rem 1.1rem; background: #fff; border-radius: var(--bv-r-md); border-top: 4px solid var(--bv-red); color: var(--bv-ink); text-decoration: none; transition: transform .15s var(--bv-ease), box-shadow .15s; }
.bv-moment:hover, .bv-moment:focus-visible { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(29, 31, 35, .1); text-decoration: none; }
.bv-moment-title { font-family: var(--bv-font-display); font-weight: 700; font-size: 1.45rem; line-height: 1.05; }
.bv-moment:hover .bv-moment-title { color: var(--bv-red); }
.bv-moment-text { font-size: .92rem; line-height: 1.35; color: var(--bv-muted); }
@media (min-width: 900px) { .bv-moment-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .bv-moment, .bv-moment:hover { transition: none; transform: none; } }

/* Geheime-kleurservice (ADR-0039): uitleg bij afrekenen, op de bedankpagina */
.bv-secret-color { margin: 1rem 0 1.25rem; padding: .9rem 1.1rem; background: var(--bv-mist); border: 1px solid var(--bv-line); border-left: 4px solid var(--bv-spark); border-radius: 12px; }
.bv-secret-color p { margin: 0 0 .5rem; }
.bv-secret-color p:last-child { margin-bottom: 0; }

/* Reviews op Google (ADR-0040) */
.bv-reviews-link { margin: 1.75rem 0 0; font-weight: 700; }

/* ==========================================================================
   Huisstijl van de vorige site (ADR-0041): zwart, grijs, rood en het vuurwerkbeeld
   ========================================================================== */
:root {
  --bv-red-bright: #db0008; /* rood voor koppen op het donkere beeld (beter leesbaar dan #be1622) */
  --bv-nav-grey: #e5e5e5;
  --bv-r-sm: 4px;
  --bv-r-md: 0;
}
html { background: #000; }
body { background: transparent; font-size: 1rem; line-height: 1.5; }
/* Het beeld ligt vast achter de pagina; een vast element in plaats van background-attachment (dat iOS negeert). */
body::before { content: ""; position: fixed; inset: 0; z-index: -1; background: #000 url(../img/vuurwerk-bg.jpg) 70% 0 / cover no-repeat; }

/* Koppen: Open Sans extra vet, rood */
h1, h2, h3, h4, h5, h6 { font-family: var(--bv-font-display); font-weight: 800; line-height: 1.15; letter-spacing: 0; color: var(--bv-red); text-wrap: balance; }
h1 { font-size: clamp(1.9rem, 5vw, 2.75rem); font-weight: 800; }
h2 { font-size: clamp(1.5rem, 3.4vw, 2rem); }
h3 { font-size: 1.2rem; }
a:hover { color: #790e16; text-decoration: underline; }
.bv-footer h2, .bv-footer h3 { color: var(--bv-red); }
.bv-hero h1, .bv-hero h2, .wp-block-cover h1, .wp-block-cover h2, .wp-block-cover h3, .is-style-bv-night h1, .is-style-bv-night h2, .is-style-bv-night h3, .is-style-bv-red h1, .is-style-bv-red h2, .is-style-bv-red h3 { color: #fff; }

/* Knoppen: vierkant met rode vulling, zoals bij de vorige site */
.bv-btn, .button, button.button, a.button, input.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button { border-radius: 2px; font-family: var(--bv-font-body); font-weight: 700; border-width: 1px; }
.bv-btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: #9c121c; border-color: #90111a; text-decoration: none; }
.bv-btn-outline { background: transparent; color: var(--bv-red); }
.bv-btn-secondary { background: #343a40; border-color: #343a40; }
.bv-btn-light { background: #fff; border-color: #fff; color: var(--bv-red); }
.bv-btn-ghost { border-color: #fff; }

/* Kopbalk: zwart met logo, zoekveld in het midden en pictogrammen rechts */
.bv-header { background: #000; }
.bv-bar { background: #000; }
.bv-bar-row { min-height: 64px; }
.bv-logo img { height: 44px; }
.bv-searchform input[type="search"] { border-radius: 0; min-height: 40px; padding: .4rem 3rem .4rem .8rem; font-family: var(--bv-font-body); box-shadow: none; }
.bv-searchform input[type="search"]:focus { box-shadow: 0 0 0 2px var(--bv-red-bright); }
.bv-searchform button { top: 0; bottom: 0; right: 0; width: 44px; border-radius: 0; background: #e9ecef; color: #212529; border-left: 1px solid #ced4da; }
.bv-searchform button:hover { background: #dee2e6; }
.bv-actions a { border-radius: 0; }
.bv-actions a:hover { background: transparent; color: #fff; opacity: .8; }
.bv-count { background: var(--bv-red); color: #fff; }

/* Categorieen: grijze balk, rode hoofdletters, gecentreerd */
.bv-cats { background: var(--bv-nav-grey); padding: 0; }
.bv-nav-list { justify-content: center; gap: 0; padding: 0; }
.bv-nav-list a { border-radius: 0; background: transparent; color: var(--bv-red); text-transform: uppercase; font: 800 .95rem/1.3 var(--bv-font-display); letter-spacing: 0; padding: .75rem .85rem; text-align: center; white-space: normal; }
.bv-nav-list a:hover { background: transparent; color: #790e16; text-decoration: underline; }
.bv-nav-list a[aria-current="page"], .bv-nav-list .current-menu-item > a { background: #fff; color: var(--bv-red); }
@media (min-width: 900px) {
  .bv-nav-list { flex-wrap: wrap; overflow: visible; }
  .bv-nav-list li { flex: 0 1 auto; max-width: 11rem; }
  .bv-bar-row { min-height: 90px; }
  .bv-logo img { height: 66px; }
}

/* Een regel op brede schermen (U7): lettergrootte en ruimte schalen mee; op smallere schermen blijft de balk over twee regels staan */
@media (min-width: 1180px) {
  .bv-nav-list { flex-wrap: nowrap; justify-content: safe center; overflow-x: auto; scrollbar-width: none; }
  .bv-nav-list li { max-width: none; }
  .bv-nav-list a { white-space: nowrap; font-size: clamp(.7rem, .95vw, .75rem); padding: .75rem clamp(.3rem, .6vw, .5rem); }
}

/* Voordelen: witte balk met rode vinkjes en rode tekst */
.bv-usp { background: #fff; border: 0; color: var(--bv-red); font: 700 .95rem/1.3 var(--bv-font-body); }
.bv-usp-list { justify-content: center; gap: 1.1rem 1.4rem; }
.bv-usp svg { color: var(--bv-red); }
.bv-usp-pause { background: #fff; }

/* Homepage: het beeld blijft zichtbaar; de koppen staan rood op het donker */
.bv-hero { background: linear-gradient(rgba(0, 0, 0, .55), rgba(0, 0, 0, .35)); }
.bv-hero h1 { font-size: clamp(2.1rem, 7vw, 3.6rem); line-height: 1.08; margin-bottom: .45em; }
.bv-hero-lead { font-size: 1.1rem; max-width: 40ch; }
.bv-next-pickup { background: #000; border: 1px solid rgba(255, 255, 255, .35); border-radius: 0; }
.bv-section { padding: 1.75rem 0; }
body.home .bv-section:not(.bv-how) h2 { color: var(--bv-red-bright); }
.bv-section-head a { color: #fff; text-decoration: underline; }
.bv-how { background: #fff; }
.bv-how h2 { color: var(--bv-red); }
.bv-steps h3 { font-size: 1.25rem; }
.bv-steps p { color: var(--bv-text); }
.bv-moment { border-radius: 0; border-top: 0; border: 1px solid var(--bv-line); }
.bv-moment-title { font-family: var(--bv-font-display); font-weight: 800; font-size: 1.15rem; color: var(--bv-red); }
.bv-moment-text { color: var(--bv-text); }

/* Kaarten: wit, vierkant, rode koppen en grijze omschrijving */
.bv-category-card a, ul.products li.product { border-radius: 0; border: 1px solid #dee2e6; }
.bv-category-text { border-top: 0; padding: .5rem .9rem 1rem; }
.bv-category-card h3, .bv-card-title { font: 800 1rem/1.25 var(--bv-font-display); }
.bv-category-card h3 { color: var(--bv-red); }
.bv-card-title a { color: var(--bv-red); }
.bv-card-title a:hover { color: #790e16; text-decoration: none; }
.bv-category-desc, .bv-card-summary, .bv-card-brand { color: #6c757d; font-size: .85rem; }
.bv-card-brand { border-top: 0; font-weight: 700; }
.bv-price, .price { font: 700 1.05rem/1.2 var(--bv-font-body); color: #212529; }
.price del, .bv-price del { display: inline; margin-right: .35rem; }
.price ins, .bv-price ins { color: #212529; font-weight: 800; }
.bv-label { border-radius: 2px; font-family: var(--bv-font-body); }
.bv-add, .bv-wish { border-radius: 0; }
.bv-add { width: 40px; height: 40px; }
.bv-card-video .bv-btn, .bv-card-video button { border-radius: 0; background: #000; border-color: #000; }

/* Winkel en categorie: de inhoud staat op het beeld; andere pagina's in een wit vak */
.bv-content { background: #fff; margin-top: 1rem; margin-bottom: 1rem; padding: 1.25rem; }
body.post-type-archive-product .bv-content, body.tax-product_cat .bv-content, body.tax-product_brand .bv-content, body.search .bv-content { background: transparent; padding: 0 var(--bv-gutter); }
body.post-type-archive-product .bv-content h1, body.tax-product_cat .bv-content h1, body.tax-product_brand .bv-content h1 { color: var(--bv-red-bright); }
body.post-type-archive-product .bv-content :is(.woocommerce-result-count, .woocommerce-ordering label, .term-description, .bv-breadcrumb, .bv-breadcrumb a), body.tax-product_cat .bv-content :is(.woocommerce-result-count, .woocommerce-ordering label, .term-description, .bv-breadcrumb, .bv-breadcrumb a) { color: #fff; }
@media (min-width: 900px) { .bv-content { padding: 1.75rem 2rem; } body.post-type-archive-product .bv-content, body.tax-product_cat .bv-content { padding: 0 var(--bv-gutter); } }

/* Footer: zwart met rode koppen */
.bv-footer { background: #000; color: #ced4da; margin-top: 2rem; }
.bv-footer a { color: #ced4da; }
.bv-footer a:hover { color: #fff; }
.bv-footer h2 { font-size: 1.15rem; }
.bv-footer h3 { color: var(--bv-red); font-family: var(--bv-font-display); font-weight: 800; }
.bv-payments { background: #fff; padding: 1.25rem 0; }
.bv-payments li { border-radius: 0; border: 1px solid #dee2e6; }
.bv-footer-base { background: #e5e5e5; color: #343a40; }
.bv-footer-base a { color: #343a40; }

/* Tabbalk onderin op mobiel */
.bv-tabbar { background: #fff; }
/* Hero compacter: de vorige site had er geen, de pijl blijft als sfeer */
.bv-hero-grid { padding-top: .25rem; padding-bottom: 1.5rem; }
.bv-hero-art { width: min(52%, 11rem); margin: 0 0 -.5rem auto; }
.bv-hero-copy { max-width: 34rem; }
@media (min-width: 768px) {
  .bv-hero-grid { grid-template-columns: 1fr 15rem; align-items: center; padding: 2rem var(--bv-gutter); }
  .bv-hero-art { order: 0; width: 100%; margin: 0; }
}
@media (max-width: 767px) { .bv-hero-art { display: none; } .bv-hero-grid { padding-bottom: 1.25rem; } }

/* Productpagina, hoeveelheid, cookiebanner: vierkant en zwart zoals de vorige site */
.bv-woo .woocommerce-products-header__title, .bv-woo .product_title { font-size: clamp(1.6rem, 4vw, 2.2rem); }
.single-product .summary .price, .single-product .summary .bv-price { font: 800 1.6rem/1.2 var(--bv-font-body); }
.single-product .summary .price del { font-weight: 400; font-size: 1rem; }
.quantity { border-radius: 2px; border-width: 1px; border-color: #ced4da; }
.bv-facts li, .bv-fact { border-radius: 2px; }
.bv-cookie-banner { border-radius: 0; background: #000; }
.bv-cookie-banner .bv-btn, .bv-cookie-banner .bv-btn-outline { border-radius: 0; }


/* Oude pagina's en artikelen (ADR-0042) */
.bv-f1-kader { background: #fff6dd; border-left: 4px solid #e8a400; padding: .9rem 1.1rem; margin: 0 0 1.5rem; color: #1d1f23; }
.bv-f1-kader p { margin: 0; }
.bv-niet-leverbaar { background: #f4f2f2; border-left: 4px solid var(--bv-red, #be1622); padding: .8rem 1rem; margin: 1rem 0; }
.bv-content iframe, .bv-content img { max-width: 100%; }

/* Afhalen: afhaalblok of langskomen (ADR-0044) */
.bv-pickup-intro { margin: 0 0 1rem; }
.bv-pickup-modes { border: 0; padding: 0; margin: 0 0 1rem; display: grid; gap: .6rem; }
.bv-pickup-mode { display: flex; gap: .75rem; align-items: flex-start; padding: .85rem 1rem; border: 2px solid #d8d2d2; background: #fff; cursor: pointer; }
.bv-pickup-mode:has(input:checked) { border-color: var(--bv-red); background: #fff7f7; }
.bv-pickup-mode input { margin-top: .3rem; width: 1.25rem; height: 1.25rem; accent-color: var(--bv-red); flex: none; }
.bv-pickup-mode small { color: var(--bv-muted); font-size: .9rem; }
#bv-pickup-slot[hidden] { display: none; }

/* Adres bij afrekenen is optioneel en ingeklapt (ADR-0045) */
.bv-billing-extra { margin: .5rem 0 1rem; border: 1px solid #d8d2d2; background: #fff; }
.bv-billing-extra summary { cursor: pointer; padding: .8rem 1rem; font-weight: 700; color: var(--bv-red); }
.bv-billing-extra[open] summary { border-bottom: 1px solid #d8d2d2; }
.bv-billing-extra > .form-row { padding: 0 1rem; }
.bv-billing-extra > .form-row:first-of-type { padding-top: 1rem; }
.bv-billing-extra > .form-row:last-of-type { padding-bottom: .5rem; }
/* De uitleg bij het telefoonnummer is altijd zichtbaar (WooCommerce verbergt hem standaard) */
#billing_phone-description { display: block !important; margin-top: .3rem; font-size: .9rem; color: var(--bv-muted); }

/* Afhaalinformatie bij de koopknop en in de winkelwagen (U2) */
.bv-product-pickup, .bv-cart-pickup { margin: 1rem 0; padding: .8rem 1rem; background: #f4f2f2; border-left: 4px solid var(--bv-red); font-size: .95rem; }
.bv-product-pickup p, .bv-cart-pickup p { margin: 0 0 .35rem; }
.bv-product-pickup p:last-child, .bv-cart-pickup p:last-child { margin-bottom: 0; }
.bv-pickup-hours { color: var(--bv-muted); }
.bv-pickup-f2 { font-weight: 700; }

/* Contrast van kleine teksten die direct op de foto staan (U8): wit, ook het aantal en de actieve filters */
body.post-type-archive-product .bv-content :is(.bv-result-count, .bv-category-desc, .bv-active-filters, .bv-no-results),
body.tax-product_cat .bv-content :is(.bv-result-count, .bv-category-desc, .bv-active-filters, .bv-no-results),
body.tax-product_brand .bv-content :is(.bv-result-count, .term-description, .bv-breadcrumb, .bv-breadcrumb a),
body.search .bv-content :is(.bv-result-count, .bv-breadcrumb, .bv-breadcrumb a) { color: #fff; }
body.search .bv-content h1 { color: var(--bv-red-bright); }

/* Waardebon in de winkelwagen: ingeklapt (U9) */
.bv-coupon-details { margin: .75rem 0; }
.bv-coupon-details summary { cursor: pointer; font-weight: 700; color: var(--bv-red); padding: .5rem 0; }
.bv-coupon-details .coupon { padding-top: .5rem; }

/* Cookiebanner: op een telefoon korter en compacter, zodat hij niet de helft van het scherm vult (U13) */
@media (max-width: 639px) {
  .bv-cookie-banner { padding: .85rem 1rem; }
  .bv-cookie-banner p { font-size: .85rem; line-height: 1.4; margin-bottom: .6rem; }
  .bv-cookie-banner .bv-cookie-more { display: none; }
  .bv-cookie-banner .bv-cookie-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
  .bv-cookie-banner .bv-cookie-actions .bv-btn { min-height: 44px; padding: .5rem .6rem; font-size: .9rem; }
  .bv-cookie-banner .bv-cookie-actions .bv-btn-link { grid-column: 1 / -1; min-height: 36px; }
}

/* Zoeken: informatie, geen resultaten (U5) */
.bv-search-info, .bv-no-results { background: #fff; padding: 1rem 1.25rem; margin: 0 0 1.5rem; border-left: 4px solid var(--bv-red); }
.bv-search-info h2, .bv-no-results h2 { font-size: 1.15rem; margin: 0 0 .5rem; color: var(--bv-red); }
.bv-search-info ul { list-style: none; margin: 0; padding: 0; }
.bv-search-info li { margin: .4rem 0; }
.bv-search-info li a { font-weight: 700; }
.bv-search-info li span { display: block; color: var(--bv-muted); font-size: .9rem; }
.bv-no-results-cats { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: .75rem 0; }
.bv-no-results-cats a { display: block; padding: .5rem .85rem; background: #f4f2f2; font-weight: 700; text-decoration: none; }
.bv-no-results-popular { color: #fff; font-size: 1.3rem; margin: 1.5rem 0 .75rem; }
.bv-suggest-info .bv-suggest-body { display: flex; flex-direction: column; }

/* Tekst onder de producten van een categorie (S8) */
.bv-category-text { background: #fff; margin: 2rem 0; padding: 1rem 1.25rem; }
.bv-category-text summary { cursor: pointer; font: 800 1.05rem var(--bv-font-display); color: var(--bv-red); }
.bv-category-text-body { margin-top: .75rem; max-width: 75ch; }
.bv-category-text-body h2, .bv-category-text-body h3 { font-size: 1.15rem; margin: 1.25rem 0 .4rem; }

/* Meer laden (ADR-0046) */
.bv-load-more { display: flex; justify-content: center; margin: 1.5rem 0; }
.bv-load-more .bv-btn { min-width: 14rem; background: #fff; }
