/* ============================================================================
   Strapz · WooCommerce overrides
   Loaded only on WC-rendered pages. Depends on variables.css + main.css.
   Storefront's WC stylesheet is fully dequeued.
   ========================================================================== */

/* ─────────────────────────── Shop archive ────────────────────────────── */
.woocommerce-products-header {
  padding-block: var(--space-section-mobile) var(--space-xl);
  text-align: center;
}
.woocommerce-products-header__title {
  font-family: var(--font-display);
  font-size: var(--fs-display-2);
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  margin: 0;
}

ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-section-mobile);
}
@media (min-width: 768px) {
  ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
  }
}
@media (min-width: 1024px) {
  ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
ul.products li.product {
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  transition:
    border-color var(--dur-snap) var(--ease-snap),
    transform var(--dur-snap) var(--ease-hammer);
}
ul.products li.product:hover {
  border-color: var(--strapz-accent);
  transform: translateY(-2px);
}
ul.products li.product a {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--color-text);
}
ul.products li.product img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0 !important;
  background: var(--strapz-iron);
  transition: transform var(--dur-base) var(--ease-snap);
}
ul.products li.product:hover img { transform: scale(1.05); }
ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  color: var(--strapz-white);
  padding: var(--space-md) var(--space-md) var(--space-xs) !important;
  margin: 0 !important;
}
ul.products li.product .price {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--strapz-accent) !important;
  padding: 0 var(--space-md) var(--space-md);
  margin: 0;
  display: block;
}
ul.products li.product .price del {
  color: var(--color-text-muted);
  font-weight: 400;
  margin-inline-end: var(--space-xs);
}
ul.products li.product .button {
  margin: 0 var(--space-md) var(--space-md);
  align-self: flex-start;
}

.onsale {
  position: absolute;
  top: var(--space-sm);
  left: var(--space-sm);
  background: var(--strapz-accent);
  color: var(--strapz-white);
  font-family: var(--font-display);
  font-size: 0.75rem;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 0;
  z-index: 1;
}

/* ─────────────────────────── Single product (PDP) ────────────────────── */
/* Custom 2-col layout (gallery links + info rechts) wordt gerenderd via
   onze content-single-product.php override. Hieronder de layout + element styling. */

/* Spacing tussen sticky site-header en PDP content. Geldt voor zowel
   initial state (padding pushes content down) als sticky-image state
   (image stopt op `top: 110px` op desktop, zie .strapz-pdp__visual). */
.single-product div.product {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-section-mobile);
}
@media (min-width: 1024px) {
  .single-product div.product {
    padding-block-start: var(--space-xxxl);
    padding-block-end: var(--space-section);
  }
}

.strapz-pdp__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-lg);
}
@media (min-width: 768px) {
  .strapz-pdp__main { gap: var(--space-xl); }
}
@media (min-width: 1024px) {
  .strapz-pdp__main {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: var(--space-xl);
    align-items: start;
  }
}

/* Grid items hebben default min-width: min-content - dat laat ze groter
   worden dan hun track wanneer de inhoud (bv. een afbeelding met
   intrinsieke 1024px breedte) breder is. min-width: 0 forceert ze om
   binnen de track te blijven. */
.strapz-pdp__main > .strapz-pdp__visual,
.strapz-pdp__main > .strapz-pdp__info {
  min-width: 0;
  max-width: 100%;
}

/* Linker kolom: WC product gallery. Op desktop sticky tijdens scroll,
   op mobile gewoon static. overflow:hidden vangt eventuele WC flexslider
   inline-width surprises die anders de pagina horizontaal laten scrollen. */
.strapz-pdp__visual {
  position: relative;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .strapz-pdp__visual {
    position: sticky;
    /* Sticky header is ~96px hoog → top:121 geeft 25px ademruimte. */
    top: 121px;
    align-self: start;
  }
}

/* WC product gallery moet de volledige kolom vullen. WC's eigen CSS/JS
   zet hier soms een inline width via flexslider - hard !important overrule. */
.strapz-pdp__visual .woocommerce-product-gallery {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0;
  float: none !important;
}
.strapz-pdp__visual .woocommerce-product-gallery__wrapper {
  width: 100% !important;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.strapz-pdp__visual .woocommerce-product-gallery__image,
.strapz-pdp__visual .woocommerce-product-gallery__image a {
  display: block;
  width: 100% !important;
  max-width: 100%;
}

/* Verberg de WC gallery zoom-trigger (loep icon) als hij toch geladen wordt
   door een andere plugin/theme die theme support claimt - we willen geen
   lightbox/zoom UX op deze straps. */
.strapz-pdp__visual .woocommerce-product-gallery__trigger {
  display: none !important;
}
.strapz-pdp__visual .woocommerce-product-gallery__image img,
.strapz-pdp__visual img.wp-post-image {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
  background: var(--strapz-iron);
}
.strapz-pdp__visual .flex-control-thumbs {
  display: flex;
  gap: var(--space-xs);
  list-style: none;
  padding: 0;
  margin: var(--space-sm) 0 0;
}
.strapz-pdp__visual .flex-control-thumbs li {
  width: calc(25% - var(--space-xs));
}
.strapz-pdp__visual .flex-control-thumbs img {
  width: 100%;
  height: auto;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity var(--dur-snap) var(--ease-snap);
}
.strapz-pdp__visual .flex-control-thumbs img:hover,
.strapz-pdp__visual .flex-control-thumbs img.flex-active {
  opacity: 1;
}

/* Rechter kolom: info + form + trust */
.strapz-pdp__info {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.strapz-pdp__eyebrow {
  display: inline-flex;
  align-self: flex-start;
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-accent);
  margin-block-end: var(--space-sm);
  line-height: 1;
}

.strapz-pdp__title.product_title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  line-height: 0.95;
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  color: var(--strapz-white);
  margin: 0 0 var(--space-md);
}

