/*
 * Samengevoegd door wt_css_bundel(). Niet met de hand aanpassen: dit bestand wordt
 * opnieuw gemaakt zodra een van de bronbestanden verandert. Pas de bron aan in
 * wp-content/themes/weltechniek.nl/css/.
 */


/* ==================== /css/header.css ==================== */
/* ============================================================
 * Weltechniek Nieuwe Header — production CSS
 *
 * Bevat:
 *  - Design tokens (CSS-variabelen)
 *  - Minimal utility-classes (Tailwind-compatible namen, handgeschreven)
 *  - Header-specifieke styling
 *  - Mega-menu (desktop + mobiel)
 *
 * Alles gescoped onder body.nieuwe-header-actief voor coexistence met
 * de oude header van Shoptimizer.
 * ============================================================ */

/* ---------- 1. DESIGN TOKENS ---------- */
:root {
  --wrapper-max:     1301px;
  --wrapper-padding: 1rem;
  --hdr-utility: 40px;
  --hdr-main:    64px;
  --hdr-nav:     70px;
  --mm-tabs-width: 240px;
  --mm-panel-max-h: min(70vh, 600px);

  --wt-blue:        #1E3A6D;
  --wt-blue-soft:   #eef2f9;
  --wt-green:       #00bb00;
  --wt-green-hover: #008d00;
}
@media (min-width: 640px)  { :root { --wrapper-padding: 1.5rem; } }
@media (min-width: 1024px) { :root { --wrapper-padding: 2rem; --hdr-main: 80px; } }

/* ---------- 2. SCOPED RESET ---------- */
body.nieuwe-header-actief #masthead,
body.nieuwe-header-actief #mm-mobile,
body.nieuwe-header-actief #mm-backdrop {
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.nieuwe-header-actief #masthead *,
body.nieuwe-header-actief #mm-mobile *,
body.nieuwe-header-actief #mm-desktop * {
  box-sizing: border-box;
}

/* ---------- 3. WRAPPER ---------- */
body.nieuwe-header-actief .wrapper {
  width: 100%;
  max-width: calc(var(--wrapper-max) + 2 * var(--wrapper-padding));
  margin-inline: auto;
  padding-inline: var(--wrapper-padding);
  box-sizing: border-box;
}

/* ---------- 4. UTILITIES (Tailwind-compatible) ----------
 * Gescoped via :where(#masthead, #mm-mobile, #mm-backdrop) zodat onze
 * utility-classes alleen binnen het header-domein matchen. Voorkomt
 * conflicten met Shoptimizer/FiboSearch elders op de pagina die
 * toevallig dezelfde class-namen gebruiken (mini-cart, filter-drawer).
 * :where() heeft specificity 0 — plugins/parent theme winnen daar-
 * buiten netjes vanzelf.
 * --------------------------------------------------------- */
