/* ============================================================
   Storefront theme — driven by CSS variables set in the layout
   (admin: Weergave). Clean, modern, responsive.
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
:root{
  --primary:#4f46e5;--primary-dark:#4338ca;--accent:#f59e0b;
  --text:#0f172a;--muted:#64748b;--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;
  --radius:8px;--container:1600px;
  --topbar-bg:#0f172a;--topbar-text:#fff;--header-bg:#fff;--header-text:#0f172a;
  --footer-bg:#0f172a;--footer-text:#cbd5e1;
  --font-heading:"Poppins",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.08);
  --shadow-md:0 4px 12px rgba(15,23,42,.08);
  --shadow-lg:0 18px 40px -12px rgba(15,23,42,.22);
}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font-body);color:var(--text);background:var(--bg);
  line-height:1.6;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.15;margin:0 0 .5em;color:var(--text);letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,4vw,3rem);font-weight:800}
h2{font-size:clamp(1.4rem,2.4vw,2rem);font-weight:700}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;
  background:var(--surface);color:var(--text);font-weight:600;font-size:.95rem;
  cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
  box-shadow:var(--shadow-sm);white-space:nowrap;
}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-light{background:#fff;color:var(--text)}
.btn-lg{padding:14px 26px;font-size:1.02rem}
.btn-sm{padding:7px 14px;font-size:.85rem}
.btn-block{width:100%}

/* ---------- Topbar announcement ---------- */
.topbar-announce{--topbar-h:38px;background:var(--topbar-bg);color:var(--topbar-text);font-size:.82rem;letter-spacing:.01em}
.topbar-announce a{color:inherit;text-decoration:none}
/* Drie kolommen: het midden staat exact in het midden van de balk, ook bij
   ongelijke zijkanten. De hoeken zijn even hoog als de balk, zodat lijnen
   en scheidingstekens over de volle hoogte doorlopen. */
.topbar-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;min-height:var(--topbar-h)}
.tpos{display:flex;align-items:stretch;min-width:0}
.tpos-midden{justify-content:center;text-align:center}
.tpos-rechts{justify-content:flex-end}
.topbar-block{display:inline-flex;align-items:center;gap:7px;padding:0 16px;line-height:1;opacity:.92}
.tpos-links>.topbar-block:first-child{padding-left:0}
.tpos-rechts>.topbar-block:last-child{padding-right:0}
a.topbar-block:hover{opacity:1}
.topbar-block>i{font-size:.95em;width:1em;text-align:center;flex:none}
.topbar-block.topbar-msg{opacity:.92}
.topbar-social{gap:16px;font-size:.95rem}
.topbar-social a{display:inline-flex;align-items:center}
/* Scheidingsteken tussen twee blokken: eigen element, dus buiten de links. */
.tsep{display:flex;align-items:center;justify-content:center;opacity:.42;user-select:none;font-weight:400}
.tsep-ruit{font-size:.62em}
.tsep-lijn{width:1px;background:currentColor;opacity:.3}
.topbar-social a{opacity:.9}
.topbar-social a:hover{opacity:1}

/* ---------- Header ---------- */
.site-header{background:var(--header-bg);color:var(--header-text);border-bottom:1px solid var(--border);z-index:50;position:relative}
.site-header.is-sticky{position:sticky;top:0}
.header-inner{display:flex;align-items:center;gap:28px;padding-top:16px;padding-bottom:16px}
.hpos{display:flex;align-items:center;gap:20px;min-width:0}
.hpos:empty{display:none}
.hpos-midden{flex:1;justify-content:center}
.hpos-rechts{margin-left:auto;justify-content:flex-end}
.hpos .mainnav{flex:0 1 auto;justify-content:inherit}
.brand{font-family:var(--font-heading);font-weight:800;font-size:1.4rem;color:var(--header-text);flex-shrink:0}
.brand img{max-height:44px;width:auto}
.mainnav{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.mainnav a{font-size:.95rem;font-weight:600;color:var(--header-text);padding:8px 14px;border-radius:var(--radius);white-space:nowrap;transition:background .12s,color .12s}
.mainnav a:hover{background:var(--bg);color:var(--primary)}
.mainnav .nav-item{position:relative;display:inline-flex;align-items:center}
.mainnav .nav-caret{font-size:.68em;margin-left:5px;opacity:.65}
/* Uitklapmenu's staan open zolang het menu-item de klasse is-open heeft; dat
   regelt blocks.js met een tolerantie, zodat de muis rustig van het item naar
   een link kan bewegen. */
.nav-drop,.nav-mega{position:absolute;opacity:0;visibility:hidden;transform:translateY(6px);pointer-events:none;
  transition:opacity .14s,transform .14s,visibility 0s .14s;z-index:60}
.mainnav .nav-item.is-open .nav-drop,.mainnav .nav-item.is-open .nav-mega{opacity:1;visibility:visible;transform:translateY(0);
  pointer-events:auto;transition-delay:0s}
/* Dropdown: dezelfde vormgeving als het megamenu, maar met één kolom. */
.nav-drop{top:calc(100% + var(--nav-gap, 0px));left:0;min-width:250px;background:#fff;border:1px solid var(--border);border-top:none;
  border-radius:0 0 var(--radius) var(--radius);box-shadow:0 22px 44px rgba(15,23,42,.12);overflow:visible}
.nav-drop-inner{padding:28px 34px;display:flex}
.mainnav .has-mega{position:static}
.nav-mega{top:100%;left:0;right:0;width:100%;max-width:calc(var(--container) - 40px);margin-inline:auto;background:#fff;border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);box-shadow:0 22px 44px rgba(15,23,42,.12);
  overflow:visible}
/* Past het menu niet op het scherm, dan scrollt het menu zelf. */
.nav-mega-inner,.nav-drop-inner{max-height:calc(100vh - var(--header-h, 140px) - 14px);overflow:hidden auto;overscroll-behavior:contain}
.nav-mega-inner{display:flex;flex-wrap:wrap;gap:24px 48px;padding:32px 40px}
.nav-mega-col{min-width:180px;display:flex;flex-direction:column;gap:4px}
/* Vast aantal kolommen: gelijke kolommen over de volle breedte van het menu. */
.nav-mega-inner.is-raster{display:grid;grid-template-columns:repeat(var(--mm-kol,4),minmax(0,1fr));gap:24px 32px}
.nav-mega-inner.is-raster .nav-mega-col{min-width:0}
/* Doorlopende kolom: titelruimte blijft staan zodat de links uitgelijnd blijven. */
.nav-mega-col h4.is-vervolg{visibility:hidden}
@media(max-width:1200px){.nav-mega-inner.is-raster{grid-template-columns:repeat(min(var(--mm-kol,4),4),minmax(0,1fr))}}
.nav-mega-col h4{margin:0 0 10px;font-size:1.05rem;font-weight:700;color:var(--text)}
.mainnav .nav-mega-col a{color:var(--muted);padding:4px 0;font-weight:500;text-transform:none;font-size:.92rem;border-radius:0}
.mainnav .nav-mega-col a:hover{color:var(--primary);background:none}
.header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.btn-contact{display:inline-flex;align-items:center;font-weight:700;font-size:.9rem;color:var(--header-text);border:1.5px solid var(--border);padding:9px 20px;border-radius:var(--radius);transition:border .12s,color .12s}
.btn-contact:hover{border-color:var(--primary);color:var(--primary)}
.icon-btn{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius);border:none;background:none;color:var(--header-text);font-size:1.15rem;cursor:pointer;transition:background .12s,color .12s}
.icon-btn:hover{background:var(--bg);color:var(--primary)}
.cart-badge{
  position:absolute;top:-2px;right:-2px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;
  min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius);display:grid;place-items:center
}
.header-search{border-top:1px solid var(--border);padding:14px 0}
.header-search .searchbar{display:flex;position:relative}
.header-search input{
  width:100%;padding:12px 48px 12px 2px;border:none;border-bottom:1px solid var(--border);border-radius:0;
  font-size:.95rem;background:transparent;transition:border-color .12s;outline:none;
}
.header-search input:focus{border-bottom-color:var(--primary)}
.header-search button{
  position:absolute;right:5px;top:5px;bottom:5px;width:40px;border:none;border-radius:var(--radius);
  background:var(--primary);color:#fff;display:grid;place-items:center;cursor:pointer
}
/* Suggesties tijdens het typen. */
.zoek-sug{
  position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:1200;max-height:min(70vh,520px);overflow:auto;
  background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);
  box-shadow:var(--shadow-md);padding:6px
}
.zs-kop{padding:9px 12px 5px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.zs-rij{
  display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius);
  color:inherit;text-decoration:none;transition:background .12s
}
.zs-rij:hover,.zs-rij.is-actief{background:color-mix(in srgb,var(--primary) 8%,transparent)}
.zs-rij mark{background:color-mix(in srgb,var(--primary) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.zs-foto{width:44px;height:44px;flex:0 0 44px;border-radius:var(--radius);overflow:hidden;background:var(--bg);display:grid;place-items:center}
.zs-foto img{width:100%;height:100%;object-fit:cover}
.zs-ico{width:32px;height:32px;flex:0 0 32px;border-radius:var(--radius);background:var(--bg);display:grid;place-items:center;color:var(--muted)}
.zs-naam{flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zs-uit{display:block;font-size:.72rem;font-weight:600;font-style:normal;color:var(--muted)}
.zs-prijs{font-size:.88rem;font-weight:700;white-space:nowrap}
.zs-prijs s{font-weight:500;color:var(--muted);margin-right:4px}
.zs-leeg{padding:16px 12px;font-size:.9rem;color:var(--muted);display:flex;align-items:center;gap:8px}
.zs-alles{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;padding:11px;
  border-top:1px solid var(--border);color:var(--primary);text-decoration:none;font-size:.88rem;font-weight:700
}
.zs-alles:hover{background:color-mix(in srgb,var(--primary) 8%,transparent);border-radius:var(--radius)}
.zoek-populair{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:.82rem;color:var(--muted)}
.zoek-populair a{
  padding:5px 11px;border:1px solid var(--border);border-radius:999px;color:inherit;text-decoration:none;font-weight:600
}
.zoek-populair a:hover{color:var(--primary);border-color:var(--primary)}
@media(max-width:900px){
  .mainnav{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  .mainnav::-webkit-scrollbar{display:none}
  .header-inner{flex-wrap:wrap}
  .btn-contact{display:none}
}

/* ---------- Main / sections ---------- */
.main{min-height:50vh}
.page-wrap{padding:32px 20px}
.page-wrap>h1{margin-bottom:.6em}
.pb-section{padding:48px 0}
.pb-title{text-align:center;margin-bottom:28px}
.pb-muted{color:var(--muted)}
.pb-spacer{width:100%}

/* Hero */
.pb-hero{padding:0;margin-bottom:8px}
.pb-hero-inner{max-width:var(--container);margin:0 auto;padding:56px 20px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.pb-hero-inner.is-center{grid-template-columns:1fr;text-align:center;justify-items:center}
.pb-hero-text h1{margin-bottom:.35em}
.pb-hero-text p{font-size:1.12rem;color:var(--muted);max-width:52ch;margin:0 0 1.6em}
.pb-eyebrow{display:inline-block;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-weight:700;font-size:.8rem;padding:5px 12px;border-radius:var(--radius);margin-bottom:14px;text-transform:uppercase;letter-spacing:.05em}
.pb-hero-media img{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;object-fit:cover}

/* USPs */
.pb-usps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:28px 20px}
.pb-usp{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}
.pb-usp-ico{font-size:1.5rem}
.pb-usp strong{display:block;font-size:.95rem}
.pb-usp span{color:var(--muted);font-size:.82rem}

/* Categories */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.cat-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;
  display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm);transition:transform .14s,box-shadow .14s,border-color .14s
}
.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--primary)}
.cat-name{font-weight:700;font-family:var(--font-heading)}
.cat-count{color:var(--muted);font-size:.85rem}