.strapz-pdp__price {
  margin-block-end: var(--space-md);
}
.strapz-pdp__price .price {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  line-height: 1;
  color: var(--strapz-accent);
  margin: 0;
  letter-spacing: 0;
  font-weight: 400;
}
.strapz-pdp__price .price del {
  color: var(--color-text-muted);
  font-weight: 400;
  margin-inline-end: var(--space-sm);
}
.strapz-pdp__price .price ins { background: none; text-decoration: none; }
.strapz-pdp__price .woocommerce-price-suffix {
  font-family: var(--font-body);
  font-size: var(--fs-body-sm);
  color: var(--color-text-muted);
  margin-inline-start: var(--space-xs);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.strapz-pdp__short-desc {
  color: var(--color-text);
  font-size: var(--fs-body-lg);
  line-height: 1.55;
  margin-block-end: var(--space-lg);
}
.strapz-pdp__short-desc p:last-child { margin-block-end: 0; }

/* WC cart form binnen PDP - configurator + add-to-cart.
   Quantity input is verborgen (zie hieronder) - elke add = 1 stuk, klant
   kan het zelfde config in cart accumuleren als ze er meer willen. */
.strapz-pdp__cart form.cart {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}
.strapz-pdp__cart .strapz-cfg-form {
  margin: 0;
}

/* Quantity input verbergen - blijft in DOM met value=1 zodat form submit. */
.strapz-pdp__cart .quantity {
  display: none !important;
}

/* Add-to-cart knop: industriële "hammer" style met 4px hard shadow,
   cart icon via ::before en full-width voor maximale klikoppervlakte. */
.strapz-pdp__cart .single_add_to_cart_button,
.strapz-pdp__cart .variations_button .single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--space-sm) !important;
  width: 100% !important;
  height: 56px !important;
  padding-inline: var(--space-xl) !important;
  background: var(--strapz-accent) !important;
  color: var(--strapz-white) !important;
  font-family: var(--font-display) !important;
  font-size: 1.0625rem !important;
  letter-spacing: var(--tracking-button) !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: 0 4px 0 0 var(--strapz-accent-hover) !important;
  margin-block-start: var(--space-lg) !important;
  cursor: pointer;
  transition:
    background-color var(--dur-snap) var(--ease-snap),
    transform        var(--dur-snap) var(--ease-hammer),
    box-shadow       var(--dur-snap) var(--ease-snap);
}

/* Cart icon links van de tekst - stroke-only SVG, herkenbaar uit de header */
.strapz-pdp__cart .single_add_to_cart_button::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='square' stroke-linejoin='miter'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6L18 2z'/><path d='M3 6h18'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center/contain no-repeat;
}

.strapz-pdp__cart .single_add_to_cart_button:hover {
  background: var(--strapz-accent-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 0 0 var(--strapz-accent-hover) !important;
}
.strapz-pdp__cart .single_add_to_cart_button:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 0 var(--strapz-accent-hover) !important;
}
.strapz-pdp__cart .single_add_to_cart_button:disabled,
.strapz-pdp__cart .single_add_to_cart_button.disabled,
.strapz-pdp__cart .single_add_to_cart_button.wc-variation-selection-needed {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: 0 4px 0 0 var(--strapz-concrete) !important;
  background: var(--strapz-concrete) !important;
}
.strapz-pdp__cart .single_add_to_cart_button:disabled:hover {
  transform: none;
  box-shadow: 0 4px 0 0 var(--strapz-concrete) !important;
}

/* Variable product specific: verberg WC's native variations dropdown,
   reset link en variation-price (we hebben eigen swatches + parent price).
   .woocommerce-variation-availability laten we WEL renderen want daar
   zit de variation-specific stock html in (incl. ons "Bijna uitverkocht"
   filter resultaat). */
.strapz-pdp__cart table.variations { display: none; }
.strapz-pdp__cart .reset_variations { display: none; }
.strapz-pdp__cart .woocommerce-variation-price { display: none; }
.strapz-pdp__cart .woocommerce-variation-description:empty { display: none; }
.strapz-pdp__cart .single_variation_wrap { margin: 0; }
.strapz-pdp__cart .woocommerce-variation-availability { margin: 0 0 var(--space-md); }