:where(#masthead, #mm-mobile, #mm-backdrop) .flex { display: flex; }
:where(#masthead, #mm-mobile, #mm-backdrop) .inline-flex { display: inline-flex; }
:where(#masthead, #mm-mobile, #mm-backdrop) .block { display: block; }
:where(#masthead, #mm-mobile, #mm-backdrop) .hidden { display: none; }
:where(#masthead, #mm-mobile, #mm-backdrop) .items-center { align-items: center; }
:where(#masthead, #mm-mobile, #mm-backdrop) .items-baseline { align-items: baseline; }
:where(#masthead, #mm-mobile, #mm-backdrop) .justify-between { justify-content: space-between; }
:where(#masthead, #mm-mobile, #mm-backdrop) .justify-center { justify-content: center; }
:where(#masthead, #mm-mobile, #mm-backdrop) .flex-1 { flex: 1 1 0%; }
:where(#masthead, #mm-mobile, #mm-backdrop) .flex-shrink-0,
:where(#masthead, #mm-mobile, #mm-backdrop) .shrink-0 { flex-shrink: 0; }
:where(#masthead, #mm-mobile, #mm-backdrop) .flex-col { flex-direction: column; }

:where(#masthead, #mm-mobile, #mm-backdrop) .relative { position: relative; }
:where(#masthead, #mm-mobile, #mm-backdrop) .absolute { position: absolute; }
:where(#masthead, #mm-mobile, #mm-backdrop) .fixed { position: fixed; }
:where(#masthead, #mm-mobile, #mm-backdrop) .inset-0 { inset: 0; }
:where(#masthead, #mm-mobile, #mm-backdrop) .top-0 { top: 0; }
:where(#masthead, #mm-mobile, #mm-backdrop) .right-0 { right: 0; }
:where(#masthead, #mm-mobile, #mm-backdrop) .-top-2 { top: -8px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .-right-2 { right: -8px; }

:where(#masthead, #mm-mobile, #mm-backdrop) .gap-0\.5 { gap: 2px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .gap-1 { gap: 4px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .gap-1\.5 { gap: 6px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .gap-2 { gap: 8px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .gap-3 { gap: 12px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .gap-4 { gap: 16px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .gap-6 { gap: 24px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .lg-gap-10 { gap: 40px; }

:where(#masthead, #mm-mobile, #mm-backdrop) .p-2 { padding: 8px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .py-2 { padding-top: 8px; padding-bottom: 8px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .py-3 { padding-top: 12px; padding-bottom: 12px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .py-8 { padding-top: 32px; padding-bottom: 32px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .px-3 { padding-left: 12px; padding-right: 12px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .px-4 { padding-left: 16px; padding-right: 16px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .pl-10 { padding-left: 40px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .pl-11 { padding-left: 44px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .pr-4 { padding-right: 16px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .px-1 { padding-left: 4px; padding-right: 4px; }

:where(#masthead, #mm-mobile, #mm-backdrop) .-ml-2 { margin-left: -8px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .ml-auto { margin-left: auto; }
:where(#masthead, #mm-mobile, #mm-backdrop) .ml-1 { margin-left: 4px; }

:where(#masthead, #mm-mobile, #mm-backdrop) .h-4 { height: 16px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .h-5 { height: 20px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .h-6 { height: 24px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .h-8 { height: 32px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .h-\[18px\] { height: 18px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .w-4 { width: 16px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .w-5 { width: 20px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .w-6 { width: 24px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .w-full { width: 100%; }
:where(#masthead, #mm-mobile, #mm-backdrop) .w-auto { width: auto; }
:where(#masthead, #mm-mobile, #mm-backdrop) .min-w-\[18px\] { min-width: 18px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .max-w-2xl { max-width: 42rem; }

:where(#masthead, #mm-mobile, #mm-backdrop) .text-xs { font-size: 12px; line-height: 1.4; }
:where(#masthead, #mm-mobile, #mm-backdrop) .text-sm { font-size: 14px; line-height: 1.4; }
:where(#masthead, #mm-mobile, #mm-backdrop) .text-base { font-size: 16px; line-height: 1.5; }

:where(#masthead, #mm-mobile, #mm-backdrop) .font-medium { font-weight: 500; }
:where(#masthead, #mm-mobile, #mm-backdrop) .font-semibold { font-weight: 600; }
:where(#masthead, #mm-mobile, #mm-backdrop) .font-bold { font-weight: 700; }

:where(#masthead, #mm-mobile, #mm-backdrop) .rounded-md { border-radius: 6px; }
:where(#masthead, #mm-mobile, #mm-backdrop) .rounded-full { border-radius: 9999px; }

:where(#masthead, #mm-mobile, #mm-backdrop) .text-white { color: #fff; }
:where(#masthead, #mm-mobile, #mm-backdrop) .text-gray-400 { color: #9ca3af; }
:where(#masthead, #mm-mobile, #mm-backdrop) .text-gray-700 { color: #374151; }
:where(#masthead, #mm-mobile, #mm-backdrop) .text-yellow-400 { color: #facc15; }

:where(#masthead, #mm-mobile, #mm-backdrop) .border { border-width: 1px; border-style: solid; }
:where(#masthead, #mm-mobile, #mm-backdrop) .border-b { border-bottom-width: 1px; border-bottom-style: solid; }
:where(#masthead, #mm-mobile, #mm-backdrop) .border-gray-200 { border-color: #e5e7eb; }
:where(#masthead, #mm-mobile, #mm-backdrop) .border-gray-300 { border-color: #d2d6dc; }

:where(#masthead, #mm-mobile, #mm-backdrop) .overflow-hidden { overflow: hidden; }
:where(#masthead, #mm-mobile, #mm-backdrop) .pointer-events-none { pointer-events: none; }
:where(#masthead, #mm-mobile, #mm-backdrop) .transition { transition: all 150ms ease; }
:where(#masthead, #mm-mobile, #mm-backdrop) .tracking-tight { letter-spacing: -0.025em; }
:where(#masthead, #mm-mobile, #mm-backdrop) .opacity-90 { opacity: 0.9; }
:where(#masthead, #mm-mobile, #mm-backdrop) .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Responsive utilities */
@media (max-width: 1023px) {
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:flex,
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:block,
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:gap-10 { display: none; }
}
@media (min-width: 1024px) {
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:hidden { display: none; }
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:flex { display: flex; }
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:block { display: block; }
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:gap-10 { gap: 40px; }
  :where(#masthead, #mm-mobile, #mm-backdrop) .lg\:h-10 { height: 40px; }
}
@media (min-width: 640px) {
  :where(#masthead, #mm-mobile, #mm-backdrop) .sm\:inline { display: inline; }
}

/* ---------- 5. HEADER STRUCTUUR ---------- */
body.nieuwe-header-actief #masthead {
  width: 100%;
  position: relative;
  z-index: 50;
}

/* Rij 1: topbar */
body.nieuwe-header-actief .wt-topbar {
  background: var(--wt-blue);
  color: #fff;
  font-size: 14px;
}
body.nieuwe-header-actief .wt-topbar .wrapper {
  display: flex;
  align-items: center;
  height: var(--hdr-utility);
  gap: 16px;
}
body.nieuwe-header-actief .wt-topbar-usps-mobile {
  flex: 1;
  height: var(--hdr-utility);
  overflow: hidden;
}
@media (min-width: 1024px) {
  body.nieuwe-header-actief .wt-topbar-usps-mobile { display: none; }
}
body.nieuwe-header-actief .wt-topbar-usps-desktop {
  display: none;
  align-items: center;
  gap: 24px;
  flex: 1;
}
@media (min-width: 1024px) {
  body.nieuwe-header-actief .wt-topbar-usps-desktop { display: flex; }
}
body.nieuwe-header-actief .wt-topbar-usps-desktop > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.nieuwe-header-actief .wt-topbar-reviews {
  display: none;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  color: inherit;
  text-decoration: none;
  transition: opacity 120ms;
}
@media (min-width: 1024px) {
  body.nieuwe-header-actief .wt-topbar-reviews { display: flex; }
}
body.nieuwe-header-actief .wt-topbar-reviews:hover { opacity: 0.8; }
body.nieuwe-header-actief .wt-topbar-icon { color: var(--wt-green); width: 16px; height: 16px; }

/* USP-slider */
@keyframes wt-usp-slide {
  0%, 29%   { transform: translateY(0); }
  33%, 62%  { transform: translateY(calc(-1 * var(--hdr-utility))); }
  67%, 96%  { transform: translateY(calc(-2 * var(--hdr-utility))); }
  100%      { transform: translateY(calc(-3 * var(--hdr-utility))); }
}
body.nieuwe-header-actief .usp-slider {
  display: flex;
  flex-direction: column;
  animation: wt-usp-slide 12s ease-in-out infinite;
  list-style: none;
  margin: 0;
  padding: 0;
}
body.nieuwe-header-actief .usp-slider li {
  height: var(--hdr-utility);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
@media (prefers-reduced-motion: reduce) { body.nieuwe-header-actief .usp-slider { animation: none; } }

/* Rij 2: hoofdrij */
body.nieuwe-header-actief .wt-mainrow {
  background: var(--wt-blue-soft);
  border-bottom: 1px solid #e5e7eb;
}
body.nieuwe-header-actief .wt-mainrow .wrapper > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--hdr-main);
  gap: 16px;
}
@media (min-width: 1024px) {
  body.nieuwe-header-actief .wt-mainrow .wrapper > div { gap: 40px; }
}
body.nieuwe-header-actief .wt-mainrow-logo {
  display: flex; align-items: center; gap: 8px; flex-shrink: 0;
}
body.nieuwe-header-actief .wt-mainrow-logo img {
  height: 28px; width: auto;
  /* Full-color huisstijl-logo (Weltechniek-logo.png) → geen herkleur-filter meer
     nodig (was: wit logo + filter naar navy). */
}
@media (min-width: 1024px) {
  body.nieuwe-header-actief .wt-mainrow-logo img { height: 40px; }
}

/* Hamburger button (mobiel) */
body.nieuwe-header-actief #mm-mobile-trigger {
  background: transparent;
  border: 0;
  color: #374151;
  padding: 8px;
  margin-left: -8px;
  cursor: pointer;
  border-radius: 6px;
  align-items: center;
  justify-content: center;
  transition: background 120ms;
}
body.nieuwe-header-actief #mm-mobile-trigger:hover { background: #fff; }
/* Geen size-override hier — hamburger gebruikt de standaard w-6 h-6 (24px),
   consistent met de account/cart icoontjes rechts in de mainrow. */
@media (max-width: 1023px) { body.nieuwe-header-actief #mm-mobile-trigger { display: inline-flex; } }
@media (min-width: 1024px) { body.nieuwe-header-actief #mm-mobile-trigger { display: none; } }

/* Account/cart iconen mobiel */
body.nieuwe-header-actief .wt-mainrow-icons-mobile {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
@media (min-width: 1024px) { body.nieuwe-header-actief .wt-mainrow-icons-mobile { display: none; } }
body.nieuwe-header-actief .wt-mainrow-icons-mobile a,
body.nieuwe-header-actief .wt-mainrow-icons-mobile button {
  padding: 8px;
  color: #374151;
  background: transparent;
  border: 0;
  border-radius: 6px;
  font-family: inherit;
  cursor: pointer;
  transition: background 120ms;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
body.nieuwe-header-actief .wt-mainrow-icons-mobile a:hover,
body.nieuwe-header-actief .wt-mainrow-icons-mobile button:hover { background: #fff; }

/* Account/klantenservice/kluslijst desktop */
body.nieuwe-header-actief .wt-mainrow-icons-desktop {
  display: none;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}
@media (min-width: 1024px) { body.nieuwe-header-actief .wt-mainrow-icons-desktop { display: flex; } }
body.nieuwe-header-actief .wt-mainrow-icons-desktop > a,
body.nieuwe-header-actief .wt-mainrow-icons-desktop > button {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 12px;
  border-radius: 6px;
  border: 0;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
  text-decoration: none;
  color: var(--wt-blue);
  transition: background 120ms;
}
body.nieuwe-header-actief .wt-mainrow-icons-desktop > a:hover,
body.nieuwe-header-actief .wt-mainrow-icons-desktop > button:hover { background: rgba(30, 58, 109, 0.1); }
body.nieuwe-header-actief .wt-mainrow-icons-desktop > a span,
body.nieuwe-header-actief .wt-mainrow-icons-desktop > button span { font-size: 16px; font-weight: 500; color: var(--wt-blue); }

/* Zoekbalk desktop */
body.nieuwe-header-actief .wt-search-desktop {
  display: none;
  flex: 1;
  max-width: 42rem;
}
@media (min-width: 1024px) { body.nieuwe-header-actief .wt-search-desktop { display: flex; } }

/* Rij 3 (mobiel): zoekbalk */
body.nieuwe-header-actief .wt-search-mobile {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}
@media (min-width: 1024px) { body.nieuwe-header-actief .wt-search-mobile { display: none; } }
body.nieuwe-header-actief .wt-search-mobile .wrapper { padding-top: 12px; padding-bottom: 12px; }

/* FIBO Search styling override */
body.nieuwe-header-actief .dgwt-wcas-search-wrapp,
body.nieuwe-header-actief .dgwt-wcas-search-form,
body.nieuwe-header-actief .dgwt-wcas-sf-wrapp {
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
body.nieuwe-header-actief .dgwt-wcas-sf-wrapp { position: relative; }
body.nieuwe-header-actief .dgwt-wcas-search-input {
  border: 1px solid #d2d6dc !important;
  border-radius: 9999px !important;
  background: #fff !important;
  background-color: #fff !important;
  font-size: 16px !important;
  font-family: inherit !important;
  font-weight: 400 !important;
  padding: 12px 16px 12px 44px !important;
  box-shadow: none !important;
  height: auto !important;
  color: #111827 !important;
  width: 100% !important;
}
body.nieuwe-header-actief .dgwt-wcas-search-input:focus {
  border-color: var(--wt-blue) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(30, 58, 109, 0.2) !important;
}
body.nieuwe-header-actief .dgwt-wcas-search-input::placeholder { color: #9ca3af !important; opacity: 1 !important; }
body.nieuwe-header-actief .dgwt-wcas-search-submit {
  position: absolute !important;
  left: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 32px !important;
  height: 32px !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  color: #9ca3af !important;
  z-index: 2 !important;
}
/* FiboSearch magnifier-icoon is een gevuld vector-icoon, geen line-icon.
   Fill (geen stroke) toepassen om het juiste rendering te krijgen. */
body.nieuwe-header-actief .dgwt-wcas-search-submit svg,
body.nieuwe-header-actief .dgwt-wcas-search-submit svg path {
  fill: #9ca3af !important;
  stroke: none !important;
}

/* FiboSearch suggesties: "Toon alle resultaten"-knop onderaan de dropdown.
   Verplaatst vanuit style.css (2026-05-12) — alle search-styling op één plek. */
body.nieuwe-header-actief .dgwt-wcas-suggestion.dgwt-wcas-suggestion-more .dgwt-wcas-st-more {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  text-transform: none;
  color: #fff;
  background: var(--wt-green);
  border-radius: 3px;
  width: 100%;
  padding: 15px;
}
body.nieuwe-header-actief .dgwt-wcas-suggestion.dgwt-wcas-suggestion-more .dgwt-wcas-st-more:hover {
  background: var(--wt-green-hover);
}
body.nieuwe-header-actief span.dgwt-wcas-st-more-total {
  color: #fff;
}
@media (max-width: 1023px) {
  body.nieuwe-header-actief .dgwt-wcas-search-input {
    border-radius: 6px !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    padding: 10px 12px 10px 40px !important;
  }
  body.nieuwe-header-actief .dgwt-wcas-search-input:focus {
    background: #fff !important;
    background-color: #fff !important;
  }
}

/* Rij 4: nav-rij (desktop) */
body.nieuwe-header-actief nav.wt-navrow {
  display: none;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}
@media (min-width: 1024px) { body.nieuwe-header-actief nav.wt-navrow { display: block; } }
body.nieuwe-header-actief nav.wt-navrow .wrapper { position: relative; }
body.nieuwe-header-actief nav.wt-navrow .wrapper > .wt-navrow-inner {
  display: flex;
  align-items: center;
  height: var(--hdr-nav);
  gap: 8px;
}

/* Kies je categorie button */
body.nieuwe-header-actief #mm-desktop-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: var(--wt-blue);
  border: 1px solid #d2d6dc;
  padding: 8px 16px;
  border-radius: 6px;
  font-family: inherit;
  font-weight: 500;
  font-size: 16px;
  cursor: pointer;
  transition: background 120ms, border-color 120ms;
}
body.nieuwe-header-actief #mm-desktop-trigger:hover {
  background: #ffffff;
  border-color: var(--wt-blue);
}

/* Nav-links */
body.nieuwe-header-actief .wt-navrow a.wt-navlink {
  padding: 8px 16px;
  font-size: 16px;
  font-weight: 500;
  color: var(--wt-blue);
  text-decoration: none;
  border-radius: 6px;
  transition: background 120ms;
}
body.nieuwe-header-actief .wt-navrow a.wt-navlink:hover { background: rgba(30, 58, 109, 0.1); }

/* Zakelijke klant CTA */
body.nieuwe-header-actief a.wt-zakelijk-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--wt-green);
  color: #fff;
  padding: 8px 16px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 16px;
  text-decoration: none;
  transition: background 120ms;
}
body.nieuwe-header-actief a.wt-zakelijk-cta:hover { background: var(--wt-green-hover); color: #fff; }

/* Cart shortcode wrapper */
body.nieuwe-header-actief .wt-cart-shortcode-wrap { margin-left: auto; }

/* ---------- 5b. CART-BUTTON ----------
   Vervangt Shoptimizer's [shoptimizer_cart] shortcode-output met eigen
   inline-SVG icoon + count-badge + prijs. De wrappers
   .wt-header-cart + .wt-header-cart__knop staan in header.php zelf
   — die zijn nodig voor Shoptimizer's cart-drawer.js om de klik te
   herkennen en de drawer/flyout te openen.
   ------------------------------------------------------------------- */
body.nieuwe-header-actief .wt-cart-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--wt-blue);
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 6px;
  transition: background 120ms;
  /* Override Shoptimizer's .cart-contents { width: 49px; height: 44px; } */
  width: auto;
  height: auto;
}
body.nieuwe-header-actief .wt-cart-btn:hover {
  background: rgba(30, 58, 109, 0.1);
  color: var(--wt-blue);
}
body.nieuwe-header-actief .wt-cart-price {
  font-size: 16px;
  font-weight: 600;
  color: var(--wt-blue);
  line-height: 1;
  white-space: nowrap;
}
body.nieuwe-header-actief .wt-cart-icon-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.nieuwe-header-actief .wt-cart-svg {
  width: 24px;
  height: 24px;
  color: var(--wt-blue);
}
body.nieuwe-header-actief .wt-cart-count {
  position: absolute;
  top: -8px;
  right: -10px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: var(--wt-green);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  border-radius: 9999px;
  pointer-events: none;
  box-sizing: border-box;
}
/* Count is altijd zichtbaar, ook bij 0 — modifier wordt nog wel gerenderd
   in HTML maar verbergt het badge niet meer. */
body.nieuwe-header-actief .wt-cart-count--empty {
  /* display: none; — uitgezet, count altijd zichtbaar */
}

/* Mobiel: alleen icoon + badge tonen, prijs verbergen om ruimte te besparen */
@media (max-width: 1023px) {
  body.nieuwe-header-actief .wt-cart-price {
    display: none;
  }
  body.nieuwe-header-actief .wt-cart-btn {
    padding: 8px;
  }
}

/* ---------- 6. MEGA-MENU DESKTOP ---------- */
body.nieuwe-header-actief .mm-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.2);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  opacity: 0; pointer-events: none;
  transition: opacity 200ms ease;
  z-index: 40;
}
body.mm-desktop-active .mm-backdrop { opacity: 1; pointer-events: auto; }

body.nieuwe-header-actief .mm-desktop {
  position: absolute;
  top: 100%;
  left: var(--wrapper-padding);
  right: var(--wrapper-padding);
  background: #fff;
  border-top: 1px solid #e5e7eb;
  box-shadow: 0 12px 24px -8px rgba(0,0,0,0.15);
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  overflow: hidden;
  opacity: 0; visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 180ms ease, transform 200ms ease, visibility 200ms;
  z-index: 50;
}
body.mm-desktop-active .mm-desktop { opacity: 1; visibility: visible; transform: translateY(0); }

body.nieuwe-header-actief .mm-desktop__inner { display: flex; max-height: var(--mm-panel-max-h); position: relative; }
body.nieuwe-header-actief .mm-desktop__inner::after {
  content: ''; position: absolute;
  left: var(--mm-tabs-width); right: 0; bottom: 0;
  height: 56px;
  background: linear-gradient(to top, #fff 30%, rgba(255,255,255,0));
  pointer-events: none; z-index: 3;
  border-bottom-right-radius: 8px;
  opacity: 0; transition: opacity 180ms ease;
}
body.nieuwe-header-actief .mm-desktop__inner.has-scroll-down::after { opacity: 1; }

body.nieuwe-header-actief .mm-desktop__tabs {
  background: #ffffff;
  border-right: 1px solid #e5e7eb;
  padding: 0;
  overflow-y: auto;
  flex: 0 0 var(--mm-tabs-width);
  min-height: 0;
}
body.nieuwe-header-actief .mm-desktop__tab {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 12px 20px;
  background: transparent; border: 0; border-left: 3px solid transparent;
  color: var(--wt-blue);
  font-family: inherit; font-weight: 500; font-size: 16px;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  text-transform: none; letter-spacing: normal;
  box-shadow: none; border-radius: 0;
  transition: background 120ms, border-color 120ms;
}
body.nieuwe-header-actief .mm-desktop__tab:hover { background: #fff; color: var(--wt-blue); }
body.nieuwe-header-actief .mm-desktop__tab[aria-selected="true"] {
  background: #fff;
  border-left-color: var(--wt-blue);
  font-weight: 600;
}
body.nieuwe-header-actief .mm-desktop__tab svg { color: #9ca3af; flex-shrink: 0; }

body.nieuwe-header-actief .mm-desktop__content {
  padding: 24px 28px;
  overflow-y: auto;
  flex: 1 1 0;
  min-height: 0;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
body.nieuwe-header-actief .mm-desktop__content::-webkit-scrollbar { width: 10px; }
body.nieuwe-header-actief .mm-desktop__content::-webkit-scrollbar-track { background: transparent; }
body.nieuwe-header-actief .mm-desktop__content::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 5px; border: 2px solid #fff; }
body.nieuwe-header-actief .mm-desktop__content::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

body.nieuwe-header-actief .mm-desktop__head {
  display: flex; align-items: baseline; gap: 16px;
  margin-bottom: 18px; padding-bottom: 14px;
  border-bottom: 1px solid #f7f8fa;
}
body.nieuwe-header-actief .mm-desktop__head-title { font-size: 20px; font-weight: 700; color: var(--wt-blue); margin: 0; }

body.nieuwe-header-actief .mm-view-all {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--wt-green); font-size: 14px; font-weight: 500;
  text-decoration: none;
}
body.nieuwe-header-actief .mm-view-all:hover { color: var(--wt-green-hover); text-decoration: underline; }

body.nieuwe-header-actief .mm-desktop__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 24px;
}
@media (max-width: 1200px) {
  body.nieuwe-header-actief .mm-desktop__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

body.nieuwe-header-actief .mm-sub__title { display: block; color: var(--wt-blue); font-weight: 600; font-size: 15px; text-decoration: none; margin-bottom: 8px; }
body.nieuwe-header-actief .mm-sub__title:hover { text-decoration: underline; }
body.nieuwe-header-actief .mm-sub__items { list-style: none; margin: 0; padding: 0; }
body.nieuwe-header-actief .mm-sub__items li { margin: 0; padding: 0; }
body.nieuwe-header-actief .mm-sub__item { display: block; color: #374151; font-size: 14px; line-height: 1.6; text-decoration: none; padding: 1px 0; }
body.nieuwe-header-actief .mm-sub__item:hover { color: var(--wt-blue); text-decoration: underline; }
body.nieuwe-header-actief .mm-sub__view-all { display: inline-flex; align-items: center; gap: 4px; color: var(--wt-green); font-size: 14px; font-weight: 500; text-decoration: none; margin-top: 6px; }
body.nieuwe-header-actief .mm-sub__view-all:hover { color: var(--wt-green-hover); text-decoration: underline; }
body.nieuwe-header-actief .mm-sub__item.mm-sub__item--accent { color: var(--wt-green); font-weight: 500; }
body.nieuwe-header-actief .mm-sub__item.mm-sub__item--accent:hover { color: var(--wt-green-hover); }

/* ---------- 7. MEGA-MENU MOBIEL ---------- */
body.nieuwe-header-actief .mm-mobile {
  position: fixed; inset: 0;
  z-index: 99999;  /* bovenop alles, inclusief Shoptimizer's filter-knop + chat-widgets */
  visibility: hidden;
  /* Dynamic viewport height — past zich aan iOS Safari's veranderende UI */
  height: 100vh;
  height: 100dvh;
}
@media (min-width: 1024px) { body.nieuwe-header-actief .mm-mobile { display: none; } }
body.nieuwe-header-actief .mm-mobile.is-open { visibility: visible; }

body.nieuwe-header-actief .mm-mobile__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.5); opacity: 0; transition: opacity 200ms ease; }
body.nieuwe-header-actief .mm-mobile.is-open .mm-mobile__backdrop { opacity: 1; }

body.nieuwe-header-actief .mm-mobile__drawer {
  position: absolute; inset: 0;
  width: 100%; max-width: none;
  background: #fff; box-shadow: 0 0 24px rgba(0,0,0,0.2);
  transform: translateX(-100%);
  transition: transform 280ms cubic-bezier(0.32, 0.72, 0, 1);
  display: flex; flex-direction: column;
  /* TOP: padding-top safe-area maakt witte strook bovenaan, iOS frosted
     glass UI tinten daar wit. Coolblue-style.
     BOTTOM: geen padding — content extends tot scherm-onderrand, iOS
     frosted glass toont content erachter. Consistent met cart drawer. */
  padding-top: env(safe-area-inset-top);
}
body.nieuwe-header-actief .mm-mobile.is-open .mm-mobile__drawer { transform: translateX(0); }

body.nieuwe-header-actief .mm-mobile__stage { flex: 1; position: relative; overflow: hidden; }
body.nieuwe-header-actief .mm-mobile__panel {
  position: absolute; inset: 0; background: #fff;
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform 280ms cubic-bezier(0.32, 0.72, 0, 1);
}
body.nieuwe-header-actief .mm-mobile__panel[data-state="active"]   { transform: translateX(0); }
body.nieuwe-header-actief .mm-mobile__panel[data-state="previous"] { transform: translateX(-30%); }

body.nieuwe-header-actief .mm-mobile__header {
  display: flex; align-items: center; gap: 8px;
  height: 56px; padding: 0 16px;
  background: var(--wt-blue);
  border-bottom: 0;
  flex-shrink: 0;
}
body.nieuwe-header-actief .mm-mobile__back,
body.nieuwe-header-actief .mm-mobile__close {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border: 0; background: transparent;
  cursor: pointer; border-radius: 6px;
  padding: 0; box-shadow: none;
  font-family: inherit;
  color: #fff;
  transition: background 120ms;
}
body.nieuwe-header-actief .mm-mobile__back:hover,
body.nieuwe-header-actief .mm-mobile__back:active,
body.nieuwe-header-actief .mm-mobile__close:hover,
body.nieuwe-header-actief .mm-mobile__close:active { background: rgba(255, 255, 255, 0.15); }

/* Kruis-icoontje rechts uitlijnen — visueel op één lijn met de chevrons rechts
   van de rows eronder (allebei 16px van de rechterrand). De negatieve
   margin-right schuift de hele knop 8px naar rechts, zodat én de icoon op
   16px van rechts staat én de hover-achtergrond keurig centraal om de X. */
body.nieuwe-header-actief .mm-mobile__close { margin-right: -8px; }
body.nieuwe-header-actief .mm-mobile__title {
  flex: 1;
  font-size: 17px; font-weight: 600; color: #fff;
  margin: 0; line-height: 1.3;
  font-family: inherit; text-transform: none; letter-spacing: normal;
}
body.nieuwe-header-actief .mm-mobile__body { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; }

body.nieuwe-header-actief .mm-mobile__list { list-style: none; margin: 0; padding: 0; }
body.nieuwe-header-actief .mm-mobile__list li { margin: 0; padding: 0; }
body.nieuwe-header-actief .mm-mobile__row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  color: var(--wt-blue); text-decoration: none;
  border: 0; border-bottom: 1px solid #f7f8fa;
  font-size: 16px;
  font-family: inherit; font-weight: 500;
  background: transparent;
  width: 100%; text-align: left;
  cursor: pointer;
  text-transform: none; letter-spacing: normal;
  box-shadow: none; border-radius: 0;
}
body.nieuwe-header-actief .mm-mobile__row:hover,
body.nieuwe-header-actief .mm-mobile__row:active { background: #ffffff; color: var(--wt-blue); }
body.nieuwe-header-actief .mm-mobile__row svg { color: #9ca3af; flex-shrink: 0; }
body.nieuwe-header-actief .mm-mobile__row.mm-mobile__row--accent { color: var(--wt-green); font-weight: 500; }
body.nieuwe-header-actief .mm-mobile__row.mm-mobile__row--accent svg { color: var(--wt-green); }
/* Subs + super-subs houden de default weight 500 (was 400). */

body.nieuwe-header-actief .mm-mobile__view-all-wrap {
  padding: 16px;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}
body.nieuwe-header-actief .mm-mobile__view-all {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--wt-green); border-radius: 8px;
  color: var(--wt-green); font-size: 15px; font-weight: 500;
  font-family: inherit;
  text-decoration: none;
  transition: background 120ms;
}
body.nieuwe-header-actief .mm-mobile__view-all:hover { background: #f0fdf4; color: var(--wt-green); }

body.nieuwe-header-actief .mm-mobile__section-title {
  padding: 14px 16px;
  font-size: 14px; font-weight: 600;
  color: #374151;
  background: #ffffff;
  border-top: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
}
body.nieuwe-header-actief .mm-mobile__services .mm-mobile__row {
  color: #4b5563;
  font-weight: 400;
  font-size: 15px;
  padding: 12px 16px;
}
body.nieuwe-header-actief .mm-mobile__services .mm-mobile__row svg { width: 18px; height: 18px; }
body.nieuwe-header-actief .mm-mobile__services .mm-mobile__row > svg:last-child { display: none; }

/* Drill-down items op alle niveaus (level 1 hoofdcats + level 2 subs + level 3 super-subs):
   zelfde tab-patroon als de desktop tabs — transparante linker-border standaard
   (zodat de breedte niet schuift bij hover), en bij hover/focus/active een
   lichte grijze achtergrond + blauwe linker-border. Services krijgen deze
   styling NIET (zitten genest onder .mm-mobile__services).

   padding-left: 13px compenseert de 3px border-left, zodat de tekst op exact
   16px van de linkerrand begint — gelijk uitgelijnd met de "Menu" header en
   de "Ga snel naar" sectie-titel. */
body.nieuwe-header-actief .mm-mobile__body > .mm-mobile__list .mm-mobile__row {
  border-left: 3px solid transparent;
  padding-left: 13px;
  transition: background 120ms, border-color 120ms;
}
body.nieuwe-header-actief .mm-mobile__body > .mm-mobile__list .mm-mobile__row:hover,
body.nieuwe-header-actief .mm-mobile__body > .mm-mobile__list .mm-mobile__row:focus,
body.nieuwe-header-actief .mm-mobile__body > .mm-mobile__list .mm-mobile__row:active {
  background: #ffffff;
  border-left-color: var(--wt-blue);
}

/* Alle drill-down items op 17px voor consistente leesbaarheid op mobiel
   (geldt voor level 1 hoofdcats én level 2/3 subs/super-subs). */
body.nieuwe-header-actief .mm-mobile__body > .mm-mobile__list .mm-mobile__row {
  font-size: 17px;
}

/* Zakelijke klant CTA — prominent groene knop onderaan het mobiele menu */
body.nieuwe-header-actief .mm-mobile__zakelijk-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 20px 16px;
  padding: 14px 20px;
  background: var(--wt-green);
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  border-radius: 8px;
  transition: background 120ms;
}
body.nieuwe-header-actief .mm-mobile__zakelijk-cta:hover,
body.nieuwe-header-actief .mm-mobile__zakelijk-cta:active {
  background: var(--wt-green-hover);
  color: #fff;
  text-decoration: none;
}
body.nieuwe-header-actief .mm-mobile__zakelijk-cta svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Body scroll-lock */
body.mm-locked { overflow: hidden; }

/* Verberg oude shoptimizer-nav onder nieuwe header */
body.nieuwe-header-actief > #page > .col-full-nav { display: none; }

/* ============================================================
 * 8. CART DRAWER POLISH
 * Shoptimizer's drawer-logica (qty updates, voucher, fragments,
 * click-handler) blijft volledig intact. We restylen alleen de
 * "chrome" zodat hij visueel consistent is met onze mobile menu:
 *  - Blauwe header-balk + witte titel + witte X
 *  - Full-width op mobiel (was 420px vast)
 *  - iOS safe-area top/bottom + 100dvh
 * ============================================================ */

/* ===== iOS 26 SAFE-AREA WORKAROUND =====
   Op iOS 26 is er een bekende WebKit-bug waardoor fixed-positioned
   drawers (zoals Shoptimizer's cart) niet altijd tot de safe-area
   zones reiken — homepage erachter wordt zichtbaar door iOS' frosted-
   glass UI. Apple heeft fix toegezegd voor iOS 26.2.
   Workaround: zet body-bg naar wit wanneer ANY drawer open is, zodat
   iOS' translucent UI altijd wit ziet (consistent met Coolblue's
   "top is wit"-pattern). Geldt voor menu, recent én cart voor
   consistentie en future-proof gedrag.
   Refs:
   - https://github.com/mui/material-ui/issues/46953
   - https://benfrain.com/ios26-safari-theme-color-tab-tinting-with-fixed-position-elements/
*/
body.nieuwe-header-actief.mm-locked,
body.nieuwe-header-actief.wt-recent-open,
body.nieuwe-header-actief.filter-open {
  background: #fff;
  /* Scroll-lock: voorkomt dat page-content achter een open drawer/flyout
     meebeweegt bij scrollen. */
  overflow: hidden;
}

/* Cart wrap: simpele full-viewport positioning.
   - padding-top: env safe-area = witte strook bovenaan (iOS)
   - padding-bottom: env safe-area = content blijft boven iOS Safari's
     bottom UI zichtbaar (betaalmethode-iconen, knoppen, etc.) */
  

/* Verkleinen Shoptimizer's 50px margin-top op de widget-container.
   Die 50px was bedoeld voor ruimte onder de oude absolute-positioned
   heading. Onze heading is nu static (in document flow) — 16px is een
   nette adempauze tussen header en progress bar zonder overbodig gat. */
   

/* Full-width op mobiel */
   

/* Header-balk: blauw met witte tekst, zelfde patroon als mobile menu.
   Position static (override Shoptimizer's absolute) zodat de balk
   100% breed wordt en de cart-widget eronder netjes meeschuift. */
    

/* X-knop: wit, 40x40 met margin-right -8 patroon (zoals onze menu),
   hover semi-transparant wit zoals onze menu close.
   `top` met safe-area zodat de knop binnen het BLAUWE header-vlak valt,
   niet in de iOS safe-area zone erboven (waar 'ie als witte X op witte
   wrap-padding niet meer goed contrasteert). */
    
    
     

/* ============================================================
 * 9. RECENT BEKEKEN FLYOUT
 * Rechts inschuivende drawer, zelfde design language als mobile menu
 * + cart drawer (blauwe header, witte X, iOS safe-area, 100dvh).
 * Vervangt de "Kluslijst" feature in de desktop header.
 * ============================================================ */
body.nieuwe-header-actief .wt-recent {
  position: fixed;
  inset: 0;
  z-index: 99998;
  visibility: hidden;
  pointer-events: none;
}
body.nieuwe-header-actief .wt-recent.is-open {
  visibility: visible;
  pointer-events: auto;
}
body.nieuwe-header-actief .wt-recent__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 200ms ease;
}
body.nieuwe-header-actief .wt-recent.is-open .wt-recent__backdrop { opacity: 1; }

body.nieuwe-header-actief .wt-recent__drawer {
  position: absolute;
  top: 0;
  right: 0;
  width: 420px;
  max-width: 100%;
  height: 100vh;
  height: 100dvh;
  background: #fff;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.2);
  transform: translateX(100%);
  transition: transform 280ms cubic-bezier(0.32, 0.72, 0, 1);
  display: flex;
  flex-direction: column;
  /* TOP padding-safe-area = witte strook (iOS frosted glass = wit).
     BOTTOM geen padding — content extends, iOS toont content er-
     achter. Coolblue-style, consistent met menu + cart. */
  padding-top: env(safe-area-inset-top);
}
body.nieuwe-header-actief .wt-recent.is-open .wt-recent__drawer { transform: translateX(0); }

/* Full-width op mobiel */
@media (max-width: 767px) {
  body.nieuwe-header-actief .wt-recent__drawer { width: 100%; }
}

/* Header-balk: zelfde patroon als mobile menu + cart drawer */
body.nieuwe-header-actief .wt-recent__header {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 56px;
  padding: 0 16px;
  background: var(--wt-blue);
  flex-shrink: 0;
}
body.nieuwe-header-actief .wt-recent__title {
  flex: 1;
  font-size: 17px;
  font-weight: 600;
  color: #fff;
  margin: 0;
  line-height: 1.3;
  font-family: inherit;
  text-transform: none;
  letter-spacing: normal;
}
body.nieuwe-header-actief .wt-recent__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 6px;
  padding: 0;
  box-shadow: none;
  font-family: inherit;
  color: #fff;
  margin-right: -8px;
  transition: background 120ms;
}
body.nieuwe-header-actief .wt-recent__close:hover,
body.nieuwe-header-actief .wt-recent__close:active { background: rgba(255, 255, 255, 0.15); }

body.nieuwe-header-actief .wt-recent__body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
}

/* Empty state + loading */
body.nieuwe-header-actief .wt-recent__loading,
body.nieuwe-header-actief .wt-recent__empty {
  text-align: center;
  padding: 40px 24px;
  color: #6b7280;
  font-size: 15px;
  line-height: 1.5;
}
body.nieuwe-header-actief .wt-recent__empty p { margin: 0 0 8px; }
body.nieuwe-header-actief .wt-recent__empty p:last-child { margin-bottom: 0; }

/* Product-lijst */
body.nieuwe-header-actief .wt-recent__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
body.nieuwe-header-actief .wt-recent__item { margin: 0; padding: 0; }
body.nieuwe-header-actief .wt-recent__link {
  display: flex;
  gap: 12px;
  padding: 12px 4px;
  border-bottom: 1px solid #f7f8fa;
  color: inherit;
  text-decoration: none;
  transition: background 120ms;
}
body.nieuwe-header-actief .wt-recent__link:hover { background: #ffffff; }
body.nieuwe-header-actief .wt-recent__item:last-child .wt-recent__link { border-bottom: 0; }

body.nieuwe-header-actief .wt-recent__img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  flex-shrink: 0;
  background: #ffffff;
  border-radius: 4px;
}
body.nieuwe-header-actief .wt-recent__img--placeholder {
  background: #f7f8fa;
}

body.nieuwe-header-actief .wt-recent__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
body.nieuwe-header-actief .wt-recent__name {
  font-size: 14px;
  font-weight: 400;
  color: #2c2d33;  /* zelfde donkergrijs als Shoptimizer's mini-cart productnamen */
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.nieuwe-header-actief .wt-recent__price {
  font-size: 14px;
  font-weight: 700;
  color: #d12e37;
}
body.nieuwe-header-actief .wt-recent__price del { color: #9ca3af; font-weight: 400; font-size: 12px; margin-right: 4px; }
body.nieuwe-header-actief .wt-recent__stock {
  font-size: 12px;
  color: #9ca3af;
  font-style: italic;
}


/* Hier stonden twee reparaties op Shoptimizers winkelwagen-flyout: de "80px sliver"-bug en
   het doorlopen tot in de iOS safe-area. Verwijderd 27-08-2026. Die flyout bestaat niet meer;
   hij hing aan body.drawer-open, een klasse die Shoptimizers JavaScript zette. Geteld over 32
   live pagina's: nul keer aanwezig, en geen enkel eigen script zet hem. Onze eigen laden
   (mm-open, wt-recent-open, filter-open) regelen dit zelf. */


/* ============================================================
   Overgenomen uit de opgevangen Kirki-laag, 27-08-2026
   ============================================================
   Van de 106 regels in `basislaag-kirki.css` deden er nog zeven echt werk. Twee daarvan horen
   hier thuis. De rest was opmaak voor een thema en plugins die er niet meer zijn. Gemeten op
   tien paginatypes, op 1280px en op 375px. */

/* De achtergrond van de kop. Zonder deze regel wordt de kopbalk doorzichtig: geen enkel ander
   stijlblad zet hier een achtergrond. */
.site-header {
	background-color: #eef2f9;
}

/* De winkelwagenknop rechtsboven. Zonder deze regel valt hij terug op de geerfde 15px/400 en
   wordt hij lichter en kleiner dan de rest van de kop. */
.wt-header-cart__knop .cart-contents {
	font-size: 16px;
	font-weight: 700;
}


/* ==================== /css/global.css ==================== */
/* ============================================================
 * Weltechniek — GLOBAL CSS
 *
 * Site-brede, thema-onafhankelijke presentatielaag. Hierin hoort
 * alles wat OVERAL geldt en nergens specifiek thuishoort:
 *  - Design tokens (merkkleuren + status) — canonieke bron, brug
 *    naar theme.json bij de latere block-theme-migratie.
 *  - WC-meldingen (notices) in block-banner-stijl.
 *  - Checkboxen in huisstijl (native, site-breed).
 *
 * Geenqueued via wt_global_css() in functions.php met filemtime()
 * -> automatische cache-busting, geen handmatige versie-bump.
 *
 * NB: header.css definieert (voorlopig) dezelfde merk-tokens nog in
 * z'n eigen :root. Bewust gedupliceerd tijdens de overgang; bij de
 * opruim-/migratieronde verdwijnt de kopie daar en wordt dit de enige
 * bron. Identieke waarden -> geen conflict in de tussentijd.
 * ============================================================ */

:root {
	/* ---- Merk ---- */
	--wt-blue:        #1e3a6d;  /* navy - primair */
	--wt-blue-soft:   #eef2f9;
	--wt-green:       #00bb00;
	--wt-green-hover: #008d00;

	/* De gewone tekstkleur. Bestond nog niet, terwijl `plp.css` er op twee plekken al naar
	   verwees: de filterlinks in de zijbalk en het SEO-tekstblok onder een categorie. Een
	   var() naar een token dat niet bestaat geeft geen foutmelding, de eigenschap valt stil
	   terug op overerven. Dat viel niet op omdat de geërfde kleur toevallig dezelfde zwarte
	   is. Nu bestaat het token, en gebruiken de drie plekken hieronder in dit bestand hem
	   ook, zodat de tekstkleur van de site op één plek staat. */
	--wt-text:        #000;

	/* ---- UI: vlakken, randen, radius ----
	 * Verhuisd uit plp.css (2026-08-03). Daar stonden ze onder `body.wt-plp-preview`, dus ALLEEN op de
	 * categoriepagina. Zodra de productkaart ook buiten de shop gebruikt werd (homepage-secties), waren
	 * deze variabelen daar niet gedefinieerd en viel bv. de prijskleur terug op zwart. Hier horen ze:
	 * global.css is de canonieke tokenbron. */
	--wt-muted:        #8a97a8;  /* labels, tellingen, secundair */
	/* Eén stap donkerder dan --wt-muted, voor gedempte tekst die wél gelezen moet worden.
	 * #8a97a8 haalt op wit maar 2,97:1 en zakt daarmee onder de WCAG AA-norm van 4,5:1;
	 * #66748a haalt 4,74:1. Gebruik deze zodra gedempte tekst inhoud draagt (merknaam op de
	 * productkaart), en --wt-muted voor puur bijkomstige tekst (aantallen achter een filter). */
	--wt-muted-strong: #64748b;
	/* Nóg lichter dan --wt-muted, bewust onder de contrastnorm (2,25:1). Alleen voor tekst die
	 * duidelijk ondergeschikt MAG ogen naast iets ernaast, zoals het artikelnummer naast de merknaam
	 * op de productkaart. Nooit gebruiken voor tekst die op zichzelf staat. */
	--wt-muted-soft:   #a3aebd;
	--wt-border:       #e1eaf2;
	--wt-border-strong:#d3dfec;
	--wt-border-input: #c5d2e2;
	--wt-bg:           #f7f8fa;
	--wt-tint:         #eef2f9;
	--wt-error:        #d12d2d;  /* afgeprijsde prijzen */
	--wt-amber:        #f5a623;  /* accentvlak / reviewsterren - NIET voor tekst (2,03:1 op wit) */
	--wt-amber-text:   #b45309;  /* leesbare amber: levertijd bij nabestelling (5,02:1 op wit) */
	--wt-radius-sm:    6px;
	--wt-radius:       8px;
	--wt-radius-lg:    10px;

	/* ---- Status (notices) ---- */
	--wt-notice-text:         #1e2733;
	--wt-notice-error-bg:     #fdecec;
	--wt-notice-error-border: #e0413d;
	--wt-notice-ok-bg:        #edf7ee;
	--wt-notice-ok-border:    #2e9a44;
	--wt-notice-info-bg:      #eef2f9;
	--wt-notice-info-border:  var(--wt-blue);
}

/* ============================================================
 * WC-meldingen (notices) - block-banner-stijl
 * (lichte bg, gekleurde rand, icoon links, donkere tekst) i.p.v. de
 * classic massieve stijl. Geldt voor fout/succes/info op alle pagina's
 * (checkout, winkelwagen, account, shop...). Knoppen (.button) ongemoeid.
 * ============================================================ */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	list-style: none;
	/* !important: WC-core + Shoptimizer zetten hun eigen notice-stijl (massief
	   gekleurde bg, witte tekst, radius) op dezelfde selector, later geladen ->
	   anders winnen die. */
	margin: 0 0 16px !important;
	padding: 14px 18px 14px 52px !important;
	border: 1px solid !important;
	border-radius: 8px !important;
	color: var(--wt-notice-text) !important;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	background-repeat: no-repeat !important;
	background-position: 18px center !important;
	background-size: 22px 22px !important;
	box-shadow: none !important;
	text-shadow: none !important;
}
.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before {
	content: none !important;
}
.woocommerce-error {
	background-color: var(--wt-notice-error-bg) !important;
	border-color: var(--wt-notice-error-border) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='%23dc2626'/%3E%3Cpath d='M11 7h2v6h-2zm0 8h2v2h-2z' fill='%23fff'/%3E%3C/svg%3E") !important;
}
.woocommerce-message {
	background-color: var(--wt-notice-ok-bg) !important;
	border-color: var(--wt-notice-ok-border) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='%2300871f'/%3E%3Cpath d='M7.5 12.5l3 3 6-6' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}
.woocommerce-info {
	background-color: var(--wt-notice-info-bg) !important;
	border-color: var(--wt-notice-info-border) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='%231e3a6d'/%3E%3Cpath d='M11 10h2v7h-2zm0-3h2v2h-2z' fill='%23fff'/%3E%3C/svg%3E") !important;
}
.woocommerce-error a:not(.button),
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
}

/* ============================================================
 * Checkboxen in huisstijl - site-breed
 * Native checkboxen (cookie-banner, formulieren, plugins...) navy
 * aangevinkt i.p.v. browser-default. `accent-color` raakt alleen native
 * gerenderde checkboxen; WC-block-checkboxen (appearance:none, op
 * checkout/winkelwagen) houden hun styling in block-checkout.css.
 * ============================================================ */
input[type="checkbox"] {
	accent-color: var(--wt-blue);
}

/* ============================================================
 * PAGINACONTAINER — één goot voor header, content en footer
 * ============================================================
 * De site had drie eigen containers naast elkaar. Ze deelden wel dezelfde
 * inhoudsbreedte (1301px), maar niet de goot ernaast:
 *
 *   header  .wrapper           1301px + --wrapper-padding (16 / 24 / 32px)
 *   content .col-full          1301px + 2.61792em (41,9px) vanaf 993px
 *   footer  .wt-footer__inner  1301px + 16px
 *
 * Gevolg: de linkerlijn viel alleen samen bóven ~1350px, waar alle max-widths
 * klemmen. Daaronder liep het uiteen tot 26px verschil — het duidelijkst rond
 * 1000–1200px, waar de content zichtbaar smaller stond dan header en footer.
 *
 * Norm = de footer (keuze Tijn 2026-08-01): inhoud max 1301px, goot 16px.
 * De header leest zijn goot uit --wrapper-padding, dus die zetten we hier vast
 * in plaats van de regel zelf te overschrijven.
 *
 * `body`-prefix geeft net genoeg specificiteit om Shoptimizers eigen
 * .col-full-regels te verslaan zonder !important. Varianten die bewust
 * padding 0 hebben (.top-bar .col-full, canvas-templates) zijn specifieker
 * en blijven dus gewoon werken.
 */
:root {
	--wt-container-max:    1301px;
	--wt-container-gutter: 16px;
}

/* Header: goot gelijktrekken op elke breedte (was 1rem/1.5rem/2rem). */
body.nieuwe-header-actief {
	--wrapper-padding: var(--wt-container-gutter);
}

/* Content + footer: identieke container.
 * De productpagina heeft twee éigen wrappers met een eigen goot (.product-details-wrapper 41,9px,
 * de breadcrumb 40,3px) omdat Shoptimizer daar de padding van .col-full op 0 zet. Die doen mee,
 * anders staat de PDP als enige weer 26px naar binnen. */
body .col-full,
body .wt-footer__inner,
body .product-details-wrapper,
body .wt-pdp,
body.single-product .archive-header .woocommerce-breadcrumb {
	box-sizing:   border-box;
	max-width:    calc(var(--wt-container-max) + 2 * var(--wt-container-gutter));
	padding-left:  var(--wt-container-gutter);
	padding-right: var(--wt-container-gutter);
	margin-left:  auto;
	margin-right: auto;
}

/* ============================================================================
 * LEVERTIJDREGEL (gedeeld: productkaart, koopblok PDP, sticky balk)
 * ============================================================================
 * Bijbehorende PHP: inc/levertijd.php (`wt_levertijd_html()`). Bewust hier en niet in
 * product-card.css of pdp.css: de regel moet op elke plek woordelijk én visueel gelijk zijn.
 * Wie hem op één plek anders maakt, maakt de belofte ongeloofwaardig.
 *
 * Nabestelling is amber en niet groen: het duurt aantoonbaar langer dan voorraad, en dat mag de
 * bezoeker zien vóór hij bestelt in plaats van erna. `--wt-amber-text` (#b45309) en niet
 * `--wt-amber` (#f5a623): die laatste haalt op wit maar 2,03:1 en is onleesbaar als tekst.
 * ============================================================================ */
.wt-levertijd {
	margin: 8px 0 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
}
/* Nabestelling is GROEN, gelijk aan op voorraad. Het PDP-ontwerp stelde amber voor omdat het langer
 * duurt, maar dit is de regel die op elke categoriepagina staat en die is niet in dit traject
 * gewijzigd. Wil je hem alsnog onderscheiden, dan is dat één regel — maar als besluit, niet als
 * bijvangst. */
.wt-levertijd--op  { color: var(--wt-green-hover); }
.wt-levertijd--na  { color: var(--wt-green-hover); }
.wt-levertijd--uit { color: var(--wt-muted); }

/* In het koopblok op de productpagina staat de regel op zichzelf en mag hij een punt groter. */
.wt-levertijd--pdp { font-size: 13.5px; margin: 14px 0; }

/* Uitverkochte kaart is als geheel gedempt; de levertijdregel mag daar niet uit springen. */
li.wt-card--soldout .wt-levertijd { color: var(--wt-muted); }

/* ============================================================================
 * BREADCRUMB (overal identiek)
 * ============================================================================
 * Stond tot 14-08-2026 gescoped op `body.wt-plp` in plp.css en gold dus alleen op de
 * categoriepagina. De productpagina hield daardoor Shoptimizers eigen kruimels (13,5px, #666,
 * 16px padding boven én onder), waardoor twee pagina's naast elkaar niet dezelfde site leken.
 *
 * Bewust ontscoped: overal waar WooCommerce of het thema een breadcrumb rendert, hoort hij er
 * hetzelfde uit te zien. De onderlijn scheidt de kruimels van de pagina-inhoud en loopt mee met
 * de contentcontainer, net als de scheidingslijnen bij SEO-tekst, FAQ en kennisbank.
 *
 * `body` ervoor is nodig, geen sierletter: Shoptimizer gebruikt in main.css exact dezelfde selector
 * `.woocommerce-breadcrumb` en laadt ná ons. Bij gelijke specificiteit wint de laatste, dus zonder
 * die extra `body` bleef de kruimel 13,5px en #666.
 * ============================================================================ */
/* De lijn hoort NIET op de breadcrumb zelf: die staat binnen de contentcontainer (max 1301px) en
 * dan stopt de streep halverwege het scherm. Hij staat daarom op `.archive-header`, de wrapper die
 * wél de volle breedte pakt. `:has()` erbij zodat een archive-header zonder kruimels geen losse
 * streep krijgt. Gecontroleerd: die wrapper zit om de breadcrumb op categorie-, product-, merk- én
 * blogpagina's. */
body .archive-header:has(.woocommerce-breadcrumb) {
	border-bottom: 1px solid var(--wt-border);
	/* Lucht ónder de lijn. Zonder deze marge plakt de paginatitel tegen de streep: de breadcrumb
	 * geeft zijn ruimte namelijk aan de lijn (padding-bottom), niet aan wat erna komt. 28px is
	 * dezelfde orde als de 32px die SEO-tekst, FAQ en kennisbank na hún scheidingslijn krijgen,
	 * iets krapper omdat een kruimelpad lichter weegt dan een sectie. */
	margin-bottom: 28px;
}
/* Horizontaal schuifbaar, want een kruimelpad is op een telefoon vrijwel altijd breder dan het
 * scherm: op 418px is "Home | Luchtbehandeling | Mechanische ventilatiebox | Vent-Axia
 * ventilatiebox | <productnaam>" 945px lang in 386px ruimte. Zonder dit werd de laatste kruimel
 * halverwege afgekapt en leek het pad niet uit te lijnen met de rest van de pagina.
 *
 * De scrollbalk staat uit: een dun grijs streepje onder een kruimelpad leest als een storing, en de
 * afgesneden tekst aan de rand laat zelf al zien dat er meer is. `overscroll-behavior-x: contain`
 * voorkomt dat een veeg over het pad de hele pagina meesleept.
 *
 * `padding-right` even groot als de goot van de container: zonder dat plakt de laatste kruimel
 * tegen de schermrand zodra je helemaal doorschuift. */
body .woocommerce-breadcrumb {
	margin: 20px 0 0;
	padding: 0 var(--wt-container-gutter, 16px) 14px 0;
	font-size: 12.5px;
	color: var(--wt-muted);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	white-space: nowrap;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
body .woocommerce-breadcrumb::-webkit-scrollbar { display: none; }
/* WooCommerce wikkelt de kruimels soms in een <p>; die eigen marge stapelde op de onze. */
body .woocommerce-breadcrumb p { margin: 0; }
body .woocommerce-breadcrumb a { color: var(--wt-muted); text-decoration: none; }
body .woocommerce-breadcrumb a:hover { color: var(--wt-blue); }
body .woocommerce-breadcrumb .separator { color: var(--wt-border-input); }
/* Huidige pagina donker en vet: dat is waar je bent, de rest is waar je vandaan komt. */
body .woocommerce-breadcrumb .last { color: var(--wt-blue); font-weight: 700; }


/* ============================================================================
 * STERREN (gedeeld: productpagina en productkaart)
 * ============================================================================
 * Eén rij van vijf sterren, met een gele laag eroverheen die op `--wt-ster` procent wordt
 * afgekapt. Zo geeft 4,6 een vijfde ster die voor 60% vol staat, in plaats van afronden naar
 * boven of beneden.
 *
 * Getekend met een herhalende achtergrond en niet met vijf losse tekens: het teken ★ ziet er in
 * elk lettertype anders uit en lijnt niet betrouwbaar uit. Twee variabelen sturen alles:
 * `--ster-maat` voor de grootte, `--wt-ster` voor hoeveel er gevuld is.
 *
 * **14px is de standaard en overal de enige maat.** Er stonden eerder vijf verschillende maten in
 * drie bestanden (13 op de kaart, 17 en 14 in de kopregel, 15 in de beoordelingslijst, 19 in de
 * samenvatting). Die verschillen zag niemand, maar ze moesten alle vijf onderhouden worden en
 * liepen bij elke aanpassing verder uiteen. Alleen het samenvattingsblok zet nog een eigen maat,
 * omdat de sterren daar naast een cijfer van 44px staan en anders wegvallen. Elders: geen eigen
 * waarde zetten.
 * ========================================================================= */
/* De tegel is 1px smáller dan hoog (`--ster-maat - 1px`), niet 1px breder. De ster in de SVG heeft
 * links en rechts wat lucht binnen zijn viewBox; met een bredere tegel kwam daar nog eens ruimte bij
 * en dreven de vijf sterren uit elkaar. Nu staan ze strak tegen elkaar, en de hele rij is 9px smaller
 * — precies de ruimte die de metaregel op een telefoon nodig had. */
.wt-stars {
	position: relative;
	display: inline-block;
	width: calc((var(--ster-maat, 14px) - 1px) * 5);
	height: var(--ster-maat, 14px);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e1eaf2'%3E%3Cpath d='M12 2 15 9l7 .5-5.5 4.5 1.8 7L12 17l-6.3 4 1.8-7L2 9.5 9 9z'/%3E%3C/svg%3E") repeat-x left center / calc(var(--ster-maat, 14px) - 1px) var(--ster-maat, 14px);
}
.wt-stars::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: var(--wt-ster, 0%);
	overflow: hidden;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f5a623'%3E%3Cpath d='M12 2 15 9l7 .5-5.5 4.5 1.8 7L12 17l-6.3 4 1.8-7L2 9.5 9 9z'/%3E%3C/svg%3E") repeat-x left center / calc(var(--ster-maat, 14px) - 1px) var(--ster-maat, 14px);
}

/* ============================================================================
 * PRODUCTBADGES
 * ============================================================================
 * "ISDE subsidie mogelijk", "Bezorgtoeslag", "Aan 1 stuk geleverd". Staan linksboven op de
 * productfoto, op de productpagina en straks ook op de kaart in het overzicht. Daarom hier en niet
 * in pdp.css: één component, twee plekken.
 *
 * De beheerkant leeft nog in CommerceKit (zie inc/badges.php), maar de vormgeving niet: de plugin
 * zet er lichtblauw op met donkerblauwe tekst, en dat komt in geen enkel ontwerp voor. Groen met
 * wit, zoals de knoppen en de vinkjes, plus een donkere variant voor actiebadges.
 * ========================================================================= */
.wt-badges {
	position: absolute; top: 14px; left: 14px; z-index: 2;
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	max-width: calc(100% - 28px);
}

/* Een badge is een label, geen knop. Daarom een zachte vulling met een rand die op
   diezelfde kleur is afgestemd, en donkere tekst; niet het volle merkgroen, want dat
   is de kleur van de koopknop en die hoort harder te roepen dan een label.
   Alle tekstkleuren zijn doorgerekend op de eigen achtergrond: 5,9:1 tot 9,8:1. */
.wt-badge {
	display: inline-block;
	padding: 5px 11px;
	border: 1px solid var(--badge-rand, #d3dfec);
	border-radius: 20px;
	background: var(--badge-bg, #eef2f9);
	color: var(--badge-tekst, #334155);
	font-size: 11px; font-weight: 700; line-height: 1.2;
}

.wt-badge--groen  { --badge-bg: #e7f6e7; --badge-rand: #b0dfb0; --badge-tekst: #146c14; }
.wt-badge--blauw  { --badge-bg: #e6ecf7; --badge-rand: #bcd6ef; --badge-tekst: #1e3a6d; }
.wt-badge--rood   { --badge-bg: #fdecec; --badge-rand: #f5c3ca; --badge-tekst: #a8202f; }
.wt-badge--amber  { --badge-bg: #fdf3e2; --badge-rand: #f0d8a8; --badge-tekst: #8a4c07; }
.wt-badge--grijs  { --badge-bg: #eef2f9; --badge-rand: #d3dfec; --badge-tekst: #334155; }

/* De aanbiedingsbadge komt automatisch en is altijd rood: dat is de enige badge die
   over de prijs gaat. `--sale` blijft bestaan als eigen naam, zodat de code niet hoeft
   te weten welke kleur eraan hangt. */
.wt-badge--sale   { --badge-bg: #fdecec; --badge-rand: #f5c3ca; --badge-tekst: #a8202f; }

/* Oude naam uit de CommerceKit-tijd; nog aanwezig omdat er badges kunnen zijn die
   'donker' als stijl hebben staan. Wordt getoond als grijs. */
.wt-badge--donker { --badge-bg: #eef2f9; --badge-rand: #d3dfec; --badge-tekst: #334155; }

/* ============================================================================
 * Gratis-verzendbalk (.wt-fsn) — winkelwagen en winkelwagen-flyout
 *
 * Markup in inc/gratis-verzending.php. Staat in global.css en niet in cart.css,
 * omdat de flyout op elke pagina open kan.
 *
 * De maatvoering is een-op-een overgenomen van de CommerceKit-module die dit
 * verving (8px balk, radius 5px, 12px tekst in de flyout en 13px in de
 * winkelwagen), zodat de overstap visueel niets verandert.
 * ========================================================================= */

.wt-fsn {
	width: 100%;
	text-align: center;
}

.wt-fsn--cart { margin: 20px 0 10px; }
.wt-fsn--mini { margin-bottom: 10px; }

/* Het grijze spoor. */
.wt-fsn__balk {
	height: 8px;
	background: #e2e2e2;
	border-radius: 5px;
	margin-bottom: 3px;
}
.wt-fsn--cart .wt-fsn__balk { margin-bottom: 6px; }

/* Het gevulde deel; de breedte komt als inline style uit PHP. */
.wt-fsn__vulling {
	display: block;
	height: 8px;
	background: var(--wt-green, #00bb00);
	border-radius: 5px;
}

/* In de flyout een inline-block met eigen regelhoogte; in de winkelwagen een
   gewone inline-span, precies zoals de module die dit verving. */
.wt-fsn--mini .wt-fsn__tekst {
	display: inline-block;
	font-size: 12px;
	line-height: 1.4;
}
.wt-fsn--cart .wt-fsn__tekst { font-size: 13px; }

/* Het bedrag dat wc_price() teruggeeft, in de merkkleur. */
.wt-fsn__tekst .amount {
	color: var(--wt-green, #00bb00);
	font-weight: 700;
}

.wt-fsn__link {
	margin-left: 5px;
	color: #111;
	font-weight: 700;
	text-decoration: underline;
}

/* Drempel gehaald: vinkje vóór de tekst. Een mask in plaats van een gekleurde
   SVG, zodat het vinkje dezelfde variabele volgt als de balk. */
.wt-fsn--gehaald .wt-fsn__tekst {
	position: relative;
	padding-left: 23px;
}
.wt-fsn--gehaald .wt-fsn__tekst::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	margin-top: -9px;
	display: block;
	width: 18px;
	height: 18px;
	background: var(--wt-green, #00bb00);
	-webkit-mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 12L11 14L15 10M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z' stroke='%234A5568' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 12L11 14L15 10M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z' stroke='%234A5568' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}


/* ============================================================================
 * Lettertype Inter, zelf geladen
 *
 * Tot 23-08-2026 kwam Inter binnen via Kirki, de customizer-laag die in het
 * Shoptimizer-thema is ingebakken. Dat betekende: parent theme weg is lettertype
 * weg. Daarom staan de declaraties nu hier, wijzend naar dezelfde bestanden die
 * al in wp-content/fonts/inter/ staan.
 *
 * Kirki genereerde 42 regels: zeven tekensets (latijn, latijn-uitgebreid,
 * cyrillisch, cyrillisch-uitgebreid, Grieks, Grieks-archaisch en Vietnamees) maal
 * twee gewichten, en dat hele blok drie keer omdat er drie typografie-instellingen
 * op Inter stonden. Hier staan er vier: een Nederlandse installatieshop heeft aan
 * latijn en latijn-uitgebreid genoeg. Het bereik is letterlijk overgenomen, zodat
 * accenten en het euroteken blijven werken.
 *
 * Zolang Shoptimizer nog draait staat Kirki's versie er ook nog; die vervalt bij
 * de themawissel. Dubbele declaraties zijn onschadelijk: de browser kiest per
 * teken de eerste passende en het gaat om dezelfde bestanden.
 *
 * Padden zijn relatief aan het domein (/wp-content/...), niet absoluut met
 * https://weltechniek.nl ervoor zoals Kirki deed. Dat scheelt gedoe op een
 * staging- of testomgeving.
 * ========================================================================= */

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(/wp-content/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(/wp-content/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url(/wp-content/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url(/wp-content/fonts/inter/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ============================================================================
 * Basistypografie
 *
 * Kwam tot 23-08-2026 van Kirki, de customizer-laag in het Shoptimizer-thema.
 *
 * LET OP als je dit ooit opnieuw moet afleiden: Kirki levert TWEE sets die elkaar
 * tegenspreken. De optie `shoptimizer_dynamic_css_output` zegt bij de koppen
 * gewicht 600, het inline blok `kirki-inline-styles` zegt 700, en dat laatste is
 * wat de browser gebruikt. De waarden hieronder komen uit het inline blok. Parent theme weg betekende
 * dus: alle lettergroottes, kleuren en gewichten weg. Nu staat het hier, met de
 * waarden letterlijk overgenomen zodat er niets verschuift.
 *
 * Van de achttien regels die Shoptimizer genereerde zijn er vijf niet
 * overgenomen, omdat ze markup opmaken die wij zelf niet meer renderen. Gemeten
 * op blog, productpagina en categoriepagina: nul treffers.
 *   - `.main-navigation …` en `.menu-primary-menu-container …`  (eigen header)
 *   - `.site .widget .widget-title`                              (geen widgets meer)
 *   - `.content-area ul.products li.product …`                   (eigen .wt-card)
 *   - `.shoptimizer-category-banner …`                           (eigen PLP-kop)
 *
 * Zolang Shoptimizer nog draait staat zijn versie er ook; de waarden zijn gelijk,
 * dus dat maakt visueel niets uit. Bij de themawissel blijft alleen dit over.
 * ========================================================================= */

/* ---- Links ----
 * Stond tot 27-08-2026 in de opgevangen Kirki-laag. Daar hing de hele linkkleur van de site aan,
 * inclusief de kaarten op de homepage en de subcategorie-tegels. */
a { color: var(--wt-green); }
a:hover { color: var(--wt-green-hover); }

/* `option` staat er bewust bij: keuzelijsten erven hun opmaak niet van hun `select`, en zonder
   deze regel vielen ze terug op de standaard van de browser. Kwam ook uit de Kirki-laag. */
body,
button,
input,
select,
option,
textarea,
h6 {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: var(--wt-text);
	letter-spacing: 0;
}

.wp-block-button__link,
figcaption,
.wp-block-table,
.wp-block-pullquote__citation { font-size: 16px; }

.entry-content {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--wt-text);
	letter-spacing: 0;
	text-transform: none;
}

/* Koppen: allemaal 600 en navy. h1 is 30px, h2 25px, h3 tot en met h5 20px. */
h1,
h2, .wp-block-heading h2,
h3, .wp-block-heading h3,
h4, .wp-block-heading h4,
h5, .wp-block-heading h5 {
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wt-blue, #1e3a6d);
}
h1 { font-size: 30px; }
h2, .wp-block-heading h2 { font-size: 25px; }
h3, .wp-block-heading h3,
h4, .wp-block-heading h4,
h5, .wp-block-heading h5 { font-size: 20px; }

/* Blogtitel en productpaginatitel volgen de gewone h1 (30px/700/navy). Ze stonden
   apart in de customizer met dezelfde waarden, dus hier hoeft niets extra's. */

/* Op de productpagina juist kleiner, vanaf tablet. */
@media (min-width: 770px) {
	.single-product h1 { font-size: 25px; }
}

blockquote p,
.edit-post-visual-editor.editor-styles-wrapper .wp-block-quote p,
.edit-post-visual-editor.editor-styles-wrapper .wp-block-quote {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0;
	text-transform: none;
	color: #222;
}

/* De categorie-intro boven een productoverzicht. */
.term-description {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wt-text);
}

/* WooCommerce-knoppen die niet door onze eigen componenten worden gerenderd. */
body .woocommerce #respond input#submit.alt,
body .woocommerce a.button.alt,
body .woocommerce button.button.alt,
body .woocommerce input.button.alt,
.product .cart .single_add_to_cart_button,
.widget_shopping_cart a.button.checkout {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

/* ============================================================================
 * Bevestiging na toevoegen aan de winkelwagen (.wt-toegevoegd)
 *
 * Vervangt de winkelwagen-la van Shoptimizer. Markup wordt gemaakt door
 * js/toevoegmelding.js.
 *
 * Rechtsonder en niet middenin: de klant is aan het bladeren en moet dat kunnen
 * blijven doen. De melding bevestigt en biedt een weg vooruit, maar houdt niets
 * tegen. Na vijf seconden verdwijnt hij vanzelf.
 * ========================================================================= */
.wt-toegevoegd {
	position: fixed;
	/* Bovenin en niet onderin. Onderin is bezet: rechtsonder het chatballonnetje, en de
	   cookiebanner staat op desktop rechtsonder en op mobiel over de volle breedte
	   onderaan, met een hogere z-index. Juist een nieuwe bezoeker zou de bevestiging
	   daar dus niet zien. */
	top: 16px;
	right: 16px;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: calc(100vw - 32px);
	padding: 12px 16px;
	border: 1px solid var(--wt-border, #e1eaf2);
	border-radius: var(--wt-radius, 8px);
	background: #fff;
	box-shadow: 0 8px 24px rgba(30, 58, 109, 0.16);
	font-size: 14px;
	color: var(--wt-blue, #1e3a6d);
	/* Buiten beeld tot hij nodig is; geen display:none, want dan is er niets om te animeren. */
	opacity: 0;
	transform: translateY(-12px);
	pointer-events: none;
	transition: opacity 0.18s ease, transform 0.18s ease;
}
.wt-toegevoegd.is-zichtbaar {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* Groen vinkje, dezelfde taal als de vinkjes bij de USP's. */
.wt-toegevoegd__vink {
	flex: none;
	width: 20px;
	height: 20px;
	background: var(--wt-green, #00bb00);
	-webkit-mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 12L11 14L15 10M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z' stroke='%234A5568' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 12L11 14L15 10M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z' stroke='%234A5568' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-size: contain; mask-size: contain;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}

.wt-toegevoegd__tekst { font-weight: 600; }

.wt-toegevoegd__link {
	flex: none;
	margin-left: 4px;
	padding: 7px 14px;
	border-radius: var(--wt-radius-sm, 6px);
	background: var(--wt-green, #00bb00);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.wt-toegevoegd__link:hover,
.wt-toegevoegd__link:focus { background: var(--wt-green-hover, #008d00); color: #fff; }

@media (max-width: 480px) {
	/* Op mobiel over de volle breedte. */
	.wt-toegevoegd { left: 16px; right: 16px; justify-content: space-between; }
}

/* Ingelogd: onder de adminbalk door. Bezoekers merken hier niets van, die hebben
   geen balk. De hoogte is 32px, en 46px onder de 782px-grens die WordPress zelf
   aanhoudt. */
body.admin-bar .wt-toegevoegd { top: 48px; }
@media screen and (min-width: 601px) and (max-width: 782px) {
	body.admin-bar .wt-toegevoegd { top: 62px; }
}
/* Onder de 600px zet WordPress de balk op `position: absolute`: hij staat bovenaan
   het document en scrolt mee weg. Ruimte reserveren laat daar dus een leeg gat van
   46px achter zodra je een stukje gescrold hebt. Terug naar dezelfde 16px als voor
   een bezoeker. De balk overlapt de melding dan alleen zolang je minder dan 30px
   gescrold bent, en op een telefoon voeg je vrijwel nooit iets toe terwijl je nog
   helemaal bovenaan staat. */
@media screen and (max-width: 600px) {
	body.admin-bar .wt-toegevoegd { top: 16px; }
}

/* ---------------------------------------------------------------------------
 * Draaiende ring voor laadstaten
 * ---------------------------------------------------------------------------
 * Gebruikt door de koopknop op de productpagina (css/pdp.css) en door de knop op de productkaart
 * (css/product-card.css). Staat hier en niet in een van die twee, omdat die bestanden nooit samen
 * geladen worden: de kaartknop kreeg wel de animatie mee maar niet de keyframes, en stond dus
 * stil. */
@keyframes wt-draai { to { transform: rotate(360deg); } }


/* ==================== /css/reset.css ==================== */
/*
 * reset.css - de nulstand van de HTML-elementen
 *
 * 56 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. Het is de laag die zegt hoe een
 * `p`, een `ul`, een `table` of een `input` eruitziet voordat er ook maar een eigen klasse aan te
 * pas komt: box-sizing, marges op nul, lijsten zonder bolletjes, knoppen zonder systeemuiterlijk,
 * afbeeldingen die niet buiten hun kader vallen. Shoptimizer leverde dit; wij leveren het nu zelf.
 *
 * DIT BESTAND LAADT VOOR `basislaag.css`, niet erna. Dat is het verschil met de eerder gelichte
 * onderdelen (categorietegel, zoekresultaten, beoordelingen). Die hebben eigen klassenamen en
 * winnen op specificiteit, dus daar maakt de volgorde niets uit. Hier wel: dit zijn kale
 * element-selectors met de laagste specificiteit die er bestaat, en ze stonden vooraan in de
 * basislaag juist omdat alles wat erna komt ze hoort te overschrijven. Laadt dit bestand na de
 * basislaag, dan gaat de reset winnen van regels die hem eerst overstemden.
 *
 * Vandaar in `inc/assets.php`: `wt-basislaag` is afhankelijk van `wt-reset`, niet andersom.
 *
 * Gemeten voor en na de verhuizing over vijftien paginaladingen (negen paginatypes op 1280px, zes
 * op 375px), met de telling per waarde uit `verify/css-histogram.md`. Verwachting en uitkomst:
 * nul verschil.
 *
 * Nog niet opgeruimd. De regels spreken elkaar op een paar plekken tegen (`small` staat er twee
 * keer, `table` drie keer, `mark` twee keer) omdat ze uit verschillende stylesheets van het oude
 * thema komen. Dat samenvoegen is een volgende stap, en dan opnieuw meten.
 */

*,
::before,
::after { box-sizing: border-box; }
html { font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4; }
body { margin: 0; }
b,
strong { font-weight: bolder; }
small { font-size: 80%; }
table { text-indent: 0;
  border-color: inherit; }
button,
select { text-transform: none; }
button,
[type='button'],
[type='reset'],
[type='submit'] { -webkit-appearance: button; }
legend { padding: 0; }
[type='search'] { -webkit-appearance: textfield;
  outline-offset: -2px; }
summary { display: list-item; }
.is-layout-flow summary + * { margin-top: 0; }
html { -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  overflow-wrap: break-word;
  scrollbar-gutter: stable; }
img, video, canvas, audio, iframe, embed, object { display: block;
  vertical-align: middle; }
img, picture, video, canvas { display: block;
  max-width: 100%;
  height: auto; }
h1, h2, h3, h4 { text-wrap: pretty; }
body, button, input, textarea { -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; }
ol, ul, menu { list-style: none;
  margin: 0;
  padding: 0; }
textarea { resize: vertical; }
[hidden] { display: none; }
table { border-spacing: 0;
  border-collapse: collapse; }
button,
[role="button"] { cursor: pointer; }
button::-moz-focus-inner,input::-moz-focus-inner { padding: 0;
  border: 0 }
button,input:where([type='button']),input:where([type='reset']),input:where([type='submit']) { -webkit-appearance: button;
  background-color: transparent;
  background-image: none; }
mark { background-color: transparent; }
address { font-style: normal; }
article,aside,figcaption,figure,footer,header,hgroup,main,menu,nav,section { display: block; }
/* De kleur stond hier op #2c2d33, de linkkleur van Shoptimizer. Die werd sinds jaar en dag
   overschreven door de Kirki-laag met ons groen. Op 27-08-2026 is die laag opgeruimd, en toen
   bleek deze regel eronder te liggen. Weggehaald in plaats van er nog een override overheen te
   leggen; de linkkleur staat nu in global.css. */
a { background-color: transparent;
  text-decoration: none;
  transition: color 0.2s ease; }
a:active, a:hover { outline: 0; }
a, button, input { touch-action: manipulation; }
mark { color: #000;
  background: #ff0; }
small { font-size: 75%; }
img { max-width: 100%;
  height: auto;
  border: 0;
  border-radius: 0; }
svg:not(:root) { overflow: hidden; }
figure { margin: 0; }
input[type=checkbox],input[type=radio] { box-sizing: border-box; }
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button { height: auto; }
input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration { -webkit-appearance: none; }
legend { border: 0; }
table { width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  font-size: 15px; }
legend, ol, td, th, ul { padding: 0; }
address,p,table { margin: 0 0 1.21575rem; }
p:empty { margin: 0; }
ol, ul { margin: 0 0 1.41575em 20px; }
ul { list-style: disc; }
ol { list-style: decimal; }
li > ol, li > ul { margin-bottom: 0;
  margin-left: 1em; }
b,dt,strong { font-weight: 600; }
ins,mark { background: 0 0;
  font-weight: 400;
  text-decoration: none; }
table td,
table th { text-align: left;
  vertical-align: middle; }
table caption,
table th { font-weight: 600; }
select, embed, iframe, object, video { max-width: 100%; }
button, input, select { vertical-align: baseline; }
button { border: none; }
input[type="number"] { -webkit-appearance: none;
  border-radius: 0; }

/*
 * Respecteer de systeemvoorkeur "beperk beweging". Stond tot 27-08-2026 als laatste regel in
 * `basislaag.css`; hij hoort bij de nulstand van de browser en dus hier.
 */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after { animation-delay: -1ms !important;
          animation-duration: 1ms !important;
          animation-iteration-count: 1 !important;
          background-attachment: initial !important;
          scroll-behavior: auto !important;
          transition-delay: 0s !important;
          transition-duration: 0s !important; }
}


/* ==================== /css/hulpklassen.css ==================== */
/*
 * hulpklassen.css - twee klassen die overal gebruikt mogen worden
 *
 * `.sr-only` en `.screen-reader-text` verbergen tekst voor het oog maar houden hem beschikbaar voor
 * een schermlezer. `.clear` maakt een zwevende kolom weer recht. Meer is het niet.
 *
 * Ze stonden tot 27-08-2026 in `basislaag.css`. Dat bestand is die dag opgehouden te bestaan: van
 * 655 regels via zeventien benoemde onderdelen naar niets. Deze twee hoorden bij geen enkel
 * onderdeel, dus kregen ze hun eigen plek.
 *
 * DIT BESTAND LAADT OP DE PLEK WAAR `basislaag.css` STOND, als eerste van de onderdelen. Dat is
 * bewust: zo houden deze twee regels exact de positie in de cascade die ze hadden.
 */

.sr-only,
.screen-reader-text { position: absolute;
    /* Geen visibility:hidden hier: dat verbergt de tekst ook voor schermlezers, en deze
       klasse bestaat juist om tekst alléén visueel te verbergen. Gevonden 31-08-2026 bij
       de toegankelijkheidsronde; de clip-techniek hieronder is het standaardpatroon. */
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0; }
.clear { clear: both; }


/* ==================== /css/blog-basis.css ==================== */
/*
 * blog-basis.css - de nulstand van een blogbericht
 *
 * 6 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: de breedte van de inhoud van een
 * bericht, de uitgelichte afbeelding, en de marges eromheen. De eigen opmaak van de blog staat in
 * `css/blog.css`, dat later laadt en hier overheen gaat.
 */

@media (min-width: 993px) {
  .blog .site-content,
  	.archive .site-content { padding-bottom: 3rem; }
}
.post .wp-post-image { margin-bottom: 1.618em; }
article.post .entry-content { font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); }
article.post .entry-content p:last-child { margin-bottom: 0; }
.site-main:not(.grid) article.post { margin: 0 0 2.25rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid #eee; }
@media (max-width: 768px) {
  .single-post .entry-content { font-size: 15px; }
}


/* ==================== /css/productpagina-basis.css ==================== */
/*
 * productpagina-basis.css - de nulstand van een productpagina
 *
 * 17 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: de breedte van de kolommen, de
 * knop 'in winkelwagen' met zijn laadanimatie, en de plek van meldingen op een productpagina.
 *
 * Er stonden nog twee regels over PhotoSwipe (`.pswp`), de fotoviewer van het oude thema. Die
 * scripts zijn er op 27-08-2026 uitgehaald; nagemeten in de echte DOM op de productpagina en de
 * winkelwagen: nul elementen met een `pswp`-klasse, nul PhotoSwipe-scripts. Regels verwijderd.
 *
 * De eigen productpagina staat in `css/pdp.css`, dat later laadt en hier overheen gaat.
 */

.single-product:not(.pdp-ajax) .woocommerce:has(ul.woocommerce-error) { padding-bottom: 30px; }
.single-product:has(.archive-header .woocommerce-message) .content-area { padding-top: 2rem; }
.single-product .woocommerce:has(.woocommerce-message) { margin-left: auto;
    margin-right: auto; }
@media (min-width: 993px) {
  .single-product .woocommerce:has(.woocommerce-message) { padding-right: 2.617924em;
            padding-left: 2.617924em; }
}
@media only screen and (min-width: 1070px) {
  .single-product .site-content .col-full { max-width: inherit;
    		margin: 0;
    		padding: 0; }
}
.single-product .content-area { width: 100%; }
@media (max-width: 992px) {
  .single-product .content-area { width: calc(100% + 2em);
    		margin-left: -1em; }
}
@media (min-width: 993px) and (max-width: 1199px ) {
  .single-product .site-content .col-full { padding: 0; }
}
.product { position: relative; }
.product form.cart .quantity { float: left; }
.cart .single_add_to_cart_button { float: left;
	width: calc(100% - 90px);
	height: 52px;
	margin-left: 40px;
	padding-top: 0;
	padding-bottom: 0;
	border-radius: 4px;
	background: #3bb54a;
	font-size: 18px;
	font-weight: 400;
	line-height: 52px;
	text-align: center;
	transition: all 0.2s; }
.product form.cart .quantity:has(input[type=hidden]) + button.single_add_to_cart_button { margin-left: 0px;
	width: 100%; }
.product form.cart .button,
.ajax_add_to_cart.add_to_cart_button { position: relative; }
.product form.cart .single_add_to_cart_button:after,
.ajax_add_to_cart.add_to_cart_button:after { position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -9px;
    margin-left: -9px;
    opacity: 0;
    transition: opacity 0s ease;
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-left-color: #fff;
    border-radius: 50%;
    vertical-align: middle; }
.product .variations_button:after, .product .variations_button:before,
.product form.cart:after, .product form.cart:before { display: table;
    content: "";
    clear: both; }
.product-widget p, .product-widget ul li, .product-widget fieldset legend { font-size: clamp(0.8125rem, 0.749rem + 0.2033vw, 0.875rem); }
.product-widget fieldset legend { display: block;
	margin: 0 auto;
	width: inherit;
	padding: 10px;
	color: #111;
	font-weight: 600;
	text-align: center; }


/* ==================== /css/formulier-basis.css ==================== */
/*
 * formulier-basis.css - de nulstand van invoervelden
 *
 * 22 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: tekstvelden, keuzelijsten,
 * vinkjes, tekstvlakken, labels, het rode sterretje bij een verplicht veld, en de tweekoloms
 * indeling van `.form-row` op desktop. Ook de basisknop staat hier (`.button` en de drie
 * `input`-varianten), omdat die in het oude thema in hetzelfde blok stond.
 *
 * De eigen formulieropmaak staat in `css/forms.css`, dat later laadt en hier overheen gaat.
 */

.form-row input,
.form-row select,
.form-row textarea { width: 100%; }
.form-row label { display: block;
  margin-bottom: 5px;
  color: #111;
  font-size: 14px;
  font-weight: 600; }
.form-row .button,
.form-row input[type="checkbox"],
.form-row input[type="radio"] { width: auto; }
.form-row-last { margin-right: 0!important; }
@media (min-width:993px) {
  .form-row-first { float: left;
      clear: both;
      width: 47.0588235294%;
      margin-right: 5.8823529412%; }
  .form-row-last { float: right;
      width: 47.0588235294%;
      margin-right: 0; }
}
.required { border-bottom: 0;
  color: #df0202;
  text-decoration: none; }
fieldset legend { width: calc(100% + 60px);
  margin-left: -30px;
  padding: 10px 30px 10px;
  color: #111;
  font-size: 20px;
  font-weight: 600; }
select { width: 100%;
  padding: 0 40px 0 0.7em;
  padding-right: 40px;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg width='1792' height='1792' xmlns='http://www.w3.org/2000/svg'%3E%3Cg%3E%3Ctitle%3Ebackground%3C/title%3E%3Crect fill='none' id='canvas_background' height='402' width='582' y='-1' x='-1'/%3E%3C/g%3E%3Cg%3E%3Ctitle%3ELayer 1%3C/title%3E%3Cpath fill='%23888' id='svg_1' d='m1408,704q0,26 -19,45l-448,448q-19,19 -45,19t-45,-19l-448,-448q-19,-19 -19,-45t19,-45t45,-19l896,0q26,0 45,19t19,45z'/%3E%3C/g%3E%3C/svg%3E") calc(100% - 12px) 12px no-repeat;
  margin: 0;
  background-size: 15px 15px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  outline: 0;
  border: 1px solid #d2d6dc;
  border-radius: 0.3rem;
  box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
  height: 40px; }
select:focus { outline: 0; }
@media all and (-ms-high-contrast:none),(-ms-high-contrast:active) {
  select { padding-right: 0;
      background-image: none; }
}
.button, input[type="button"], input[type="reset"], input[type="submit"] { display: inline-block;
  padding: 0.8180469716em 1.41575em;
  border: 0;
  border-color: #43454b;
  border-radius: 4px;
  font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); 
  outline: 0;
  background: 0 0;
  background-color: #43454b;
  font-weight: 600;
  text-shadow: none;
  text-decoration: none;
  cursor: pointer;
  -webkit-appearance: none;
  transition: 0.2s all; }
input[type="button"], input[type="reset"], input[type="submit"] { color: #fff;
  font-weight: 600; }
input[type="checkbox"],
input[type="radio"] { padding: 0; }
input[type="tel"],
input[type="text"],
input[type="url"] { width: 100%; }
input[type="password"],
input[type="search"],
input[type="email"],
input[type="text"],
input[type="number"],
input[type="tel"] { outline: 0;
  margin-bottom: 0;
  border: 1px solid #d2d6dc;
  border-radius: 0.3rem;
  box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
  height: 40px;
  padding: 0 0.7em; }
input[type="search"] { padding-left: 43px; }
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
input[type="search"]::-moz-placeholder { color: #555; }
input[type="search"]::placeholder { color: #555; }
textarea { overflow: auto;
  border: 1px solid #d2d6dc;
  border-radius: 0.25rem;
  padding: 0.8em;
  outline: 0;
  box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
  width: 100%;
  padding-left: 0.875em;
  vertical-align: top;
  height: 150px; }
.input-text:focus, input[type=email]:focus, input[type=password]:focus, input[type=search]:focus, input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus, textarea:focus { border-color: #9c9c9c; }


/* ==================== /css/typografie-basis.css ==================== */
/*
 * typografie-basis.css - koppen en tekstblokken
 *
 * 9 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: de regelafstand van h1 tot h6,
 * de extra ruimte boven een kop die op een lijst of formulier volgt, geneste lijsten in de
 * inhoud, en de breedte van `.site`.
 *
 * De eigen typografie staat in `css/global.css`, dat eerder laadt maar met eigen klassen werkt.
 */

h1,h2 { margin: 0 0 1rem; }
h3,h4,h5,h6 { margin: 0 0 0.5rem; }
blockquote+h2,blockquote+h3,blockquote+h4,blockquote+header h2,form+h2,form+h3,form+h4,form+header h2,ol+h2,ol+h3,ol+h4,ol+header h2,p+h2,p+h3,p+h4,p+header h2,table+h2,table+h3,table+h4,table+header h2,ul+h2,ul+h3,ul+h4,ul+header h2 { margin-top: 1.2906835em; }
.entry-content ol ol,
.entry-content ul ul { margin: 1em 0 1em 2em; }
@media (max-width: 768px) {
  .site { font-size: 15px; }
  input, select, textarea { font-size: 16px; }
  .entry-content:not(.wc-tab) p.form-row { font-size: 14px; }
  .site h1 { font-size: 30px;
      letter-spacing: -0.01em; }
  .site h2 { font-size: clamp(1.375rem, 0.9939rem + 1.2195vw, 1.75rem);
      letter-spacing: -0.01em; }
}

/*
 * Drie regels die tot 27-08-2026 als restje in `basislaag.css` stonden en hier thuishoren: de ruimte
 * onder een paginakop, de ruimte onder de kop van een 404-pagina, en de onderstreping van links in
 * lopende tekst (categorietekst, productmeta, reacties).
 *
 * `:not(.stars)` is er op 27-08 bij gekomen. De onderstrepingsregel raakte namelijk ook de
 * sterlinks in het beoordelingsformulier (`p.stars a`, die WooCommerce met JavaScript in de plaats
 * van de keuzelijst zet). Dat viel niet op zolang de regel vooraan in `basislaag.css` stond en dus
 * verloor van `beoordelingen.css`. Toen hij hierheen verhuisde en later kwam te staan, kregen die
 * sterren ineens een streep eronder. De regel is bedoeld voor links in lopende tekst; sterren zijn
 * dat niet.
 */
.page-header { margin-bottom: 1.5rem; }
body.error404 h1 { margin-bottom: 0.5rem; }
.below-woocommerce-category a, .product-widget a,
.post-meta a, .comment-text a, .comment-respond p:not(.stars) a, .product_meta a, .woocommerce-tabs table.woocommerce-product-attributes a,
.entry-content article a:not(.elementor-button), a.reset_variations,
body:not(.elementor-page):not(.woocommerce-account):not(.woocommerce-order-received) .entry-content p:not(.product__categories) a:not(.button) { text-decoration: underline;
  text-underline-offset: 0.12em;
  text-decoration-thickness: 0.75px; }


/* ==================== /css/header-basis.css ==================== */
/*
 * header-basis.css - wat het oude thema aan de bovenbalk gaf
 *
 * 2 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. Meer was het niet: de eigen
 * bovenbalk staat in `css/header.css` en doet vrijwel alles zelf.
 *
 * Er stond een derde regel, over `.commercekit-waitlist-popup--active`. CommerceKit is op 23-08-2026
 * uit de site gehaald; nagemeten in de echte DOM op 27-08: nul elementen met die klasse, nul scripts
 * van die plugin. Regel verwijderd.
 */

@media (min-width: 993px) {
  .site-header { position: relative;
            z-index: 20; }
}
@media (max-width: 992px) {
  .site-header .wt-header-cart__knop a.cart-contents .amount { display: none; }
}


/* ==================== /css/footer-basis.css ==================== */
/*
 * footer-basis.css - wat het oude thema aan de voettekst gaf
 *
 * 3 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. De eigen voettekst staat in
 * `css/footer.css` en doet de rest.
 */

footer { clear: both; }
footer a:not(.button):hover { color: #fff; }
footer:last-child:not(:only-of-type) { margin-top: -3rem; }


/* ==================== /css/layout-basis.css ==================== */
/*
 * layout-basis.css - de kolombreedtes van het oude thema
 *
 * 15 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: `.col-full` (de buitenste
 * container met zijn maximale breedte), `.content-area` per paginasoort, en `.site-content`.
 *
 * Dit is de laag waar bijna elke pagina op staat, en tegelijk de laag die het meest naar het oude
 * thema ruikt: klassenamen als `.right-post-sidebar` en `.left-woocommerce-sidebar` komen uit
 * instellingen die niet meer bestaan. Kandidaat voor opruimen, maar alleen met een meting erbij.
 */

@media (min-width: 993px) {
  .col-full { box-sizing: content-box;
          margin-right: auto;
          margin-left: auto;
          max-width: 1170px;
          padding-right: 2.617924em;
          padding-left: 2.617924em; }
  .col-full:after { display: block;
          clear: both;
          content: ""; }
}
@media (max-width: 992px) {
  .col-full { padding-right: 1em;
          padding-left: 1em; }
}
@media (min-width: 993px) {
  .right-page-sidebar .content-area,
      .right-post-sidebar .content-area,
      .right-sidebar .content-area { float: left; }
  .search .content-area { float: right; }
}
.page-template-default:not(.woocommerce-page) .entry-header { margin-bottom: 1.5rem; }
@media (min-width: 993px) {
  .page-template-default .site-content { padding-bottom: 3rem; }
}
@media (max-width: 992px) {
  .page-template-default .site-content { padding-bottom: 1.5rem; }
}
.page-template-template-fullwidth-php .content-area { width: 100%; }
@media (min-width: 993px) {
  .left-woocommerce-sidebar #secondary { float: left; }
  .left-woocommerce-sidebar .content-area { float: right; }
}
.site-content { position: relative; }
.site-content:focus { outline: none; }
@media (min-width: 993px) {
  .site-content:after { display: block;
          visibility: hidden;
          position: absolute;
          z-index: 5;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          opacity: 0;
          background: rgba(0, 0, 0, 0.7);
          content: "";
          transition: opacity 0.3s, visibility 0.3s;
          pointer-events: none; }
}
.woocommerce.archive .site-content { padding-bottom: 3rem; }

/*
 * Het wachtwoordformulier van een beveiligde pagina. Stond tot 27-08-2026 als restje in
 * `basislaag.css`; het is een breedte-regel en hoort dus bij de indeling.
 */
.site-main:has(form.post-password-form) { max-width: 750px;
    margin: 0 auto;
    padding: 1em 1em 3rem 1em;
    font-size: 15px; }


/* ==================== /css/archiefkop.css ==================== */
/*
 * archiefkop.css - de kop van een categoriepagina
 *
 * 37 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. Alles boven de productenrij op
 * een categorie-, merk-, tag- of zoekpagina: de titel, het beige tekstvlak met de categorietekst,
 * de sorteerbalk met resultaattelling en sorteerkeuze, het blok onder de producten
 * (`below-woocommerce-category`), en de filterknop met de lade die op mobiel openschuift.
 *
 * De filterlade hoort hier omdat hij bij de sorteerbalk hoort, niet bij de zijbalk: `.mobile-filter`
 * is de knop, `.close-drawer` de sluitknop en `#secondary` de lade zelf. De open-stand staat
 * ergens anders, in `css/filter-flyout.css`; dit is alleen de dichte stand.
 *
 * Laadt direct na `basislaag.css`, dus de regels houden exact de plek in de cascade die ze hadden.
 * Gemeten over vijftien paginaladingen: nul verschil.
 */

.shop header.woocommerce-products-header { margin: 0;
    background-color: transparent; }
h1.woocommerce-products-header__title { margin-bottom: 1.5rem; }
.shop.shop-heading .woocommerce-products-header { align-items: flex-start; }
.shop:not(.shop-heading) .woocommerce-products-header__title { display: none; }
.wt-sorteerbalk { width: 100%;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center; }
.wt-sorteerbalk .woocommerce-notices-wrapper { order: 1; }
.wt-sorteerbalk .woocommerce-ordering { margin-bottom: 0;
    display: inline-flex;
    order: 2; }
.wt-sorteerbalk .woocommerce-result-count { order: 3; }
.wt-sorteerbalk .woocommerce-pagination { order: 4; }
.wt-sorteerbalk.wt-sorteerbalk--onder { margin-top: 2em;
    margin-bottom: 0; }
@media (min-width: 993px) {
  .wt-sorteerbalk.wt-sorteerbalk--onder { margin-top: 1em; }
}
.wt-sorteerbalk.wt-sorteerbalk--onder:empty { margin: 0; }
.woocommerce-result-count { margin: 0;
    color: #111;
    font-size: 14px; }
select.orderby { position: relative;
  height: auto;
  line-height: inherit;
  margin-bottom: 0;
  padding-left: 0;
  border: 0;
  color: #111;
  font-size: 14px;
  box-shadow: none;
  background-position: center right; }
@media (min-width: 993px) {
  .woocommerce-ordering { margin-right: 1.5em; }
}
header.woocommerce-products-header { display: flex;
    background-color: #efeee3;
    align-items: center;
    overflow: hidden;
    margin-bottom: 2em; }
header.woocommerce-products-header .term-description { padding: 2em; }
header.woocommerce-products-header .term-description p:last-child{ margin: 0; }
@media (min-width: 993px) {
  .term-description { min-width: 50%; }
}
@media (max-width: 992px) {
  header.woocommerce-products-header { flex-direction: column; }
  .wt-sorteerbalk .woocommerce-result-count { order: 1;
          clear: both;
          font-size: 12px; }
  form.woocommerce-ordering { margin: 0;
          width: 100%; }
  .wt-sorteerbalk { clear: both;
          display: grid;
          grid-template-columns: auto auto;
          gap: 0 20px;
          align-items: baseline;
          margin-top: 15px;
          margin-bottom: 15px;
          font-size: 12px; }
  select.orderby { font-size: 12px;
          width: 100%; }
  .archive .woocommerce-notices-wrapper { grid-column: 1/-1; }
  .term-description { order: 2; }
  header.woocommerce-products-header .term-description{ font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); }
  header.woocommerce-products-header .term-description { padding: 1.25rem;
          letter-spacing: 0; }
}
.below-woocommerce-category { clear: both;
    margin: 2rem 0 0 0;
    font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); 
    border: 1px solid #eee;
    padding: 1.5rem; }
.below-woocommerce-category p:last-child { margin: 0; }
.below-woocommerce-category a,.term-description a{ text-decoration: underline;
    text-decoration-thickness: 0.75px;
    text-underline-offset: 0.18em; }
@media (min-width: 993px) {
  .mobile-filter { display: none; }
}
@media (max-width: 992px) {
  .mobile-filter { display: block;
          position: sticky;
          z-index: 3;
          top: 0px;
          width: 100%;
          height: 40px;
          padding-left: 40px;
          background-color: #fff;
          border-top: 1px solid #e2e2e2;
          border-bottom: 1px solid #e2e2e2;
          box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.06);
          text-transform: uppercase;
          color: #111;
          font-size: 11px;
          font-weight: 600;
          letter-spacing: 0.03em;
          line-height: 36px;
          text-align: left;
          margin-left: -1.3em;
          width: calc(100% + 2.6em); }
  .mobile-filter svg { position: absolute;
          left: 20px;
          width: 18px;
          height: 18px;
          top: 50%;
          transform: translate(-50%, -50%); }
  .close-drawer { color: #fff; }
  .filters.close-drawer { top: 40px;
          visibility: hidden;
          display: none; }
  .woocommerce.archive #secondary,
      .wc-active.search-results #secondary,
      .page-template-template-woocommerce-archives #secondary { visibility: hidden;
          overflow-y: auto;
          position: fixed;
          z-index: 102;
          top: 0;
          left: -300px;
          width: 300px !important; 
          height: 100%;
          padding: 1.5rem;
          opacity: 0;
          background: #fff;
          -webkit-overflow-scrolling: touch;
          transition: all 0.35s;
          transition-delay: 0.1s; }
}


/* ==================== /css/kruimelpad.css ==================== */
/*
 * kruimelpad.css - het kruimelpad en de ruimte eronder
 *
 * 15 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026.
 *
 * Waarom er meer in staat dan alleen kruimels: vijf van de vijftien regels gaan over de
 * bovenmarge van `.site-content` en `.site-main`, en die hangt af van of er wel of geen kruimelpad
 * op de pagina staat (`body:has(.woocommerce-breadcrumb)`). Weghalen bij het kruimelpad zou die
 * regels onbegrijpelijk maken, dus ze verhuizen mee.
 *
 * Op de winkelwagen, de afrekenpagina en de bedankpagina staat het kruimelpad bewust uit.
 *
 * Laadt direct na `basislaag.css`, dus de regels houden exact de plek in de cascade die ze hadden.
 * Gemeten over vijftien paginaladingen: nul verschil.
 */

.woocommerce-breadcrumb { padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: clamp(0.75rem, 0.6547rem + 0.3049vw, 0.84375rem); 
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    color: #666; }
@media (min-width: 993px) {
  .woocommerce-breadcrumb { padding-top: 1rem;
          padding-bottom: 1rem; }
}
.woocommerce-breadcrumb p { margin: 0; }
.woocommerce-breadcrumb a,
.woocommerce-breadcrumb a:hover { color: #111; }
.woocommerce-breadcrumb a:hover { text-decoration: underline;
    text-decoration-thickness: .5px;
    text-decoration-color: #111;
    text-underline-offset: 0.18em; }
.woocommerce-breadcrumb a:first-of-type:before { display: none; }
.single-product .woocommerce-breadcrumb { max-width: 1170px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 2.617924em;
    padding-left: 2.617924em; }
@media (min-width: 993px) and (max-width: 1480px) {
  .single-product .woocommerce-breadcrumb { padding-left: calc(2.617924em + 5px); }
}
@media (max-width: 992px) {
  .single-product .woocommerce-breadcrumb { padding-right: 0;
          padding-left: 0; }
}
body:has(:not(.woocommerce-breadcrumb)) .site-content,
body.single-product:has(:not(.woocommerce-breadcrumb)) .site-main { padding-top: 2rem; }
body:has(.woocommerce-breadcrumb) .site-content,
body.page-template-template-fullwidth-no-heading .site-content,
body.page-template-elementor_header_footer .site-content { padding-top: 0; }
body.page-template-template-canvas:has(:not(.woocommerce-breadcrumb)) .site-content,
body.woocommerce-cart:has(:not(.woocommerce-breadcrumb)) .site-content,
body.woocommerce-checkout.min-ck:has(:not(.woocommerce-breadcrumb)) .site-content,
body.single-product:has(:not(.woocommerce-breadcrumb)) .site-content { padding-top: 0; }
body.single-product:has(.woocommerce-breadcrumb) .site-main { padding-top: 0; }
@media (max-width: 992px) {
  .single-product:has(:not(.woocommerce-breadcrumb)) .site-main { padding-top: 1em; }
}
.woocommerce-cart .woocommerce-breadcrumb,
.woocommerce-checkout .woocommerce-breadcrumb,
.single-ckit_size_guide .woocommerce-breadcrumb,
.single-post.post-l2 .woocommerce-breadcrumb { display: none; }


/* ==================== /css/knoppen-basis.css ==================== */
/*
 * knoppen-basis.css - uitgeschakelde knoppen en de laadanimatie
 *
 * 7 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: hoe een knop eruitziet als hij
 * niet aanklikbaar is, het draaiende rondje tijdens het toevoegen aan de winkelwagen, en de
 * winkelwagenknop in de bovenbalk.
 *
 * De basisknop zelf staat in `css/formulier-basis.css`; de eigen knoppen in `css/global.css`.
 */

.added_to_cart.disabled,
.added_to_cart:disabled,
.button.disabled,
.button:disabled,
button.disabled,
button:disabled,
input[type=button].disabled
,input[type=button]:disabled,
input[type=reset].disabled,
input[type=reset]:disabled,
input[type=submit].disabled,
input[type=submit]:disabled { opacity: 0.3;
    cursor: not-allowed; }
.added_to_cart.disabled:hover,
.added_to_cart:disabled:hover,
.button.disabled:hover,
.button:disabled:hover,
button.disabled:hover,
button:disabled:hover,
input[type=button].disabled:hover,
input[type=button]:disabled:hover,
input[type=reset].disabled:hover,
input[type=reset]:disabled:hover,
input[type=submit].disabled:hover,
input[type=submit]:disabled:hover { opacity: 0.35; }
.single-product .product form.cart .single_add_to_cart_button:after,
.ajax_add_to_cart.add_to_cart_button:after { position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -9px;
    margin-left: -9px;
    opacity: 0;
    transition: opacity 0s ease;
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-left-color: #fff;
    border-radius: 50%;
    vertical-align: middle; }
#payment .place-order .button:before,
.cart-collaterals .checkout-button:before,
.widget_shopping_cart .buttons .checkout:before,
.wp-element-button.wc-block-cart__submit-button:before,
.wp-element-button.wc-block-components-button.wc-block-components-checkout-place-order-button:before { content: "";
    display: inline-flex;
    width: 18px;
    height: 18px;
    margin-right: 8px;
    background-color: #fff;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' style='fill: rgba(0, 0, 0, 1);transform: ;msFilter:;'%3E%3Cpath d='M20 12c0-1.103-.897-2-2-2h-1V7c0-2.757-2.243-5-5-5S7 4.243 7 7v3H6c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-8zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v3H9V7z'%3E%3C/path%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' style='fill: rgba(0, 0, 0, 1);transform: ;msFilter:;'%3E%3Cpath d='M20 12c0-1.103-.897-2-2-2h-1V7c0-2.757-2.243-5-5-5S7 4.243 7 7v3H6c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-8zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v3H9V7z'%3E%3C/path%3E%3C/svg%3E");
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: contain;
            mask-size: contain; }
@media (min-width: 993px) {
  .wt-header-cart__knop .cart-contents { padding: 0;
          color: #fff; }
}
.wt-header-cart__knop .cart-contents:after { margin-left: 10px; }
.wt-header-cart__knop .cart-contents { display: block;
    text-decoration: none; }


/* ==================== /css/meldingen.css ==================== */
/*
 * meldingen.css - de gekleurde balken van WooCommerce
 *
 * 9 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. 'Product toegevoegd aan je
 * winkelwagen', foutmeldingen bij het inloggen, de blauwe informatiebalk. Let op: dit gaat over de
 * oude meldingen (`.woocommerce-message` en familie), niet over die van de blok-winkelwagen en
 * blok-checkout (`.wc-block-components-notice-banner`). Die staan nog in de basislaag, bij de rest
 * van het blok-spul, tot de checkout-verbouwing klaar is.
 */

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.woocommerce-noreviews,
p.no-comments { clear: both;
    margin-bottom: 2rem;
    margin-left: 0;
    padding: 1em 1.618em;
    border-left: 0.4180469716em solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    font-size: clamp(0.8125rem, 0.749rem + 0.2033vw, 0.875rem); 
    color: #fff;
    outline: 0; }
.woocommerce-error a,
.woocommerce-info a,
.woocommerce-message a,
.woocommerce-noreviews a,
p.no-comments a { color: #fff;
    transition: 0.2s all; }
.woocommerce-error a:hover,
.woocommerce-info a:hover,
.woocommerce-message a:hover,
.woocommerce-noreviews a:hover,
p.no-comments a:hover { opacity: 0.7;
    color: #fff; }
.woocommerce-error a.button:hover,
.woocommerce-info a.button:hover,
.woocommerce-noreviews a.button:hover,
p.no-comments a.button:hover { opacity: 1; }
.woocommerce-error .button,.woocommerce-info .button,
.woocommerce-message .button,
.woocommerce-noreviews .button,
p.no-comments .button { float: right;
    padding: 0 0 0 1em;
    border-width: 0 0 0 1px;
    border-left-style: solid;
    border-left-color: rgba(255, 255, 255, 0.25)!important;
    border-radius: 0;
    color: #fff;
    background: 0 0;
    box-shadow: none;
    line-height: 1.618;
    font-weight: 600; }
.woocommerce-error .button:hover,
.woocommerce-info .button:hover,
.woocommerce-message .button:hover,
.woocommerce-noreviews .button:hover,
p.no-comments .button:hover { opacity: 0.7;
    color: #fff;
    background: 0 0; }
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments { background-color: #3d9cd2; }
.woocommerce-cart .woocommerce-notices-wrapper { margin-bottom: 2rem; }
.woocommerce-cart .woocommerce-notices-wrapper:empty { margin: 0; }


/* ==================== /css/paginering.css ==================== */
/*
 * paginering.css - de pagina-nummers onder een productenrij of bloglijst
 *
 * 22 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. Twee stelsels door elkaar:
 * `.woocommerce-pagination` onder producten en `.pagination`/`.nav-links` onder blogberichten.
 * Ze zijn hier bij elkaar gezet omdat ze hetzelfde doen en dezelfde opmaak delen.
 *
 * Laadt direct na `basislaag.css`, dus de regels houden exact de plek in de cascade die ze hadden.
 * Gemeten over vijftien paginaladingen: nul verschil.
 */

.pagination .page-numbers { text-align: center;
    font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); }
.woocommerce-pagination .page-numbers li { display: inline-block;
    margin: 0 2px; }
.pagination span.page-numbers,
.pagination a.page-numbers { padding: 10px; }
.nav-links { display: flex;
    width: 100%;
    justify-content: center;
    align-items: center; }
.nav-links:has(.prev):before,
.nav-links:has(.next):after { display: none; }
.nav-links a.next { display: flex;
    justify-content: flex-end;
    flex: 1;
    padding-right: 0; }
.woocommerce-pagination .page-numbers { margin: 0; }
.woocommerce-pagination { font-size: 14px; }
.woocommerce-pagination a,
.woocommerce-pagination a:hover { color: #111; }
.woocommerce-pagination .next,
.woocommerce-pagination .prev { display: inline-block;
    position: relative;
    text-indent: -9999px; }
.woocommerce-pagination .page-numbers.next,
.woocommerce-pagination .page-numbers.prev { padding-left: 0.6em;
    padding-right: 0.5em; }
.page-numbers .next:after,
.page-numbers .prev:after,
.woocommerce-pagination .next:after,
.woocommerce-pagination .prev:after { display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1em;
    height: 1em;
    content: "";
    background-color: #111;
    transform: translateX(-50%) translateY(-50%);
    text-rendering: auto;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: contain;
            mask-size: contain; }
.page-numbers .next:after,
.woocommerce-pagination .next:after { -webkit-mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 5L16 12L9 19' stroke='%234A5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 5L16 12L9 19' stroke='%234A5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
@media (min-width: 993px) {
  .woocommerce-pagination { margin-left: auto; }
  .woocommerce-pagination .page-numbers { padding: 0px 5px; }
}
@media (max-width: 992px) {
  .archive .woocommerce-pagination,
      .search-results .woocommerce-pagination { grid-column: 1/-1; }
  .archive .woocommerce-pagination,
      .search-results .woocommerce-pagination { order: 3; }
  .woocommerce-pagination { clear: both;
          text-align: center;
          margin-top: 20px; }
  .woocommerce-pagination ul.page-numbers { margin-bottom: 10px; }
  .woocommerce-pagination .page-numbers li { margin: 0 3px 6px 3px; }
  .woocommerce-pagination .page-numbers li .page-numbers { display: inline-block;
          width: 36px;
          height: 36px;
          font-size: 13px;
          margin: 0;
          padding: 0;
          border: 1px solid #e2e2e2;
          border-radius: 3px;
          box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.06);
          line-height: 36px; }
  .wt-sorteerbalk .woocommerce-pagination { grid-column: span 2; }
}


/* ==================== /css/aantalkiezer.css ==================== */
/*
 * aantalkiezer.css - het veld waarin je een aantal invult
 *
 * 6 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: het aantal-veld met de pijltjes
 * van de browser eraf. Staat op de productpagina en in de winkelwagen.
 */

.quantity { position: relative; }
.quantity .qty { text-align: center; }
.quantity input::-webkit-outer-spin-button,
.quantity input::-webkit-inner-spin-button { -webkit-appearance: none;
  margin: 0; }
.quantity input[type=number] { -moz-appearance: textfield; }
.product .cart .quantity .input-text { width: 50px;
	height: 52px;
	padding: 0 0.4em;
	border: 1px solid #e2e2e2;
	background-color: #fff;
	outline-offset: -3px;
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0; }
.product .cart .quantity .input-text:focus { border-color: #ccc; }


/* ==================== /css/widgets.css ==================== */
/*
 * widgets.css - de blokken in de zijbalk
 *
 * 13 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: de kop van een zijbalkblok, de
 * lijsten erin, en de filterlijsten van WooCommerce (`.widget_layered_nav`) met hun aantallen.
 * Dit is wat er in de filterlade op een categoriepagina staat.
 */

.widget .widget-title { display: block;
    margin-bottom: 0.65em;
    color: #111; }
.widget ul { margin-bottom: 0;
    margin-left: 0;
    list-style: none; }
@media (min-width: 993px) {
  .widget-area { padding-bottom: 2rem; }
}
@media (max-width: 992px) {
  .widget-area { padding-top: 2rem;
          padding-bottom: 1rem; }
}
#secondary .widget { margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #e2e2e2;
    display: flex;
    flex-direction: column; }
#secondary .widget:last-child { padding-bottom: 0;
    border: none; }
.widget li,
.site-content .widget li { margin-bottom: 0.4em;
    font-size: 14px;
    line-height: 1.45; }
.widget-area .widget a { color: #222; }
.widget-area .widget a:not(.button):hover { text-decoration: underline;
    text-decoration-thickness: 0.5px;
    text-underline-offset: 0.18em; }
.widget_layered_nav li { margin-bottom: 0.6180469716em; }
.widget_layered_nav ul li { position: relative;
    padding-left: 20px; }
.widget_layered_nav ul li:before { display: block;
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    box-shadow: 0px 0px 2px 0px #555;
    position: absolute;
    left: 0px;
    margin-top: 6px;
    background: #fff;
    border: 2px solid #fff; }
.widget.woocommerce li .count { font-size: 12px;
    position: absolute;
    top: 2px;
    right: 0px;
    opacity: 0.75; }


/* ==================== /css/winkelwagen-basis.css ==================== */
/*
 * winkelwagen-basis.css - de nulstand van de winkelwagenpagina
 *
 * 8 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: de breedte van de pagina, de
 * paginatitel, en het veld met de productafbeelding per regel.
 *
 * De eigen winkelwagen staat in `css/cart.css`, dat later laadt en hier overheen gaat.
 */

.woocommerce-cart .site-main { padding-top: 2rem; }
.woocommerce-cart .content-area { width: 100%;
	padding-bottom: 2rem; }
.woocommerce-cart h1.entry-title { display: none; }
.woocommerce-cart-form { float: left;
	width: 62%;
	margin-bottom: 0; }
@media (max-width: 992px) {
  .woocommerce-cart-form,
  	.cart-collaterals { float: none;
  		width: 100%; }
}
.cart-custom-field { font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); }
.cart-custom-field img { margin: 0 auto 20px auto;
	display: block; }
@media (max-width: 992px) {
  .cart-custom-field img { width: 100%;
  		max-width: 400px; }
}


/* ==================== /css/blok-checkout-basis.css ==================== */
/*
 * blok-checkout-basis.css - de nulstand van de blok-winkelwagen en blok-checkout
 *
 * 30 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026. Alles wat het oude thema onder
 * de blokken van WooCommerce legde: de breedte van de afrekenpagina, de meldingsbalken
 * (`.wc-block-components-notice-banner`), de bestelknop, de koppen in het besteloverzicht, en het
 * inlogformulier op de afrekenpagina.
 *
 * LET OP: de checkout wordt op dit moment verbouwd, van een MutationObserver die de React-DOM
 * aanpast naar de officiele WooCommerce-extensibility. Deze 30 regels zijn ongewijzigd verhuisd en
 * mogen pas herschreven worden als die verbouwing klaar is. Het inlogformulier
 * (`.woocommerce-form-login`) blijft daarbij expliciet met rust.
 */

.woocommerce-checkout.min-ck:not(.woocommerce-order-received) .site-header { border-bottom: 1px solid #eee; }
.woocommerce-checkout .content-area { width: 100%; }
.woocommerce-checkout:not(.woocommerce-order-received) .site-main { padding-top: 1.5rem;
    padding-bottom: 1.5rem; }
.woocommerce-form__label-for-checkbox { display: block;
    cursor: pointer; }
#ship-to-different-address .woocommerce-form__input-checkbox { position: relative;
    top: 1px;
    margin-right: 10px;
    transform: none; }
.woocommerce-form-login { margin: 20px 0;
    padding: 1.5em;
    border: 2px dashed #eee; }
@media (min-width: 993px) {
  .woocommerce-form-login { width: 57%;
          padding: 2rem; }
}
.woocommerce-form-login .form-row { width: 100%; }
.woocommerce-form__label-for-checkbox .woocommerce-form__input-checkbox { position: relative;
    top: 1px;
    margin-right: 0.5rem; }
.woocommerce-form-login p { font-size: clamp(0.8125rem, 0.749rem + 0.2033vw, 0.875rem); }
.woocommerce-form-login .button { margin-top: 15px; }
.woocommerce-form-login .lost_password { margin-top: 1rem;
    margin-bottom: 0; }
.woocommerce-form-login .lost_password a { color: #333; }
.wc-block-grid__product-add-to-cart.wp-block-button a.wp-block-button__link,
.wc-block-grid__product-add-to-cart.wp-block-button .wc-block-components-product-button__button { display: block;
	width: 100%;
	height: 40px;
	padding: 0;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 600;
	line-height: 40px;
	text-align: center;
	transition: all 0.1s; }
.wp-block-columns p a,
.wp-block-columns p a:hover { text-decoration: underline;
    text-decoration-thickness: 0.5px;
    text-underline-offset: 0.16em; }
.woocommerce:has(.wc-block-components-notice-banner) { padding-bottom: 30px; }
.wc-block-components-notice-banner__content .buttons-wrapper { margin-top: 10px; }
.is-large.wc-block-cart,
.wp-block-woocommerce-checkout.wc-block-checkout { margin-top: 2em; }
.wp-element-button.wc-block-components-button.wc-block-cart__submit-button,
.wp-element-button.wc-block-components-button.wc-block-components-checkout-place-order-button { border-radius: 6px;
	font-weight: bold;
	transition: background 0.2s ease; }
.wc-block-components-notice-banner .message-inner { padding: 5px; }
.wc-block-components-notice-banner .buttons-wrapper { margin-top: 10px; }
@media (min-width: 993px) {
  .site .wc-block-components-notice-banner { margin-right: auto;
          margin-left: auto; }
  .single-product .site .wc-block-components-notice-banner { margin-top: 0;
          margin-bottom: 0; }
}
@media (max-width: 992px) {
  .wc-block-components-notice-banner { padding-right: 1em;
  	        padding-left: 1em; }
}
.wc-block-product .wc-block-components-product-sale-badge { font-size: 11px; }
.wp-block-woocommerce-cart .wp-block-woocommerce-product-collection h2.wp-block-heading { letter-spacing: 0;
	font-size: 20px; }
.wp-block-woocommerce-cart .wp-block-woocommerce-product-collection h2.wp-block-post-title { letter-spacing: 0; }
.wp-block-woocommerce-checkout .wc-block-components-title.wc-block-components-title { font-size: 22px;
    font-weight: bold;
	letter-spacing: 0; }
.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text { font-weight: bold; }
.wp-block-woocommerce-checkout .wp-element-button.wc-block-components-button.wc-block-components-checkout-place-order-button { font-size: 16px;
    padding: 14px 30px; }


/* ==================== /css/account-basis.css ==================== */
/*
 * account-basis.css - de nulstand van Mijn account
 *
 * 7 regels, woordelijk gelicht uit `basislaag.css` op 27-08-2026: de breedte van de kolommen, de
 * lettergrootte van de inhoud, het vinkje in een formulierrij, en de kopgrootte.
 *
 * WAT HIER STOND EN WEG IS (27-08-2026): veertien regels die het menu van Mijn account opmaakten,
 * uit de tijd van Shoptimizer. Een zwevende kolom van 17,6% breed, randjes onder de items, en zeven
 * regels die per menu-item een icoon als `mask-image` op `a:before` zetten.
 *
 * Die deden allang niets meer. `css/account.css` bouwt het menu helemaal zelf, met eigen
 * icoon-elementen (`.wt-account-nav__icon`), en had zelfs een aparte regel om die `:before` van
 * hierboven uit te zetten. Twee bestanden die elkaar bevochten, met dertien keer `!important` als
 * scheidsrechter.
 *
 * Waarom ze zo lang wonnen: `.woocommerce-MyAccount-navigation ul li a` heeft specificiteit 0,1,3 en
 * dat wint van `.woocommerce-MyAccount-navigation li > a` (0,1,2) in `account.css`, ongeacht welk
 * bestand later laadt.
 *
 * Gemeten na het weghalen: alle berekende eigenschappen van elk element op de vijf accountpagina's,
 * op 1280px en 375px. Zie `verify/README.md` voor hoe je ingelogde pagina's meet zonder in te loggen.
 */

@media (min-width: 993px) {
  .woocommerce-account .content-area { width: 100%; }
  .woocommerce-MyAccount-content { float: right;
            width: 76.4705882353%;
            padding-top: 0.7rem; }
}
.woocommerce-MyAccount-content { font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem); }
.form-row input.woocommerce-form__input-checkbox { float: left;
    margin: 5px 2px 0 0; }
.woocommerce-account h2 { font-size: clamp(1.375rem, 1.1209rem + 0.813vw, 1.625rem); }
.woocommerce-account .woocommerce-info .button { font-size: 14px; }
@media screen and (max-width: 992px) {
  .woocommerce-account .site-content { padding-bottom: 3rem; }
}


/* ==================== /css/forms.css ==================== */
/**
 * Weltechniek — forms styling.
 *
 * Geladen via `wt_forms_page_has_form()`-check in inc/forms.php: alleen op
 * pages die daadwerkelijk een `[wt_form_*]`-shortcode bevatten.
 *
 * Tokens 1-op-1 met homepage.css / header.css / account.css / keuzehulp.css:
 *   navy:        #1e3a6d
 *   navy-hover:  #14284f
 *   groen:       #00bb00 (CTA + success)
 *   groen-hover: #008d00
 *   rood-error:  #d12d2d
 *   tekst-grijs: #4a5868
 *   border:      #e1eaf2
 *   bg-licht:    #f7f8fa
 *
 * Mobile-first; desktop-tweaks via @media (min-width: 700px).
 * BEM-style classes met prefix `wt-form*`. Geen Shoptimizer-class-dependencies.
 */

/* ============================================================ */
/* === Form container                                       === */
/* ============================================================ */
.wt-form {
	background: #fff;
	border: 1px solid #e1eaf2;
	border-radius: 8px;
	padding: 24px;
	max-width: 640px;
	margin: 0 0 32px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .04);
}
@media (min-width: 700px) {
	.wt-form { padding: 32px; }
}

/* ============================================================ */
/* === Field                                                === */
/* ============================================================ */
.wt-form__field {
	margin-bottom: 18px;
}
.wt-form__field:last-of-type {
	margin-bottom: 22px;
}

.wt-form__label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #1e3a6d;
	margin: 0 0 6px;
}
.wt-form__required {
	color: #d12d2d;
	margin-left: 2px;
}

.wt-form__help {
	margin: 0 0 8px;
	font-size: 13px;
	color: #4a5868;
	line-height: 1.45;
}

.wt-form__input {
	width: 100%;
	box-sizing: border-box;
	padding: 11px 14px;
	font-size: 15px;
	line-height: 1.4;
	color: #2c3e50;
	background: #fff;
	border: 1px solid #d6dde6;
	border-radius: 5px;
	transition: border-color .15s ease, box-shadow .15s ease;
	font-family: inherit;
}
.wt-form__input::placeholder {
	color: #98a2b3;
}
.wt-form__input:focus {
	outline: none;
	border-color: #1e3a6d;
	box-shadow: 0 0 0 3px rgba(30, 58, 109, .12);
}

.wt-form__textarea {
	min-height: 120px;
	resize: vertical;
	line-height: 1.5;
}

.wt-form__select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231e3a6d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 40px;
}

/* Error-state per veld */
.wt-form__field--has-error .wt-form__input {
	border-color: #d12d2d;
	box-shadow: 0 0 0 3px rgba(209, 45, 45, .1);
}
.wt-form__error {
	display: none;
	margin: 4px 0 0;
	font-size: 13px;
	color: #d12d2d;
	font-weight: 500;
}
.wt-form__error.is-visible {
	display: block;
}

/* ============================================================ */
/* === Honeypot — verborgen voor mensen, zichtbaar voor bots === */
/* ============================================================ */
.wt-form__honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ============================================================ */
/* === Submit + loading                                     === */
/* ============================================================ */
.wt-form__actions {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 6px;
}

.wt-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #00bb00;
	color: #fff;
	border: 0;
	border-radius: 5px;
	padding: 13px 26px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s ease, transform .05s ease;
	font-family: inherit;
}
.wt-form__submit:hover,
.wt-form__submit:focus-visible {
	background: #008d00;
	outline: none;
}
.wt-form__submit:active {
	transform: translateY(1px);
}
.wt-form__submit:disabled,
.wt-form__submit.is-loading {
	background: #98c098;
	cursor: progress;
}

.wt-form__loading {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid #d6dde6;
	border-top-color: #1e3a6d;
	border-radius: 50%;
	animation: wt-form-spin .8s linear infinite;
}
.wt-form.is-submitting .wt-form__loading {
	display: inline-block;
}
@keyframes wt-form-spin {
	to { transform: rotate(360deg); }
}

/* ============================================================ */
/* === Global messages onder de submit                      === */
/* ============================================================ */
.wt-form__messages {
	margin-top: 14px;
	padding: 0;
	font-size: 14px;
	line-height: 1.45;
}
.wt-form__messages--error {
	padding: 12px 14px;
	background: #fef2f2;
	border-left: 3px solid #d12d2d;
	border-radius: 4px;
	color: #8a1c1c;
}

/* ============================================================ */
/* === Success state (vervangt form-content na submit)      === */
/* ============================================================ */
.wt-form--success {
	background: #fff;
	border-color: #c8e6c8;
}
.wt-form__success {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 8px 0;
}
.wt-form__success-icon {
	color: #00bb00;
	margin-bottom: 12px;
}
.wt-form__success-text {
	margin: 0 0 18px;
	font-size: 16px;
	line-height: 1.5;
	color: #2c3e50;
	max-width: 460px;
}
.wt-form__again {
	background: transparent;
	color: #1e3a6d;
	border: 1px solid #1e3a6d;
	border-radius: 5px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
	font-family: inherit;
}
.wt-form__again:hover,
.wt-form__again:focus-visible {
	background: #1e3a6d;
	color: #fff;
	outline: none;
}

/* ============================================================ */
/* === Extra veld-types (B2B-form): sectie-kop, half, radio, checkbox === */
/* ============================================================ */

/* Sectie-kop binnen het formulier */
.wt-form__section {
	font-size: 16px;
	font-weight: 700;
	color: #1e3a6d;
	margin: 26px 0 14px;
	padding-bottom: 8px;
	border-bottom: 1px solid #e1eaf2;
}
.wt-form__section:first-child { margin-top: 0; }

/* Half-width velden naast elkaar (desktop). Form wordt flex-wrap;
   alle directe children vullen standaard de volle breedte, alleen
   --half wordt 50%. Single-column forms blijven identiek. */
@media (min-width: 560px) {
	.wt-form { display: flex; flex-wrap: wrap; gap: 0 18px; align-content: flex-start; }
	.wt-form > * { flex: 0 0 100%; }
	.wt-form__field { flex: 0 0 100%; }
	.wt-form__field--half { flex: 1 1 calc(50% - 9px); }
}

/* Radio-groep (aanhef) */
.wt-form__radio-group { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-top: 2px; }
.wt-form__radio { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; color: #2c3e50; cursor: pointer; font-weight: 400; }
.wt-form__radio input { margin: 0; width: 16px; height: 16px; accent-color: #1e3a6d; cursor: pointer; }

/* Enkele checkbox (nieuwsbrief-consent) */
.wt-form__field--checkbox { margin-top: 4px; }
.wt-form__checkbox { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: #4a5868; line-height: 1.45; cursor: pointer; font-weight: 400; }
.wt-form__checkbox input { margin: 2px 0 0; width: 17px; height: 17px; flex: 0 0 auto; accent-color: #1e3a6d; cursor: pointer; }

/* ============================================================ */
/* === Checkbox met info-tooltip (1:1 als account-registratie) === */
/* ============================================================ */
.wt-form__field--checkbox{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:4px}
.wt-form__field--checkbox .wt-form__checkbox{align-items:center}
.wt-form__field--checkbox .wt-form__error{flex-basis:100%}
.wt-form__field--checkbox .wt-tooltip{transform:none}

/* wt-tooltip (gekopieerd uit account.css zodat het ook op form-pagina's werkt) */
.wt-tooltip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0 0 0 4px;padding:0;background:transparent;border:0;cursor:help;color:#9ca3af;vertical-align:middle;transition:color .15s ease;-webkit-tap-highlight-color:transparent}
.wt-tooltip:hover,.wt-tooltip:focus-visible{color:#1e3a6d;outline:none}
.wt-tooltip svg{width:16px;height:16px;pointer-events:none}
.wt-tooltip__bubble{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:12px 14px;font-size:13px;font-weight:400;color:#4b5563;width:280px;max-width:calc(100vw - 32px);line-height:1.45;box-shadow:0 10px 28px rgba(0,0,0,.12),0 3px 8px rgba(0,0,0,.06);opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;z-index:100;text-align:left}
.wt-tooltip__bubble::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:7px solid transparent;border-top-color:#fff;filter:drop-shadow(0 1px 0 #e5e7eb)}
.wt-tooltip:hover .wt-tooltip__bubble,.wt-tooltip:focus-visible .wt-tooltip__bubble,.wt-tooltip.is-active .wt-tooltip__bubble{opacity:1;visibility:visible}

/* nieuwsbrief-checkbox: tekst minimaal omlaag voor perfecte uitlijning met checkbox */
.wt-form__field--checkbox .wt-form__checkbox span{position:relative;top:1px}

/* ============================================================ */
/* === Variant: inline (compact, voor smalle kolommen)      === */
/* Gebruikt door het nieuwsbriefformulier in de footer. Het kale */
/* kaartje van .wt-form (wit vlak, rand, schaduw, padding) hoort */
/* daar niet, want het staat al in een gekleurde kolom.          */
/* ============================================================ */
.wt-form--inline {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	max-width: 100%;
}
.wt-form--inline .wt-form__field,
.wt-form--inline .wt-form__field:last-of-type {
	margin-bottom: 10px;
}
.wt-form--inline .wt-form__actions {
	margin-top: 0;
}
.wt-form--inline .wt-form__submit {
	width: 100%;
	padding: 12px 20px;
}
.wt-form--inline .wt-form__messages {
	margin-top: 10px;
}
/* Bevestiging is hier één regel tekst; het grote vinkje en de
   "nog een bericht"-knop van de paginaformulieren passen niet in
   een footerkolom. */
.wt-form--inline .wt-form__success {
	padding: 0;
	text-align: left;
}
.wt-form--inline .wt-form__success-icon {
	display: none;
}
.wt-form--inline .wt-form__again {
	display: none;
}
/* Na een geslaagde submit krijgt het form er .wt-form--success bij, dat verderop
   een wit vlak met groene rand tekent. Hier expliciet terugdraaien, anders
   verschijnt dat vlak alsnog in de footerkolom. */
.wt-form--inline.wt-form--success {
	background: none;
	border: 0;
}

/* Label alleen voor schermlezers (visueel weg, wel voorleesbaar). */
.wt-form__label--sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}


/* ==================== /css/zijbalk-filters.css ==================== */
/*
 * Filters in de zijbalk van het productarchief.
 *
 * De actieve-filter-chips, de lijstjes met aantallen en de vinkjes. Het uiterlijk van de filterLADE
 * (de knop en het paneel op mobiel) staat NIET hier maar in `filter-flyout.css`; dat is op 13-05-2026
 * gesplitst omdat het twee verschillende dingen zijn: dit is de inhoud, dat is de verpakking.
 *
 * Was onderdeel van style.css tot 28-08-2026.
 */

/* === 2. SIDEBAR FILTERS                                    === */
/* ============================================================ */

/*** Active filters ***/
.widget_layered_nav_filters .chosen a {
  align-items: center;
  color: inherit !important;
  display: flex;
}

.widget_layered_nav_filters .chosen a::before {
    background: #1e3a6d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' fill='%23FFFFFF' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E") no-repeat center center;
    background-size: 9px;
    border: 1px solid #1e3a6d;
    border-radius: 2px;
    content: "";
    display: flex;
    flex-shrink: 0;
    height: 12px;
    width: 12px;
    margin-right: 8px;
    margin-top: 0px;
}

/*** Widget container ***/
.woocommerce-widget-layered-nav .show-more {
  cursor: pointer;
  color: #1e3a6d;
  margin-top: 10px;
  font-size: 0.9rem;
  font-weight: 500;
}

/*** Not selected ***/
li.woocommerce-widget-layered-nav-list__item.wc-layered-nav-term a {
  color: inherit !important;
  display: flex;
}

.woocommerce-widget-layered-nav-list__item.wc-layered-nav-term a::before {
  border: 1px solid #E2E2E2;
  border-radius: 2px;
  content: "";
  display: flex;
  float: left;
  height: 12px;
  margin-right: 8px;
  margin-top: 4px;
  max-width: 12px;
  min-width: 12px;
  width: 12px;
}

@media all and (min-width: 768px) {
  .woocommerce-widget-layered-nav-list__item.wc-layered-nav-term a:hover::before {
    background: #1e3a6d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' fill='%23FFFFFF' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");
    border-color: #1e3a6d;
  }
}

/*** Selected ***/
.woocommerce-widget-layered-nav-list__item.wc-layered-nav-term.chosen a::before {
  background: #1e3a6d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' fill='%23FFFFFF' viewBox='0 0 512 512'%3E%3Cpath d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");
  background-size: 9px;
  background-position: center center;
  background-repeat: no-repeat;
  border-color: #1e3a6d;
}

/* Remove icon in li nav */
.widget_layered_nav ul li {
	padding-left: 0px;
}
.widget_layered_nav ul li:before {
	content: none;
}

/* Filter UX styling is verhuisd naar /css/filter-flyout.css (2026-05-13) */


/* ==================== /css/merkenpagina.css ==================== */
/*
 * De merkenoverzichtspagina: het alfabet-navigatiebalkje en het raster met logo's.
 *
 * Alleen de overzichtspagina /merken/. Een losse merkpagina (/merk/<naam>/) is een gewoon
 * productarchief en gebruikt `plp.css`.
 *
 * Was onderdeel van style.css tot 28-08-2026.
 */

/* === 13. MERKENPAGINA                                      === */
/* ============================================================ */

.brand-grid-wrapper {
  margin: 0 auto;
}
.brand-nav {
  text-align: left;
  margin-bottom: 30px;
  flex-wrap: wrap;
}
.brand-nav a {
  display: inline-block;
  margin: 4px 4px 4px 0;
  padding: 8px 12px;
  background: #f7f8fa;
  color: #1e3a6d;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 600;
  font-size: 14px;
  transition: background 0.2s ease;
}
.brand-nav a:hover {
  background: #1a325e;
  color: #fff;
}
.brand-grid-wrapper h2 {
  font-size: 25px;
  padding-bottom: 6px;
  margin-top: 50px;
  margin-bottom: 10px;
  text-transform: uppercase;
  color: #1a325e;
}
.brand-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 40px;
  justify-content: flex-start;
}
a.brand-item {
  display: block;
  flex: 0 0 calc(20% - 20px);
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #e2e2e2;
  border-radius: 8px;
  text-align: center;
  padding: 25px 15px;
  transition: box-shadow 0.2s ease;
  text-decoration: none;
  min-height: 160px;
}
a.brand-item:hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}
.brand-thumb {
  aspect-ratio: 8 / 3;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  overflow: hidden;
  background: #fff;
}
.brand-thumb img {
  width: 100% !important;
  height: auto !important;
  max-width: 70%;
  max-height: 70%;
  object-fit: contain;
  display: block;
}
.brand-name {
  font-size: 14px;
  font-weight: 500;
  color: #333;
  margin: 0;
}
@media (max-width: 1024px) {
  a.brand-item {
    flex: 0 0 calc(33.333% - 20px);
  }
}
@media (max-width: 600px) {
  a.brand-item {
    flex: 0 0 calc(50% - 20px);
  }
}


/* ==================== /css/keuzehulp-banner.css ==================== */
/*
 * De keuzehulp-banner: het blok "Niet zeker welke ... je nodig hebt?" op categorie- en
 * productpagina's.
 *
 * ⚠️ Niet te verwarren met `keuzehulp.css`, dat is de opmaak van de keuzehulp-pagina's zelf. Deze
 * banner verwijst er alleen naar.
 *
 * Was onderdeel van style.css tot 28-08-2026.
 */

/* === 15. KEUZEHULPEN                                       === */
/* ============================================================ */
/* Banner bovenaan categoriepagina (link naar de keuzehulp-pagina) */
.wel-keuzehulp-banner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 18px 0 28px;
	padding: 18px 22px;
	background: #1e3a6d;
	border-radius: 5px;
	color: #fff;
	text-decoration: none !important;
	transition: background .15s ease;
}
.wel-keuzehulp-banner:hover,
.wel-keuzehulp-banner:focus-visible {
	background: #14284f;
	color: #fff;
	text-decoration: none !important;
}
/* Sterretje voor de knoptekst (Lucide sparkles uit inc/icons.php). De set levert SVG's van 24px;
 * hier 18px, gelijk aan het winkelwagen-icoon op de koopknoppen. `flex:none` zodat het nooit
 * meekrimpt als de knoptekst lang is. */
.wel-keuzehulp-banner__icoon {
	flex: none;
	display: inline-flex;
	align-items: center;
}
/* 16px: naast tekst van 14,5px is 18px net te veel — dan leest het sterretje als het onderwerp en de
 * tekst als bijschrift. De ruimte ernaast komt van de `gap` op de knop, niet van een marge hier. */
.wel-keuzehulp-banner__icoon svg {
	display: block;
	width: 16px;
	height: 16px;
	stroke-width: 1.9;
}

.wel-keuzehulp-banner__text {
	flex: 1 1 auto;
	min-width: 0;
}
.wel-keuzehulp-banner__title {
	display: block;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
}
.wel-keuzehulp-banner__subtitle {
	display: block;
	margin-top: 2px;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
	color: #ffffffcc;
}
/* Wit met navy tekst, niet groen (ontwerp).
 *
 * Groen is op deze site de kleur van de koopactie: "In winkelwagen" op de productpagina, op elke
 * kaart en in de zwevende balk. De keuzehulp is geen koopactie maar hulp bij twijfel, en een groene
 * knop zet die twee naast elkaar alsof ze hetzelfde gewicht hebben. Op de productpagina zouden er
 * bovendien vijf groene dingen tegelijk staan — vinkjes, levertijd, koopknop, zwevende balk én deze
 * knop — en dan zegt groen niets meer.
 *
 * Wit werkt hier ook zonder tweede kleur: de band is al navy, dus een wit vlak springt er vanzelf
 * uit. Bij hover keert hij om naar een lege knop met witte rand, zoals het ontwerp.
 *
 * `inline-flex` is nodig voor het sterretje: als blok-span staat dat niet op de tekstregel maar
 * eroverheen. Met `align-items: center` en een gap staat het altijd netjes naast de tekst. */
.wel-keuzehulp-banner__cta {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 12px 20px;
	background: #fff;
	border: 1.5px solid #fff;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 800;
	line-height: 1;
	color: #1e3a6d;
	white-space: nowrap;
	transition: background .15s ease, color .15s ease;
}
.wel-keuzehulp-banner:hover .wel-keuzehulp-banner__cta,
.wel-keuzehulp-banner:focus-visible .wel-keuzehulp-banner__cta {
	background: transparent;
	color: #fff;
}
/* Mobiel & tablet */
@media (max-width: 1023px) {
	.wel-keuzehulp-banner {
		flex-wrap: wrap;
		margin: 18px 0 32px;
		padding: 16px 18px;
		gap: 12px;
	}
	.wel-keuzehulp-banner__title {
		font-size: 15px;
	}
	.wel-keuzehulp-banner__subtitle {
		font-size: 13px;
	}
	.wel-keuzehulp-banner__cta {
		width: 100%;
		text-align: center;
	}
}
/* Modifier voor de banner op productpagina's. Twee dingen specifiek voor
   de productcontext:
   1) `max-width: 1301px` matcht de echte content-breedte (H2 "Anderen
      bekeken ook" en de tabs zitten op 1301px). De hook
      `woocommerce_after_single_product_summary` plaatst 'm in een
      full-width `.related-wrapper` (1512px); zonder constraint zou 'ie
      edge-to-edge gaan.
   2) `margin-top: 0` voorkomt margin-collapse-through: de standaard
      18px top-margin van de banner bubbelt anders door de `<section>`
      heen en maakt een grijze gap zichtbaar (col-full's `#F7F8FA` bg
      tussen de tabs-wrapper en de related-wrapper). */
.wel-keuzehulp-banner--product {
	max-width: 1301px;
	margin: 0 auto 28px;
}


/* ==================== /css/faq-accordeon.css ==================== */
/*
 * Uitklapblokken op inhoudspagina's, gebouwd op het native `<details>`-element.
 *
 * Geen JavaScript: openen en sluiten doet de browser zelf. Dat is de reden dat de oude
 * `.faq-question`/`.faq-answer`-opmaak op 28-08-2026 kon vervallen; die had wel een script nodig.
 * Het grootste onderdeel van wat ooit `style.css` was.
 *
 * Was onderdeel van style.css tot 28-08-2026.
 */

/* === 16. FAQ-ACCORDEON (native <details>, geen JS)         === */
/* Vervangt de oude Elementor toggle-widget op klantenservice- */
/* pages (Bestellen/Contact/Retourneren). Native, geen JS.     */
/* ============================================================ */
.wp-block-details {
	border: 1px solid #e1eaf2;
	border-radius: 8px;
	margin: 0 0 12px;
	background: #fff;
	overflow: hidden;
}
.wp-block-details > summary {
	list-style: none;
	cursor: pointer;
	padding: 16px 48px 16px 18px;
	position: relative;
	font-size: 17px;
	font-weight: 700;
	color: #1e3a6d;
	background: #f7f8fa;
	transition: background-color .15s ease;
	user-select: none;
}
.wp-block-details > summary:hover,
.wp-block-details > summary:focus-visible {
	background: #eef2f9;
	outline: none;
}
.wp-block-details > summary::-webkit-details-marker { display: none; }
/* +/- indicator rechts */
.wp-block-details > summary::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 11px;
	height: 11px;
	margin-top: -6px;
	border-right: 2px solid #1e3a6d;
	border-bottom: 2px solid #1e3a6d;
	transform: rotate(45deg);
	transition: transform .2s ease;
}
.wp-block-details[open] > summary::after {
	transform: rotate(-135deg);
}
.wp-block-details[open] > summary {
	border-bottom: 1px solid #e1eaf2;
}
/* Content-padding (alles behalve de summary) */
.wp-block-details > :not(summary) {
	padding-left: 18px;
	padding-right: 18px;
}
.wp-block-details > :not(summary):first-of-type { padding-top: 16px; }
.wp-block-details > :not(summary):last-child { padding-bottom: 18px; }
@media (prefers-reduced-motion: reduce) {
	.wp-block-details > summary::after { transition: none; }
}

/* Fix: ruimte onder laatste accordion-item vóór de footer */
.entry-content > .wp-block-details:last-child { margin-bottom: 48px; }

/* Fix: formulier ín een accordion-item heeft geen eigen card-styling nodig
   (de accordion levert al border + padding) */
.wp-block-details .wt-form {
	border: 0;
	box-shadow: none;
	margin: 0;
	max-width: none;
	background: transparent;
	/* Lijn het formulier uit met de tekst in het accordion-item (18px),
	   alleen de card-styling (border/shadow/bg) is weg. */
	padding: 4px 18px 12px;
}

/* ============================================================ */
/* === Klantenservice-hub (overzichtspagina 1002)          === */
/* ============================================================ */
.wt-ks-hub {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 8px 0 48px;
}
.wt-ks-hub > * { max-width: none; margin-block: 0; }
.wt-ks-hub__card {
	border: 1px solid #e1eaf2;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}
.wt-ks-hub__card > .wp-block-heading {
	background: #f7f8fa;
	margin: 0;
	padding: 15px 18px;
	font-size: 18px;
	font-weight: 700;
	color: #1e3a6d;
	border-bottom: 1px solid #e1eaf2;
}
.wt-ks-hub__card ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.wt-ks-hub__card li {
	margin: 0;
	border-bottom: 1px solid #eef2f9;
}
.wt-ks-hub__card li:last-child { border-bottom: 0; }
.wt-ks-hub__card li a {
	display: block;
	padding: 11px 18px;
	color: #2c3e50;
	text-decoration: none;
	font-size: 15px;
	transition: background-color .12s ease, color .12s ease;
}
.wt-ks-hub__card li a:hover,
.wt-ks-hub__card li a:focus-visible {
	background: #f7f8fa;
	color: #1e3a6d;
}
@media (max-width: 1024px) { .wt-ks-hub { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .wt-ks-hub { grid-template-columns: 1fr; } }
/* Deeplink-doelen (accordion-items) niet onder de sticky header */
.wp-block-details[id] { scroll-margin-top: 100px; }


/* ===== Content-pages (Elementor-vrij, fullwidth-template) — 2026-06-04 ===== */
/* Ruimte boven de footer (geldt ook voor klantenservice-pages) */
.page-template-template-fullwidth .site-main{padding-bottom:40px}
/* Juridische pages (AV 33761, Disclaimer 69363): navy koppen + kop-spacing */
.page-id-33761 .entry-content h3,
.page-id-69363 .entry-content h3{color:#1e3a6d;margin-top:1.8em;margin-bottom:.5em}
/* laatste content-element: eigen marge weg, zodat de footer-ruimte overal gelijk is (alleen de site-main padding telt) */
.page-template-template-fullwidth .entry-content>*:last-child{margin-bottom:0}






/* ===== Over ons (69226) — Elementor-vrij 2026-06-05 ===== */
/* Belofte-blok in huisstijl (navy-tint i.p.v. oude Bootstrap-alert) */
.wt-belofte{background:#eef2f9;border-left:4px solid #1e3a6d;padding:24px 28px;margin:40px 0;border-radius:6px}
.wt-belofte h3{color:#1e3a6d;margin:0 0 8px}
.wt-belofte p:last-child{margin-bottom:0}
/* Team zig-zag */
.wt-team-lid{padding:60px 0;border-top:1px solid #eee;margin:0}
.wt-team-lid:first-of-type{border-top:0;padding-top:10px}
.wt-team-lid:last-of-type{padding-bottom:0}
.wt-team-lid .wp-block-media-text__media img{border-radius:50%;max-width:170px;width:100%;height:auto;display:block;margin:0 auto}
.wt-team-naam{display:inline-block;background:#1e3a6d;color:#fff;font-weight:600;padding:8px 16px;border-radius:4px;margin:0 0 12px}
.wt-team-lid h3{color:#1e3a6d;margin:0 0 10px}
/* tekst uitlijnen met wrapper-rand (WP media-text 8% padding overrulen), gap naar foto behouden */
.wt-team-lid .wp-block-media-text__content{padding:0 0 0 40px}
.wt-team-lid.has-media-on-the-right .wp-block-media-text__content{padding:0 40px 0 0}
/* mobiel (gestapeld): tekst links uitlijnen, foto links + ruimte tot de naam */
@media (max-width:600px){
.wt-team-lid .wp-block-media-text__content,.wt-team-lid.has-media-on-the-right .wp-block-media-text__content{padding:0}
.wt-team-lid .wp-block-media-text__media img{margin:0 0 18px}
}

/* ===== Zakelijke klant worden (49556) — Elementor-vrij 2026-06-05 ===== */
/* Hero-knoppen */
.wt-zk-hero-btns{margin:18px 0 8px;gap:10px 18px;align-items:center}
.wt-zk-btn-primary .wp-block-button__link{color:#fff;font-weight:700;padding:13px 26px;border-radius:5px}
.wt-zk-btn-ghost .wp-block-button__link{background:transparent;color:#00bb00;font-weight:600;padding:13px 8px}
.wt-zk-btn-ghost .wp-block-button__link:hover{color:#008d00;text-decoration:underline}

/* 2-koloms: gap + sidebar bovenaan uitlijnen */
.wt-zk-cols{gap:48px;align-items:flex-start}
@media(max-width:781px){.wt-zk-cols{gap:40px}}

/* 3 stappen */
.wt-zk-steps{margin:0 0 28px}
.wt-zk-step{display:flex;gap:14px;align-items:flex-start;margin:0 0 18px}
.wt-zk-step__num{flex:0 0 auto;width:28px;height:28px;line-height:28px;text-align:center;border-radius:50%;background:#00bb00;color:#fff;font-weight:700;font-size:14px}
.wt-zk-step__body h3{margin:2px 0 4px;font-size:17px;color:#1e3a6d}
.wt-zk-step__body p{margin:0;color:#4a5868}

/* Mike-blok (card) */
.wt-zk-mike{display:flex;gap:20px;align-items:flex-start;background:#f7f8fa;border:1px solid #e1eaf2;border-radius:10px;padding:22px;margin:8px 0 36px}
.wt-zk-mike__img{flex:0 0 auto;width:96px;height:96px;border-radius:50%;object-fit:cover}
.wt-zk-mike__text h3{margin:0 0 8px;color:#1e3a6d;font-size:17px}
.wt-zk-mike__text p{margin:0 0 10px;color:#4a5868}
.wt-zk-mike__text p:last-child{margin-bottom:0}
@media(max-width:480px){.wt-zk-mike{flex-direction:column;align-items:center;text-align:center}}

/* Voordelen-sidebar (card) */
.wt-zk-voordelen{background:#f7f8fa;border:1px solid #e1eaf2;border-radius:10px;padding:24px 26px;scroll-margin-top:100px}
.wt-zk-voordelen > h2:first-child{margin-top:0;color:#1e3a6d}
.wt-zk-usps{list-style:none;margin:18px 0 0;padding:0}
.wt-zk-usps li{display:flex;gap:11px;align-items:flex-start;margin:0 0 16px;line-height:1.45}
.wt-zk-usps li:last-child{margin-bottom:0}
.wt-zk-usp__icon{flex:0 0 auto;margin-top:1px}
.wt-zk-usps strong{color:#1e3a6d}
.wt-zk-reviews{margin-top:22px;padding-top:20px;border-top:1px solid #e1eaf2}

/* ZK fijnafstelling 5 juni */
.wt-zk-cols .wt-form{max-width:none}                                  /* form vult de kolom (lijnt uit met rest) */
.wt-zk-cols .wp-block-column:first-child > h2:first-of-type{margin-top:36px;margin-bottom:24px}  /* lucht rond "3 stappen" */

/* ZK fijnafstelling 2 (5 juni) */
/* 1. Intro net zo breed als de linkerkolom (62% van columns minus gap) op desktop */
@media(min-width:782px){
.page-id-49556 .entry-content > p:first-of-type{max-width:calc((100% - 48px) * 0.62)}
}
/* 3. Koppen in hoofdkolom: genoeg ruimte onder de titel (niet op de tekst plakken) */
.wt-zk-cols .wp-block-column:first-child > h2{margin-bottom:24px}

/* ZK fijnafstelling 3 (5 juni) */
.wt-zk-btn-primary .wp-block-button__link{transition:background-color .15s ease}
.wt-zk-btn-primary .wp-block-button__link:hover,.wt-zk-btn-primary .wp-block-button__link:focus-visible{background-color:#008d00 !important}


/* ==================== /css/artikeltabellen.css ==================== */
/*
 * Tabellen in blogartikelen.
 *
 * Inclusief de mobiele weergave, waarbij elke cel zijn kolomnaam ervoor krijgt via
 * `td[data-label]::before`. Vandaar dat die regel er alleen uitziet alsof hij ongebruikt is: hij werkt
 * alleen op smalle schermen.
 *
 * Was onderdeel van style.css tot 28-08-2026.
 */

/* === 17. TABELLEN IN ARTIKELEN                             === */
/* Globale opmaak voor <table> binnen een blogbericht.         */
/*                                                             */
/* Vervangt de losse <style>-blokken die eerder per bericht in */
/* de tekst stonden. Die gebruikten kale selectors (table, th, */
/* td) en raakten daardoor ELKE tabel op de pagina, inclusief  */
/* het lettertype (Arial). Bewust gescoped op                  */
/* `.wt-single__content` (alleen single.php) en niet op        */
/* `.entry-content`: dat laatste staat ook op product- en      */
/* klantenservicepagina's, waar WooCommerce z'n eigen tabellen */
/* heeft.                                                      */
/*                                                             */
/* Mobiel (<=768px): elke rij wordt een kaartje. Het kolomkopje*/
/* komt uit `data-label` op de cel, dus elke <td> hoort die te */
/* hebben. Ontbreekt hij, dan valt alleen het label weg en     */
/* blijft de waarde gewoon leesbaar.                           */
/* ============================================================ */
.wt-single__content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 28px;
	background: #fff;
	font-size: 15.5px;
	line-height: 1.5;
}
.wt-single__content table th,
.wt-single__content table td {
	padding: 11px 14px;
	border: 1px solid #e1eaf2;
	text-align: left;
	vertical-align: top;
}
.wt-single__content table th {
	background: #f7f8fa;
	color: #1e3a6d;
	font-weight: 700;
}
.wt-single__content table tbody tr:nth-child(even) td {
	background: #ffffff;
}
.wt-single__content table a {
	color: #1e3a6d;
	font-weight: 600;
}

@media (max-width: 768px) {
	.wt-single__content table,
	.wt-single__content table tbody,
	.wt-single__content table tr,
	.wt-single__content table td {
		display: block;
		width: 100%;
	}
	/* Koprij verbergen: de kopjes komen terug via data-label. */
	.wt-single__content table thead {
		display: none;
	}
	.wt-single__content table tr {
		margin-bottom: 12px;
		border: 1px solid #e1eaf2;
		border-radius: 8px;
		overflow: hidden;
		background: #fff;
	}
	.wt-single__content table td {
		border: none;
		border-bottom: 1px solid #eef2f9;
		padding: 10px 14px;
	}
	.wt-single__content table tr td:last-child {
		border-bottom: none;
	}
	/* Zebra uit op mobiel: de kaartjes doen het scheidingswerk al. */
	.wt-single__content table tbody tr:nth-child(even) td {
		background: #fff;
	}
	.wt-single__content table td[data-label]::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 3px;
		font-size: 13px;
		font-weight: 700;
		color: #1e3a6d;
	}
}

/* --- Tabel als Gutenberg-blok ---------------------------------------------
 * Een tabel die als blok is geplaatst zit in <figure class="wp-block-table">.
 * Core levert daar eigen CSS bij: een lijn van 3px onder de koprij, en randen
 * en padding op de cellen. Onze eigen regels hierboven winnen op de cellen
 * (hogere specificiteit), maar die 3px-lijn zit op <thead> en zou een tabel in
 * blokvorm er anders uit laten zien dan een kale <table>. Daarom hier
 * neutraliseren, zodat beide vormen identiek zijn.
 * -------------------------------------------------------------------------- */
.wt-single__content .wp-block-table {
	margin: 0 0 28px;
}
.wt-single__content .wp-block-table thead {
	border-bottom: 0;
}
.wt-single__content .wp-block-table tfoot {
	border-top: 0;
}
.wt-single__content .wp-block-table table {
	margin-bottom: 0;
}


/* ==================== /css/winkel-overig.css ==================== */
/*
 * Wat er van `style.css` overbleef: losse regels die nergens een eigen plek hebben.
 *
 * Dit is bewust één bestand en geen negen bestandjes van één regel. Elke regel hoort op termijn naar
 * de stylesheet van zijn eigen pagina te verhuizen (de kopjes hieronder zeggen welke), maar dat
 * verandert óók op welke pagina's hij laadt, en dat moet per regel gemeten worden. Zolang dat niet is
 * gebeurd staat het hier, en laadt het net als voorheen overal.
 *
 * Er stond veel meer in: op 28-08-2026 zijn 63 dode regels verwijderd, restanten van Shoptimizer en
 * CommerceKit. Wat hier staat is nagemeten en wordt echt gebruikt.
 *
 * Was onderdeel van style.css tot 28-08-2026.
 */

/* === 1. GLOBAAL                                            === */
/* ============================================================ */

/* Voorkom horizontale scroll */
.site {
    overflow-x: clip;
}

/* strange cross under categories */
@media (min-width: 993px) {
    .close-drawer {
        display: none;
    }
}

/* Badges styling */

/* === 6. PRODUCT ARCHIEF                                    === */
/* ============================================================ */

/* --- Prijzen --- */
.woocommerce-price-suffix {
	color: #747474;
	font-weight: 400;
	font-size: 10px;
}

/* Prijzen op homepage */

/* --- Productkaart --- */

/* Flexbox layout */

   
   

/* Titel */
   

/* Rating */
  
   

/* Prijs */
   

/* Levertijdtekst */
  
   

/* Uitverkocht */
   

/* Knop volledige breedte */


/* Discount label */
   

/* Categorie button */



/* --- Kennisbank slider --- */

/* Subcategorie-carrousel: CSS VERWIJDERD 2026-08-23 samen met de PHP die de markup
   .bv-subcat-carousel rendeerde. De huidige carrousel is .wt-subcat, opgemaakt in
   css/plp.css. */

/* Floating filterknop styling is verhuisd naar /css/filter-flyout.css (2026-05-13) */

/* === 7. ENKEL PRODUCT                                      === */
/* ============================================================ */

/* Prijs aanbiedingsbadge verbergen */

/* Prijs doorgestreept */

/* Discount label */

/* Stock */

/* USP fieldset */

/* Notitie in product */
.productnotitie {
	background-color: #d9edf7;
	padding: 15px;
	border-left: solid 5px #bcdff1;
	color: #31708f;
}

/* --- Tabs: Specificaties --- */

/* --- Tabs: Documentatie --- */

/* --- Tabs: FAQ --- */

/* --- Reviews --- */

/* === 8. UPSELLS & CROSS-SELLS                              === */
/* ============================================================ */

/* Verberg schaduw */
   
    

/* Cross-sells op mobiel */

/* === 9. WINKELWAGEN PAGINA                                 === */
/* ============================================================ */

/* Producttitels in winkelwagen */
.woocommerce-cart-form a {
	color: inherit;
	font-weight: 400;
}

/* Verberg slotje-icoon */

/* Toeslag kleur */
.fee {
	background: #def5e0;
}

/* === 10. AFREKENEN PAGINA                                  === */
/* ============================================================ */

/* Verzendadres label */

/* Verberg backorder notificatie */
.backorder_notification {
	display: none;
}

/* Checkout progress bar */

/* === 11. MIJN ACCOUNT                                      === */
/* ============================================================ */

.woocommerce-account .woocommerce-info .button {
	background: none!important;
}
.woocommerce-account .woocommerce-info .button:hover {
	background: none!important;
	transform: scale(1.1);
	transition: transform 0.3s ease;
}

@media (max-width: 736px) {
	.woocommerce-account .woocommerce-info {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
		padding: 1em;
	}
	.woocommerce-account .woocommerce-info .button {
		align-self: flex-start;
		width: auto;
		border: none;
		padding: 0em;
	}
	.woocommerce-account .woocommerce-info .button:hover {
		align-self: flex-start;
		width: auto;
		border: none;
		padding: 0em;
	}
}

/* === 12. FOOTER                                            === */
/* ============================================================ */

/* === 14. WIDGETS & OVERIG                                  === */
/* ============================================================ */

/* Snellinks (mobiel) */


/* ==================== /css/account.css ==================== */
/**
 * Weltechniek — Account pagina's
 *
 * Styling voor:
 * - /account/             (logged-out: 2-koloms login + register CTA)
 * - /account/registreren/ (register form + voordelen)
 * - /account/<*>/          (ingelogd dashboard, orders, facturen, kluslijst, etc.)
 *
 * Wordt alleen geladen op deze pagina's (zie functions.php → wt_account_enqueue).
 *
 * Versie 1.5.61 — Lost-password / reset / confirmation: WC page-title context-gevoelig ("Wachtwoord vergeten" / "Nieuw wachtwoord instellen"), eigen .wt-page-header H2 verwijderd (dubbel). Plus 64px bottom-margin op logged-out .wt-section zodat content niet op footer plakt.
 *   Tokens uitgebreid (navy/green/amber/ink scales), grid-layout vervangt
 *   Shoptimizer's float-layout op myaccount, cards: wit + line border +
 *   soft shadow + navy-50 icon-vierkant. KPI Row + Snel geholpen sectie
 *   toegevoegd. B2B upsell card onder sidebar (conditioneel).
 */

/* ============================================================ */
/* 0. TOKENS (account-scope, breidt header.css :root uit)       */
/* ============================================================ */
:root {
	/* Navy scale — --wt-blue is navy-800 */
	--navy-50:  #eef2f9;
	--navy-100: #e1eaf2;
	--navy-200: #c5d2e2;
	--navy-600: #4a6aa0;
	--navy-700: #2c4a82;
	--navy-800: #1E3A6D;

	/* Green scale — --wt-green is green-500 */
	--green-50:  #e8f8e5;
	--green-100: #ccecc5;
	--green-500: #00bb00;
	--green-600: #009900;
	--green-700: #007a00;

	/* Amber */
	--amber-50:  #fff5e0;
	--amber-500: #f59e0b;
	--amber-600: #c2750a;

	/* Red */
	--red-50:  #fdecec;
	--red-500: #dc2626;
	--red-600: #b91c1c;

	/* Ink (text) */
	--ink-900: #0b1f3d;
	--ink-800: #1a2745;
	--ink-700: #344767;
	--ink-600: #4b5e80;
	--ink-500: #6b7b97;
	--ink-400: #8c99b3;
	--ink-300: #b6c0d2;

	/* Surfaces */
	--paper:   #ffffff;
	--paper-2: #f7f8fa;
	--line:    #e1eaf2;
	--line-2:  #eef2f9;
	--line-3:  #cbd5e1;

	/* Radii: 5px op buttons/nav, rest voor cards/badges */
	--r-btn:  5px;
	--r-card: 14px;
	--r-pill: 999px;

	/* Shadows */
	--shadow-sm: 0 1px 2px rgba(11, 31, 61, 0.06);
	--shadow-md: 0 1px 2px rgba(11, 31, 61, 0.04), 0 4px 14px rgba(11, 31, 61, 0.06);
}

/* ============================================================ */
/* 1. PAGINA WRAPPER                                            */
/* ============================================================ */
.wt-account {
	margin: 0 0 48px;
}

/* Wrapper: gebruikt Shoptimizer's .col-full class (op template-niveau)
   voor responsive max-width + auto-margin (== matched met page-title
   en breadcrumb op alle viewports). MAAR: .col-full's eigen padding
   geeft een extra inset op zowel desktop (41.88px) als mobile (16px),
   waardoor kaarten en titel niet uitlijnen.
   We overrulen die padding op ALLE viewports — kaarten en titel komen
   dan beide op X = .col-full-outer-left te staan. */
body .wt-account .wt-account__inner.col-full {
	padding-left: 0;
	padding-right: 0;
}

/* H1 title styling komt van Shoptimizer's .entry-title class
   (matched met /account/ pagina-title op alle viewports — font-size,
   margin, line-height, color allemaal automatisch geërfd). */

/* ============================================================ */
/* 2. GRID (2 kolommen op desktop, stack op mobiel)             */
/* ============================================================ */
.wt-account__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 1024px) {
	.wt-account__grid {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}
}

/* ============================================================ */
/* 3. KAARTEN                                                   */
/* ============================================================ */
.wt-account-card {
	background: #fff;
	border-radius: 8px;
	padding: 28px;
	border: 1px solid #e5e7eb;
}

@media (min-width: 1024px) {
	.wt-account-card {
		padding: 36px;
	}
}

.wt-account-card--cta {
	/* Rechter kolom: zelfde fill + border als de header (.wt-mainrow)
	   zodat "header-stijl" als consistente visuele taal door de site loopt. */
	background: #eef2f9;
	background: var(--wt-blue-soft, #eef2f9);
	border-color: #e5e7eb;
}

/* Specificity boost (.wt-account-card .wt-account-card__title) zodat onze
   22px wint van Shoptimizer's `.woocommerce-account h2 { font-size: clamp(...) }`
   op /account/. Op /account/registreren/ is body geen .woocommerce-account
   en geldt onze regel sowieso; deze scoping zorgt voor consistente 22px
   op beide pagina's. */
.wt-account-card .wt-account-card__title {
	font-size: 22px;
	font-weight: 700;
	color: #1E3A6D;
	color: var(--wt-blue, #1E3A6D);
	margin: 0 0 8px;
	line-height: 1.3;
}

.wt-account-card__lead {
	font-size: 15px;
	line-height: 1.5;
	color: #4b5563;
	margin: 0 0 24px;
}

.wt-account-card__help {
	font-size: 14px;
	line-height: 1.6;
	color: #4b5563;
	/* Subtiele separator boven de help-tekst — gelijke ruimte boven/onder de lijn */
	margin: 28px 0 0;
	padding-top: 28px;
	border-top: 1px solid #dbeafe;
}

.wt-account-card__help a {
	color: #00bb00;
	color: var(--wt-green, #00bb00);
	text-decoration: none;
	font-weight: 600;
}

.wt-account-card__help a:hover {
	text-decoration: underline;
}

/* ============================================================ */
/* 4. FORM ELEMENTS                                             */
/* ============================================================ */
.wt-account-form {
	margin: 0;
}

.wt-form-row {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0 0 16px;
}

.wt-form-row--two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.wt-form-row--remember {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 4px 0 20px;
}

.wt-form-field {
	display: block;
	margin: 0 0 16px;
}

.wt-form-row--two-col .wt-form-field {
	margin: 0;
}

.wt-form-field label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #1E3A6D;
	color: var(--wt-blue, #1E3A6D);
	margin: 0 0 6px;
}

.wt-form-field .required {
	color: #d12e37;
	font-weight: 400;
}

.wt-form-input {
	display: block;
	width: 100%;
	font: inherit;
	font-size: 15px;
	line-height: 1.4;
	color: #111827;
	background: var(--navy-50);
	border: 1px solid var(--line);
	border-radius: 5px;
	padding: 11px 14px;
	/*
	 * Van de 133 !important in dit bestand zijn er op 27-08-2026 acht overgebleven, en dit is er een.
	 * Reden: `formulier-basis.css` zet deze schaduw via `input[type="text"]`, specificiteit (0,1,1), en
	 * dat wint van `.wt-form-input` (0,1,0) ongeacht welk bestand later laadt. Wil je hem echt weg,
	 * verhoog dan de specificiteit hier (`input.wt-form-input`) in plaats van de vlag te schrappen.
	 */
	box-shadow: none !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}

.wt-form-input:hover {
	border-color: var(--line-3);
}

.wt-form-input:focus,
.wt-form-input:focus-visible {
	border-color: var(--wt-blue, #1E3A6D);
	box-shadow: 0 0 0 3px rgba(30, 58, 109, 0.12) !important;
	outline: none;
}

.wt-form-input::placeholder {
	color: #9ca3af;
}

/* Chrome/Safari overschrijven autofilled fields met een lichtblauwe achtergrond.
   `background-color` werkt daar niet tegen — alleen een gigantische inset
   box-shadow forceert onze eigen kleur door de autofill bg heen. */
.wt-form-input:-webkit-autofill,
.wt-form-input:-webkit-autofill:hover,
.wt-form-input:-webkit-autofill:focus,
.wt-form-input:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 1000px var(--navy-50) inset !important;
	box-shadow: 0 0 0 1000px var(--navy-50) inset !important;
	-webkit-text-fill-color: #111827;
	transition: background-color 9999s ease-in-out 0s;
}

/* Wachtwoord met toggle-knop */
.wt-form-input-wrap {
	position: relative;
}

.wt-form-input-wrap .wt-form-input {
	padding-right: 44px;
}

.wt-toggle-password {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	background: transparent;
	border: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #6b7280;
	border-radius: 4px;
	transition: background 0.15s ease, color 0.15s ease;
	padding: 0;
}

.wt-toggle-password:hover {
	color: var(--wt-blue, #1E3A6D);
	background: rgba(30, 58, 109, 0.06);
}

.wt-toggle-password svg {
	width: 20px;
	height: 20px;
}

/* ============================================================ */
/* 5. CHECKBOX (onthouden + nieuwsbrief)                        */
/* ============================================================ */
.wt-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: #4b5563;
	cursor: pointer;
	user-select: none;
}

.wt-checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	cursor: pointer;
	accent-color: var(--wt-blue, #1E3A6D);
}

/* Klaviyo's eigen checkbox-output binnen onze form: zelfde look */
.wt-account-form .woocommerce-form-row {
	margin: 0 0 16px;
	padding: 0;
}

/* Klaviyo newsletter-row: label + tooltip op één regel */
.wt-account-form .wt-newsletter-row {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}

.wt-account-form .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	color: #4b5563;
	cursor: pointer;
	font-weight: 400;
}

.wt-account-form .woocommerce-form__input-checkbox {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	cursor: pointer;
	flex-shrink: 0;
	accent-color: var(--wt-blue, #1E3A6D);
}

/* Tooltip: de component zelf staat in css/forms.css en laadt op élke pagina, dus hij hoeft
   hier niet nog een keer. Wat overblijft is het enige dat op de accountpagina's afwijkt: de
   knop staat er naast labels met een andere regelhoogte, dus twee pixels omhoog en iets meer
   ruimte ernaast. Stond hier tot 28-08-2026 volledig gekopieerd (75 regels, 57 botsingen met
   forms.css). Zie Documenten/design-system.md: geen pagina-specifieke varianten. */
.wt-tooltip {
	margin-left: 6px;
	transform: translateY(-2px);
}

/* ============================================================ */
/* 6. LINKS                                                     */
/* ============================================================ */
.wt-account__lost-password,
.wt-account__login-link a {
	color: #1E3A6D;
	color: var(--wt-blue, #1E3A6D);
	text-decoration: underline;
	font-size: 14px;
	font-weight: 500;
}

.wt-account__lost-password:hover,
.wt-account__login-link a:hover {
	color: #14284F;
}

.wt-account__login-link {
	text-align: center;
	font-size: 14px;
	color: #4b5563;
	margin: 16px 0 0;
}

/* ============================================================ */
/* 7. BUTTONS                                                   */
/* ============================================================ */
.wt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	padding: 14px 22px;
	border: 0;
	border-radius: 5px;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	transition: background 0.15s ease, transform 0.05s ease;
	-webkit-tap-highlight-color: transparent;
}

.wt-btn:active {
	transform: translateY(1px);
}

.wt-btn--full {
	width: 100%;
}

.wt-btn--blue,
.wt-btn--blue:link,
.wt-btn--blue:visited {
	background: var(--wt-blue, #1E3A6D);
	color: #fff;
}

.wt-btn--blue:hover,
.wt-btn--blue:focus-visible {
	background: #14284F;
	color: #fff;
	outline: none;
}

.wt-btn--green,
.wt-btn--green:link,
.wt-btn--green:visited {
	background: var(--wt-green, #00bb00);
	color: #fff;
}

.wt-btn--green:hover,
.wt-btn--green:focus-visible {
	background: var(--wt-green-hover, #008d00);
	color: #fff;
	outline: none;
}

.wt-btn--with-arrow svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* Submit-button: extra ruimte boven (na form-rows) */
.wt-account-form .wt-btn[type="submit"] {
	margin-top: 8px;
}

/* Stacking van de twee CTA-buttons in de rechter kaart */
.wt-account-card--cta .wt-btn + .wt-btn {
	margin-top: 10px;
}

/* ============================================================ */
/* 8. USP-BULLETS (groene check + tekst)                        */
/* ============================================================ */
.wt-account-usps {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wt-account-usps li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	line-height: 1.45;
	color: #1E3A6D;
	color: var(--wt-blue, #1E3A6D);
	margin: 0;
}

.wt-usp-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	background: rgba(0, 187, 0, 0.12);
	border-radius: 50%;
	color: var(--wt-green, #00bb00);
	margin-top: 1px;
}

.wt-usp-check svg {
	width: 14px;
	height: 14px;
	stroke-width: 3;
}

/* ============================================================ */
/* 9. ACCOUNT SIDEBAR NAVIGATION                                */
/* ============================================================ */
/* Verberg Shoptimizer's standaard pseudo-element-iconen — onze
   eigen Lucide-SVG-iconen renderen via .wt-account-nav__icon span. */
.woocommerce-MyAccount-navigation li > a::before,
.woocommerce-MyAccount-navigation li > a::after {
	display: none;
	content: none;
}

/* Algemene icon-styling (geldt op alle viewports) */
.woocommerce-MyAccount-navigation .wt-account-nav__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: currentColor;
}

.woocommerce-MyAccount-navigation .wt-account-nav__icon svg {
	width: 18px;
	height: 18px;
}

/* ─── Account-container uitlijnen met header ───
   Header `.wrapper` gebruikt:
     max-width: calc(var(--wrapper-max) + 2 * var(--wrapper-padding))
     padding: var(--wrapper-padding)
     box-sizing: border-box
   = inner content altijd `--wrapper-max` (1301px) wide.
   Shoptimizer's `.col-full` heeft eigen padding (41.88px) + content-box
   sizing, waardoor X-positie van content NIET matched met header. Hier
   gebruiken we exact dezelfde formula voor perfect alignment. */
.woocommerce-account .wt-archief .col-full {
	max-width: calc(var(--wrapper-max) + 2 * var(--wrapper-padding));
	padding-left: var(--wrapper-padding);
	padding-right: var(--wrapper-padding);
	box-sizing: border-box;
	margin-inline: auto;
}

/* ─── Layout: grid vervangt Shoptimizer's float-layout ───
   Shoptimizer's myaccount gebruikt floats (nav left 17.65%, content right
   76.47%, margin-right 5.88%). Voor het nieuwe dashboard-design vervangen
   we dat door een schone CSS grid: 280px sidebar + 1fr content + 28px gap.
   Op mobile valt het terug op flow (één kolom) — sidebar staat boven
   content via CSS-order (nav krijgt order 2 dan).
   Selector scoped op `.col-full > .woocommerce` om cart-widgets in fixed
   drawers ongemoeid te laten. */
/* Sidebar+content grid alleen voor ingelogde gebruikers — op de logged-out
   `/account/` pagina (login + register CTA) is geen sidebar en moet de
   default block-layout gelden zodat content niet 240px naar binnen schuift. */
.woocommerce-account.logged-in .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	margin-top: -4px;
	padding-bottom: 32px;
}

@media (max-width: 1023px) {
	/* Op mobile herorderen we de blokken via flex `order`. Truc: zet
	   `display: contents` op de structuur-wrappers (.wt-account-sidebar,
	   .woocommerce-MyAccount-content, .wt-dashboard) zodat hun inner
	   blokken direct kinderen worden van de outer flex-container. Daarna
	   kunnen we elk blok individueel een order geven.
	   Volgorde: greeting → nav → KPI → orders+recent → snel geholpen
	   geholpen → B2B upsell (helemaal laatst). */
	.woocommerce-account.logged-in .entry-content > .woocommerce {
		display: flex;
		flex-direction: column;
		gap: 16px;
		padding: 0 0 32px;
	}
	.wt-account-sidebar,
	.woocommerce-MyAccount-content,
	.wt-dashboard {
		display: contents !important;
	}
	.wt-dashboard__hero               { order: 1; }
	.woocommerce-MyAccount-navigation { order: 2; }
	.wt-kpi-row                       { order: 3; }
	.wt-dashboard__grid--12           { order: 4; }
	/* Tweede grid--12 (snel geholpen; kluslijst uitgefaseerd) komt na de eerste
	   (orders + recent) via sibling combinator. */
	.wt-dashboard__grid--12 ~ .wt-dashboard__grid--12 { order: 5; }
	/* Op subpagina's (Bestellingen, Facturen, etc.) is er geen .wt-dashboard
	   wrapper — alleen één .wt-section direct in de content. Krijgt order 3
	   zodat 'ie tussen nav (2) en upsell (6) zit. Heeft geen effect op
	   dashboard want .wt-section daar zit in een grid (geen flex-item). */
	.wt-section                       { order: 3; }
	/* Alle directe content-children krijgen order 3 als default — dekt
	   pagina's die nog niet in .wt-section zijn gewrapt (Facturen .wt-facturen,
	   Adresgegevens forms, Accountgegevens forms, etc.). Zonder dit krijgen ze
	   default order 0 en verschijnen ze BOVEN de nav (order 2) op mobile. */
	.woocommerce-MyAccount-content > * { order: 3; }
	.wt-sidebar-upsell                { order: 6; }
	/* Voorkom kruipende horizontal overflow door wide flex/grid-children */
	.wt-section,
	.wt-prod__info {
		min-width: 0;
	}
	/* Forceer cards/sections naar volle breedte op mobile. Flex stretch
	   werkt niet altijd betrouwbaar als min-width: 0 + display: contents
	   in de tree zit; explicit width 100% is de fail-safe. Plus: alle
	   direct content-children (.wt-facturen, forms, etc.) krijgen ook
	   100% zodat subpagina's de volle breedte pakken op tablet (<1024). */
	.wt-kpi-row,
	.wt-kpi,
	.wt-section,
	.woocommerce-MyAccount-content > * {
		width: 100%;
	}
}

/* Reset Shoptimizer's float-layout op myaccount-elementen — grid neemt over.
   Plus padding-top: 0 op content omdat Shoptimizer 11.2px padding-top heeft
   wat de top-alignment met sidebar verstoort (sidebar y=152, section y=163). */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	margin-right: 0;
}
.woocommerce-account .woocommerce-MyAccount-content {
	padding-top: 0;
}

/* ─── Desktop sidebar: wit card-wrapper + transparante nav items ─── */
@media (min-width: 1024px) {

	/* Sidebar outer container = grid-cel (zit in navigation.php wrapper) */
	.wt-account-sidebar {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	/* Nav-wrapper = wit card op zichzelf */
	.woocommerce-MyAccount-navigation {
		background: var(--paper);
		border: 1px solid var(--line);
		border-radius: var(--r-card);
		padding: 12px;
	}

	.woocommerce-MyAccount-navigation ul {
		list-style: none;
		padding: 0;
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: 2px;
	}

	.woocommerce-MyAccount-navigation li {
		list-style: none;
		padding: 0;
		margin: 0;
		border: 0;
		/*
		 * Lettergrootte en position stonden tot 27-08-2026 in `account-basis.css`, overgenomen van
		 * Shoptimizer via `.woocommerce-MyAccount-navigation ul li`. Dat bestand bouwde het menu
		 * niet, het lag er alleen toevallig onder. Nu die regels weg zijn, zet dit bestand ze zelf:
		 * het menu hoort niet af te hangen van de afwezigheid van een ander stylesheet.
		 */
		position: relative;
		font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem);
	}

	/* Nav-link: icon links + label rechts, transparant bg, ink-700 text */
	.woocommerce-MyAccount-navigation li > a {
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 12px;
		border-radius: var(--r-btn);
		font-size: 14px;
		font-weight: 500;
		color: var(--ink-700);
		text-decoration: none;
		background: transparent;
		border: 0;
		transition: background 0.15s ease, color 0.15s ease;
		line-height: 1.4;
	}

	.woocommerce-MyAccount-navigation li > a:hover,
	.woocommerce-MyAccount-navigation li > a:focus-visible {
		background: var(--navy-50);
		color: var(--navy-800);
		outline: none;
	}

	.woocommerce-MyAccount-navigation li.is-active > a {
		background: var(--navy-800);
		color: #fff;
		font-weight: 600;  /* stond in account-basis.css, zie de li-regel hierboven */
	}

	.woocommerce-MyAccount-navigation .wt-account-nav__label {
		flex: 1 1 auto;
	}

	.woocommerce-MyAccount-navigation .wt-account-nav__icon {
		flex: 0 0 18px;
		display: inline-flex;
		justify-content: center;
	}
}

/* ─── B2B Upsell card (sidebar, conditioneel via wt_user_is_b2b) ─── */
.wt-sidebar-upsell {
	background: linear-gradient(180deg, #f4faf6, #f0fdf4);
	border: 1px solid var(--green-100);
	border-radius: var(--r-card);
	padding: 16px;
}

.wt-sidebar-upsell__kicker {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 700;
	color: var(--green-700);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.wt-sidebar-upsell__kicker svg {
	width: 13px;
	height: 13px;
}

.wt-sidebar-upsell__title {
	margin: 8px 0 6px;
	font-size: 15px;
	font-weight: 700;
	color: var(--ink-900);
	line-height: 1.3;
}

.wt-sidebar-upsell__body {
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--ink-600);
	line-height: 1.5;
}

.wt-sidebar-upsell__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 10px 14px;
	background: var(--green-500);
	color: #fff;
	border-radius: var(--r-btn);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.15s ease;
}

.wt-sidebar-upsell__btn:hover,
.wt-sidebar-upsell__btn:focus-visible {
	background: var(--green-600);
	outline: none;
}

.wt-sidebar-upsell__btn svg {
	width: 14px;
	height: 14px;
}

/* ─── Mobile: horizontale scroll-strook met compacte pills ─── */
@media (max-width: 1023px) {
	.woocommerce-MyAccount-navigation {
		/* min-width: 0 + max-width: 100% is de fix voor scrollen binnen
		   een flex-child: zonder min-width:0 expandt de child naar
		   min-content van zijn (wide nowrap) children → geen scroll. */
		min-width: 0;
		max-width: 100%;
		margin: 0 0 8px;
		padding: 0;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.woocommerce-MyAccount-navigation::-webkit-scrollbar {
		display: none;
	}

	.woocommerce-MyAccount-navigation ul {
		list-style: none;
		padding: 4px 0;
		margin: 0;
		display: flex;
		gap: 8px;
		flex-wrap: nowrap;
		white-space: nowrap;
	}

	.woocommerce-MyAccount-navigation li {
		list-style: none;
		padding: 0;
		margin: 0;
		flex: 0 0 auto;
		border: 0;
		/*
		 * Lettergrootte en position stonden tot 27-08-2026 in `account-basis.css`, overgenomen van
		 * Shoptimizer via `.woocommerce-MyAccount-navigation ul li`. Dat bestand bouwde het menu
		 * niet, het lag er alleen toevallig onder. Nu die regels weg zijn, zet dit bestand ze zelf:
		 * het menu hoort niet af te hangen van de afwezigheid van een ander stylesheet.
		 */
		position: relative;
		font-size: clamp(0.875rem, 0.8115rem + 0.2033vw, 0.9375rem);
	}

	.woocommerce-MyAccount-navigation li > a {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		padding: 8px 14px;
		background: #f7f8fa;
		border: 1px solid transparent;
		border-radius: 6px;
		font-size: 13px;
		font-weight: 600;
		color: #4b5563;
		text-decoration: none;
		white-space: nowrap;
		line-height: 1.3;
		transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
	}

	.woocommerce-MyAccount-navigation li.is-active > a {
		background: var(--wt-blue, #1E3A6D);
		color: #fff;
		font-weight: 600;  /* stond in account-basis.css, zie de li-regel hierboven */
	}

	.woocommerce-MyAccount-navigation li > a .wt-account-nav__icon svg {
		width: 14px;
		height: 14px;
	}
}

/* ============================================================ */
/* 10. DASHBOARD (ingelogd /account/) — v1.5.0 redesign         */
/* ============================================================ */

/* Verberg page-title "Mijn account" voor ingelogde gebruikers (dubbelop
   naast de hero greeting). Logged-out blijft de h1 staan boven login. */
body.logged-in.woocommerce-account .entry-header {
	display: none;
}

.wt-dashboard {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

/* ─── Greeting hero ─── */
.wt-dashboard__hero {
	margin: 0;
}

.wt-dashboard__title {
	/* Volgt de site-standaard H1 (Customizer): 30px / 700 / wt-blue / lh 1.2 */
	margin: 0;
	font-size: 30px;
	font-weight: 700;
	color: var(--wt-blue, #1E3A6D);
	letter-spacing: 0;
	line-height: 1.2;
	text-wrap: balance;
}

.wt-dashboard__lede {
	margin: 10px 0 0;
	max-width: 600px;
	font-size: 15px;
	color: var(--ink-600);
	line-height: 1.5;
	text-wrap: pretty;
}

/* ─── KPI Row ─── */
.wt-kpi-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

@media (max-width: 1023px) {
	.wt-kpi-row {
		grid-template-columns: 1fr;
	}
}

.wt-kpi {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	box-shadow: var(--shadow-sm);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.wt-kpi__head {
	display: flex;
	align-items: center;
	gap: 10px;
}

.wt-kpi__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	flex-shrink: 0;
}

.wt-kpi__icon svg {
	width: 18px;
	height: 18px;
}

.wt-kpi--navy .wt-kpi__icon {
	background: var(--navy-50);
	color: var(--navy-800);
}

.wt-kpi--green .wt-kpi__icon {
	background: var(--green-50);
	color: var(--green-700);
}

.wt-kpi--amber .wt-kpi__icon {
	background: var(--amber-50);
	color: var(--amber-600);
}

.wt-kpi__label {
	font-size: 12px;
	font-weight: 600;
	color: var(--ink-500);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.wt-kpi__value {
	font-size: 28px;
	font-weight: 800;
	color: var(--ink-900);
	letter-spacing: -0.01em;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

/* ─── Grid (2 kolommen, content area) ─── */
.wt-dashboard__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 900px) {
	.wt-dashboard__grid--12 {
		grid-template-columns: 1.2fr 1fr;
	}
	/* Rij met één overgebleven kaart (Snel geholpen, sinds de kluslijst
	   uitgefaseerd is) toch vol-breed. */
	.wt-dashboard__grid--single {
		grid-template-columns: 1fr;
	}
}

/* ─── Section card (gedeeld door alle 4 kaarten) ─── */
.wt-section {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	box-shadow: var(--shadow-sm);
	padding: 20px 22px;
}

.wt-section__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
}

.wt-section__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	background: var(--navy-50);
	color: var(--navy-800);
	flex-shrink: 0;
}

.wt-section__icon svg {
	width: 16px;
	height: 16px;
}

/* Specificity boost (.wt-section .wt-section__title) zodat onze 20px wint
   van Shoptimizer's `.woocommerce-account h2 { font-size: clamp(22-26px) }`. */
.wt-section .wt-section__title {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: var(--ink-900);
	line-height: 1.3;
}

.wt-section__pill {
	margin-left: auto;
	flex-shrink: 0;
}

/* Gap tussen meerdere .wt-section's binnen content area (bv. view-order page) */
.woocommerce-MyAccount-content > .wt-section + .wt-section {
	margin-top: 20px;
}

/* ─── View Order page polish ───
   WC's `myaccount/order-details.php` rendert een eigen <h2>Bestelgegevens</h2>
   die dubbelop is met onze .wt-section header. Verbergen.
   (NIET `.woocommerce-column__title` — dat zijn de Factuur/Verzendadres labels). */
.wt-section .woocommerce-order-details__title {
	display: none;
}

/* Product-links in order-details tabel: Shoptimizer maakt ze groen, wij ink-900. */
.wt-section .woocommerce-table--order-details a,
.wt-section .woocommerce-table--order-details a:hover {
	color: var(--ink-900);
	text-decoration: none;
}

/* Strip Shoptimizer's wrapper-border + padding rond `.woocommerce-order-details`.
   De tabel lijnt nu direct uit met de section-header (geen card-in-card). */
.wt-section .woocommerce-order-details {
	border: 0;
	background: transparent;
	padding: 0;
	margin: 0 0 4px;
}

/* Order-details tabel: cleaner styling, Shoptimizer's harde borders weghalen */
.wt-section .woocommerce-table--order-details {
	margin-top: 0;
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.wt-section .woocommerce-table--order-details th,
.wt-section .woocommerce-table--order-details td {
	padding: 10px 0;
	border-bottom: 1px solid var(--line-2);
	color: var(--ink-700);
}

.wt-section .woocommerce-table--order-details thead th {
	font-weight: 600;
	color: var(--ink-500);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.wt-section .woocommerce-table--order-details tbody td:last-child,
.wt-section .woocommerce-table--order-details tfoot td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.wt-section .woocommerce-table--order-details tfoot th {
	color: var(--ink-500);
	font-weight: 500;
	font-size: 13px;
}

/* Totaal-rij: prominent */
.wt-section .woocommerce-table--order-details tfoot tr:last-child th,
.wt-section .woocommerce-table--order-details tfoot tr:last-child td {
	font-weight: 700;
	color: var(--ink-900);
	font-size: 15px;
	padding-top: 14px;
	border-top: 1px solid var(--line-2);
	border-bottom: 0;
}

/* Section headings (Bezorgopties, Factuuradres, Verzendadres) — kleiner, ink-900 */
.wt-section h2:not(.wt-section__title):not(.woocommerce-order-details__title),
.wt-section .woocommerce-column__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--ink-900);
	margin: 24px 0 10px;
	line-height: 1.3;
}

/* MyParcel bezorgopties (Vervoerder/Pakkettype) binnen Bezorging-section.
   De myparcel template rendert <h2>Bezorgopties</h2> + <table>. */
.wt-section > .myparcelnl-delivery-options {
	font-size: 14px;
	color: var(--ink-700);
}
.wt-section > .myparcelnl-delivery-options > h2:first-child {
	margin-top: 0;
}
.wt-section > .myparcelnl-delivery-options table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}
/* Forceer table-cell display zelfs op mobile — Shoptimizer's .shop_table
   responsive trick maakt tr/td display:block onder 768px wat th+td op
   aparte regels stackt met enorme gaps. Bij 2-rijige tabel hoort dat niet. */
.wt-section > .myparcelnl-delivery-options table,
.wt-section > .myparcelnl-delivery-options table tbody,
.wt-section > .myparcelnl-delivery-options table tr,
.wt-section > .myparcelnl-delivery-options table th,
.wt-section > .myparcelnl-delivery-options table td {
	display: revert;
}
.wt-section > .myparcelnl-delivery-options table { display: table; width: 100%; }
.wt-section > .myparcelnl-delivery-options table tbody { display: table-row-group; }
.wt-section > .myparcelnl-delivery-options table tr { display: table-row; }
.wt-section > .myparcelnl-delivery-options table th,
.wt-section > .myparcelnl-delivery-options table td { display: table-cell; width: auto; }
.wt-section > .myparcelnl-delivery-options table th,
.wt-section > .myparcelnl-delivery-options table td {
	padding: 8px 0;
	border-bottom: 1px solid var(--line-2);
	text-align: left;
}
.wt-section > .myparcelnl-delivery-options table th {
	font-weight: 500;
	color: var(--ink-700);
}
.wt-section > .myparcelnl-delivery-options table td {
	text-align: right;
	color: var(--ink-900);
}
.wt-section > .myparcelnl-delivery-options table tr:last-child th,
.wt-section > .myparcelnl-delivery-options table tr:last-child td {
	border-bottom: 0;
}

/* Address cards (factuur/verzend) binnen Bezorging-section.
   display: flow-root → containt Shoptimizer's float:left op .woocommerce-columns--addresses */
.wt-section > .woocommerce-customer-details {
	display: flow-root;
}

.wt-section .woocommerce-customer-details address {
	font-size: 14px;
	color: var(--ink-700);
	line-height: 1.6;
	font-style: normal;
	background: var(--paper-2);
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	padding: 14px 16px;
	margin: 0;
}

/* Phone/email p's binnen address: standaard p-margin is 19px → te veel
   ruimte tussen adres-regels en contactgegevens. Strakker. */
.wt-section .woocommerce-customer-details address p {
	margin: 4px 0 0;
}
.wt-section .woocommerce-customer-details address p:first-of-type {
	margin-top: 8px;
}

/* Two-column address layout (WC default) — override Shoptimizer's float-based
   grid (.col-1/.col-2 + float:left) met expliciete CSS grid. */
.woocommerce-account .wt-section .woocommerce-customer-details .woocommerce-columns--addresses,
.woocommerce-account .wt-section .woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column {
	float: none;
	width: auto;
	max-width: none;
	margin: 0;
}
.woocommerce-account .wt-section .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

/* Columns als flex-column zodat de address-card binnenin flex:1 kan krijgen
   en beide kolommen gelijke hoogtes hebben (langste address bepaalt).
   Alleen op desktop (>600px) — op mobile zit alles in 1-col grid, dan is
   stretchen onnodig en blaast het de card op tot rij-hoogte. */
@media (min-width: 601px) {
	.woocommerce-account .wt-section .woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column {
		display: flex;
		flex-direction: column;
	}
	.wt-section .woocommerce-customer-details .woocommerce-column address {
		flex: 1;
	}
}

@media (max-width: 600px) {
	.woocommerce-account .wt-section .woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.wt-section .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
	}
}

.wt-section__action {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--navy-800);
	text-decoration: none;
	cursor: pointer;
	background: transparent;
	border: 0;
	padding: 0;
	font-family: inherit;
	transition: gap 0.15s ease;
}

.wt-section__action:hover,
.wt-section__action:focus-visible {
	gap: 8px;
	outline: none;
}

.wt-section__action svg {
	width: 14px;
	height: 14px;
}

.wt-section__intro {
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--ink-600);
	line-height: 1.5;
}

/* Knoppen-rij in order-detail header: Opnieuw bestellen + Download factuur(en) */
.wt-order-detail-head__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

/* Verberg Moneybird-plugin's eigen "Download factuur" / "Download creditfactuur"
   knoppen in de Bestelgegevens-tabel (`woocommerce_order_details_after_order_table`
   hook). Wij tonen ze prominent in de section-header. */
.wt-section .order-invoice {
	display: none;
}

/* ─── Empty state (gedeeld) ─── */
.wt-section__empty {
	padding: 24px 0;
	text-align: center;
}

.wt-section__empty-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 auto 12px;
	border-radius: var(--r-card);
	background: var(--navy-50);
	color: var(--navy-800);
}

.wt-section__empty-icon svg {
	width: 24px;
	height: 24px;
}

.wt-section__empty-title {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-900);
}

.wt-section__empty-body {
	margin: 0 auto 14px;
	max-width: 320px;
	font-size: 13px;
	color: var(--ink-600);
	line-height: 1.5;
}

/* ─── Notice (success/error messages binnen .wt-section) ─── */
.wt-notice {
	margin: 0 0 20px;
	padding: 12px 16px;
	border-radius: var(--r-card);
	font-size: 14px;
	line-height: 1.5;
	border: 1px solid var(--line);
}

.wt-notice--success,
.wt-notice--message {
	background: #f0fdf4;
	border-color: #a7f3d0;
	color: #065f46;
}

.wt-notice--error {
	background: #fef2f2;
	border-color: #fecaca;
	color: #991b1b;
}

/* ─── Edit-address form (Adresgegevens → billing/shipping bewerken) ─── */

/* Verberg MyParcel's EORI + BTW velden op edit-address forms (alleen daar).
   Deze fields komen via WC 8.9+ Additional Checkout Fields API en zitten
   NIET in de `woocommerce_address_to_edit` filter — vandaar dat een PHP-filter
   ze niet bereikt. CSS-hide is hier de pragmatische oplossing. Op checkout
   blijven ze actief (waar btw-nummer relevant kan zijn voor verlegging). */
.wt-edit-address .form-row:has(input[id^="myparcelnl/"]),
.wt-edit-address .form-row:has(input[name^="_wc_billing/myparcelnl/"]),
.wt-edit-address .form-row:has(input[name^="_wc_shipping/myparcelnl/"]) {
	display: none;
}

/* WC rendert form-fields via woocommerce_form_field() met eigen classes.
   Hier mappen we die naar onze design tokens binnen .wt-edit-address. */

.wt-edit-address .woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px 16px;
}

@media (min-width: 768px) {
	.wt-edit-address .woocommerce-address-fields__field-wrapper {
		grid-template-columns: 1fr 1fr;
	}
	/* Wide fields nemen beide kolommen */
	.wt-edit-address .form-row-wide {
		grid-column: 1 / -1;
	}
}

.wt-edit-address .form-row {
	display: flex;
	flex-direction: column;
	margin: 0;
	float: none;
	width: auto;
}

.wt-edit-address .form-row label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--wt-blue, #1E3A6D);
	margin: 0 0 6px;
}

.wt-edit-address .form-row .required {
	color: #d12e37;
	font-weight: 400;
	text-decoration: none;
	border: 0;
}

.wt-edit-address .form-row .optional {
	color: var(--ink-500);
	font-weight: 400;
	font-size: 12px;
}

/* Tekst-inputs */
.wt-edit-address input.input-text,
.wt-edit-address input[type="text"],
.wt-edit-address input[type="email"],
.wt-edit-address input[type="tel"],
.wt-edit-address input[type="number"],
.wt-edit-address select {
	display: block;
	width: 100%;
	font: inherit;
	font-size: 15px;
	line-height: 1.4;
	color: #111827;
	background: var(--navy-50);
	border: 1px solid var(--line);
	border-radius: 5px;
	padding: 11px 14px;
	box-shadow: none !important;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}

.wt-edit-address input.input-text:focus,
.wt-edit-address input[type="text"]:focus,
.wt-edit-address input[type="email"]:focus,
.wt-edit-address input[type="tel"]:focus,
.wt-edit-address input[type="number"]:focus,
.wt-edit-address select:focus {
	border-color: var(--wt-blue, #1E3A6D);
	box-shadow: 0 0 0 3px rgba(30, 58, 109, 0.12) !important;
	outline: none;
}

/* Select2 (gebruikt voor land + provincie). Override container + selection */
.wt-edit-address .select2-container--default .select2-selection--single {
	height: auto;
	background: var(--navy-50);
	border: 1px solid var(--line);
	border-radius: 5px;
	padding: 7px 4px;
	box-shadow: none !important;
}
.wt-edit-address .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: #111827;
	line-height: 1.4;
	padding-left: 10px;
	padding-right: 30px;
}
.wt-edit-address .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 40px;
	right: 6px;
}
.wt-edit-address .select2-container--default.select2-container--focus .select2-selection--single,
.wt-edit-address .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--wt-blue, #1E3A6D);
	box-shadow: 0 0 0 3px rgba(30, 58, 109, 0.12);
}

/* Validation messages */
.wt-edit-address .woocommerce-error,
.wt-edit-address .woocommerce-message {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: var(--r-card);
	font-size: 14px;
	line-height: 1.5;
	list-style: none;
}

/* ─── Edit-account form (Accountgegevens) ─── */
/* Sub-section in form (vervangt <fieldset>+<legend> — die heeft een browser
   cut-out behavior op de border-top, waardoor de scheidingslijn onzichtbaar
   wordt). Plain <div> + <h3> rendert wel een doorlopende border-top. */
.wt-form-section {
	border-top: 1px solid var(--line);
	padding-top: 28px;
	margin: 32px 0 16px;
}

.wt-form-section__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--wt-blue, #1E3A6D);
	margin: 0 0 16px;
	line-height: 1.3;
}

.wt-form-help {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--ink-500);
	font-style: italic;
}

.wt-form-help-inline {
	font-size: 12px;
	font-weight: 400;
	color: var(--ink-500);
	margin-left: 4px;
}

.wt-form-actions {
	margin: 20px 0 0;
}

/* Lead-tekst onder de page-title (op lost-password / reset / confirm — zonder
   eigen .wt-page-header want WC's H1 toont al de titel). */
.wt-page-lead {
	font-size: 15px;
	color: #4b5563;
	margin: 0 0 20px;
	line-height: 1.5;
}

/* Extra bottom-spacing onder lost-password content (logged-out heeft geen
   sidebar/grid die de pagina-hoogte voldoende vult — .wt-section plakt
   anders op de footer). */
body.woocommerce-account:not(.logged-in) .wt-section {
	margin-bottom: 64px;
}

/* "Terug naar inloggen" link onderaan lost-password / reset-password / confirm */
.wt-form-back {
	margin: 20px 0 0;
	font-size: 14px;
	text-align: left;
}
.wt-form-back a {
	color: var(--wt-blue, #1E3A6D);
	text-decoration: none;
	font-weight: 600;
}
.wt-form-back a:hover {
	text-decoration: underline;
}

/* ─── Address cards (Adresgegevens-pagina) ─── */
.wt-addresses-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media (min-width: 768px) {
	.wt-addresses-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.wt-address-card {
	background: var(--paper-2);
	border: 1px solid var(--line);
	border-radius: var(--r-card);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.wt-address-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.wt-address-card__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--ink-900);
	margin: 0;
	line-height: 1.3;
}

.wt-address-card address {
	font-size: 14px;
	color: var(--ink-700);
	line-height: 1.6;
	font-style: normal;
	margin: 0;
}

.wt-address-card__empty {
	color: var(--ink-500);
	font-style: italic;
}

/* ─── Order list (row-based met divider lines) ─── */
.wt-order-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wt-order {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 14px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid var(--line-2);
}

.wt-order:first-child {
	padding-top: 0;
}

.wt-order:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.wt-order__row {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.wt-order__number {
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-900);
}

.wt-order__meta {
	margin-top: 6px;
	font-size: 12px;
	color: var(--ink-500);
	font-variant-numeric: tabular-nums;
	line-height: 1.4;
}

.wt-order__meta bdi {
	color: inherit;
}

.wt-order__actions {
	display: flex;
	gap: 6px;
	flex-shrink: 0;
}

@media (max-width: 480px) {
	.wt-order {
		grid-template-columns: 1fr;
	}
	.wt-order__actions {
		justify-content: flex-start;
	}
}

/* ─── Status pills (met dot) ─── */
.wt-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: var(--r-pill);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	background: var(--navy-50);
	color: var(--navy-700);
}

.wt-pill__dot {
	width: 6px;
	height: 6px;
	border-radius: var(--r-pill);
	background: var(--navy-600);
	flex-shrink: 0;
}

.wt-pill--completed {
	background: var(--green-50);
	color: var(--green-700);
}
.wt-pill--completed .wt-pill__dot { background: var(--green-500); }

.wt-pill--processing {
	background: var(--navy-50);
	color: var(--navy-700);
}
.wt-pill--processing .wt-pill__dot { background: var(--navy-600); }

.wt-pill--on-hold,
.wt-pill--pending {
	background: var(--amber-50);
	color: var(--amber-600);
}
.wt-pill--on-hold .wt-pill__dot,
.wt-pill--pending .wt-pill__dot { background: var(--amber-500); }

.wt-pill--cancelled,
.wt-pill--failed {
	background: var(--red-50);
	color: var(--red-600);
}
.wt-pill--cancelled .wt-pill__dot,
.wt-pill--failed .wt-pill__dot { background: var(--red-500); }

.wt-pill--refunded {
	background: #f3eaf8;
	color: #6c2bb3;
}
.wt-pill--refunded .wt-pill__dot { background: #9856d3; }

/* ─── Product list (Recent bekeken + Kluslijst) ─── */
.wt-prod-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wt-prod {
	border-bottom: 1px solid var(--line-2);
}

.wt-prod:last-child {
	border-bottom: 0;
}

.wt-prod__link {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 14px;
	align-items: center;
	padding: 12px 0;
	text-decoration: none;
}

.wt-prod:first-child .wt-prod__link {
	padding-top: 0;
}

.wt-prod:last-child .wt-prod__link {
	padding-bottom: 0;
}

.wt-prod__thumb {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--paper-2);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wt-prod__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.wt-prod__info {
	min-width: 0;
}

.wt-prod__name {
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-900);
	line-height: 1.35;
	margin: 0 0 4px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-clamp: 2;
	overflow: hidden;
}

.wt-prod__price {
	font-size: 13px;
	font-weight: 700;
	color: var(--ink-900);
	font-variant-numeric: tabular-nums;
}

.wt-prod__price del {
	color: var(--ink-400);
	font-weight: 400;
	font-size: 12px;
	margin-right: 4px;
}

.wt-prod__price ins {
	text-decoration: none;
	color: var(--red-600);
}

/* ─── Snel geholpen 2x2 grid ─── */
.wt-help-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

@media (max-width: 480px) {
	.wt-help-grid {
		grid-template-columns: 1fr;
	}
}

.wt-help {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px;
	border-radius: 12px;
	border: 1px solid var(--line);
	background: var(--paper);
	text-decoration: none;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.wt-help:hover,
.wt-help:focus-visible {
	border-color: var(--navy-200);
	background: var(--navy-50);
	outline: none;
}

.wt-help__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--navy-50);
	color: var(--navy-800);
	flex-shrink: 0;
}

.wt-help__icon svg {
	width: 16px;
	height: 16px;
}

.wt-help__text {
	display: flex;
	flex-direction: column;
}

.wt-help__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-900);
	line-height: 1.3;
}

.wt-help__sub {
	font-size: 11px;
	color: var(--ink-500);
	margin-top: 2px;
}

/* ─── Dashboard-buttons (primary navy + ghost) ─── */
.wt-btn-primary,
.wt-btn-primary:link,
.wt-btn-primary:visited {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 14px;
	border: 0;
	border-radius: var(--r-btn);
	background: var(--navy-800);
	background-color: var(--navy-800);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.wt-btn-primary:hover,
.wt-btn-primary:focus-visible {
	background: var(--navy-700);
	background-color: var(--navy-700);
	outline: none;
}

.wt-btn-primary svg,
.wt-btn-ghost svg {
	width: 14px;
	height: 14px;
}

.wt-btn-ghost,
.wt-btn-ghost:link,
.wt-btn-ghost:visited {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 14px;
	background: transparent;
	color: var(--navy-800);
	border: 1px solid var(--line-3);
	border-radius: var(--r-btn);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.wt-btn-ghost:hover,
.wt-btn-ghost:focus-visible {
	background: var(--navy-50);
	border-color: var(--navy-200);
	outline: none;
}

/* ─── Pagination (bestellingen-overzicht) ─── */
.wt-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--line-2);
}

.wt-pagination__info {
	font-size: 13px;
	color: var(--ink-500);
	font-variant-numeric: tabular-nums;
}

.wt-pagination__spacer {
	display: inline-block;
}

/* Compact button-variant voor in kaarten */
.wt-btn--small,
.wt-btn-ghost--small {
	padding: 7px 12px;
	font-size: 12px;
	font-weight: 600;
}

.wt-btn-ghost--small svg {
	width: 13px;
	height: 13px;
}

.wt-btn--small svg {
	width: 14px;
	height: 14px;
}

/* Outline-variant voor secundaire acties */
.wt-btn--outline,
.wt-btn--outline:link,
.wt-btn--outline:visited {
	background: transparent;
	color: var(--wt-blue, #1E3A6D);
	border: 1px solid var(--wt-blue, #1E3A6D);
}

.wt-btn--outline:hover,
.wt-btn--outline:focus-visible {
	background: var(--wt-blue, #1E3A6D);
	color: #fff;
	outline: none;
}

/* ============================================================ */
/* 10. FACTUREN ENDPOINT (/account/facturen/)                   */
/* ============================================================ */
.wt-facturen {
	margin: 0 0 48px;
}

/* Page-header pattern: titel + lead BOVEN het content-blok (.wt-section etc.).
   Gebruikt op /account/facturen/ en /account/orders/ — beide pagina's hebben
   nu hetzelfde visuele patroon. Oude .wt-facturen__* class-namen blijven als
   alias voor backward compat (bestaande styling references). */
.wt-page-header,
.wt-facturen__header {
	margin: 0 0 24px;
}

.wt-page-header__title,
.wt-facturen__title {
	font-size: 22px;
	font-weight: 700;
	color: var(--wt-blue, #1E3A6D);
	margin: 0 0 6px;
	line-height: 1.3;
}

.wt-page-header__lead,
.wt-facturen__lead {
	font-size: 15px;
	color: #4b5563;
	margin: 0;
	line-height: 1.5;
}

.wt-facturen__empty {
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 24px;
	text-align: center;
}

.wt-facturen__empty p {
	font-size: 14px;
	color: #6b7280;
	margin: 0;
	line-height: 1.5;
}

.wt-facturen-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wt-facturen-item {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 16px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.wt-facturen-item__info {
	flex: 1 1 auto;
	min-width: 0;
}

.wt-facturen-item__meta {
	display: flex;
	align-items: center;
	gap: 12px;
}

.wt-facturen-item__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: rgba(30, 58, 109, 0.08);
	color: var(--wt-blue, #1E3A6D);
	border-radius: 6px;
	flex-shrink: 0;
}

.wt-facturen-item__icon svg {
	width: 18px;
	height: 18px;
}

.wt-facturen-item strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--wt-blue, #1E3A6D);
	line-height: 1.3;
}

.wt-facturen-item__date {
	font-size: 13px;
	color: #6b7280;
	margin-top: 2px;
}

.wt-facturen-item__actions {
	flex-shrink: 0;
}

/* Creditfactuur-variant: amber icon-tile + amber ghost knop zodat het visueel
   te onderscheiden is van een gewone factuur (zelfde rij-structuur). */
.wt-facturen-item--credit .wt-facturen-item__icon {
	background: rgba(217, 119, 6, 0.10);
	color: #b45309;
}
.wt-facturen-item--credit .wt-btn--blue {
	background: #b45309;
}
.wt-facturen-item--credit .wt-btn--blue:hover,
.wt-facturen-item--credit .wt-btn--blue:focus-visible {
	background: #92400e;
}

.wt-facturen-item__unavailable {
	font-size: 13px;
	color: #6b7280;
	font-style: italic;
}

/* ============================================================ */
/* 11. WC-NOTICES (errors van mislukte registratie/login)        */
/* ============================================================ */
.wt-account .woocommerce-notices-wrapper {
	margin: 0 0 24px;
}

.wt-account .woocommerce-error,
.wt-account .woocommerce-info,
.wt-account .woocommerce-message {
	margin: 0 0 16px;
	padding: 14px 18px;
	border-radius: 5px;
	font-size: 14px;
	line-height: 1.5;
	list-style: none;
}

.wt-account .woocommerce-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.wt-account .woocommerce-message {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	color: #166534;
}

/* ── Klaviyo-checkbox op de registratiepagina ─────────────────────────────────
 * Stond tot 31-08-2026 als inline <style> in wp_head op élke pagina
 * (klaviyo_checkbox_styling in inc/klaviyo.php); hoort hier, want dit bestand
 * laadt precies op de account- en registratiepagina's. Zelfde regels, de
 * !importants zijn behouden omdat de WooCommerce-formulierstijl anders wint. */
.woocommerce-form-row label[for="klaviyo_email_subscription"] {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin-left: 0 !important;
}
.woocommerce-form-row label[for="klaviyo_email_subscription"] input[type="checkbox"] {
	margin: 0 !important;
	flex-shrink: 0 !important;
}
.woocommerce-form-row label[for="klaviyo_email_subscription"] span {
	margin: 0 !important;
	line-height: 1.4 !important;
}


/* ==================== /css/categorie-tegel.css ==================== */
/*
 * De categorietegel.
 * =========================================================================
 * De tegels op de homepage, op `/webshop/` en op elke hoofdcategoriepagina: een foto met daaronder
 * een groene knop met de categorienaam en het aantal producten.
 *
 * GESCHIEDENIS. Dit bestand is op 27-08-2026 in twee stappen ontstaan. Eerst zijn 30 regels uit
 * `basislaag.css` en 4 uit `style.css` hierheen verhuisd, woordelijk en in dezelfde volgorde, zodat
 * de verhuizing zelf meetbaar was: 513 gemeten waarden voor en na, nul verschil. Daarna, in een
 * tweede stap, zijn ze herschreven naar wat ze bedoelen. Dat is deze versie.
 *
 * WAT ERUIT KON, EN WAAROM. De oude selectors heetten `ul.products li.product:not(.wt-card)`. Ze
 * zeiden dus wat ze NIET waren. Ze kwamen uit de opmaak voor de standaardkaart van WooCommerce, en
 * die bestaat op deze site niet meer: elk product draait op `.wt-card`, ook de producten die een
 * `[products]`-shortcode in een blogartikel oplevert. Wat er als enige overbleef was de
 * categorietegel, die toevallig ook de klasse `product` draagt.
 *
 * Van de 34 regels zijn er 20 weg. Ze konden een tegel nooit raken:
 *
 *   - alles voor `.button` en `.added_to_cart`: een tegel heeft geen knop (7 regels)
 *   - het zweefvlak `::before` met zijn schaduw, dat stond al op `:not(.product-category)` (2)
 *   - `:hover img { transform: scale(0.98) }`, ook al uitgesloten voor tegels (1)
 *   - de `.static-cta-buttons`-marges, allemaal `:not(.product-category)` (3)
 *   - `.cgkit-swatch-hover`, van een plugin die er niet meer is (1)
 *   - `min-height: 380px` op de productkaart, `:not(.product-category)` (1)
 *   - `padding-bottom: 40px`, idem (1)
 *   - de `.columns-4`-variant: die kon nooit aanslaan. De `ul` draagt zelf `columns-4`, maar de
 *     selector vroeg om een voorouder met die klasse. Onze eigen wikkel uit `inc/plp.php` is bij
 *     tegels altijd `columns-5`, en dat is de regel die het werk deed (1)
 *   - de `.upsells`/`.related`/`.cross-sells`-varianten: die lijsten bestaan wel, maar met `.wt-card`
 *
 * De tegel heeft nu een eigen klasse `wt-tegel`, gezet in `inc/woocommerce-basis.php`.
 *
 * Dit bestand laadt op prioriteit 120, dus als laatste.
 * =========================================================================
 */

/* ---- De lijst ---- */

ul.products:has(.wt-tegel) {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% + 30px);
	margin-left: -15px;
	margin-bottom: 0;
	clear: both;
}

/* ---- De tegel ---- */

.wt-tegel {
	position: relative;
	padding-right: 15px;
	padding-left: 15px;
	list-style: none;
}

/* Boven de buren tijdens het zweven, zodat de opschalende foto er niet achter verdwijnt. */
.wt-tegel:hover,
.wt-tegel:focus-within {
	z-index: 2;
}

@media (min-width: 993px) {
	.wt-tegel {
		margin-bottom: 2.5rem;
	}

	/* Vijf op een rij. De wikkel `div.columns-5` komt uit `wt_kolommen_open()` in inc/plp.php en
	   staat op elke pagina met tegels. */
	.columns-5 .wt-tegel {
		width: 19.98%;
	}
}

@media (max-width: 992px) {
	ul.products:has(.wt-tegel) {
		display: grid;
		grid-template-columns: repeat(2, minmax(10px, 1fr));
		column-gap: 20px;
		row-gap: 30px;
		width: 100%;
		margin-left: 0;
	}

	.wt-tegel {
		display: flex;
		flex-direction: column;
		height: 100%;
		width: 100%;
		padding: 0;
		margin-bottom: 0;
	}

	.archive ul.products:has(.wt-tegel) {
		margin-bottom: 2rem;
	}
}

/* ---- De foto ---- */

/* Het omhulsel komt uit `wt_tegel_omhulsel_open()`; het snijdt de opschalende foto af bij de rand. */
.wt-tegel .wt-tegel-foto {
	overflow: hidden;
	display: block;
	position: relative;
}

.wt-tegel img {
	display: block;
	width: 100%;
	margin: 0;
	transform: scale(1);
	transition: transform 0.36s ease-out;
}

.wt-tegel a:hover img {
	transform: scale(1.05);
}

/* ---- De link en de titel ---- */

.wt-tegel a {
	display: block;
	color: #111;
}

/* De titel is vormgegeven als knop, met de categorienaam erop. */
.wt-tegel h2 {
	margin: 0.75em 0 0 0;
	padding: 10px;
	border-radius: 3px;
	background: var(--wt-green);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0;
	text-align: center;
}

.wt-tegel h2:hover {
	background: var(--wt-green-hover);
}

/* WooCommerce zet het aantal producten in een `<mark>` achter de naam. Dat tonen we niet. */
.wt-tegel h2 mark {
	display: none;
}


/* ==================== /css/footer.css ==================== */
/*
 * OVER `!important` IN DIT BESTAND: die zijn er niet meer.
 *
 * Op 27-08-2026 stonden er 24, samen goed voor 85 eigenschappen. Per stuk nagemeten in de browser:
 * voor elke eigenschap gekeken of er in een ander stijlblad een regel bestaat die dezelfde
 * eigenschap op hetzelfde element zet en die zonder de `!important` zou winnen op specificiteit of
 * volgorde. Uitkomst: **nul**. Er was geen enkele tegenstander; ze waren allemaal overbodig.
 *
 * Gemeten voor en na op 126 elementen in de voettekst, inclusief ::before en ::after, over drie
 * pagina's en twee schermbreedtes: 1.890 waarden, geen verschil.
 *
 * Zet er geen nieuwe bij zonder eerst te kijken WAT er wint. Meestal is het antwoord: niets, en
 * dan is een `!important` een pleister op een wond die er niet is.
 */

/**
 * Weltechniek custom footer — versie 1.1.0
 *
 * Desktop: 5 kolommen op brand-blue achtergrond, witte tekst.
 * Mobiel: nieuwsbrief bovenaan (order -1), contact open, 3 accordeons dicht.
 */

/* Tokens-fallback (worden ook door header.css gezet) */
.wt-footer {
	--wt-blue: var(--wt-blue, #1E3A6D);
	--wt-blue-dark: #14284f;
	--wt-green: var(--wt-green, #00bb00);
	--wt-green-hover: var(--wt-green-hover, #008d00);
	--wt-text-on-blue: rgba(255, 255, 255, 0.85);
	--wt-border-on-blue: rgba(255, 255, 255, 0.15);
}

/* ─── WRAPPER — alles op blauwe achtergrond, full-width breakout ─── */
.wt-footer {
	background: #1E3A6D;
	background: var(--wt-blue, #1E3A6D);
	color: #fff;
	font-family: inherit;
	/* Breek uit Shoptimizer's .col-full wrapper (max-width 1301px) — footer reikt van schermrand tot schermrand */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
}

.wt-footer__inner {
	max-width: 1301px;
	margin: 0 auto;
	padding: 0 16px;
}

/* Boven 1301px: padding weg zodat content op X=70 begint, gelijk met main.site-main */
@media (min-width: 1301px) {
	.wt-footer__inner {
		padding: 0;
	}
}

/* ─── MAIN — 5 kolommen op desktop, stack op mobiel ─── */
.wt-footer__main {
	/* Mobile: gelijke padding boven en onder zodat de ruimte boven Nieuwsbrief
	   matched met de ruimte onder Populair (voor de copyright-strip). */
	padding: 20px 0;
}

/* Mobile: flex column zodat 'order: -1' op nieuwsbrief werkt */
.wt-footer__main .wt-footer__inner {
	display: flex;
	flex-direction: column;
}

/* ─── KOLOM (mobile-first: gestapeld, accordeon op de links-kolommen) ─── */
.wt-footer-col {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	border-bottom: 1px solid var(--wt-border-on-blue, rgba(255, 255, 255, 0.15));
}

.wt-footer-col:last-child {
	border-bottom: 0;
}

/* Op mobiel staat Newsletter via order:-1 visueel bovenaan, dus DOM-laatste != visueel-laatste.
   Visueel laatste = Populair = :nth-last-child(2). Onderste lijntje weg zodat 't niet op de copyright-strip plakt. */
.wt-footer-col:nth-last-child(2) {
	border-bottom: 0;
}

/* Newsletter op mobiel bovenaan via flex/grid order */
.wt-footer-col--newsletter {
	order: -1;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

/* ─── TITELS ─── */
.wt-footer-col__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	margin: 0;
	padding: 18px 0;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: transparent;
	background-color: transparent;
	border: 0;
	box-shadow: none;
	text-transform: none;
	letter-spacing: 0;
	border-radius: 0;
	cursor: pointer;
	font-family: inherit;
	text-align: left;
	min-height: auto;
	height: auto;
}

.wt-footer-col__title--static {
	justify-content: flex-start;
	gap: 10px;
	cursor: default;
}

/* Override Shoptimizer's button hover/focus */
.wt-footer-col__title:hover,
.wt-footer-col__title:focus,
.wt-footer-col__title:active,
.wt-footer-col__title:focus-visible {
	background: transparent;
	background-color: transparent;
	color: #fff;
	box-shadow: none;
	outline: none;
}

/* Mail-icoon naast Nieuwsbrief-titel */
.wt-footer-col__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	flex-shrink: 0;
	margin-right: 4px;
}

.wt-footer-col__icon svg {
	width: 16px;
	height: 16px;
	color: #fff;
}

/* Chevron */
.wt-footer-col__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.wt-footer-col__chevron svg {
	width: 20px;
	height: 20px;
	color: rgba(255, 255, 255, 0.7);
}

.wt-footer-col__title[aria-expanded="true"] .wt-footer-col__chevron {
	transform: rotate(180deg);
}

/* ─── BODY (mobile: dicht voor accordeon-items) ─── */
.wt-footer-col__body {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.3s ease;
	margin: 0;
	padding: 0;
}

.wt-footer-col__body--open,
.wt-footer-col__title[aria-expanded="true"] + .wt-footer-col__body {
	max-height: 1500px;
	padding-bottom: 20px;
}

/* Contact-tekst */
.wt-footer-col--contact .wt-footer-col__body p {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.92);
}

.wt-footer-col--contact .wt-footer-col__body p:last-child {
	margin-bottom: 0;
}

.wt-footer-col--contact .wt-footer-col__body strong {
	color: #fff;
	font-weight: 600;
}

.wt-footer-col--contact .wt-footer-col__body a {
	color: #fff;
	text-decoration: none;
	transition: color 0.15s ease;
}

.wt-footer-col--contact .wt-footer-col__body a:hover {
	text-decoration: underline;
}

/* Waarschuwingsblok — subtiel op blauwe achtergrond */
.wt-footer-col__melding {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.92);
	background: rgba(255, 255, 255, 0.08);
	padding: 10px 12px;
	border-radius: 5px;
	border-left: 3px solid var(--wt-green, #00bb00);
	margin-top: 12px;
}

.wt-footer-col__melding strong {
	color: #fff;
}

/* Link-kolommen */
.wt-footer-col__body--links {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.wt-footer-col__body--links li {
	margin: 0;
}

.wt-footer-col__body--links a {
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.88);
	text-decoration: none;
	display: inline-block;
	padding: 4px 0;
	transition: color 0.15s ease;
}

.wt-footer-col__body--links a:hover {
	color: #fff;
	text-decoration: underline;
}

/* Newsletter kolom-inhoud */
.wt-footer-col__newsletter-text {
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.92);
	margin: 0 0 14px;
}

/* ─── DESKTOP: 5 kolommen, alle open ─── */
@media (min-width: 1024px) {
	.wt-footer__main {
		padding: 64px 0 48px;
	}
	.wt-footer__main .wt-footer__inner {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr 1fr 1.2fr;
		gap: 24px;
	}
	/* Contact-kolom: extra padding-right zodat content niet visueel op kolom 2 plakt
	   (waarschuwingsblok + adresregels vullen anders de volle kolombreedte) */
	.wt-footer__main .wt-footer-col--contact {
		padding-right: 40px;
	}
	.wt-footer-col {
		border-bottom: 0;
	}
	.wt-footer-col--newsletter {
		order: 5;
		border-bottom: 0;
	}
	.wt-footer-col__title {
		padding: 0 0 16px;
		cursor: default;
		font-size: 17px;
	}
	.wt-footer-col__chevron {
		display: none;
	}
	.wt-footer-col__body {
		max-height: none;
		overflow: visible;
		padding-bottom: 0;
	}
}

/* ─── COPYRIGHT (donkerder strip) ─── */
.wt-footer__bottom {
	background: #14284f;
	background: var(--wt-blue-dark, #14284f);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding: 18px 0;
}

.wt-footer__bottom .wt-footer__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}

.wt-footer__copyright {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
	margin: 0;
	text-align: center;
}

.wt-footer__payment {
	max-width: 100%;
	height: auto;
	width: auto;
	max-height: 30px;
	filter: brightness(1.05);
}

@media (min-width: 768px) {
	.wt-footer__bottom .wt-footer__inner {
		flex-direction: row;
		justify-content: space-between;
		gap: 24px;
	}
	.wt-footer__copyright {
		text-align: left;
	}
	.wt-footer__payment {
		max-height: 34px;
	}
}
/* ─── Nieuwsbriefformulier in de footerkolom (eigen form sinds 21-08-2026) ───
   Verving de Klaviyo-embed UuNhfH, die alleen verscheen na marketing-consent.
   De basisstijlen komen uit forms.css (.wt-form--inline); hier alleen wat op
   een donkerblauwe ondergrond anders moet dan op een witte pagina. */
.wt-footer-col--newsletter .wt-form {
	max-width: 100%;
}
/* Rand iets zichtbaarder dan de standaard #d6dde6, die op donkerblauw wegvalt. */
.wt-footer-col--newsletter .wt-form__input {
	border-color: transparent;
}
.wt-footer-col--newsletter .wt-form__input:focus {
	border-color: #fff;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
}
/* Foutmeldingen: het donkerrood uit forms.css is hier onleesbaar. */
.wt-footer-col--newsletter .wt-form__error {
	color: #ffc2c2;
}
.wt-footer-col--newsletter .wt-form__messages--error {
	background: rgba(255, 255, 255, .1);
	border-left-color: #ffc2c2;
	color: #ffd9d9;
}
/* Bevestiging: klein kaartje met een groen vinkje ervoor, in plaats van
   losse witte regels die net zo hard schreeuwen als de introtekst erboven.
   De selectors staan bewust op drie klassen, want .wt-form--inline verbergt
   het icoon en heeft dezelfde specificiteit als een gewone footer-override. */
.wt-footer-col--newsletter .wt-form--inline .wt-form__success {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 6px;
	padding: 12px 14px;
}
.wt-footer-col--newsletter .wt-form--inline .wt-form__success-icon {
	display: block;
	color: #6ee06e;
	margin: 0;
	flex: 0 0 auto;
}
.wt-footer-col--newsletter .wt-form--inline .wt-form__success-icon svg {
	display: block;
	width: 17px;
	height: 17px;
}
.wt-footer-col--newsletter .wt-form__success-text {
	color: rgba(255, 255, 255, .92);
	font-size: 13.5px;
	line-height: 1.45;
	margin: 0;
	text-align: left;
}
/* Tekst en placeholder gecentreerd, zoals in het oude Klaviyo-formulier dat hier
   stond. In een smalle kolom oogt links uitgelijnde tekst in een breed veld scheef. */
.wt-footer-col--newsletter .wt-form__input {
	text-align: center;
}