/* Product grid & card */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px}
/* Gerelateerde producten: zes naast elkaar, met smallere kaarten. */
.related-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
@media(max-width:1200px){.related-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1000px){.related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.product-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .14s,box-shadow .14s
}
.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.product-media{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--bg)}
.product-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.product-card:hover .product-media img{transform:scale(1.05)}
.badge{position:absolute;top:12px;left:12px;padding:5px 10px;border-radius:var(--radius);font-size:.72rem;font-weight:700}
.badge-out{background:#0f172a;color:#fff}
.product-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.product-body h3{font-size:1rem;margin:0;font-family:var(--font-body);font-weight:600}
.product-body h3 a:hover{color:var(--primary)}
.price{font-family:var(--font-heading);font-weight:700;font-size:1.2rem;color:var(--text);margin:0}
.product-body .btn{margin-top:auto}

/* Banner */
.pb-banner{padding:16px 20px 48px}
.pb-banner-inner{
  border-radius:var(--radius);padding:44px;color:#fff;background:var(--primary);
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;box-shadow:var(--shadow-lg)
}
.pb-banner-inner h2{color:#fff;margin:0 0 6px}
.pb-banner-inner p{margin:0;opacity:.85}

/* CTA / richtext */
.pb-cta{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:48px 24px;box-shadow:var(--shadow-sm)}
.pb-cta p{color:var(--muted);margin:0 0 20px}
.pb-richtext{max-width:760px;margin:0 auto}
.pb-richtext h1,.pb-richtext h2{margin-top:1em}
.pb-richtext p{margin:0 0 1em}
.pb-image{width:100%;border-radius:var(--radius)}

/* ---------- Alerts ---------- */
.alert{padding:12px 16px;border-radius:var(--radius);margin:16px 0;font-size:.92rem}
.alert-success{background:#dcfce7;color:#166534}
.alert-error{background:#fee2e2;color:#991b1b}

/* ---------- Generic content pages (products, cart, checkout) ---------- */
.section{padding:40px 0}
.page-head{padding:32px 0 8px}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}
.shop-layout{display:grid;grid-template-columns:260px 1fr;gap:28px;padding:28px 0}
.shop-layout.no-filters{grid-template-columns:1fr}
.filters{align-self:start;position:sticky;top:90px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}
.filters input,.filters select{width:100%;padding:8px 2px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;margin-bottom:10px}
.filters input:focus,.filters select:focus{outline:none;border-bottom-color:var(--primary)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}

/* ---------- Footer ---------- */
.site-footer{background:var(--footer-bg);color:var(--footer-text);margin-top:60px}
.footer-top{display:grid;grid-template-columns:repeat(var(--footer-cols,4),minmax(0,1fr));gap:30px 40px;padding:60px 20px 44px;align-items:start}
.footer-top>.footer-col{min-width:0;display:flex;flex-direction:column;gap:28px}
/* Alle kolomkoppen gelijk: klein, met spatiëring en een streepje eronder. */
.footer-col h4{color:#fff;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.14)}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.footer-col a{color:var(--footer-text);opacity:.85;font-size:.9rem}
.footer-col a:hover{opacity:1;color:#fff}
/* Elk footerlinkje krijgt een chevron ervoor. */
.footer-links li a{display:inline-flex;align-items:baseline;gap:8px;padding:4px 0;transition:transform .18s ease,opacity .18s ease}
.footer-links li a::before{content:"\f054";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.6rem;opacity:.65;
  line-height:inherit;transition:opacity .18s ease}
.footer-links li a:hover{transform:translateX(3px)}
.footer-links li a:hover::before{opacity:1}
.footer-contact p{margin:0 0 10px;font-size:.9rem;opacity:.85;line-height:1.6}
/* Bedrijfsgegevens onder elkaar, elk met een icoon in dezelfde kolom. */
.footer-contact .footer-info{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.footer-info li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;font-size:.9rem;opacity:.92;
  line-height:1.55;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-info li:last-child{border-bottom:0}
.footer-info li>span,.footer-info li>a{min-width:0;overflow-wrap:anywhere;padding-top:1px}
.footer-info li i{width:30px;height:30px;margin-top:-3px;display:grid;place-items:center;border-radius:10px;font-size:.8rem;
  opacity:1;background:rgba(255,255,255,.12);color:#fff;transition:background .18s ease,transform .18s ease}
.footer-info li:hover i{background:rgba(255,255,255,.22);transform:translateY(-1px)}
.footer-info a{color:var(--footer-text);opacity:1;text-decoration:none}
.footer-info a:hover{color:#fff}
.footer-info .fi-legal i{background:rgba(255,255,255,.07)}
.footer-info .fi-deel{display:inline-block;white-space:nowrap}
.footer-legal{font-size:.8rem !important;opacity:.6 !important}
/* Openingstijden als nette regels, met de dag van vandaag uitgelicht. */
.footer-hours ul{list-style:none;margin:0;padding:0}
.footer-hours li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:.86rem;opacity:.85;
  padding:7px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.footer-hours li:last-child{border-bottom:0}
.footer-hours .oh-tijd{font-variant-numeric:tabular-nums;white-space:nowrap}
.footer-hours li.is-dicht .oh-tijd{opacity:.55}
.footer-hours .oh-dag{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.footer-hours li.is-vandaag{opacity:1;color:#fff;font-weight:600;border-bottom-color:transparent;
  background:rgba(255,255,255,.08);border-radius:8px;padding:7px 10px;margin:0 -10px}
.footer-hours li.is-vandaag .oh-dag em{font-style:normal;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:2px 6px;border-radius:99px;background:rgba(255,255,255,.18)}
.socials{display:flex;gap:10px;margin-top:4px}
.socials a{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.1);
  color:#fff;font-size:1rem;opacity:.9;transition:transform .18s ease,background .18s ease}
.socials a:hover{opacity:1;color:#fff;background:rgba(255,255,255,.2);transform:translateY(-2px)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:16px 0;font-size:.82rem;background:var(--footer-bottom-bg,transparent);color:var(--footer-bottom-color,inherit)}
.footer-copyright{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-copyright .fc-left,.footer-copyright .fc-center{opacity:.75}
.footer-copyright .fc-center{flex:1;text-align:center}
.footer-copyright .fc-center a{color:inherit;text-decoration:none;font-weight:600}
.footer-copyright .fc-center a:hover{color:#fff;text-decoration:underline}
.footer-copyright .fc-center .fa-heart{color:#ef4444;margin:0 2px}
.footer-copyright .fc-right{display:inline-flex;align-items:center;gap:10px;font-size:1.6rem;opacity:.85}
@media(max-width:640px){.footer-copyright{flex-direction:column;text-align:center}.footer-copyright .fc-center{order:-1}}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .pb-hero-inner{grid-template-columns:1fr;text-align:left}
  .pb-hero-media{order:-1}
  .pb-usps{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr 1fr}
  .shop-layout{grid-template-columns:1fr}
  .filters{position:static}
}
@media(max-width:640px){
  .header-inner{flex-wrap:wrap;gap:14px}
  .searchbar{order:3;flex-basis:100%;max-width:none}
  .pb-usps{grid-template-columns:1fr 1fr}
  .footer-top{grid-template-columns:1fr}
  .pb-banner-inner{flex-direction:column;text-align:center;align-items:flex-start}
}

/* ============================================================
   Component styles for product detail, listing, cart, checkout,
   account & tables (use the theme variables above).
   ============================================================ */
.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font-size:.9rem;box-shadow:none}
.btn-primary[disabled]{opacity:.5;cursor:not-allowed}
.empty{color:var(--muted);padding:40px;text-align:center}
.field{display:block;margin:12px 0;font-size:.9rem;font-weight:500}
.field input,.field select,.field textarea{display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:9px 2px;border:none;
  border-bottom:1px solid var(--border);border-radius:0;background:transparent;font-weight:400;font-family:inherit;font-size:.95rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--primary);box-shadow:none}
.field select{cursor:pointer}
.field-row{display:flex;gap:12px}.field-row .field{flex:1}
.radio,.checkbox{display:block;margin:8px 0;font-size:.9rem}
.hint{color:var(--muted);font-size:.82rem;margin-top:10px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}
.cards-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pill{background:var(--bg);border:1px solid var(--border);padding:3px 12px;border-radius:var(--radius);font-size:.72rem;text-transform:capitalize}
.badge-info{background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);padding:8px 14px;border-radius:var(--radius);display:inline-block}

/* Listing / filters */
.filter-group{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border)}
.filter-group:last-of-type{border-bottom:none;margin-bottom:14px}
.filters h3{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}
.filter-list{list-style:none;padding:0;margin:0}
.cat-list{max-height:340px;overflow:auto;padding-right:4px;margin:-2px -4px -2px -6px}
.cat-list::-webkit-scrollbar{width:6px}
.cat-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius)}
.cat-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:var(--radius);font-size:.9rem;color:var(--text);text-decoration:none;transition:background .12s,color .12s}
.cat-link:hover{background:color-mix(in srgb,var(--primary) 8%,transparent)}
.cat-link .cnt{flex-shrink:0;font-size:.72rem;font-weight:600;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1px 8px;min-width:22px;text-align:center}
.cat-link.active{background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-weight:600}
.cat-link.active .cnt{color:var(--primary);border-color:transparent;background:color-mix(in srgb,var(--primary) 18%,transparent)}
.check-list li{margin:2px 0}
.check-list label{display:flex;align-items:center;gap:9px;font-size:.9rem;color:var(--text);padding:5px 6px;border-radius:var(--radius);cursor:pointer;margin:0}
.check-list label:hover{background:color-mix(in srgb,var(--primary) 7%,transparent)}
.check-list input{width:auto;margin:0;accent-color:var(--primary);flex-shrink:0}
.price-filter{display:flex;gap:8px}
.price-filter input{width:100%;padding:8px 2px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;margin-bottom:0}
.listing-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 18px}
.listing-head>span{font-weight:600;color:var(--text)}
.sort-form select{padding:8px 2px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;cursor:pointer}
.sort-form select:focus{outline:none;border-bottom-color:var(--primary)}
.pagination{display:flex;align-items:center;gap:8px;margin-top:24px;flex-wrap:wrap;justify-content:space-between;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:12px 16px}
.pagination a,.pagination .pg-nav{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--border);
  border-radius:var(--radius);background:var(--surface);font-weight:600;font-size:.9rem;text-decoration:none;color:inherit}
.pagination a:hover{border-color:var(--primary);color:var(--primary)}
.pagination .pg-nav.is-disabled{opacity:.4;pointer-events:none}
.pagination .pg-info{color:var(--muted);font-size:.85rem;font-weight:600}

/* Product detail */
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.82rem;margin-bottom:22px}
.breadcrumb a{color:var(--muted);font-weight:500}
.breadcrumb a:hover{color:var(--primary)}
.breadcrumb i{font-size:.6rem;color:var(--muted);opacity:.6}
.breadcrumb .crumb-current{color:var(--text);font-weight:600}
.breadcrumb-card{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:12px 20px;margin-bottom:20px}
.product-detail{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:56px;align-items:start}
.product-detail--nomedia{display:block}
.gallery-main{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:28px;display:flex;position:relative}
/* Foto vergroten (Weergave → Productpagina). */
.gallery-main.is-zoom .main-image{cursor:zoom-in}
.gallery-main .zoom-btn{position:absolute;right:16px;bottom:16px;width:40px;height:40px;border:none;border-radius:50%;
  background:var(--surface);box-shadow:var(--shadow-md);color:var(--text);cursor:pointer;font-size:.95rem;opacity:.85;transition:opacity .15s,transform .15s}
.gallery-main .zoom-btn:hover{opacity:1;transform:translateY(-1px)}
.lightbox{position:fixed;inset:0;z-index:1200;background:rgba(15,23,42,.88);display:flex;align-items:center;justify-content:center;padding:40px}
.lightbox img{max-width:min(1100px,92vw);max-height:88vh;object-fit:contain;border-radius:var(--radius)}
.lightbox .lb-sluit{position:absolute;top:18px;right:22px}
.lightbox .lb-sluit,.lightbox .lb-pijl{width:46px;height:46px;border:none;border-radius:50%;background:rgba(255,255,255,.14);
  color:#fff;font-size:1.1rem;cursor:pointer;transition:background .15s}
.lightbox .lb-sluit:hover,.lightbox .lb-pijl:hover{background:rgba(255,255,255,.28)}
.lightbox .lb-pijl{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox .lb-pijl.links{left:22px}
.lightbox .lb-pijl.rechts{right:22px}
.lightbox .lb-teller{position:absolute;bottom:22px;color:#fff;font-weight:600;font-size:.86rem;opacity:.8}
body.lightbox-open{overflow:hidden}
.levertijd{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:.86rem;font-weight:600;color:var(--muted)}
.qty-row--geen .btn{width:100%}
/* Deelknoppen in een kaart onder de koopkaart. */
.deel-blok{margin-top:18px}
.deel-blok>h2{display:flex;align-items:center;gap:10px;font-size:1.1rem;margin-bottom:14px}
.deel-blok>h2>i{color:var(--primary);font-size:.95em}
.deel-rij{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.deel-knop{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border:1px solid var(--border);border-radius:999px;
  background:var(--surface);color:var(--text);font:inherit;font-size:.84rem;font-weight:600;cursor:pointer;
  transition:color .15s,border-color .15s,background .15s,transform .15s}
.deel-knop>i{font-size:1rem;width:1em;text-align:center}
.deel-knop:hover{transform:translateY(-2px);border-color:currentColor}
.deel-wa:hover{color:#25d366}
.deel-fb:hover{color:#1877f2}
.deel-li:hover{color:#0a66c2}
.deel-mail:hover,.deel-copy:hover{color:var(--primary)}
.deel-knop.is-gekopieerd{color:#16a34a;border-color:#16a34a}
@media(max-width:520px){
  .deel-knop{padding:9px 12px}
  .deel-knop>span{display:none}
  .deel-copy>span{display:inline}
}
/* Gerelateerde en recent bekeken producten in een kaart. */
.pdp-blok{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:24px 26px}
.pdp-blok>h2{margin:0 0 18px;font-size:1.35rem}
.pdp-blok .product-card{box-shadow:none}
.pdp-blok .product-card:hover{box-shadow:var(--shadow-md)}
@media(max-width:700px){.pdp-blok{padding:18px}}
/* Alles onder elkaar in plaats van tabbladen. */
.product-tabs.is-stapel{display:flex;flex-direction:column;gap:18px}
.product-tabs.is-stapel .paneel-kop{margin:0 0 14px;font-size:1.3rem}
.main-image{width:100%;aspect-ratio:1;object-fit:contain;border-radius:var(--radius)}
.main-image--empty{display:flex;align-items:center;justify-content:center;color:var(--border);font-size:3rem}
.thumbs{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.thumbs .thumb{width:66px;height:66px;padding:5px;background:var(--surface);border:1px solid transparent;border-radius:var(--radius);
  box-shadow:var(--shadow-sm);cursor:pointer;display:flex;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.thumbs .thumb img{width:100%;height:100%;object-fit:contain;border-radius:calc(var(--radius) - 4px)}
.thumbs .thumb:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.thumbs .thumb.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.product-head{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:24px 26px}
.product-info h1{margin:0 0 12px;line-height:1.15;font-size:2.15rem;letter-spacing:-.01em}
.price-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}
.price-lg{font-size:2.1rem;font-weight:800;color:var(--primary);font-family:var(--font-heading);margin:0;line-height:1}
.product-info .short{color:var(--muted);margin:14px 0 0;line-height:1.65;font-size:1rem}
.product-head .price-row{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.buy-card{margin:24px 0 0;padding:24px;border-radius:calc(var(--radius) + 4px);background:var(--surface);box-shadow:var(--shadow-md)}
.buy-card .field{margin:0 0 16px}
.buy-card .qty-row{margin:0}
.buy-card .qty-row .btn{font-weight:700;min-height:52px;box-shadow:var(--shadow-sm)}
.buy-usp{list-style:none;margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 22px;font-size:.86rem;font-weight:600;color:var(--text)}
.buy-usp li{display:flex;align-items:center;gap:9px}
.usp-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
  background:var(--bg);color:var(--primary);font-size:.82rem;flex-shrink:0}
@supports (background:color-mix(in srgb,red 10%,#fff)){
  .usp-ico{background:color-mix(in srgb,var(--primary) 10%,#fff)}
}
.product-meta{margin:0;display:flex;flex-wrap:wrap;gap:8px}
.product-meta>div{display:flex;align-items:center;gap:6px;font-size:.76rem;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:5px 12px}
.product-meta dt{flex-shrink:0;color:var(--muted);margin:0;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:600}
.product-meta dd{margin:0;font-weight:700;color:var(--text)}
.stock-badge{display:inline-flex;align-items:center;font-weight:600;font-size:.82rem;padding:3px 10px;border-radius:var(--radius)}
.stock-badge.in{background:#dcfce7;color:#15803d}
.stock-badge.out{background:#fee2e2;color:#b91c1c}
.qty-row{display:flex;gap:12px;align-items:flex-end;margin:18px 0 0}
.qty-row .field{width:96px;margin:0;flex-shrink:0}
.qty-row .btn{flex:1;min-height:46px;font-size:1rem}
.tier-table{border-collapse:collapse;margin:18px 0 0;width:100%;background:var(--bg);border-radius:var(--radius);overflow:hidden}
.tier-table caption{text-align:left;font-weight:700;font-size:.85rem;margin-bottom:8px}
.tier-table th,.tier-table td{padding:9px 12px;font-size:.85rem;text-align:left}
.tier-table th{color:var(--muted);font-weight:600}
.tier-table tr+tr td{border-top:1px solid var(--border)}
.attributes{margin:20px 0}
.attributes h3{font-size:1rem;margin:0 0 6px}
.attributes ul{list-style:none;padding:0;margin:0}
.attributes li{padding:8px 0;border-bottom:1px solid var(--border);font-size:.9rem}
.product-tabs{margin-top:24px}
.tab-bar{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--surface);border-radius:999px;padding:5px;margin:0 0 18px;box-shadow:var(--shadow-sm)}
.tab-bar--full{display:flex;width:100%}
.tab-bar--full .tab{flex:1 1 0}
.tab-bar .tab{background:none;border:none;border-radius:999px;padding:10px 20px;font:inherit;font-weight:700;font-size:.9rem;color:var(--muted);cursor:pointer;transition:background .14s,color .14s;text-align:center;white-space:nowrap}
.tab-count{display:inline-block;min-width:20px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:.72rem;line-height:19px;font-weight:700}
.tab-bar .tab.active .tab-count{background:rgba(255,255,255,.25);color:#fff}
.tab-bar .tab:hover{color:var(--text);background:var(--bg)}
.tab-bar .tab.active{color:#fff;background:var(--primary)}
.tab-panel{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:24px}
.tab-panel{max-width:100%}
.spec-table{border-collapse:collapse;width:100%;font-size:.92rem}
.spec-table tr:nth-child(odd){background:var(--bg)}
.spec-table th{text-align:left;font-weight:600;color:var(--muted);padding:12px 14px;width:42%;vertical-align:top;border-radius:var(--radius) 0 0 var(--radius)}
.spec-table td{padding:12px 14px;font-weight:600;border-radius:0 var(--radius) var(--radius) 0}
/* Reviews */
.stars{display:inline-flex;gap:2px;color:#f59e0b;font-size:.86rem}
.rating-line{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:0;background:none;border:none;font:inherit;cursor:pointer;color:var(--muted);font-size:.85rem}
.rating-line:hover .rating-count{color:var(--primary)}
.rating-score{font-weight:800;color:var(--text)}
.review-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.rs-score{display:flex;align-items:center;gap:12px}
.rs-score strong{font-size:2rem;line-height:1;font-family:var(--font-heading)}
.rs-score .stars{font-size:1rem}
.rs-score small{color:var(--muted)}
.review-summary .btn-light{border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.review-form{background:var(--bg);border-radius:var(--radius);padding:18px;margin-bottom:22px}
.rf-stars{display:flex;align-items:center;gap:6px;font-size:.9rem;font-weight:600;margin-bottom:6px}
.rf-stars>span{margin-right:6px}
.rf-star{cursor:pointer;color:var(--border);font-size:1.15rem;line-height:1}
.rf-star.on{color:#f59e0b}
.rf-star input{position:absolute;opacity:0;width:0;height:0}
.rf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rf-note{margin:10px 0 0;font-size:.8rem;color:var(--muted)}
.review-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.review{border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.review-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.review-head strong{font-size:1rem}
.review-text{margin:8px 0 0;line-height:1.6}
.review-meta{margin-top:8px;font-size:.8rem;color:var(--muted)}
.review-reply{margin-top:12px;padding:12px 14px;background:var(--bg);border-radius:var(--radius);font-size:.9rem}
.review-reply strong{display:block;margin-bottom:4px;font-size:.82rem;color:var(--muted)}
.review-reply p{margin:0;line-height:1.6}
.review-empty{color:var(--muted);margin:0}
.description.rich{color:var(--text);line-height:1.65;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.description.rich *{max-width:100%!important;white-space:normal!important;box-sizing:border-box}
.description.rich pre{overflow-x:auto}
.description.rich p{margin:0 0 .9em}
.description.rich img{max-width:100%;height:auto;border-radius:var(--radius);margin:.6em 0}
.description.rich ul,.description.rich ol{margin:0 0 .9em;padding-left:1.3em}
.description.rich table{border-collapse:collapse;width:100%;margin:.6em 0;font-size:.9rem}
.description.rich th,.description.rich td{border:1px solid var(--border);padding:7px 10px;text-align:left}
.description.rich a{color:var(--primary);text-decoration:underline}
.added-note{color:#16a34a;font-weight:600}
.fade-enter-active,.fade-leave-active{transition:opacity .3s}
.fade-enter-from,.fade-leave-to{opacity:0}

/* Cart / checkout */
.cart-layout,.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}
.cart-head{margin-bottom:20px}
.cart-head h1{font-size:1.7rem;margin:0 0 4px}
.cart-head p{margin:0;color:var(--muted)}
.cart-empty{text-align:center;padding:48px 24px}
.cart-empty>i{font-size:2.4rem;color:var(--border);display:block;margin-bottom:14px}
.cart-empty h1{font-size:1.4rem;margin:0 0 6px}
.cart-empty p{color:var(--muted);margin:0 0 18px}
.cart-items{padding:8px 20px}
.cart-row{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}
.cart-row:last-of-type{border-bottom:0}
.cart-thumb{width:84px;height:84px;border-radius:var(--radius);border:1px solid var(--border);background:#fff;
  display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--border);font-size:1.3rem;flex:0 0 auto}
.cart-thumb img{width:100%;height:100%;object-fit:contain}
.cart-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.cart-name{font-weight:600;color:var(--text);overflow-wrap:anywhere}
.cart-name:hover{color:var(--primary)}
.cart-unit{color:var(--muted);font-size:.82rem}
.qty-box{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:#fff;overflow:hidden}
.qty-btn{width:34px;height:36px;border:0;background:none;color:var(--text);font-size:1rem;cursor:pointer;line-height:1}
.qty-btn:hover{background:var(--bg);color:var(--primary)}
.qty-input{width:44px;height:36px;border:0;text-align:center;font-weight:600;background:none;padding:0;-moz-appearance:textfield}
.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty-val{min-width:32px;text-align:center;font-weight:600}
.qty-box--sm .qty-btn{width:28px;height:30px}
.cart-total{font-weight:700;white-space:nowrap}
.icon-del{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:50%;color:var(--muted);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:color .12s,border-color .12s}
.icon-del:hover{color:#dc2626;border-color:#fca5a5}
.cart-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0 20px;border-top:1px solid var(--border)}
.btn-back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;font-size:.9rem;background:none;border:0;cursor:pointer;padding:0}
.btn-back:hover{color:var(--primary)}
.coupon-form{display:flex;gap:8px}
.coupon-form input{flex:1;min-width:0}
.cart-note{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem}
.cart-note i{color:var(--primary)}
.cart-summary{position:sticky;top:90px}
.cart-summary h3{margin:0 0 12px;font-size:1.05rem}
.cart-summary .row{display:flex;justify-content:space-between;gap:12px;padding:6px 0}
.cart-summary .row.total{font-weight:800;font-size:1.15rem;border-top:1px solid var(--border);margin-top:10px;padding-top:12px}
.cart-summary .row.small{color:var(--muted);font-size:.8rem}
.cart-summary .discount{color:#16a34a}
.btn-checkout{margin-top:14px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:1rem;padding:14px 18px;font-weight:700}
.cart-usp{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:14px;
  color:var(--muted);font-size:.82rem}
.cart-usp li{display:flex;align-items:center;gap:7px}
.cart-usp i{color:var(--primary)}
.ship-progress{margin:8px 0 12px;font-size:.83rem;color:var(--muted)}
.ship-progress strong{color:var(--text)}
.ship-progress.is-done{color:#16a34a;font-weight:600}
.ship-bar{height:6px;border-radius:999px;background:var(--bg);border:1px solid var(--border);margin-top:7px;overflow:hidden}
.ship-bar i{display:block;height:100%;background:var(--primary)}

/* Afrekenen */
.checkout-head{margin-bottom:20px}
.checkout-head h1{font-size:1.7rem;margin:0 0 14px}
.checkout-steps{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;font-size:.85rem;color:var(--muted)}
.checkout-steps li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:var(--bg)}
.checkout-steps span{width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.78rem}
.checkout-steps .current{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary);font-weight:700}
.checkout-steps .current span{background:var(--primary);border-color:var(--primary);color:#fff}
.checkout-steps .done span{color:#16a34a;border-color:#86efac}
.checkout-form{display:flex;flex-direction:column;gap:18px}
.co-block h3{display:flex;align-items:center;gap:10px;font-size:1.02rem;margin:0 0 14px}
.co-block h3 i{color:var(--primary)}
.pay-options{display:flex;flex-direction:column;gap:10px}
.pay-opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;
  transition:border-color .12s,box-shadow .12s}
.pay-opt:hover{border-color:var(--primary)}
.pay-opt:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}
.pay-ico{width:40px;height:40px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--primary)}
.pay-txt{display:flex;flex-direction:column}
.pay-txt small{color:var(--muted)}
.co-submit .hint{display:flex;align-items:center;gap:8px;justify-content:center;color:var(--muted);font-size:.82rem;margin-top:10px}
.co-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:6px 0;font-size:.9rem}
.co-line .co-qty{color:var(--muted);font-weight:600}
.co-line .co-name{overflow-wrap:anywhere}
.co-line .co-amt{white-space:nowrap;font-weight:600}
.co-sep{border-top:1px solid var(--border);margin:10px 0}
.co-coupon{margin:2px 0}
.co-coupon-box{display:flex;align-items:center;gap:9px;padding:4px 4px 4px 14px;border:1px solid var(--border);
  border-radius:999px;background:#fff;transition:border-color .12s,box-shadow .12s}
.co-coupon-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}
.co-coupon-box > i{flex:0 0 auto;color:var(--muted);font-size:.8rem}
.co-coupon-box input{flex:1;min-width:0;height:36px;border:0;background:none;padding:0;font-size:.88rem;color:var(--text)}
.co-coupon-box input:focus{outline:none;box-shadow:none;border:0}
.co-coupon-box input::placeholder{color:var(--muted)}
.co-coupon-go{flex:0 0 auto;height:36px;padding:0 18px;border:0;border-radius:999px;background:var(--primary);color:#fff;
  font-family:inherit;font-weight:600;font-size:.85rem;cursor:pointer;transition:filter .12s}
.co-coupon-go:hover{filter:brightness(.93)}
.co-coupon-on{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:6px 6px 6px 14px;border-radius:999px;background:color-mix(in srgb,#16a34a 8%,transparent);
  border:1px solid color-mix(in srgb,#16a34a 28%,transparent);font-size:.86rem;color:#15803d;min-height:44px}
.co-coupon-on span{min-width:0;overflow-wrap:anywhere}
.co-coupon-on i{margin-right:7px;font-size:.8rem}
.co-coupon-del{flex:0 0 auto;width:30px;height:30px;border:0;border-radius:50%;background:#fff;color:#15803d;
  display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.8rem;opacity:.75;transition:opacity .12s,color .12s}
.co-coupon-del:hover{opacity:1;color:#dc2626}
.cart-summary .btn-back{margin-top:14px}

/* Floating cart (zijpaneel) */
body.cart-drawer-open{overflow:hidden}
.cart-drawer{position:fixed;inset:0;z-index:1200}
.cart-drawer .cd-overlay{position:absolute;inset:0;background:rgba(15,23,42,.45);opacity:0;transition:opacity .2s}
.cart-drawer.is-open .cd-overlay{opacity:1}
.cd-panel{position:absolute;top:0;right:0;height:100%;width:min(420px,100%);background:var(--surface);
  box-shadow:-14px 0 40px rgba(15,23,42,.18);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .24s ease}
.cart-drawer.is-open .cd-panel{transform:translateX(0)}
.cd-content{display:flex;flex-direction:column;min-height:0;height:100%}
.cd-content.is-busy{opacity:.6;pointer-events:none}
.cd-loading{padding:26px;color:var(--muted)}
.cd-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border)}
.cd-head h2{display:flex;align-items:center;gap:10px;font-size:1.05rem;margin:0}
.cd-head h2 i{color:var(--primary)}
.cd-count{background:var(--primary);color:#fff;border-radius:999px;font-size:.72rem;font-weight:700;padding:2px 8px}
.cd-close{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:50%;color:var(--muted);cursor:pointer}
.cd-close:hover{color:var(--text)}
.cd-body{flex:1;overflow-y:auto;padding:16px 20px}
.cd-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}
.cd-row:last-of-type{border-bottom:0}
.cd-row .cart-thumb{width:64px;height:64px}
.cd-row .cart-name{font-size:.92rem;line-height:1.35}
.cd-note{display:flex;align-items:center;gap:9px;margin:6px 0 0;padding:11px 13px;border-radius:var(--radius);
  background:var(--bg);color:var(--muted);font-size:.82rem}
.cd-note i{color:var(--primary)}
.cd-info{display:flex;flex-direction:column;gap:6px;min-width:0}
.cd-info .qty-box{align-self:flex-start;margin-top:2px}
.cd-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px}
.cd-row .icon-del{width:30px;height:30px;font-size:.82rem}
.cd-empty{padding:48px 24px;text-align:center;color:var(--muted)}
.cd-empty>i{font-size:2.2rem;color:var(--border);display:block;margin-bottom:12px}
.cd-foot{border-top:1px solid var(--border);padding:16px 20px 20px;background:var(--surface)}
.cd-foot .row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:.92rem}
.cd-foot .row.total{font-weight:800;font-size:1.1rem;border-top:1px solid var(--border);margin-top:8px;padding-top:10px}
.cd-foot .row.discount{color:#16a34a}
.cd-foot .btn-back{display:flex;justify-content:center;width:100%;margin-top:12px}
.checkout-form h3{margin:22px 0 8px}

/* Tables / confirmation */
.confirmation,.error-page{text-align:center;padding:48px 20px}
.order-table,.data-table,.mini-table{width:100%;border-collapse:collapse;margin:20px 0}
.order-table th,.order-table td,.data-table th,.data-table td{border-bottom:1px solid var(--border);padding:11px;text-align:left;font-size:.88rem}
.order-table tfoot .total td,.data-table tfoot .total td{font-weight:800}
.mini-table td{padding:7px 4px;border-bottom:1px solid var(--border);font-size:.88rem}

/* Account */
.account-layout{display:grid;grid-template-columns:220px 1fr;gap:30px}
.account-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;height:fit-content;box-shadow:var(--shadow-sm)}
.account-nav a{display:block;padding:8px 0}
.account-nav a.active{color:var(--primary);font-weight:600}
.stack-form .field{margin:10px 0}
.auth-narrow{max-width:440px;margin:20px auto}

/* Inlog-/registratiepagina's: schermvullende achtergrond met box in het midden */
.authpage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 20px;background-attachment:fixed}
.authpage-wrap{width:100%;max-width:430px;display:flex;flex-direction:column;align-items:center;gap:20px}
.authpage-brand{color:#fff;font-family:var(--font-heading);font-size:1.5rem;font-weight:800;text-align:center;text-shadow:0 2px 12px rgba(0,0,0,.28)}
.authpage-brand img{max-height:64px;max-width:260px;object-fit:contain}
.authpage-box{width:100%;background:var(--surface);border-radius:calc(var(--radius) * 2);padding:30px;box-shadow:0 24px 60px rgba(15,23,42,.28)}
.authpage-box h1{margin:0 0 18px;font-size:1.4rem}
.authpage-box .btn-block{margin-top:6px}
.authpage-back{margin:0;font-size:.85rem}
.authpage-back a{color:#fff;opacity:.85}
@media(max-width:600px){.authpage-box{padding:22px}}

/* Retouren */
.btn-outline{background:#fff;color:var(--primary);border:1.5px solid var(--primary)}
.retour-intro{color:var(--muted)}
.retour-items{display:flex;flex-direction:column;gap:12px;margin:18px 0}
.retour-item{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}
.retour-item.is-op{opacity:.55}
.retour-item-info{display:flex;flex-direction:column;gap:4px}
.retour-item-meta{color:var(--muted);font-size:.82rem}
.retour-item-velden{display:flex;gap:14px;align-items:flex-end}
.retour-veld{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted)}
.retour-veld input,.retour-veld select{padding:8px 2px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;font-size:.9rem}
.retour-veld input{width:86px}
.retour-keuze h3{margin:24px 0 10px}
.retour-opties{display:flex;flex-wrap:wrap;gap:12px}
.retour-optie{display:flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid var(--border);
  border-radius:var(--radius);padding:9px 18px;cursor:pointer;font-size:.9rem}
.retour-optie:has(input:checked){border-color:var(--primary);color:var(--primary);font-weight:600}
.retour-toelichting{display:flex;flex-direction:column;gap:6px;margin:22px 0}
.retour-toelichting textarea{padding:10px 2px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;font-family:inherit;font-size:.9rem}
.retour-stappen{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:18px 0}
.retour-stappen li{position:relative;padding:8px 16px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);
  font-size:.82rem;color:var(--muted)}
.retour-stappen li.done{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
@media(max-width:600px){
  .retour-item{flex-direction:column;align-items:stretch}
  .retour-item-velden{justify-content:space-between}
  .retour-veld input{width:100%}
}

@media(max-width:900px){
  .product-detail,.cart-layout,.checkout-layout,.account-layout,.cards-2{grid-template-columns:1fr}
  .product-detail{gap:28px}
  .gallery-main{padding:16px}
  .product-head{padding:18px}
  .breadcrumb-card{padding:10px 14px}
  .buy-card{padding:18px}
  .product-info h1{font-size:1.6rem}
  .price-lg{font-size:1.8rem}
  .tab-panel{padding:18px}
  .tab-bar .tab{padding:9px 14px;font-size:.85rem}
  .tab-bar--full{flex-wrap:wrap}
  .tab-bar--full .tab{flex:1 1 auto}
  .rf-grid{grid-template-columns:1fr}
}

/* -------------------- Popups -------------------- */
.popup-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:rgba(15,23,42,.55);padding:20px;opacity:0;transition:opacity .25s ease}
.popup-overlay.open{opacity:1}
.popup-modal{position:relative;background:#fff;border-radius:var(--radius);max-width:460px;width:100%;
  box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden;transform:translateY(16px) scale(.98);
  transition:transform .25s ease}
.popup-overlay.open .popup-modal{transform:none}
.popup-close{position:absolute;top:10px;right:12px;z-index:2;border:0;background:rgba(0,0,0,.06);
  width:34px;height:34px;border-radius:var(--radius);cursor:pointer;color:#334155;font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center}
.popup-close:hover{background:rgba(0,0,0,.12)}
.popup-media{height:150px;background-size:cover;background-position:center}
.popup-content{padding:28px 26px}
.popup-content h3{margin:0 0 8px;font-size:22px;line-height:1.25}
.popup-content p{margin:0 0 14px;color:#475569;line-height:1.5}
.popup-field{display:flex;gap:8px}
.popup-field input[type=email]{flex:1;padding:10px 2px;border:none;border-bottom:1px solid #cbd5e1;border-radius:0;background:transparent;font-size:15px}
.popup-field .btn{white-space:nowrap}
.popup-msg{margin-top:10px;color:#b91c1c;font-size:14px}
.popup-cta{display:inline-block;margin-top:4px}
.popup-success{text-align:center}
.popup-success p{margin:6px 0}
.popup-code{display:inline-block;margin:8px auto;padding:12px 20px;border:2px dashed #94a3b8;border-radius:var(--radius);
  font-size:22px;font-weight:700;letter-spacing:2px;color:#0f172a;background:#f8fafc}
.popup-code-hint{font-size:13px;color:#64748b}
@media(max-width:520px){
  .popup-field{flex-direction:column}
  .popup-field .btn{width:100%}
}

/* -------------------- Blog & FAQ -------------------- */
.blog-head{margin:0 0 18px}
.blog-head h1{margin:0 0 6px}
.blog-head p{margin:0;color:var(--muted)}
.blog-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.blog-cats a{padding:8px 16px;border-radius:999px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);
  font-size:.88rem;font-weight:600}
.blog-cats a:hover{color:var(--primary)}
.blog-cats a.active{background:var(--primary);color:#fff}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.blog-card{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .16s,box-shadow .16s}
.blog-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(15,23,42,.1)}
.blog-card-img{display:block;aspect-ratio:16/9;background:var(--bg);overflow:hidden}
.blog-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.blog-card:hover .blog-card-img img{transform:scale(1.04)}
.blog-card-ph{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);opacity:.5;font-size:34px}
.blog-card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:9px}
.blog-card-body h2{margin:0;font-size:1.18rem;line-height:1.3}
.blog-card-body h2 a{color:var(--text)}
.blog-card-body h2 a:hover{color:var(--primary)}
.blog-card-body p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.6}
.blog-tag{align-self:flex-start;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,transparent);
  color:var(--primary);font-size:.75rem;font-weight:700;letter-spacing:.02em}
a.blog-tag:hover{background:var(--primary);color:#fff}
.blog-meta{color:var(--muted);font-size:.82rem}

/* Artikelpagina: hoofdkaart met zijkolom, net als de productpagina. */
.blog-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:32px;align-items:start}
.blog-main{display:flex;flex-direction:column;gap:20px;min-width:0}
.blog-card-lg{background:var(--surface);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow-sm);overflow:hidden}
.blog-hero{aspect-ratio:16/7;background:var(--bg)}
.blog-hero img{width:100%;height:100%;object-fit:cover;display:block}
.blog-card-head{padding:26px 30px 0;display:flex;flex-direction:column;gap:12px}
.blog-card-head h1{margin:0;font-size:2rem;line-height:1.18}
.blog-meta-row{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted);font-size:.85rem;font-weight:500}
.blog-meta-row i{opacity:.7;margin-right:5px}
.blog-intro{margin:0;font-size:1.02rem;color:var(--text);font-weight:500;line-height:1.6;
  padding-left:14px;border-left:3px solid var(--primary)}
.blog-card-lg .blog-card-body{padding:22px 30px 30px}
.blog-body{color:var(--text);line-height:1.75}
.blog-body :where(h2,h3,h4){margin:26px 0 10px}
.blog-body p{margin:0 0 14px}
.blog-body :where(ul,ol){margin:0 0 14px;padding-left:22px}
.blog-body img{max-width:100%;height:auto;border-radius:var(--radius);margin:10px 0}
.blog-body a{color:var(--primary);text-decoration:underline}
.blog-share-card{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);
  padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.blog-share-card>span{font-weight:700;font-size:.95rem}
.blog-share{display:flex;gap:10px}
.share-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--bg);color:var(--text);
  transition:background .14s,color .14s}
.share-btn:hover{background:var(--primary);color:#fff}
.blog-side{display:flex;flex-direction:column;gap:20px;position:sticky;top:calc(var(--header-h, 100px) + 16px)}
.side-card{background:var(--surface);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:18px 20px}
.side-card .tab-bar{margin:0 0 14px;flex-wrap:nowrap}
.side-card .tab-bar .tab{padding:9px 10px;font-size:.82rem}
.side-card .tab-panel{background:none;box-shadow:none;padding:0}
.side-title{margin:0 0 12px;font-size:1.05rem}
.side-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.side-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px;color:var(--text);
  font-weight:500;font-size:.92rem;border-bottom:1px solid var(--border)}
.side-links li:last-child a{border-bottom:none}
.side-links a:hover{color:var(--primary)}
.side-links i{font-size:.6rem;opacity:.5}
.side-posts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.side-posts a{display:flex;gap:12px;align-items:center;color:var(--text)}
.sp-img{width:62px;height:52px;flex:0 0 auto;border-radius:var(--radius);overflow:hidden;background:var(--bg);
  display:grid;place-items:center;color:var(--muted)}
.sp-img img{width:100%;height:100%;object-fit:cover}
.sp-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.sp-txt strong{font-size:.9rem;line-height:1.35;font-weight:600}
.side-posts a:hover .sp-txt strong{color:var(--primary)}
.sp-txt small{color:var(--muted);font-size:.78rem}
.side-alles{margin-top:14px;width:100%;justify-content:center}
@media(max-width:960px){
  .blog-detail{grid-template-columns:1fr}
  .blog-side{position:static}
  .blog-card-head{padding:20px 20px 0}
  .blog-card-head h1{font-size:1.6rem}
  .blog-card-lg .blog-card-body{padding:18px 20px 24px}
}
.faq-groep{margin-bottom:26px}
.faq-groep h2{font-size:18px;margin:0 0 10px;color:#0f172a}
.faq-item{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);margin-bottom:10px}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;
  cursor:pointer;font-weight:600;color:#0f172a;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{color:#94a3b8;font-size:13px;transition:transform .2s ease}
.faq-item[open] summary i{transform:rotate(180deg)}
.faq-antwoord{padding:0 18px 16px;color:#475569;line-height:1.65}

/* ---------- Slider (contentblok) ---------- */
.pb-slider{position:relative;margin:0 auto 32px;max-width:var(--container,1600px);border-radius:var(--radius);overflow:hidden;}
/* Volledige breedte: rand tot rand, zonder afgeronde hoeken. De tekst blijft
   wel binnen de containerbreedte staan. */
.pb-slider.is-vol{max-width:none;border-radius:0;}
.pb-slider.is-vol .slide{padding:0 max(56px,calc((100% - var(--container,1600px)) / 2 + 20px));}
.pb-slider.is-vol .slide-body{padding:0;}

/* ---- Overgangseffecten ---- */
.pb-slider.fx-geen .slide{transition:none;}
.pb-slider.fx-schuif .slide{transform:translateX(100%);}
.pb-slider.fx-schuif .slide.is-uit{transform:translateX(-100%);opacity:1;}
.pb-slider.fx-schuif.naar-links .slide{transform:translateX(-100%);}
.pb-slider.fx-schuif.naar-links .slide.is-uit{transform:translateX(100%);}
.pb-slider.fx-omhoog .slide{transform:translateY(100%);}
.pb-slider.fx-omhoog .slide.is-uit{transform:translateY(-100%);opacity:1;}
.pb-slider.fx-zoom .slide{transform:scale(1.12);}
.pb-slider.fx-kantel .slide{transform:perspective(1200px) rotateY(12deg) scale(.94);transform-origin:left center;}
.pb-slider.fx-kenburns .slide.is-active .slide-img{animation:pb-kenburns 12s ease-out forwards;}
@keyframes pb-kenburns{from{transform:scale(1);}to{transform:scale(1.14);}}

.pb-slider .slider-track{position:relative;height:var(--slider-h,420px);}
.pb-slider .slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;transition:opacity .5s ease,transform .55s ease;pointer-events:none;background:#0f172a;}
.pb-slider .slide.is-active{opacity:1;pointer-events:auto;transform:none;}
.pb-slider .slide-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pb-slider .slide-overlay{position:absolute;inset:0;background:#000;}
.pb-slider .slide-body{position:relative;max-width:620px;padding:0 80px;}
.pb-slider .slide.align-midden{justify-content:center;text-align:center;}
.pb-slider .slide.align-rechts{justify-content:flex-end;text-align:right;}
.pb-slider .slide-body h2{font-size:40px;line-height:1.15;margin:0 0 12px;color:inherit;}
.pb-slider .slide-body p{font-size:17px;margin:0 0 20px;color:inherit;opacity:.92;}
.pb-slider .slider-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:none;border-radius:var(--radius);
  background:rgba(255,255,255,.85);color:#0f172a;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;}
.pb-slider .slider-nav:hover{background:#fff;}
.pb-slider .slider-nav.prev{left:16px;}
.pb-slider .slider-nav.next{right:16px;}
.pb-slider .slider-dots{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:8px;}
.pb-slider .slider-dots button{width:10px;height:10px;padding:0;border:none;border-radius:var(--radius);background:rgba(255,255,255,.5);cursor:pointer;}
.pb-slider .slider-dots button.is-active{background:#fff;width:24px;border-radius:var(--radius);}
@media (max-width:768px){
  .pb-slider .slider-track{height:min(var(--slider-h,420px),340px);}
  .pb-slider .slide-body{padding:0 56px;}
  .pb-slider .slide-body h2{font-size:26px;}
  .pb-slider .slide-body p{font-size:15px;}
  .pb-slider .slider-nav{width:36px;height:36px;}
}

/* ---- Pijlstijlen ---- */
.pb-slider .slider-nav{background:var(--pijl-bg,rgba(255,255,255,.85));color:var(--pijl-fg,#0f172a);}
.pb-slider .slider-nav:hover{filter:brightness(1.08);}
.pb-slider.pijl-rond .slider-nav{border-radius:50%;}
.pb-slider.pijl-pil .slider-nav{width:58px;border-radius:999px;}
.pb-slider.pijl-minimaal .slider-nav{width:38px;height:38px;border-radius:4px;background:var(--pijl-bg,rgba(15,23,42,.35));
  color:var(--pijl-fg,#fff);backdrop-filter:blur(3px);}
.pb-slider.pijl-chevron .slider-nav{background:none;width:34px;height:52px;font-size:26px;color:var(--pijl-fg,#fff);
  text-shadow:0 2px 10px rgba(0,0,0,.45);}
.pb-slider.pijl-chevron .slider-nav:hover{background:none;transform:translateY(-50%) scale(1.12);}
.pb-slider.pijl-groot .slider-nav{width:60px;height:60px;border-radius:50%;font-size:20px;
  background:var(--pijl-bg,#fff);color:var(--pijl-fg,#0f172a);box-shadow:0 8px 24px rgba(15,23,42,.28);}

/* ---- Positie van de pijlen ---- */
.pb-slider.pijlpos-binnen .slider-nav.prev{left:36px;}
.pb-slider.pijlpos-binnen .slider-nav.next{right:36px;}
.pb-slider.is-vol.pijlpos-container .slider-nav.prev{left:max(16px,calc((100% - var(--container,1600px)) / 2));}
.pb-slider.is-vol.pijlpos-container .slider-nav.next{right:max(16px,calc((100% - var(--container,1600px)) / 2));}
@media (max-width:768px){
  .pb-slider.pijl-pil .slider-nav{width:46px;}
  .pb-slider.pijl-groot .slider-nav{width:44px;height:44px;font-size:16px;}
  .pb-slider.pijl-chevron .slider-nav{width:28px;height:44px;font-size:22px;}
  .pb-slider.pijlpos-binnen .slider-nav.prev{left:16px;}
  .pb-slider.pijlpos-binnen .slider-nav.next{right:16px;}
}

/* -------------------- Mobiele (app-achtige) weergave -------------------- */
.mheader,.mtabbar,.mdrawer,.mbuybar,.mfilter-toggle{display:none}

@media(max-width:900px){
  .topbar-announce{display:none}
  .site-header{position:sticky;top:0;z-index:60;background:var(--header-bg,#fff);box-shadow:0 1px 0 rgba(15,23,42,.08)}
  .site-header .header-inner,.site-header .header-search{display:none}

  .mheader{display:flex;align-items:center;gap:10px;padding:8px 14px;padding-top:calc(8px + env(safe-area-inset-top))}
  .mbrand{flex:1;min-width:0;font-weight:800;font-size:1.05rem;color:var(--header-text,inherit);text-decoration:none;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mbrand img{max-height:34px;width:auto;display:block}
  .mactions{display:flex;align-items:center;gap:2px}
  .micon{position:relative;width:42px;height:42px;display:grid;place-items:center;border:0;background:none;
    color:var(--header-text,inherit);font-size:1.15rem;border-radius:var(--radius);cursor:pointer;text-decoration:none}
  .micon:active{background:rgba(15,23,42,.06)}
  .micon .cart-badge{position:absolute;top:5px;right:4px}

  /* Menu-lade */
  .mdrawer[hidden]{display:none}
  .mdrawer{display:block;position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.45);opacity:0;transition:opacity .2s}
  .mdrawer.open{opacity:1}
  .mdrawer-panel{position:absolute;inset:0 22% 0 0;min-width:280px;background:#fff;display:flex;flex-direction:column;
    transform:translateX(-100%);transition:transform .25s ease;overflow-y:auto;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .mdrawer.open .mdrawer-panel{transform:none}
  .mdrawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 8px 12px 18px;
    border-bottom:1px solid var(--border);font-weight:800}
  .mdrawer-search{position:relative;margin:14px 16px 8px}
  .mdrawer-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
  .mdrawer-search input{width:100%;padding:12px 14px 12px 30px;border:none;border-bottom:1px solid var(--border);border-radius:0;
    background:transparent;font-size:1rem;outline:none}
  .mdrawer-search i{left:4px}
  .mnav{display:flex;flex-direction:column;padding:6px 8px}
  .mnav-link{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:var(--radius);font-size:1rem;
    color:inherit;text-decoration:none}
  .mnav-link:active{background:var(--bg)}
  .mnav-group>summary{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:var(--radius);font-size:1rem;
    cursor:pointer;list-style:none}
  .mnav-group>summary::-webkit-details-marker{display:none}
  .mnav-group>summary .fa-chevron-down{margin-left:auto;font-size:.75rem;color:var(--muted);transition:transform .2s}
  .mnav-group[open]>summary .fa-chevron-down{transform:rotate(180deg)}
  .mnav-sub{display:flex;flex-direction:column;padding-left:18px;border-left:2px solid var(--border);margin:0 0 6px 20px}
  .mnav-sub .mnav-link{padding:11px 12px;font-size:.95rem;color:var(--muted)}
  .mdrawer-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding:14px 20px 22px;border-top:1px solid var(--border)}
  .mdrawer-foot a{display:flex;align-items:center;gap:10px;padding:9px 0;color:var(--muted);text-decoration:none;font-size:.95rem}
  .mdrawer-socials{display:flex;gap:16px;padding-top:8px;font-size:1.15rem}
  body.mdrawer-open{overflow:hidden}

  /* Tabbalk onderaan */
  .mtabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:#fff;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);
    box-shadow:0 -2px 16px rgba(15,23,42,.07)}
  .mtabbar a,.mtabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;padding:9px 2px 8px;border:0;background:none;color:var(--muted);font-size:.68rem;font-weight:600;
    text-decoration:none;cursor:pointer;font-family:inherit}
  .mtabbar i{font-size:1.15rem}
  .mtabbar .active{color:var(--primary)}
  .mtabbar .cart-badge{position:absolute;top:4px;right:calc(50% - 20px)}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}

  /* Content compacter en met grotere tikvlakken */
  .page-wrap{padding:18px 16px}
  .container{padding-left:16px;padding-right:16px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .toolbar{gap:8px}
  .btn,.filters input,.filters select{min-height:44px}
  .shop-layout{padding:16px 0;gap:12px}
  .mfilter-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;
    border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit;font-weight:600;cursor:pointer}
  .mfilter-toggle.open{border-color:var(--primary);color:var(--primary)}
  .filters{display:none}
  .filters.open{display:block}
  .pagination{justify-content:center;gap:6px;padding:12px}
  .pagination .pg-info{order:3;width:100%;text-align:center}
  .pagination .pg-nav{flex:1;justify-content:center}
  .breadcrumb{white-space:nowrap;overflow-x:auto;scrollbar-width:none}
  .breadcrumb::-webkit-scrollbar{display:none}

  /* Vaste koopbalk op de productpagina */
  .product-detail .qty-row .btn{flex:1}
  .mbuybar{display:flex;align-items:center;gap:12px;position:fixed;left:0;right:0;z-index:81;
    bottom:calc(58px + env(safe-area-inset-bottom));padding:10px 16px;background:#fff;border-top:1px solid var(--border);
    box-shadow:0 -2px 16px rgba(15,23,42,.07)}
  .mbuy-price{font-weight:800;font-size:1.1rem;white-space:nowrap}
  .mbuybar .btn{flex:1;min-height:46px}
  body:has(.mbuybar){padding-bottom:calc(124px + env(safe-area-inset-bottom))}
}

@media(max-width:420px){
  .product-grid{gap:10px}
  .mtabbar span{font-size:.64rem}
}

/* Uitlijning uit de HTML-editor (Quill-klassen) */
.ql-align-center{text-align:center}
.ql-align-right{text-align:right}
.ql-align-justify{text-align:justify}

/* -------------------- Winkelassistent (chatbubbel) -------------------- */
.asst{position:fixed;right:20px;bottom:20px;z-index:900;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:12px}
.asst-bubble{display:inline-flex;align-items:center;gap:10px;padding:13px 20px;border:0;border-radius:999px;
  background:var(--primary);color:#fff;font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;
  box-shadow:0 14px 30px -8px rgba(15,23,42,.45);transition:transform .15s ease,background .15s ease}
.asst-bubble i{font-size:1.05rem}
.asst-bubble:hover{transform:translateY(-2px);background:var(--primary-dark)}
.asst.open .asst-bubble span{display:none}
.asst.open .asst-bubble{padding:14px;border-radius:50%}

.asst-panel{display:flex;flex-direction:column;width:min(380px,calc(100vw - 40px));max-height:min(560px,calc(100vh - 120px));
  background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);overflow:hidden;
  box-shadow:0 28px 60px -18px rgba(15,23,42,.4)}
.asst-panel[hidden]{display:none}
.asst-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;background:var(--primary);color:#fff}
.asst-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.18);font-size:1rem}
.asst-head-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.asst-head-text strong{font-size:.98rem}
.asst-head-text small{opacity:.85;font-size:.76rem}
.asst-close{margin-left:auto;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--radius);
  background:rgba(255,255,255,.16);color:#fff;font-size:.95rem;cursor:pointer}
.asst-close:hover{background:rgba(255,255,255,.28)}

.asst-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.asst-msg{max-width:92%;padding:11px 14px;border-radius:var(--radius);font-size:.9rem;line-height:1.55;
  background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.asst-msg p{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.asst-msg--ik{align-self:flex-end;background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:none}
.asst-msg--bot{align-self:flex-start}

.asst-products{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.asst-product{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--bg);color:inherit;text-decoration:none}
.asst-product:hover{border-color:var(--primary)}
.asst-product img,.asst-product-ico{width:46px;height:46px;flex:0 0 46px;border-radius:var(--radius);object-fit:cover;background:#eef1f7}
.asst-product-info{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.asst-product-info strong{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.asst-product-prijs{font-size:.86rem;font-weight:700;color:var(--primary)}
.asst-product-stock{font-size:.74rem;color:var(--muted)}

.asst-sources{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px;padding-top:9px;
  border-top:1px dashed var(--border);font-size:.8rem}
.asst-sources-label{color:var(--muted)}
.asst-sources a{color:var(--primary);font-weight:600;text-decoration:underline}

.asst-chips{display:flex;flex-wrap:wrap;gap:6px}
.asst-chip{padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);
  font:inherit;font-size:.8rem;color:var(--text);cursor:pointer}
.asst-chip:hover{border-color:var(--primary);color:var(--primary)}

.asst-typing{display:flex;gap:5px;align-items:center}
.asst-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:asst-dot 1.1s infinite}
.asst-typing span:nth-child(2){animation-delay:.15s}
.asst-typing span:nth-child(3){animation-delay:.3s}
@keyframes asst-dot{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.asst-form{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface);border-top:1px solid var(--border)}
.asst-form input[type=text]{flex:1;min-width:0;padding:10px 2px;border:0;border-bottom:1px solid var(--border);
  border-radius:0;background:transparent;font:inherit;font-size:.9rem;outline:none}
.asst-form input[type=text]:focus{border-bottom-color:var(--primary)}
.asst-form button{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:0;border-radius:var(--radius);
  background:var(--primary);color:#fff;cursor:pointer;font-size:.95rem}
.asst-form button:hover{background:var(--primary-dark)}

@media(max-width:900px){
  .asst{right:14px;bottom:calc(70px + env(safe-area-inset-bottom))}
  .asst-panel{max-height:calc(100vh - 190px)}
  .asst-bubble span{display:none}
  .asst-bubble{padding:15px;border-radius:50%}
}

/* Contactpagina */
.contact-head{margin-bottom:20px}
.contact-head h1{font-size:1.9rem;margin:0 0 6px}
.contact-head p{color:var(--muted);margin:0;max-width:70ch}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;align-items:start}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:start;margin-top:20px}
.contact-cards{display:flex;flex-direction:column;gap:20px}
.contact-form-card h2{display:flex;align-items:center;gap:10px;font-size:1.15rem;margin:0 0 6px}
.contact-form-card h2 i{color:var(--primary)}
.contact-form-intro{color:var(--muted);margin:0 0 18px}
.contact-form{display:flex;flex-direction:column;gap:16px}
.contact-form .field .opt{color:var(--muted);font-weight:400}
.contact-form textarea{resize:vertical}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.contact-block h2{display:flex;align-items:center;gap:10px;font-size:1.05rem;margin:0 0 14px}
.contact-block h2 i{color:var(--primary)}
.contact-naam{font-weight:700;margin:0 0 4px}
.contact-adres{color:var(--muted);margin:0 0 16px;line-height:1.6}
.contact-route{display:inline-flex;align-items:center;gap:8px}
.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.contact-list li{display:flex;align-items:flex-start;gap:12px}
.contact-list li>i{width:34px;height:34px;flex:0 0 34px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary);font-size:.85rem}
.contact-list li>span{display:flex;flex-direction:column;gap:2px;word-break:break-word}
.contact-lbl{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.contact-socials{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.contact-social-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.contact-social-row a{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;
  border:1px solid var(--border);color:var(--text);transition:background .12s,color .12s,border-color .12s}
.contact-social-row a:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.contact-hours{width:100%;border-collapse:collapse;font-size:.92rem}
.contact-hours th{text-align:left;font-weight:500;padding:9px 0;color:var(--text)}
.contact-hours td{text-align:right;padding:9px 0;color:var(--muted);white-space:nowrap}
.contact-hours tr+tr th,.contact-hours tr+tr td{border-top:1px solid var(--border)}
.contact-hours .is-today th,.contact-hours .is-today td{font-weight:700;color:var(--text)}
.today-pill{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:.66rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}
.contact-map{margin-top:20px;padding:0;overflow:hidden}
.contact-map iframe{display:block;width:100%;height:400px;border:0}
.contact-map-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;
  border-top:1px solid var(--border);font-size:.8rem;color:var(--muted)}
@media(max-width:700px){
  .contact-map iframe{height:280px}
  .contact-layout{grid-template-columns:1fr}
}

@media(max-width:900px){
  .cart-row{grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:'thumb info del' 'thumb qty total';row-gap:10px}
  .cart-row .cart-thumb{grid-area:thumb;width:64px;height:64px}
  .cart-row .cart-info{grid-area:info}
  .cart-row .qty-box{grid-area:qty}
  .cart-row .cart-total{grid-area:total;text-align:right}
  .cart-row .cart-del{grid-area:del;justify-self:end}
  .cart-summary{position:static}
}

/* ------------------------------------------------------------------
   Paginabouwer: gedeelde blokopmaak, weergaven (grid/carousel/slider),
   categorie- en mediablokken, lightbox en scroll-effecten.
   ------------------------------------------------------------------ */
.pb-blk{padding:44px 0}
.pb-blk.pb-al-center{text-align:center}
.pb-blk.pb-al-right{text-align:right}
.pb-kop{margin-bottom:26px}
.pb-kop-t{margin:0 0 .3em;font-family:var(--font-heading)}
.pb-kop-s{margin:0;color:var(--muted);font-size:1.05rem;max-width:62ch}
.pb-al-center .pb-kop-s{margin-left:auto;margin-right:auto}
.pb-al-right .pb-kop-s{margin-left:auto}
.price-was{color:var(--muted);font-weight:500;font-size:.85em;margin-right:6px}
.badge-sale{background:var(--primary);color:#fff;left:auto;right:12px}

/* Aanbiedingen: kop van de salepagina en de kortingsmelding op een product. */
.sale-head{padding-top:26px}
.sale-head h1{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 8px}
.sale-vlag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;
  background:var(--primary);color:#fff;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.sale-intro{color:var(--muted);max-width:720px;margin:0}
.price-korting{padding:4px 10px;border-radius:999px;background:var(--primary);color:#fff;
  font-size:.85rem;font-weight:700}
.price-bespaar{display:flex;align-items:center;gap:8px;margin:8px 0 0;color:var(--primary);font-weight:600;font-size:.92rem}
.price-bespaar a{color:inherit;text-decoration:underline}

/* Weergaven */
.pb-lijst-wrap{position:relative}
.pb-lijst{display:grid;gap:20px}
.pb-kol-1{grid-template-columns:1fr;--pb-kol:1}
.pb-kol-2{grid-template-columns:repeat(2,minmax(0,1fr));--pb-kol:2}
.pb-kol-3{grid-template-columns:repeat(3,minmax(0,1fr));--pb-kol:3}
.pb-kol-4{grid-template-columns:repeat(4,minmax(0,1fr));--pb-kol:4}
.pb-kol-5{grid-template-columns:repeat(5,minmax(0,1fr));--pb-kol:5}
.pb-kol-6{grid-template-columns:repeat(6,minmax(0,1fr));--pb-kol:6}
/* Carousel: vrij scrollen. Slider: per pagina verspringen met de pijlen. */
.pb-lijst.pb-w-carousel,.pb-lijst.pb-w-slider,.pb-gal.pb-w-slider{
  grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--pb-kol,1) - 1) * 20px) / var(--pb-kol,1));
  grid-template-columns:none;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;scrollbar-width:none;padding-bottom:4px
}
.pb-lijst.pb-w-carousel{overflow-x:auto}
.pb-lijst.pb-w-slider,.pb-gal.pb-w-slider{overflow-x:hidden}
.pb-lijst.pb-w-carousel::-webkit-scrollbar,.pb-lijst.pb-w-slider::-webkit-scrollbar,.pb-gal.pb-w-slider::-webkit-scrollbar{display:none}
.pb-lijst.pb-w-carousel>*,.pb-lijst.pb-w-slider>*,.pb-gal.pb-w-slider>*{scroll-snap-align:start}
.pb-w-carousel.pb-kol-1,.pb-w-slider.pb-kol-1{--pb-kol:1}
.pb-w-carousel.pb-kol-2,.pb-w-slider.pb-kol-2{--pb-kol:2}
.pb-w-carousel.pb-kol-3,.pb-w-slider.pb-kol-3{--pb-kol:3}
.pb-w-carousel.pb-kol-4,.pb-w-slider.pb-kol-4{--pb-kol:4}
.pb-w-carousel.pb-kol-5,.pb-w-slider.pb-kol-5{--pb-kol:5}
.pb-w-carousel.pb-kol-6,.pb-w-slider.pb-kol-6{--pb-kol:6}
.pb-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:42px;height:42px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:background .15s,color .15s
}
.pb-nav:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
/* De pijlen zweven buiten de container en kosten dus geen ruimte: de tegels
   houden de volle containerbreedte. Is er buiten de container te weinig
   plek (smal scherm), dan schuiven ze terug tot tegen de tegels. */
.pb-lijst-wrap.has-nav{
  --pb-nav-ruim:calc((100vw - min(100vw, var(--container,1600px)) + 40px) / 2);
  --pb-nav-uit:clamp(0px, calc(var(--pb-nav-ruim) - 46px), 52px)
}
.pb-nav.prev{left:calc(-1 * var(--pb-nav-uit))}
.pb-nav.next{right:calc(-1 * var(--pb-nav-uit))}
/* Pijlplek: tegen de tegels aan of verder naar binnen over de tegels heen. */
.pb-lijst-wrap.pb-pijlpos-container{--pb-nav-uit:0px}
.pb-lijst-wrap.pb-pijlpos-binnen{--pb-nav-uit:-14px}
/* Op de foto: de pijlen staan binnen de afbeelding en kosten geen ruimte. */
.pb-lijst-wrap.pb-pijlpos-foto{--pb-nav-uit:-12px}
.pb-pijlpos-foto .pb-nav{background:var(--pb-pijl-bg,rgba(255,255,255,.9));color:var(--pb-pijl-fg,var(--text));border-color:transparent}
.pb-pijlpos-foto.pb-pijl-chevron .pb-nav{background:none;text-shadow:0 1px 6px rgba(0,0,0,.55);color:var(--pb-pijl-fg,#fff)}

/* Pijlstijlen, gelijk aan de slider: vorm, maat en eigen kleuren. */
.pb-nav{background:var(--pb-pijl-bg,var(--surface));color:var(--pb-pijl-fg,var(--text))}
.pb-nav:hover{background:var(--pb-pijl-bg,var(--primary));color:var(--pb-pijl-fg,#fff);border-color:transparent;filter:brightness(1.06)}
.pb-pijl-vierkant .pb-nav{border-radius:var(--radius)}
.pb-pijl-rond .pb-nav{border-radius:50%}
.pb-pijl-pil .pb-nav{width:56px;border-radius:999px}
.pb-pijl-minimaal .pb-nav{width:36px;height:36px;border-radius:4px;border:none;box-shadow:none;
  background:var(--pb-pijl-bg,rgba(15,23,42,.35));color:var(--pb-pijl-fg,#fff)}
.pb-pijl-chevron .pb-nav{width:32px;height:50px;border:none;box-shadow:none;font-size:24px;
  background:none;color:var(--pb-pijl-fg,var(--text))}
.pb-pijl-chevron .pb-nav:hover{background:none;transform:translateY(-50%) scale(1.12)}
.pb-pijl-groot .pb-nav{width:58px;height:58px;border-radius:50%;font-size:19px}

/* Andere navigatie dan pijlen: bolletjes, streepjes en een teller. De kleuren
   volgen dezelfde instellingen als de pijlen. */
.pb-dots{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}
.pb-dots button{width:10px;height:10px;padding:0;border:none;border-radius:50%;cursor:pointer;
  background:var(--pb-pijl-fg,var(--border));transition:background .15s,transform .15s,width .15s}
.pb-dots button:hover{transform:scale(1.15)}
.pb-dots button.is-actief{background:var(--pb-pijl-bg,var(--primary));transform:scale(1.25)}
.pb-dots-streepjes button{width:26px;height:4px;border-radius:2px}
.pb-dots-streepjes button.is-actief{width:40px;transform:none}
.pb-teller{margin-top:14px;text-align:center;font-size:.9rem;color:var(--muted)}
.pb-dots.pb-navpos-op,.pb-teller.pb-navpos-op{position:absolute;z-index:2;margin:0}
.pb-dots.pb-navpos-op{left:0;right:0;bottom:14px}
.pb-dots.pb-navpos-op button{background:var(--pb-pijl-fg,rgba(255,255,255,.65));box-shadow:0 1px 4px rgba(0,0,0,.35)}
.pb-dots.pb-navpos-op button.is-actief{background:var(--pb-pijl-bg,#fff)}
.pb-teller.pb-navpos-op{right:12px;bottom:12px;padding:4px 10px;border-radius:999px;
  background:var(--pb-pijl-bg,rgba(15,23,42,.6));color:var(--pb-pijl-fg,#fff)}
/* Zonder knoppen mag de bezoeker zelf slepen of swipen. */
.pb-navtype-geen .pb-w-slider,.pb-navtype-dots .pb-w-slider,
.pb-navtype-streepjes .pb-w-slider,.pb-navtype-teller .pb-w-slider{overflow-x:auto}
.pb-nav[hidden]{display:none}

/* Categorieblok */
.pb-cat{display:flex;flex-direction:column;gap:8px;text-align:center;align-items:center}
.pb-cat-media{
  width:100%;aspect-ratio:1/1;overflow:hidden;background:var(--bg);border:var(--pb-catrand,1px solid var(--border));
  display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:1.6rem;
  transition:transform .18s,box-shadow .18s,border-color .18s
}
.pb-cat-media img{width:100%;height:100%;object-fit:cover}
.pb-cat:hover .pb-cat-media{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--primary)}
.pb-cat-naam{font-weight:700;font-family:var(--font-heading)}
.pb-cat-aantal{color:var(--muted);font-size:.85rem}
.pb-vorm-vierkant .pb-cat-media{border-radius:var(--radius)}
.pb-vorm-rond .pb-cat-media{border-radius:50%}
.pb-vorm-afgerond .pb-cat-media{border-radius:26px}
.pb-vorm-liggend .pb-cat-media{aspect-ratio:16/10;border-radius:var(--radius)}
.pb-vorm-staand .pb-cat-media{aspect-ratio:3/4;border-radius:var(--radius)}
/*
 * De kolommen blijven de volle containerbreedte verdelen; de grootte begrenst
 * alleen de tegel binnen zijn kolom en volgt daarbij de uitlijning van het blok.
 */
.pb-gr-klein{--pb-tegel:96px}
.pb-gr-normaal{--pb-tegel:150px}
.pb-gr-groot{--pb-tegel:230px}
.pb-lijst[class*="pb-gr-"]:not(.pb-gr-vol) .pb-cat{align-items:center}
.pb-lijst[class*="pb-gr-"]:not(.pb-gr-vol) .pb-cat>*{max-width:var(--pb-tegel)}
.pb-al-left .pb-lijst[class*="pb-gr-"]:not(.pb-gr-vol) .pb-cat{align-items:flex-start}
.pb-al-right .pb-lijst[class*="pb-gr-"]:not(.pb-gr-vol) .pb-cat{align-items:flex-end}

/* Kaartstijlen: naam onder de foto of erin (pil, verloop, gecentreerd, balk) */
.pb-cat-label{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;padding:12px;z-index:2}
.pb-cat-media{position:relative}
.pb-cat-label .pb-cat-aantal{color:inherit;opacity:.8}
.pb-kaart-pil .pb-cat-label{align-items:center;justify-content:center;padding:12px}
.pb-kaart-pil .pb-cat-label>*{
  background:var(--primary);color:#fff;padding:8px 18px;border-radius:999px;
  font-weight:700;box-shadow:var(--shadow-md);text-align:center
}
.pb-kaart-pil .pb-cat-aantal{font-size:.75rem;padding:3px 12px;background:rgba(0,0,0,.55)}
.pb-kaart-overlay .pb-cat-media::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.25) 45%,transparent 75%)
}
.pb-kaart-overlay .pb-cat-label{color:#fff;text-align:left;padding:16px}
.pb-kaart-midden .pb-cat-media::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.35);transition:background .2s}
.pb-kaart-midden .pb-cat:hover .pb-cat-media::after{background:rgba(0,0,0,.5)}
.pb-kaart-midden .pb-cat-label{color:#fff;align-items:center;justify-content:center;text-align:center}
.pb-kaart-midden .pb-cat-naam{font-size:1.05rem}
.pb-kaart-midden .pb-cat-media img{transition:transform .5s ease}
.pb-kaart-midden .pb-cat:hover .pb-cat-media img{transform:scale(1.08)}
.pb-kaart-balk .pb-cat-label{background:var(--surface);color:var(--text);border-top:1px solid var(--border);text-align:center;align-items:center}
.pb-kaart-balk .pb-cat:hover .pb-cat-label{background:var(--primary);color:#fff}
.pb-kaart-balk .pb-cat:hover .pb-cat-label .pb-cat-aantal{color:#fff}
/* Een balk onderin vraagt om een rechthoekige tegel, ook bij een ronde vorm. */
.pb-kaart-balk .pb-cat-media{border-radius:var(--radius)}

/* Verticale positie van het label in de tegel */
.pb-cv-top .pb-cat-label{top:0;bottom:auto;justify-content:flex-start}
.pb-cv-middle .pb-cat-label{top:50%;bottom:auto;transform:translateY(-50%)}
.pb-cv-bottom .pb-cat-label{top:auto;bottom:0;justify-content:flex-end}

/* Uitlijning van de categorienaam binnen de tegel */
.pb-lijst.pb-cl-left .pb-cat-naam,.pb-lijst.pb-cl-left .pb-cat-aantal{text-align:left;align-self:flex-start}
.pb-lijst.pb-cl-center .pb-cat-naam,.pb-lijst.pb-cl-center .pb-cat-aantal{text-align:center;align-self:center}
.pb-lijst.pb-cl-right .pb-cat-naam,.pb-lijst.pb-cl-right .pb-cat-aantal{text-align:right;align-self:flex-end}
.pb-lijst.pb-cl-left .pb-cat-label{align-items:flex-start}
.pb-lijst.pb-cl-center .pb-cat-label{align-items:center}
.pb-lijst.pb-cl-right .pb-cat-label{align-items:flex-end}


/* Media + tekst */
.pb-media-inner{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.pb-media-inner.is-solo{grid-template-columns:1fr}
.pb-media.is-omgekeerd .pb-media-visual{order:2}
.pb-media-img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-md);display:block}
.pb-video{position:relative;padding-top:56.25%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}
.pb-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pb-video-file{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-md);display:block}
.pb-gal{display:grid;gap:12px}
.pb-gal-item{display:block;overflow:hidden;border-radius:var(--radius);background:var(--bg)}
.pb-gal-item img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .35s}
.pb-gal-item:hover img{transform:scale(1.05)}
.pb-gal.pb-w-slider .pb-gal-item img{aspect-ratio:4/3}
.pb-media-body .pb-kop{margin-bottom:16px}
.pb-media-body .pb-richtext{margin-bottom:18px}

/* Lightbox */
.pb-lightbox{position:fixed;inset:0;background:rgba(8,10,20,.9);z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px}
.pb-lightbox img{max-width:92vw;max-height:88vh;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.pb-lightbox button{
  position:absolute;top:20px;right:24px;width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.16);color:#fff;font-size:1.2rem
}
.pb-lightbox .lb-prev,.pb-lightbox .lb-next{top:50%;transform:translateY(-50%);right:auto}
.pb-lightbox .lb-prev{left:24px}
.pb-lightbox .lb-next{right:24px}

/* Scroll-effecten */
.pb-fx{opacity:0;transition:opacity .7s ease,transform .7s ease}
.pb-fx-omhoog{transform:translateY(28px)}
.pb-fx-zoom img{transition:transform 8s ease-out}
.pb-fx.is-in{opacity:1;transform:none}
.pb-fx-zoom.is-in img{transform:scale(1.08)}
@media (prefers-reduced-motion:reduce){.pb-fx{opacity:1;transform:none;transition:none}.pb-fx-zoom img{transition:none}}

@media(max-width:1100px){
  .pb-kol-5,.pb-kol-6{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pb-w-carousel.pb-kol-5,.pb-w-carousel.pb-kol-6,.pb-w-slider.pb-kol-5,.pb-w-slider.pb-kol-6{--pb-kol:4}
}
@media(max-width:900px){
  .pb-media-inner{grid-template-columns:1fr;gap:26px}
  .pb-media.is-omgekeerd .pb-media-visual{order:0}
  .pb-kol-3,.pb-kol-4,.pb-kol-5,.pb-kol-6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pb-w-carousel.pb-kol-3,.pb-w-carousel.pb-kol-4,.pb-w-carousel.pb-kol-5,.pb-w-carousel.pb-kol-6,
  .pb-w-slider.pb-kol-3,.pb-w-slider.pb-kol-4,.pb-w-slider.pb-kol-5,.pb-w-slider.pb-kol-6{--pb-kol:2}
}
@media(max-width:560px){
  .pb-blk{padding:30px 0}
  .pb-kol-2,.pb-kol-3,.pb-kol-4,.pb-kol-5,.pb-kol-6{grid-template-columns:1fr}
  .pb-w-carousel.pb-kol-2,.pb-w-carousel.pb-kol-3,.pb-w-carousel.pb-kol-4{--pb-kol:1.15}
  .pb-w-slider.pb-kol-2,.pb-w-slider.pb-kol-3,.pb-w-slider.pb-kol-4,.pb-w-slider.pb-kol-5,.pb-w-slider.pb-kol-6{--pb-kol:1}
  .pb-nav.prev{left:2px}
  .pb-nav.next{right:2px}
}

/* ---------- Onderhoudspagina ---------- */
body.onderhoudpage{margin:0;min-height:100%;font-family:var(--font-body);background:var(--bg);
  background:
    radial-gradient(1200px 500px at 50% -10%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 70%),
    linear-gradient(170deg,var(--bg),color-mix(in srgb,var(--primary) 6%,var(--bg))) fixed}
.onderhoud{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:40px 20px;color:var(--text)}
.onderhoud-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none}
.onderhoud-blob-1{width:420px;height:420px;top:-140px;left:-120px;
  background:color-mix(in srgb,var(--primary) 35%,transparent)}
.onderhoud-blob-2{width:360px;height:360px;bottom:-140px;right:-100px;
  background:color-mix(in srgb,var(--accent) 32%,transparent)}
.onderhoud-card{position:relative;z-index:1;width:100%;max-width:560px;text-align:center;
  background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 2.5);
  box-shadow:0 30px 70px rgba(15,23,42,.12);padding:44px 40px 30px}
.onderhoud-brand{margin-bottom:22px;font-family:var(--font-heading);font-weight:800;font-size:1.4rem;color:var(--text)}
.onderhoud-brand img{display:block;margin:0 auto;max-height:60px;max-width:220px;object-fit:contain}
.onderhoud-pil{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--primary);background:rgba(99,102,241,.10);
  background:color-mix(in srgb,var(--primary) 12%,transparent);
  border-radius:999px;padding:7px 14px}
.onderhoud-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);animation:onderhoud-puls 1.6s infinite}
@keyframes onderhoud-puls{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.onderhoud-icon{width:84px;height:84px;margin:24px auto 20px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:2rem;color:#fff;
  background:var(--primary);
  background:linear-gradient(140deg,var(--primary),color-mix(in srgb,var(--primary) 72%,#000));
  box-shadow:0 14px 34px color-mix(in srgb,var(--primary) 35%,transparent)}
.onderhoud-card h1{font-family:var(--font-heading);font-size:1.65rem;line-height:1.25;margin:0 0 12px;color:var(--text)}
.onderhoud-tekst{color:var(--muted);font-size:1rem;line-height:1.7;margin:0 auto;max-width:420px}
.onderhoud-balk{height:6px;border-radius:999px;background:rgba(99,102,241,.12);
  background:color-mix(in srgb,var(--primary) 12%,transparent);
  margin:28px auto 26px;max-width:280px;overflow:hidden}
.onderhoud-balk span{display:block;height:100%;width:38%;border-radius:999px;
  background:var(--primary);
  background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 55%,var(--accent)));
  animation:onderhoud-loop 2.2s ease-in-out infinite}
@keyframes onderhoud-loop{0%{transform:translateX(-100%)}100%{transform:translateX(280%)}}
.onderhoud-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.onderhoud-contact a{display:flex;align-items:center;gap:12px;text-align:left;text-decoration:none;color:var(--text);
  border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:12px 14px;background:var(--bg);
  transition:border-color .15s,transform .15s,box-shadow .15s}
.onderhoud-contact a:hover{border-color:var(--primary);transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(15,23,42,.08)}
.onderhoud-contact i{width:36px;height:36px;flex:none;border-radius:50%;display:flex;align-items:center;
  justify-content:center;color:var(--primary);background:rgba(99,102,241,.10);
  background:color-mix(in srgb,var(--primary) 12%,transparent)}
.onderhoud-contact span{display:flex;flex-direction:column;min-width:0}
.onderhoud-contact small{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}
.onderhoud-contact strong{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.onderhoud-socials{display:flex;gap:10px;justify-content:center;margin-top:20px}
.onderhoud-socials a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--muted);border:1px solid var(--border);text-decoration:none;transition:all .15s}
.onderhoud-socials a:hover{color:#fff;background:var(--primary);border-color:var(--primary)}
.onderhoud-foot{margin-top:28px;padding-top:18px;border-top:1px solid var(--border);color:var(--muted);font-size:.8rem}
@media(max-width:560px){
  .onderhoud{padding:24px 16px}
  .onderhoud-card{padding:32px 22px 24px;border-radius:calc(var(--radius) * 2)}
  .onderhoud-card h1{font-size:1.35rem}
  .onderhoud-contact{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .onderhoud-dot,.onderhoud-balk span{animation:none}
}
/* Contentblokken binnen bestaande content (bv. een FAQ-antwoord): geen extra
   containerbreedte of ruimte boven/onder. */
.pb-inset .container{width:100%;max-width:none;padding-left:0;padding-right:0}
.pb-inset .pb-section{padding-top:0;padding-bottom:16px}

/* -------------------- Activiteitsmeldingen -------------------- */
.act-bak{position:fixed;z-index:1150;pointer-events:none;max-width:min(360px,calc(100vw - 32px))}
.act-linksonder{left:18px;bottom:18px}
.act-rechtsonder{right:18px;bottom:18px}
.act-linksboven{left:18px;top:88px}
.act-rechtsboven{right:18px;top:88px}
.act-kaart{display:flex;align-items:center;gap:12px;padding:10px 34px 10px 10px;background:var(--surface);
  border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-md);
  color:inherit;text-decoration:none;position:relative;pointer-events:auto;
  opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease}
.act-kaart.is-open{opacity:1;transform:none}
.act-rechtsonder .act-kaart,.act-rechtsboven .act-kaart{padding:10px 34px 10px 10px}
a.act-kaart:hover{border-color:var(--primary)}
.act-foto{width:46px;height:46px;object-fit:contain;border-radius:var(--radius);background:#fff;flex:none}
.act-ico{width:46px;height:46px;border-radius:var(--radius);flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--primary);color:#fff;font-size:1rem}
.act-tekst{display:flex;flex-direction:column;gap:3px;min-width:0}
.act-regel{font-size:.84rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.act-tijd{font-size:.72rem;color:var(--muted)}
.act-sluit{position:absolute;top:6px;right:6px;width:22px;height:22px;border:none;border-radius:50%;background:transparent;
  color:var(--muted);cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center}
.act-sluit:hover{background:var(--bg);color:var(--text)}
@media(max-width:900px){
  .act-bak{left:12px;right:12px;max-width:none}
  .act-linksboven,.act-rechtsboven{top:72px}
  .act-linksonder,.act-rechtsonder{bottom:76px}
}
@media(prefers-reduced-motion:reduce){
  .act-kaart{transition:none}
}

/* --------- Wensenlijst en voorraadmelding --------- */
.wens-link{position:relative}
.wens-badge{
  position:absolute;top:-2px;right:-2px;background:var(--primary);color:#fff;font-size:.7rem;font-weight:700;
  min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius);display:grid;place-items:center
}
.wens-badge[hidden]{display:none}
.product-card{position:relative}
.wens-knop{
  position:absolute;top:10px;right:10px;z-index:2;width:36px;height:36px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;
  display:grid;place-items:center;font-size:.95rem;box-shadow:var(--shadow-sm);transition:color .15s,transform .15s
}
.wens-knop:hover{color:#e0245e;transform:scale(1.08)}
.wens-knop.is-op-lijst{color:#e0245e}
.wens-knop.is-gewisseld{transform:scale(1.25)}
.wens-knop--pdp{
  position:static;width:auto;height:auto;border-radius:var(--radius);padding:0 16px;min-height:44px;
  display:inline-flex;align-items:center;gap:8px;font-size:.92rem;font-weight:600;box-shadow:none
}
.wens-knop--pdp:hover{transform:none;border-color:#e0245e}
.wens-pagina{margin:24px auto}
.wens-titel{margin:0 0 6px;font-size:1.5rem;display:flex;align-items:center;gap:10px}
.wens-titel i{color:#e0245e}
.wens-aantal,.wens-leeg{color:var(--muted);margin:0 0 18px}
.vm-blok{margin-top:14px;padding:14px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg)}
.vm-kop{margin:0 0 10px;font-weight:600}
.vm-form{display:flex;gap:10px;flex-wrap:wrap}
.vm-form input[type=email]{flex:1 1 200px;min-width:0}
.vm-hint{margin:8px 0 0;color:var(--muted);font-size:.82rem}
.qty-row{flex-wrap:wrap}
.wens-knop--pdp{flex:0 0 auto}
@media(max-width:700px){
  .wens-knop--pdp{flex:1 1 100%;justify-content:center}
  .vm-form input[type=email],.vm-form button{flex:1 1 100%}
}

/* --------- Producten vergelijken --------- */
.vgl-keuze{display:inline-flex;align-items:center;gap:7px;margin-top:10px;font-size:.8rem;color:var(--muted);cursor:pointer}
.vgl-keuze input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}
.vgl-keuze.is-aan{color:var(--primary);font-weight:600}
.vgl-knop{
  flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--border);
  background:var(--surface);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  font-size:.92rem;font-weight:600;transition:color .15s,border-color .15s
}
.vgl-knop:hover,.vgl-knop.is-aan{color:var(--primary);border-color:var(--primary)}
.vgl-balk{
  position:fixed;left:50%;transform:translateX(-50%);bottom:20px;z-index:82;display:flex;align-items:center;gap:16px;
  padding:12px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);font-size:.9rem;max-width:calc(100% - 32px)
}
.vgl-balk-knop.is-uit{pointer-events:none;opacity:.55}
.vgl-melding{
  position:fixed;left:50%;transform:translateX(-50%);bottom:88px;z-index:83;padding:11px 16px;border-radius:var(--radius);
  background:#1f2937;color:#fff;font-size:.86rem;box-shadow:var(--shadow-lg)
}
.vgl-pagina{margin:24px auto}
.vgl-kop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.vgl-titel{margin:0;font-size:1.45rem;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.vgl-titel-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;
  background:color-mix(in srgb, var(--primary) 12%, #fff);color:var(--primary);font-size:1rem}
.vgl-sub{margin:8px 0 0;color:var(--muted);font-size:.88rem;display:flex;flex-wrap:wrap;gap:6px}
.vgl-sub strong{color:var(--text)}
.vgl-punt{opacity:.5}
.vgl-acties{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vgl-acties form{margin:0}
.vgl-leegknop{color:var(--muted)}
.vgl-leegknop:hover{color:#b91c1c;border-color:#fecaca}
/* Schuifschakelaar "Alleen verschillen" */
.vgl-switch{display:inline-flex;align-items:center;gap:10px;font-size:.86rem;color:var(--muted);cursor:pointer;user-select:none}
.vgl-switch input{position:absolute;opacity:0;width:0;height:0}
.vgl-switch-rail{position:relative;width:40px;height:22px;border-radius:999px;background:var(--border);
  transition:background .18s ease;flex:0 0 auto}
.vgl-switch-dot{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .18s ease}
.vgl-switch input:checked + .vgl-switch-rail{background:var(--primary)}
.vgl-switch input:checked + .vgl-switch-rail .vgl-switch-dot{transform:translateX(18px)}
.vgl-switch input:focus-visible + .vgl-switch-rail{outline:2px solid var(--primary);outline-offset:2px}
.vgl-switch input:checked ~ .vgl-switch-tekst{color:var(--primary);font-weight:600}
/* Lege toestand */
.vgl-leeg-blok{text-align:center;padding:26px 8px 10px}
.vgl-leeg-ico{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;
  background:var(--bg);color:var(--primary);font-size:1.5rem;margin-bottom:14px}
.vgl-leeg-blok h2{margin:0 0 8px;font-size:1.15rem}
.vgl-leeg-blok p{color:var(--muted);max-width:460px;margin:0 auto 18px;font-size:.92rem;line-height:1.6}
.vgl-hint{color:var(--muted);font-size:.86rem;margin:14px 0 0;display:flex;align-items:center;gap:8px}
/* Tabel */
.vgl-scroll{overflow-x:auto;margin:0 -4px;padding:0 4px;scroll-behavior:smooth}
.vgl-tabel{width:100%;border-collapse:separate;border-spacing:0;min-width:520px;table-layout:fixed}
.vgl-tabel th,.vgl-tabel td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.9rem}
.vgl-tabel thead th{vertical-align:top;border-bottom:1px solid var(--border);background:var(--surface);height:1px}
.vgl-tabel tbody tr{transition:background .15s ease}
.vgl-tabel tbody tr:hover{background:var(--bg)}
.vgl-tabel tbody tr:last-child th,.vgl-tabel tbody tr:last-child td{border-bottom:0}
.vgl-label{width:190px;word-break:break-word;color:var(--muted);font-weight:600;background:var(--surface);position:sticky;left:0;z-index:2}
.vgl-tabel tbody tr:hover .vgl-label{background:var(--bg)}
.vgl-hoek{z-index:4;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.vgl-tabel.alleen-verschil tbody tr:not(.is-verschil):not(.is-vast){display:none}
.vgl-vlag{display:none;margin-left:8px;padding:2px 7px;border-radius:999px;font-size:.66rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb, var(--accent) 18%, #fff);color:#92400e;
  vertical-align:middle}
.vgl-tabel tr.is-verschil .vgl-vlag{display:inline-block}
/* Productkaart in de kop */
.vgl-kolom{min-width:190px}
.vgl-prodkaart{position:relative;display:flex;flex-direction:column;height:100%;gap:10px;padding:12px 12px 14px;
  border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.vgl-prodkaart:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.vgl-prod{display:block;color:inherit;text-decoration:none}
.vgl-foto{position:relative;display:grid;place-items:center;aspect-ratio:1;padding:8px;
  border-radius:var(--radius);overflow:hidden;background:var(--bg)}
.vgl-foto img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;transition:transform .3s ease}
.vgl-prodkaart:hover .vgl-foto img{transform:scale(1.04)}
.vgl-actie{position:absolute;top:8px;left:8px;z-index:1;padding:3px 8px;border-radius:999px;background:var(--accent);
  color:#fff;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.vgl-naam{margin-top:10px;min-height:2.7em;font-weight:700;font-size:.92rem;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vgl-prod:hover .vgl-naam{color:var(--primary)}
.vgl-bekijk{margin-top:auto;justify-content:center;text-align:center}
.vgl-weg{position:absolute;top:6px;right:6px;z-index:2;width:28px;height:28px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.8rem;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s,background .15s}
.vgl-weg:hover{color:#fff;background:#e0245e;border-color:#e0245e}
/* Productkaarten komen rustig in beeld */
@keyframes vgl-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.vgl-prodkaart{animation:vgl-in .32s ease both}
.vgl-kolom:nth-child(2) .vgl-prodkaart{animation-delay:.03s}
.vgl-kolom:nth-child(3) .vgl-prodkaart{animation-delay:.06s}
.vgl-kolom:nth-child(4) .vgl-prodkaart{animation-delay:.09s}
.vgl-kolom:nth-child(5) .vgl-prodkaart{animation-delay:.12s}
/* Kolom verdwijnt met een korte overgang */
.vgl-tabel .vgl-kolom{transition:opacity .22s ease,transform .22s ease}
.vgl-tabel .vgl-kolom.is-weg{opacity:0;transform:translateY(-6px)}
/* Waarden */
.vgl-prijs .vgl-nu{font-weight:800;font-size:1.05rem;color:var(--primary)}
.vgl-prijs .price-was{margin-left:8px;color:var(--muted);font-size:.82rem}
.vgl-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600}
.vgl-badge.op{background:#dcfce7;color:#15803d}
.vgl-badge.uit{background:#fee2e2;color:#b91c1c}
.vgl-geen{color:var(--border)}
@media(prefers-reduced-motion:reduce){
  .vgl-prodkaart,.vgl-foto img,.vgl-tabel .vgl-kolom,.vgl-switch-rail,.vgl-switch-dot{transition:none}
  .vgl-prodkaart{animation:none}
  .vgl-prodkaart:hover{transform:none}
  .vgl-prodkaart:hover .vgl-foto img{transform:none}
}
@media(max-width:700px){
  .vgl-knop{flex:1 1 100%;justify-content:center}
  .vgl-kop{align-items:flex-start}
  .vgl-acties{width:100%;justify-content:space-between}
  .vgl-label{width:118px;padding:12px 10px}
  .vgl-tabel th,.vgl-tabel td{padding:12px 10px}
  .vgl-kolom{min-width:150px}
  .vgl-tabel{min-width:0}
  .vgl-balk{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100% - 32px);justify-content:space-between}
}

/* ---------- De winkel als app (PWA) ---------- */
.pwa-balk{position:fixed;left:16px;bottom:16px;max-width:min(520px,calc(100vw - 32px));z-index:950;
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:0 12px 30px rgba(0,0,0,.14);font-size:.9rem}
.pwa-balk-tekst{flex:1;display:flex;align-items:center;gap:10px}
.pwa-balk-tekst i{color:var(--primary)}
.pwa-balk-weg{padding:0 4px;border:0;background:none;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer}
.pwa-balk-weg:hover{color:var(--text)}
.push-kaart{margin-top:18px}
.push-uitleg{color:var(--muted);font-size:.9rem;margin:0 0 12px}
.push-knop{border:1px solid var(--border)}
.push-knop.is-aan{border-color:var(--primary);color:var(--primary)}
.offline-pagina{padding:40px 0}
.offline-kaart{text-align:center;max-width:520px;margin:0 auto}
.offline-icoon{font-size:2.4rem;color:var(--primary);margin-bottom:10px}
.offline-knoppen{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
@media(max-width:700px){
  .pwa-balk{right:16px;bottom:calc(70px + env(safe-area-inset-bottom));max-width:none;flex-wrap:wrap}
  .pwa-balk-tekst{flex:1 1 100%}
}