/* Out-of-stock swatch indicator - greyed out met diagonale lijn */
.strapz-cfg-form__swatch--oos {
  opacity: 0.4;
  pointer-events: none;
}
.strapz-cfg-form__swatch--oos .strapz-cfg-form__swatch-circle {
  position: relative;
}
.strapz-cfg-form__swatch--oos .strapz-cfg-form__swatch-circle::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 47%, var(--strapz-error) 47%, var(--strapz-error) 53%, transparent 53%);
}
.strapz-cfg-form__swatch-oos {
  display: block;
  font-size: 0.6rem;
  color: var(--strapz-error);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 2px;
}

/* Combo dual-config: secties visueel onderscheiden */
.strapz-cfg-form__section {
  padding: var(--space-md) 0;
  border-top: 1px solid var(--strapz-concrete);
}
.strapz-cfg-form__section:first-of-type {
  border-top: none;
  padding-top: 0;
}
.strapz-cfg-form__section-title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin: 0 0 var(--space-md);
  font-family: var(--font-display);
  font-size: 1.125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--strapz-white);
  line-height: 1;
}
.strapz-cfg-form__section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--strapz-accent);
  color: var(--strapz-white);
  font-family: var(--font-display);
  font-size: 0.875rem;
  line-height: 1;
}

/* Stock indicator - 3-tier urgency:
     in-stock   = amber, "Bijna uitverkocht" (zachte scarcity)
     low-amount = rood + pulse, "Nog X over" (peak urgency)
     out-of-stock = rood, WC default tekst
   Werkt op zowel simple (.stock direct in cart-div) als variable
   (.stock binnen .woocommerce-variation-availability). */
.strapz-pdp__cart .stock {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-family: var(--font-display);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  font-size: var(--fs-body-sm);
  color: var(--strapz-warning);
  padding: 6px 12px;
  border: 1px solid var(--strapz-warning);
  background: rgba(226, 160, 63, 0.1);
  margin: 0 0 var(--space-md);
  line-height: 1;
}
/* Rode knipperende dot ipv unicode icoontje - cross-state consistent. */
.strapz-pdp__cart .stock::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--strapz-accent);
  flex-shrink: 0;
  box-shadow: 0 0 0 0 rgba(200, 16, 46, 0.7);
  animation: strapz-dot-pulse 1.6s ease-in-out infinite;
}
.strapz-pdp__cart .stock.low-amount {
  color: var(--strapz-error);
  border-color: var(--strapz-error);
  background: rgba(209, 75, 31, 0.12);
}
.strapz-pdp__cart .stock.out-of-stock {
  color: var(--strapz-error);
  border-color: var(--strapz-error);
  background: rgba(209, 75, 31, 0.12);
  animation: none;
}
/* PhotoSwipe volledig uitschakelen.
   - Overlay altijd hidden via display:none
   - Gallery <a> wrappers krijgen pointer-events:none zodat geen enkele
     pointer-event (click/mousedown/touchstart) PhotoSwipe init triggert.
     Zonder click target verplaatst PS de image niet naar de hidden overlay,
     waardoor de gallery zichtbaar blijft. */
#photoswipe-fullscreen-dialog,
.pswp {
  display: none !important;
}
.woocommerce-product-gallery__image a {
  pointer-events: none !important;
  cursor: default !important;
}

/* Force gallery opacity 1 - WC zet inline style="opacity:0" tot z'n JS init
   doet, maar met FlyingPress defer kan dat te laat zijn. Attribute-selector
   bumpt specificity voor zekerheid over inline style. JS in main.js zet
   ook expliciet style.opacity='1' als 2e laag defense. */
.woocommerce-product-gallery,
.woocommerce-product-gallery--with-images,
.woocommerce-product-gallery[style*="opacity"] {
  opacity: 1 !important;
  visibility: visible !important;
}
/* Voor variation-gallery: WC kan items hide tijdens variation switch -
   nooit met display:none verbergen want dan blijft de gallery leeg. */
.woocommerce-product-gallery__wrapper > * {
  visibility: visible !important;
}

/* Out-of-stock krijgt ✕ ipv pulserende dot (geen urgency, gewoon info). */
.strapz-pdp__cart .stock.out-of-stock::before {
  content: "✕";
  width: auto;
  height: auto;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  animation: none;
  font-size: 0.75rem;
  line-height: 1;
}

/* Rode dot pulse: ring-glow + opacity fade. */
@keyframes strapz-dot-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(200, 16, 46, 0.7); opacity: 1; }
  70%  { box-shadow: 0 0 0 7px rgba(200, 16, 46, 0); opacity: 0.85; }
  100% { box-shadow: 0 0 0 0 rgba(200, 16, 46, 0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .strapz-pdp__cart .stock::before { animation: none; box-shadow: none; }
}

.strapz-pdp .product_meta { display: none; }

/* Payment iconen direct onder de cart - SVG variant uit strapz_payment_icons() */
.strapz-pdp__payments {
  margin-block: var(--space-md) var(--space-lg);
}

/* Kort samengevat: 4 benefit bullets onder de payments */
.strapz-pdp__summary {
  margin-block: var(--space-md) var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  border-inline-start: 3px solid var(--strapz-accent);
}
.strapz-pdp__summary-title {
  font-family: var(--font-display);
  font-size: 0.875rem;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-white);
  margin: 0 0 var(--space-sm);
  line-height: 1;
}
.strapz-pdp__summary-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
.strapz-pdp__summary-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  color: var(--color-text);
  font-size: var(--fs-body-sm);
  line-height: 1.45;
}
.strapz-pdp__summary-icon {
  flex-shrink: 0;
  color: var(--strapz-accent);
  margin-top: 2px;
}

/* Verzending + Retour: expandable rows onder summary */
.strapz-pdp__faqs {
  display: flex;
  flex-direction: column;
  border-block-start: 1px solid var(--color-border);
}
.strapz-pdp__faq-item {
  border-block-end: 1px solid var(--color-border);
}
.strapz-pdp__faq-q {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  cursor: pointer;
  padding: var(--space-md) 0;
  font-family: var(--font-display);
  font-size: 0.9375rem;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  color: var(--strapz-white);
  list-style: none;
  transition: color var(--dur-snap) var(--ease-snap);
}
.strapz-pdp__faq-q::-webkit-details-marker { display: none; }
.strapz-pdp__faq-q:hover { color: var(--strapz-accent); }
.strapz-pdp__faq-icon {
  flex-shrink: 0;
  color: var(--strapz-accent);
}
.strapz-pdp__faq-label { flex: 1; }
.strapz-pdp__faq-toggle {
  font-family: var(--font-display);
  font-size: 1.25rem;
  line-height: 1;
  color: var(--strapz-accent);
  width: 20px;
  text-align: center;
  transition: transform var(--dur-snap) var(--ease-snap);
}
.strapz-pdp__faq-item[open] .strapz-pdp__faq-toggle {
  transform: rotate(45deg);
}
.strapz-pdp__faq-a {
  padding: 0 0 var(--space-md);
  color: var(--color-text);
  font-size: var(--fs-body-sm);
  line-height: 1.6;
}
.strapz-pdp__faq-a p { margin: 0; }

/* ─── Breadcrumb (top-left van PDP) ──────────────────────────────────── */
.strapz-pdp__breadcrumb {
  margin-block-end: var(--space-lg);
}
.strapz-pdp__breadcrumb .strapz-breadcrumb,
.strapz-pdp__breadcrumb .woocommerce-breadcrumb {
  font-family: var(--font-body);
  font-size: var(--fs-body-sm);
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
  text-transform: none;
  margin: 0;
  padding: 0;
}
.strapz-pdp__breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--dur-snap) var(--ease-snap);
}
.strapz-pdp__breadcrumb a:hover {
  color: var(--strapz-accent);
}
.strapz-breadcrumb__sep {
  color: var(--strapz-concrete);
  margin-inline: 4px;
}

/* ─── Below-fold sections ────────────────────────────────────────────── */
/* Alleen Description krijgt het coal "card" treatment met corner-tick.
   Reviews + FAQ blijven open op de page bg, gescheiden door margin/border. */
.strapz-pdp__details {
  position: relative;
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  padding: var(--space-xl) var(--space-md);
  margin-block-start: var(--space-lg);
}
@media (min-width: 768px) {
  .strapz-pdp__details {
    padding: var(--space-xxl) var(--space-xl);
    margin-block-start: var(--space-xl);
  }
}
@media (min-width: 1024px) {
  .strapz-pdp__details {
    padding: var(--space-xxxl) var(--space-xxl);
    margin-block-start: var(--space-xxl);
  }
}
.strapz-pdp__details::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 28px;
  height: 28px;
  border-top: 3px solid var(--strapz-accent);
  border-left: 3px solid var(--strapz-accent);
  pointer-events: none;
}

/* Reviews + FAQ + USP-strip: clean section met top-border separator (geen card) */
.strapz-pdp__reviews,
.strapz-pdp__faq,
.strapz-pdp__usps {
  margin-block-start: var(--space-xl);
  padding-block-start: var(--space-lg);
  border-block-start: 1px solid var(--color-border);
}

/* USP strip - 3 voordelen kaarten boven FAQ. Mobile: stacked. Desktop: 3-koloms. */
.strapz-pdp__usps-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}
@media (min-width: 768px) {
  .strapz-pdp__usps-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
  }
}
.strapz-pdp__usp {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding: var(--space-md) var(--space-lg);
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  border-block-start: 2px solid var(--strapz-accent);
}
.strapz-pdp__usp-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--strapz-accent);
  margin-block-end: var(--space-xs);
}
.strapz-pdp__usp-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.strapz-pdp__usp-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.0625rem;
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--strapz-white);
}
.strapz-pdp__usp-body {
  margin: 0;
  font-size: var(--fs-body-sm);
  line-height: 1.55;
  color: var(--color-text);
}
@media (min-width: 768px) {
  .strapz-pdp__reviews,
  .strapz-pdp__faq {
    margin-block-start: var(--space-xxl);
    padding-block-start: var(--space-xl);
  }
}
@media (min-width: 1024px) {
  .strapz-pdp__reviews,
  .strapz-pdp__faq {
    margin-block-start: var(--space-xxxl);
    padding-block-start: var(--space-xxl);
  }
}

/* FAQ template-part reuse: reset eigen section padding zodat onze
   below-fold wrapper de padding levert */
.strapz-pdp__faq .faq-section {
  padding-block: 0;
}
.strapz-pdp__faq .faq-section .container {
  padding-inline: 0;
  max-width: none;
}
.strapz-pdp__faq .faq-section .section__header {
  text-align: left;
  margin-block-end: var(--space-lg);
}
.strapz-pdp__faq .faq-section .faq-list {
  margin-inline: 0;
  max-width: none;
}
.strapz-pdp__details-header {
  margin-block-end: var(--space-lg);
}
.strapz-pdp__details-title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  line-height: 1;
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  color: var(--strapz-white);
  margin: var(--space-xs) 0 0;
}
.strapz-pdp__description {
  max-width: 760px;
  font-size: var(--fs-body-lg);
  line-height: 1.7;
  color: var(--color-text);
}

/* ─── WC Reviews styling (brand-on-tone) ──────────────────────────────── */
.strapz-pdp__reviews #reviews #comments .commentlist {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}
.strapz-pdp__reviews .commentlist li.review {
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  padding: var(--space-lg);
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: var(--space-md);
  align-items: start;
}
.strapz-pdp__reviews .commentlist .avatar {
  width: 56px;
  height: 56px;
  border: 1px solid var(--color-border);
  background: var(--strapz-iron);
}
.strapz-pdp__reviews .commentlist .comment-text {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}
.strapz-pdp__reviews .commentlist .star-rating {
  font-family: serif;
  letter-spacing: 0.1em;
  color: var(--strapz-accent);
  font-size: 1rem;
  margin: 0 0 var(--space-xs);
  float: none;
  display: inline-block;
}
.strapz-pdp__reviews .commentlist .meta {
  font-family: var(--font-display);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  font-size: var(--fs-body-sm);
  color: var(--color-text-strong);
  margin: 0 0 var(--space-xs);
}
.strapz-pdp__reviews .commentlist .meta time {
  color: var(--color-text-muted);
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  margin-inline-start: var(--space-xs);
}
.strapz-pdp__reviews .commentlist .description p {
  margin: 0;
  color: var(--color-text);
  line-height: 1.6;
}

/* "No reviews yet" + write review prompts */
.strapz-pdp__reviews .woocommerce-noreviews,
.strapz-pdp__reviews p.no-comments {
  background: var(--strapz-coal);
  border-inline-start: 3px solid var(--strapz-accent);
  padding: var(--space-md) var(--space-lg);
  color: var(--color-text);
  margin: 0 0 var(--space-lg);
}

/* Review form */
.strapz-pdp__reviews #review_form_wrapper {
  margin-block-start: var(--space-lg);
}
.strapz-pdp__reviews #review_form .comment-reply-title {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  color: var(--strapz-white);
  margin: 0 0 var(--space-md);
  display: block;
}
.strapz-pdp__reviews .comment-form-rating label {
  display: block;
  margin-block-end: var(--space-xs);
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-white);
}
.strapz-pdp__reviews .comment-form-rating .stars {
  font-family: serif;
  font-size: 1.5rem;
  color: var(--color-text-muted);
}
.strapz-pdp__reviews .comment-form-rating .stars a {
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--dur-snap) var(--ease-snap);
}
.strapz-pdp__reviews .comment-form-rating .stars a:hover,
.strapz-pdp__reviews .comment-form-rating .stars a.active {
  color: var(--strapz-accent);
}
.strapz-pdp__reviews .comment-form-author,
.strapz-pdp__reviews .comment-form-email,
.strapz-pdp__reviews .comment-form-comment {
  margin-block-end: var(--space-md);
}
.strapz-pdp__reviews .comment-form-author label,
.strapz-pdp__reviews .comment-form-email label,
.strapz-pdp__reviews .comment-form-comment label {
  display: block;
  margin-block-end: var(--space-xs);
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-white);
}
.strapz-pdp__reviews #review_form input[type="text"],
.strapz-pdp__reviews #review_form input[type="email"],
.strapz-pdp__reviews #review_form textarea {
  width: 100%;
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  color: var(--strapz-white);
  padding: var(--space-sm) var(--space-md);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  border-radius: 0;
  transition: border-color var(--dur-snap) var(--ease-snap);
}
.strapz-pdp__reviews #review_form input:focus,
.strapz-pdp__reviews #review_form textarea:focus {
  border-color: var(--strapz-accent);
  outline: none;
}
.strapz-pdp__reviews #review_form .form-submit input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding-inline: var(--space-lg);
  background: var(--strapz-accent);
  color: var(--strapz-white);
  font-family: var(--font-display);
  font-size: 0.9375rem;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  transition: background var(--dur-snap) var(--ease-snap), transform var(--dur-snap) var(--ease-hammer);
}
.strapz-pdp__reviews #review_form .form-submit input[type="submit"]:hover {
  background: var(--strapz-accent-hover);
  transform: translateY(-2px);
}
.strapz-pdp__description > * + * { margin-block-start: var(--space-md); }
.strapz-pdp__description p { margin: 0; }
.strapz-pdp__description strong { color: var(--strapz-white); }
.strapz-pdp__description ul {
  list-style: none;
  padding: 0;
  margin: var(--space-sm) 0;
}
.strapz-pdp__description ul li {
  position: relative;
  padding-inline-start: 22px;
  margin-block-end: var(--space-xs);
}
.strapz-pdp__description ul li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--strapz-accent);
  font-weight: 700;
}

/* Verberg de default WC tabs sectie - onze custom description hierboven vervangt 'm */
.single-product .woocommerce-tabs { display: none; }

/* Verberg WC upsells en related products op de PDP - kleine catalogus (3 producten),
   alle relevante cross-sell zit al in de bundle banner onderaan. */
.single-product .upsells.products,
.single-product .related.products,
.single-product section.up-sells,
.single-product section.related { display: none; }

/* ─── Bundle deal banner (onderaan PDP, niet op het combo-product) ────── */
.pdp-bundle-banner {
  position: relative;
  margin-block-start: var(--space-xxl);
  padding: var(--space-xl) var(--space-lg);
  background: var(--strapz-accent);
  color: var(--strapz-white);
  overflow: hidden;
  isolation: isolate;
}
@media (min-width: 1024px) {
  .pdp-bundle-banner {
    padding: var(--space-xxl) var(--space-xxl);
    margin-block-start: var(--space-section-mobile);
  }
}
.pdp-bundle-banner__stripe {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: 8px;
  background: var(--strapz-black);
}
.pdp-bundle-banner__inner {
  position: relative;
  display: grid;
  gap: var(--space-lg);
  align-items: center;
}
@media (min-width: 768px) {
  .pdp-bundle-banner__inner {
    grid-template-columns: 1fr auto;
    gap: var(--space-xl);
  }
}
.pdp-bundle-banner__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
.pdp-bundle-banner__eyebrow {
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-black);
  background: var(--strapz-white);
  align-self: flex-start;
  padding: 4px 10px;
  line-height: 1;
}
.pdp-bundle-banner__title {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1;
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  color: var(--strapz-white);
  margin: 0;
}
.pdp-bundle-banner__subtitle {
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--strapz-white);
  opacity: 0.92;
}
.pdp-bundle-banner__deal {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-sm);
}
@media (min-width: 768px) {
  .pdp-bundle-banner__deal {
    align-items: flex-end;
    text-align: right;
  }
}
.pdp-bundle-banner__price {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
}
.pdp-bundle-banner__price-old {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  text-decoration: line-through;
  color: var(--strapz-white);
  opacity: 0.6;
}
.pdp-bundle-banner__price-new {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1;
  color: var(--strapz-white);
}
.pdp-bundle-banner__price-new .woocommerce-Price-amount { color: inherit; }
.pdp-bundle-banner__price-new .woocommerce-Price-currencySymbol { color: inherit; }
.pdp-bundle-banner__savings {
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-white);
  background: var(--strapz-black);
  padding: 4px 10px;
  line-height: 1;
}
.pdp-bundle-banner__cta {
  white-space: nowrap;
}

/* WC gallery fallback styling (alleen actief als geen configurator) */
.woocommerce-product-gallery {
  margin: 0;
}
.woocommerce-product-gallery__image img {
  background: var(--strapz-iron);
}

/* Buttons (Add to cart, Place order, etc.) - match our btn--primary */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
  background: var(--strapz-accent);
  color: var(--strapz-white);
  font-family: var(--font-display);
  font-size: var(--fs-button);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  padding: var(--space-md) var(--space-xl);
  border: 2px solid transparent;
  border-radius: 0;
  box-shadow: var(--shadow-cta);
  transition:
    background-color var(--dur-snap) var(--ease-snap),
    transform var(--dur-snap) var(--ease-hammer);
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--strapz-accent-hover);
  transform: translateY(-1px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--strapz-white);
  color: var(--strapz-black);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background: var(--strapz-accent);
  color: var(--strapz-white);
}

/* Tabs */
.woocommerce-tabs {
  margin-block: var(--space-xxl);
  border-block-start: 1px solid var(--color-border);
  padding-block-start: var(--space-xl);
}
.woocommerce-tabs ul.tabs {
  padding: 0 !important;
  margin: 0 0 var(--space-lg) !important;
  border: none !important;
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
}
.woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.woocommerce-tabs ul.tabs li.active {
  border-color: var(--strapz-accent) !important;
}
.woocommerce-tabs ul.tabs li a {
  display: block;
  padding: var(--space-sm) var(--space-md);
  font-family: var(--font-display);
  font-size: var(--fs-body-sm);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  color: var(--color-text) !important;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--strapz-accent) !important; }
.woocommerce-tabs .panel {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* ─────────────────────────── Cart ────────────────────────────────────── */
.woocommerce-cart table.shop_table,
.woocommerce-cart table.cart {
  background: var(--strapz-coal) !important;
  border: 1px solid var(--color-border) !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
  width: 100%;
  table-layout: auto;
}
.woocommerce-cart table.cart th {
  background: var(--strapz-iron) !important;
  color: var(--strapz-white) !important;
  font-family: var(--font-display);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  font-size: var(--fs-body-sm);
  padding: var(--space-sm) !important;
  border: none !important;
}
.woocommerce-cart table.cart td {
  border-block-end: 1px solid var(--color-border) !important;
  padding: var(--space-sm) !important;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .woocommerce-cart table.cart th,
  .woocommerce-cart table.cart td {
    padding: var(--space-md) !important;
  }
}
.woocommerce-cart table.cart img {
  max-width: 64px;
  height: auto;
}
@media (min-width: 768px) {
  .woocommerce-cart table.cart img { max-width: 80px; }
}

/* Mobile: cart table -> stacked card layout. WC's eigen responsive
   "responsive" class doet dit niet onder onze theme, dus we forceren
   per row een card weergave op <768px. */
@media (max-width: 767px) {
  .woocommerce-cart table.cart thead { display: none; }
  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .woocommerce-cart table.cart tr {
    border-block-end: 1px solid var(--color-border);
    padding: var(--space-md);
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: var(--space-sm);
    align-items: start;
  }
  .woocommerce-cart table.cart tr.cart_item:last-child { border-block-end: 0; }
  .woocommerce-cart table.cart td {
    padding: 0 !important;
    border: 0 !important;
  }
  .woocommerce-cart table.cart td.product-thumbnail {
    grid-row: 1 / span 4;
  }
  .woocommerce-cart table.cart td.product-thumbnail img {
    max-width: 80px;
    width: 100%;
  }
  .woocommerce-cart table.cart td.product-name {
    font-family: var(--font-display);
    text-transform: uppercase;
    font-size: var(--fs-body);
    color: var(--strapz-white);
  }
  .woocommerce-cart table.cart td.product-price::before { content: "Prijs: "; color: var(--color-text-muted); }
  .woocommerce-cart table.cart td.product-quantity::before { content: "Aantal: "; color: var(--color-text-muted); }
  .woocommerce-cart table.cart td.product-subtotal::before { content: "Totaal: "; color: var(--color-text-muted); }
  .woocommerce-cart table.cart td.product-remove { grid-column: 2; justify-self: end; }
  /* Hide coupon form/actions table cell when in mobile card mode */
  .woocommerce-cart table.cart tr.cart-subtotal,
  .woocommerce-cart table.cart tr.shipping,
  .woocommerce-cart table.cart tr.order-total { display: block; }
}

.woocommerce-cart .cart_totals {
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  padding: var(--space-md);
  margin-block-start: var(--space-lg);
}
@media (min-width: 768px) {
  .woocommerce-cart .cart_totals {
    padding: var(--space-lg);
    margin-block-start: var(--space-xl);
  }
}
.woocommerce-cart .cart_totals h2 {
  margin-block-end: var(--space-md);
}

/* ─────────────────────────── Checkout ────────────────────────────────── */
.woocommerce-checkout form.checkout {
  display: grid;
  gap: var(--space-lg);
}
@media (min-width: 768px) {
  .woocommerce-checkout form.checkout { gap: var(--space-xl); }
}
@media (min-width: 1024px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1.5fr 1fr;
  }
}
.woocommerce-checkout #customer_details {
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  padding: var(--space-md);
}
@media (min-width: 768px) {
  .woocommerce-checkout #customer_details { padding: var(--space-lg); }
}
.woocommerce-checkout h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  margin-block-end: var(--space-md);
}
.woocommerce-checkout #order_review {
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  padding: var(--space-md);
  height: fit-content;
}
@media (min-width: 768px) {
  .woocommerce-checkout #order_review { padding: var(--space-lg); }
}
/* Sticky alleen op desktop - op mobile vertical stack, sticky maakt geen zin */
@media (min-width: 1024px) {
  .woocommerce-checkout #order_review {
    position: sticky;
    top: 80px;
  }
}
/* Order review tabel ook responsive maken */
.woocommerce-checkout #order_review table {
  width: 100%;
  font-size: var(--fs-body-sm);
}
.woocommerce-checkout #order_review table img { max-width: 48px; }

/* ─────────────────────────── Notices ─────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.no-comments {
  background: var(--strapz-coal) !important;
  color: var(--color-text) !important;
  border-radius: 0 !important;
  border-top: 3px solid var(--strapz-accent) !important;
  padding: var(--space-md) var(--space-lg) !important;
  font-size: var(--fs-body-sm);
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none !important; }
.woocommerce-error { border-top-color: var(--strapz-error) !important; }
.woocommerce-message { border-top-color: var(--strapz-success) !important; }

/* ─────────────────────────── Pagination ──────────────────────────────── */
.woocommerce-pagination ul.page-numbers {
  border: none !important;
  display: inline-flex;
  gap: var(--space-xs);
}
.woocommerce-pagination ul.page-numbers li {
  border: none !important;
}
.woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 var(--space-sm);
  background: var(--strapz-coal);
  border: 1px solid var(--color-border) !important;
  color: var(--color-text) !important;
  font-family: var(--font-display);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  border-radius: 0 !important;
}
.woocommerce-pagination .page-numbers.current {
  background: var(--strapz-accent) !important;
  color: var(--strapz-white) !important;
  border-color: var(--strapz-accent) !important;
}

/* ============================================================================
   SHOP archive (/shop/) - Strapz custom layout
   ========================================================================== */

.strapz-shop {
  background: var(--strapz-black);
  display: flex;
  flex-direction: column;
}

/* ─── HERO ────────────────────────────────────────────────────────────── */
.strapz-shop__hero {
  position: relative;
  background:
    radial-gradient(ellipse at top right, rgba(200, 16, 46, 0.18) 0%, transparent 60%),
    var(--strapz-coal);
  border-block-end: 1px solid var(--color-border);
  padding-block: var(--space-xxl);
}
@media (min-width: 768px) {
  .strapz-shop__hero { padding-block: var(--space-section); }
}
.strapz-shop__hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  max-width: 760px;
}
.strapz-shop__eyebrow {
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--strapz-accent);
  line-height: 1;
}
.strapz-shop__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 6vw, 4rem);
  line-height: 0.95;
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  color: var(--strapz-white);
  max-width: 16ch;
}
.strapz-shop__lead {
  margin: 0;
  font-size: var(--fs-body-lg);
  line-height: 1.55;
  color: var(--color-text);
  max-width: 56ch;
}

/* Trust pills */
.strapz-shop__trust {
  list-style: none;
  margin: var(--space-sm) 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-xs) var(--space-sm);
}
.strapz-shop__trust li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--strapz-black);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  font-family: var(--font-display);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  line-height: 1;
}
.strapz-shop__trust li span {
  color: var(--strapz-accent);
  font-size: 0.875rem;
}

.strapz-shop__count {
  margin: var(--space-xs) 0 0;
  font-size: var(--fs-body-sm);
  color: var(--color-text-muted);
  letter-spacing: 0.02em;
}

/* ─── BODY (notices + grid + pagination) ──────────────────────────────── */
.strapz-shop__body {
  padding-block: var(--space-xxl);
}
@media (min-width: 768px) {
  .strapz-shop__body { padding-block: var(--space-section); }
}

/* Shop variant van product-grid:
   - mobile: 2 kolommen (compacter, voor onze beperkte catalog)
   - desktop: 3 kolommen */
.product-grid--shop {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 640px) {
  .product-grid--shop { gap: var(--space-md); }
}
@media (min-width: 1024px) {
  .product-grid--shop {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-xl);
  }
}

/* Compactere card-styling op mobile (kleinere title/price om naast elkaar te passen). */
@media (max-width: 639px) {
  .product-grid--shop .product-card__body { padding: var(--space-sm) var(--space-md) var(--space-md); }
  .product-grid--shop .product-card__title {
    font-size: 0.9375rem;
    line-height: 1.2;
    margin-block-end: 4px;
  }
  .product-grid--shop .product-card__price { font-size: 0.9375rem; }
  .product-grid--shop .product-card__colors {
    font-size: 0.75rem;
    margin-block-end: 6px;
  }
  .product-grid--shop .product-card__badge {
    font-size: 0.625rem;
    padding: 4px 8px;
  }
}

/* Shop-card overrides: vierkant beeld, compactere body voor 3-koloms. */
.product-grid--shop .product-card__image { aspect-ratio: 1 / 1; }
.product-grid--shop .product-card__body { padding: var(--space-lg) var(--space-lg) var(--space-xl); }
.product-grid--shop .product-card__title {
  font-size: 1.375rem;
  margin-block-end: var(--space-xs);
}
.product-grid--shop .product-card__price {
  font-size: 1.25rem;
}
.product-grid--shop .product-card__colors {
  font-size: var(--fs-body-sm);
}

/* Empty state */
.strapz-shop__empty {
  text-align: center;
  padding: var(--space-xl);
  background: var(--strapz-coal);
  border: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}
.strapz-shop__empty p {
  margin: 0;
  color: var(--color-text);
  font-size: var(--fs-body-lg);
}

/* Bundle banner padding */
.strapz-shop__bundle {
  padding-block-end: var(--space-xxl);
}
@media (min-width: 768px) {
  .strapz-shop__bundle { padding-block-end: var(--space-section); }
}
