/* =========================================================
   Single product â€” scheda
   Two-column technical sheet. Mono part code leads.
   The Verifica panel is the page-specific signature.
   ========================================================= */
.mz-shop-head--scheda { padding-bottom: var(--s-5); }
.mz-scheda__title { margin-top: var(--s-2); max-width: 28ch; }

.mz-scheda { padding: var(--s-7) 0 var(--s-9); }
.mz-scheda__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: var(--s-8);
  align-items: start;
}
@media (max-width: 900px) {
  .mz-scheda__grid { grid-template-columns: 1fr; gap: var(--s-7); }
}

/* ---- Media ---- */
.mz-scheda__media {
  position: sticky; top: var(--s-7);
  background: var(--media-frame);
  border: 1px solid var(--media-frame-border);
  border-radius: var(--r-3);
  padding: 0;
  min-height: 420px;
  display: flex; align-items: center; justify-content: center;
}
@media (max-width: 900px) {
  .mz-scheda__media { position: static; min-height: 280px; padding: 0; }
}
/* WC ships `.woocommerce div.product div.images { margin-bottom: 2em }`.
   `.mz-scheda__media` wraps the WC gallery (which carries the `.images`
   class), so we target the inner gallery directly. `!important` skips the
   specificity dance — this is a deliberate, scoped override of a WC default. */
.mz-scheda__media .woocommerce-product-gallery,
.mz-scheda__media div.images { margin-bottom: 0 !important; }
.mz-scheda__media { overflow: hidden; }
.mz-scheda__media img { max-width: 100%; height: auto; mix-blend-mode: multiply; }
.mz-scheda__media .zoomImg { mix-blend-mode: normal; position: absolute; top: 0; left: 0; }
.mz-scheda__media .woocommerce-product-gallery,
.mz-scheda__media .flex-viewport,
.mz-scheda__media .woocommerce-product-gallery__wrapper { width: 100% !important; }
.mz-scheda__media .woocommerce-product-gallery__image { width: 100% !important; float: none !important; }
.mz-scheda__media .woocommerce-product-gallery__image a {
  display: block; width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.mz-scheda__media .woocommerce-product-gallery__image a img {
  display: block;
  width: 100%; height: 100%;
  object-fit: contain;
}
.mz-scheda__media .flex-control-thumbs {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--s-2);
  list-style: none; margin: var(--s-5) 0 0; padding: 0;
}
.mz-scheda__media .flex-control-thumbs li { margin: 0; }
.mz-scheda__media .flex-control-thumbs img {
  width: 100%; height: auto;
  border: 1px solid var(--border);
  border-radius: var(--r-2);
  cursor: pointer;
  background: var(--paper);
  padding: 4px;
  transition: border-color var(--d-1) var(--ease);
}
.mz-scheda__media .flex-control-thumbs img:hover,
.mz-scheda__media .flex-control-thumbs .flex-active { border-color: var(--ink-1); }
.mz-scheda__placeholder {
  width: 100%; max-width: 240px; aspect-ratio: 1;
  display: flex; align-items: center; justify-content: center;
  color: var(--ink-3);
}
.mz-scheda__placeholder svg { width: 100%; height: 100%; }
/* z-index: 0 crea uno stacking context locale: WC mette la lente
   (.woocommerce-product-gallery__trigger) a z-index: 99 e, senza contesto
   sul wrapper, finirebbe sopra all'header sticky (z-index: 50). */
.mz-scheda__media { position: relative; z-index: 0; }
.mz-scheda__offerta {
  position: absolute; top: 0; right: 0;
  display: inline-block;
  font: 700 10px/1 var(--ff-mono);
  letter-spacing: var(--tr-micro);
  text-transform: uppercase;
  background: var(--accent); color: var(--paper);
  padding: 5px 8px 4px;
  border-radius: var(--r-1);
  z-index: 2;
  pointer-events: none;
  user-select: none;
}

/* ---- Info column ---- */
.mz-scheda__info { display: flex; flex-direction: column; gap: var(--s-5); }

.mz-scheda__topline {
  display: flex; align-items: center; gap: var(--s-3);
  flex-wrap: wrap;
}
.mz-scheda__code {
  display: inline-flex; align-items: center;
  font: 600 var(--t-base)/1 var(--ff-mono);
  font-feature-settings: 'tnum', 'zero';
  letter-spacing: 0;
  background: var(--paper-3);
  color: var(--ink-1);
  padding: 8px 10px;
  border-radius: var(--r-2);
}
.mz-site-b2b .mz-scheda__code {
  font-size: var(--t-md);
  padding: 10px 12px;
}
.mz-scheda__crumb {
  font: 500 var(--t-xs)/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-scheda__chips { gap: 6px; }
.mz-scheda__chips .mz-chip { padding: 6px 9px; font-size: var(--t-sm); }

.mz-scheda__excerpt {
  color: var(--ink-2);
  font-size: var(--t-md);
  line-height: 1.55;
  max-width: 60ch;
}
.mz-scheda__excerpt p { margin: 0 0 var(--s-3); }
.mz-scheda__excerpt p:last-child { margin: 0; }

/* ---- Price ---- */
.mz-scheda__price {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: var(--s-5) 0;
  display: flex; flex-direction: row; align-items: baseline; gap: var(--s-3);
}
.mz-scheda__price-main {
  font: 700 32px/1 var(--ff-ui);
  letter-spacing: var(--tr-tight);
  color: var(--ink-1);
}
.mz-scheda__price-main .price { display: inline; }
.mz-scheda__price-main del {
  font-size: 18px; font-weight: 500;
  color: var(--ink-3); margin-right: var(--s-3);
}
.mz-scheda__price-main ins { background: transparent; text-decoration: none; }
.mz-scheda__price-main .woocommerce-Price-amount { font-feature-settings: 'tnum'; }
.mz-scheda__price-meta {
  font: 500 var(--t-xs)/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}

/* ---- Verifica compatibilitÃ  (page signature) ---- */
/* Stili .mz-fitment / .mz-fitment-block in assets/css/components/fitment.css (modulo condiviso con header, home, carrello vuoto, scheda prodotto). */

/* ---- Add to cart (style WC's native form, don't replace it) ---- */
.mz-scheda__cart .cart {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-3);
  margin: 0;
}
/* Variable products: inner qty+button row */
.mz-scheda__cart .woocommerce-variation-add-to-cart {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3);
}
.mz-scheda__cart .quantity {
  display: inline-flex; align-items: center;
  height: 48px;
  border: 1px solid var(--ctl-border);
  border-radius: var(--r-2);
  background: var(--ctl-bg);
  overflow: hidden;
}
.mz-scheda__cart .quantity .qty {
  width: 64px; height: 100%;
  border: 0; background: transparent;
  text-align: center;
  font: 600 var(--t-md)/1 var(--ff-mono);
  font-feature-settings: 'tnum';
  color: var(--ink-1);
  padding: 0;
  -moz-appearance: textfield;
  appearance: textfield;
}
.mz-scheda__cart .quantity .qty::-webkit-outer-spin-button,
.mz-scheda__cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mz-scheda__cart .quantity label { display: none; }
.mz-scheda__cart .single_add_to_cart_button,
.mz-scheda__cart button[type="submit"].single_add_to_cart_button {
  display: flex; align-items: center; justify-content: center; gap: var(--s-2);
  flex: 1 0 auto;
  height: 48px; padding: 0 var(--s-7);
  background: var(--brand) !important; color: var(--paper) !important;
  border: 1px solid var(--brand) !important;
  border-radius: var(--r-2);
  font: 700 var(--t-sm)/1 var(--ff-ui);
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background var(--d-1) var(--ease), border-color var(--d-1) var(--ease);
}
.mz-scheda__cart .single_add_to_cart_button:hover,
.mz-scheda__cart button[type="submit"].single_add_to_cart_button:hover {
  background: var(--brand-ink) !important;
  border-color: var(--brand-ink) !important;
  color: var(--paper) !important;
}
.mz-scheda__cart .single_add_to_cart_button:disabled,
.mz-scheda__cart .single_add_to_cart_button.disabled { opacity: 0.5; cursor: not-allowed; }
.mz-scheda__cart .stock {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: 700 var(--t-sm)/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--success);
  background: color-mix(in oklch, var(--success) 9%, transparent);
  padding: 6px 10px 6px 8px;
  border-radius: 2px;
  margin: var(--s-4) 0 var(--s-3);
  width: auto;
}
.mz-scheda__cart .stock::before {
  content: '';
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--success);
  flex-shrink: 0;
}
.mz-scheda__cart .stock.out-of-stock {
  color: var(--brand);
  background: var(--brand-tint);
}
.mz-scheda__cart .stock.out-of-stock::before { background: var(--brand); }

/* Variation tables (variable products) */
.mz-scheda__cart table.variations { width: 100%; border-collapse: collapse; margin: 0 0 var(--s-4); }
.mz-scheda__cart table.variations td,
.mz-scheda__cart table.variations th {
  padding: var(--s-2) 0;
  border: 0;
  vertical-align: middle;
  font-size: var(--t-sm);
}
.mz-scheda__cart table.variations th {
  width: 110px;
  font: 500 var(--t-xs)/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-scheda__cart table.variations select {
  height: 40px;
  background: var(--ctl-bg);
  border: 1px solid var(--ctl-border);
  border-radius: var(--r-2);
  padding: 0 var(--s-4);
  font: 500 var(--t-sm)/1 var(--ff-ui);
  color: var(--ink-1);
  min-width: min(200px, 100%);
  max-width: 100%;
}
.mz-scheda__cart .reset_variations { font-size: var(--t-xs); color: var(--ink-3); margin-left: var(--s-2); }
.mz-scheda__cart .single_variation_wrap .woocommerce-variation-price {
  font: 700 24px/1 var(--ff-ui); letter-spacing: var(--tr-tight); margin: var(--s-3) 0;
}

/* ---- Inline trust strip — hairline index row.
   Tre celle separate da 1px (hairline-grid §7.5). Indice mono `01·02·03`
   come eyebrow. Niente cerchi pieni, niente top-stripe brand: registro
   catalogo, non trust-bar SaaS. ---- */
.mz-scheda__trust {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
@media (max-width: 560px) {
  .mz-scheda__trust { grid-template-columns: 1fr; }
}
.mz-scheda__trust li {
  background: var(--paper);
  padding: var(--s-4) var(--s-5);
  display: flex; flex-direction: column; gap: 4px;
  min-width: 0;
}
.mz-trust__index {
  font: 600 var(--t-xs)/1 var(--ff-mono);
  letter-spacing: var(--tr-micro);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-trust__index b {
  font-weight: 600;
  color: var(--brand);
  margin-right: 6px;
}
.mz-scheda__trust strong {
  font: 700 var(--t-md)/1.2 var(--ff-ui);
  color: var(--ink-1);
}
.mz-scheda__trust span.mz-trust__sub {
  font-size: var(--t-xs);
  color: var(--ink-3);
}

/* ---- Meta (SKU / category / tag) ---- */
.mz-scheda__meta {
  margin: 0;
  display: flex; flex-direction: column; gap: var(--s-2);
  padding-top: var(--s-4);
  border-top: 1px solid var(--border);
  font-size: var(--t-sm);
}
.mz-scheda__meta div { display: flex; gap: var(--s-3); align-items: baseline; }
.mz-scheda__meta dt {
  width: 90px; flex: 0 0 90px;
  font: 500 var(--t-xs)/1.4 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-scheda__meta dd { margin: 0; color: var(--ink-1); }
.mz-scheda__meta dd a { color: var(--ink-1); border-bottom: 1px solid var(--border); }
.mz-scheda__meta dd a:hover { border-bottom-color: var(--ink-1); }

/* Stock pill reused on the scheda â€” light-state variants */
.mz-part__stock--low { color: var(--accent); border-color: var(--accent); }

/* =========================================================
   Single product â€” tabs + related
   Restyles WooCommerce's native tab markup to match the system.
   ========================================================= */
.mz-scheda-tabs { padding: var(--s-8) 0 var(--s-10); border-top: 1px solid var(--border); }

.mz-scheda-tabs .woocommerce-tabs { margin: 0; }
.mz-scheda-tabs .wc-tabs {
  list-style: none; margin: 0 0 var(--s-7); padding: 0;
  display: flex; flex-wrap: wrap; gap: 0;
  border-bottom: 1px solid var(--ink-1);
}
/* Su viewport stretti (matricole + griglie tecniche possono produrre 6–7 tab)
   il wrap rompe l'underline-active in più righe. Scroll orizzontale single-line
   = lettura "lista di sezioni" coerente col registro catalogo. */
@media (max-width: 720px) {
  .mz-scheda-tabs .wc-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-snap-type: x proximity;
  }
  .mz-scheda-tabs .wc-tabs::-webkit-scrollbar { display: none; }
  .mz-scheda-tabs .wc-tabs li { flex: 0 0 auto; scroll-snap-align: start; }
}
.mz-scheda-tabs .wc-tabs li {
  margin: 0; padding: 0;
  border: 0; background: transparent;
}
.mz-scheda-tabs .wc-tabs li::before,
.mz-scheda-tabs .wc-tabs li::after { display: none !important; }
.mz-scheda-tabs .wc-tabs li a {
  display: inline-flex; align-items: center;
  padding: var(--s-4) var(--s-5);
  font: 600 var(--t-sm)/1 var(--ff-ui);
  letter-spacing: 0.01em;
  color: var(--ink-3);
  border: 0; border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent;
  transition: color var(--d-1) var(--ease), border-color var(--d-1) var(--ease);
}
.mz-scheda-tabs .wc-tabs li a:hover { color: var(--ink-1); }
.mz-scheda-tabs .wc-tabs li.active a { color: var(--ink-1); border-bottom-color: var(--brand); }

.mz-scheda-tabs .woocommerce-Tabs-panel {
  padding: 0;
  font-size: var(--t-md);
  line-height: 1.65;
  color: var(--ink-2);
  max-width: 78ch;
}

/* Tab full-width — Informazioni aggiuntive, Recensioni, Staff, Ultimi ordini
   e Scheda tecnica (tabella mm_modelli) escono dal 78ch */
#tab-additional_information.woocommerce-Tabs-panel,
#tab-reviews.woocommerce-Tabs-panel,
#tab-manzo_staff.woocommerce-Tabs-panel,
#tab-manzo_order_history.woocommerce-Tabs-panel,
#tab-manzo_spec.woocommerce-Tabs-panel {
  max-width: none;
}
.mz-scheda-tabs .woocommerce-Tabs-panel h2 {
  font: 800 var(--t-lg)/1.2 var(--ff-ui);
  letter-spacing: var(--tr-tight);
  color: var(--ink-1);
  margin: 0 0 var(--s-4);
}
.mz-scheda-tabs .woocommerce-Tabs-panel h2:first-child { display: none; } /* WC repeats the title â€” we have tabs */
.mz-scheda-tabs .woocommerce-Tabs-panel p { margin: 0 0 var(--s-4); }
.mz-scheda-tabs .woocommerce-Tabs-panel p:last-child { margin: 0; }
.mz-scheda-tabs .woocommerce-Tabs-panel ul,
.mz-scheda-tabs .woocommerce-Tabs-panel ol { padding-left: var(--s-5); margin: 0 0 var(--s-4); }

/* Additional information / attributes table */
.mz-scheda-tabs .shop_attributes,
.mz-scheda-tabs .woocommerce-product-attributes {
  width: 100%; border-collapse: collapse;
  font-size: var(--t-sm);
  border-top: 1px solid var(--ink-1);
  border-bottom: 1px solid var(--ink-1);
}
.mz-scheda-tabs .shop_attributes tr,
.mz-scheda-tabs .woocommerce-product-attributes tr {
  border-bottom: 1px solid var(--border);
}
.mz-scheda-tabs .shop_attributes tr:last-child,
.mz-scheda-tabs .woocommerce-product-attributes tr:last-child { border-bottom: 0; }
.mz-scheda-tabs .shop_attributes th,
.mz-scheda-tabs .woocommerce-product-attributes-item__label {
  width: 30%;
  text-align: left;
  padding: var(--s-3) var(--s-4) var(--s-3) 0;
  font: 500 var(--t-xs)/1.4 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
  vertical-align: top;
}
.mz-scheda-tabs .shop_attributes td,
.mz-scheda-tabs .woocommerce-product-attributes-item__value {
  padding: var(--s-3) 0;
  color: var(--ink-1);
}
.mz-scheda-tabs .shop_attributes td p { margin: 0; }

/* =========================================================
   Reviews — "Recensioni clienti"
   Tab registro catalogo-binder: eyebrow mono, panel aggregato con media voti
   + barre di distribuzione hairline, lista review numerata (01., 02., …),
   form modulare su carta-2. Nessuna ombra, nessun gradiente.
   ========================================================= */

/* WC ripete il titolo "Reviews (N)" come <h2> dentro #reviews — già nascosto
   dal .woocommerce-Tabs-panel h2:first-child sopra ma #comments h2 finisce
   come secondo h2: lo togliamo esplicitamente, ce ne occupiamo noi. */
.mz-scheda-tabs .mz-reviews #comments > h2,
.mz-scheda-tabs .mz-reviews .woocommerce-Reviews-title { display: none !important; }

.mz-reviews {
  --mz-rev-star-size: 16px;
  margin: 0;
  padding: 0;
  color: var(--ink-1);
}

/* --- Header eyebrow ---------------------------------------------------- */
.mz-reviews__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-4);
  padding-bottom: var(--s-3);
  border-bottom: 1px solid var(--ink-1);
  margin-bottom: var(--s-6);
}
.mz-reviews__eyebrow {
  font: 500 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-micro);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-reviews__count {
  font: 500 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  color: var(--ink-4);
  font-feature-settings: 'tnum', 'zero';
}

/* --- Summary panel (media voti + distribuzione) ------------------------ */
/* Hairline-grid: 1px gap su sfondo --border, le celle sono --paper.
   Catalog-binder rule: la griglia possiede le linee, mai le celle. */
.mz-reviews__summary {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(320px, 1.7fr);
  gap: 1px;
  background-color: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--r-2);
  overflow: hidden;
  margin-bottom: var(--s-8);
}
@media (max-width: 640px) {
  .mz-reviews__summary { grid-template-columns: 1fr; }
}

.mz-reviews__avg {
  background: var(--paper);
  padding: var(--s-6);
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  column-gap: var(--s-4);
  align-items: baseline;
}
.mz-reviews__avg-num {
  grid-row: 1 / 3;
  grid-column: 1;
  font: 600 clamp(40px, 6vw, 56px)/1 var(--ff-mono);
  color: var(--ink-1);
  font-feature-settings: 'tnum', 'zero';
  letter-spacing: -0.02em;
}
/* Stato "nessun voto" — il glifo "—" è decorativo, non un numero;
   resa più leggera, stessa griglia per non spostare il count sotto. */
.mz-reviews__avg-num--empty {
  color: var(--ink-4);
  font-weight: 400;
  letter-spacing: 0;
}
.mz-reviews__summary--no-avg .mz-reviews__avg-scale {
  align-self: center;
  text-transform: lowercase;
  letter-spacing: 0;
  font-weight: 400;
  color: var(--ink-3);
  max-width: 18ch;
  line-height: 1.4;
}
.mz-reviews__avg-scale {
  grid-row: 1;
  grid-column: 2;
  font: 500 var(--t-sm)/1 var(--ff-mono);
  color: var(--ink-3);
  letter-spacing: var(--tr-label);
}
.mz-reviews__avg-stars {
  grid-row: 2;
  grid-column: 2;
  align-self: end;
  color: var(--brand);
}
.mz-reviews__avg-count {
  grid-row: 3;
  grid-column: 1 / -1;
  margin-top: var(--s-3);
  padding-top: var(--s-3);
  border-top: 1px solid var(--border);
  font: 400 var(--t-sm)/1.4 var(--ff-ui);
  color: var(--ink-3);
}
.mz-reviews__avg-count b {
  color: var(--ink-1);
  font-weight: 600;
  font-feature-settings: 'tnum', 'zero';
}

/* Stars component -------------------------------------------------- */
.mz-stars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: var(--brand);
  vertical-align: middle;
}
.mz-stars__star {
  width: var(--mz-rev-star-size);
  height: var(--mz-rev-star-size);
  display: block;
}
.mz-stars__star--empty { color: var(--ink-4); }
.mz-stars__star--half  { color: var(--brand); }

/* Distribution column --------------------------------------------- */
.mz-reviews__dist {
  background: var(--paper);
  padding: var(--s-6);
  list-style: none;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--s-2);
}
.mz-reviews__dist-row {
  display: grid;
  grid-template-columns: minmax(68px, max-content) 1fr 44px 44px;
  align-items: center;
  gap: var(--s-3);
  font-feature-settings: 'tnum', 'zero';
}
.mz-reviews__dist-label {
  font: 500 var(--t-xs)/1 var(--ff-mono);
  color: var(--ink-3);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
}
.mz-reviews__dist-track {
  position: relative;
  height: 6px;
  background: var(--paper-3);
  border-radius: 1px;
  overflow: hidden;
}
.mz-reviews__dist-fill {
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--brand);
  border-radius: 1px;
  transition: width var(--d-2) var(--ease);
}
.mz-reviews__dist-count {
  text-align: right;
  font: 500 var(--t-sm)/1 var(--ff-mono);
  color: var(--ink-1);
}
.mz-reviews__dist-pct {
  text-align: right;
  font: 400 var(--t-xs)/1 var(--ff-mono);
  color: var(--ink-3);
}
@media (max-width: 640px) {
  .mz-reviews__dist-row { grid-template-columns: minmax(64px, max-content) 1fr 38px 38px; }
}

/* --- Lista review ------------------------------------------------------ */
.mz-reviews__list-wrap { margin: 0; padding: 0; }
.mz-reviews__list-title {
  font: 500 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-micro);
  text-transform: uppercase;
  color: var(--ink-3);
  margin: 0 0 var(--s-4);
}
.mz-reviews__list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--s-7);
  border-top: 1px solid var(--border);
}
.mz-review {
  padding: var(--s-5) 0 var(--s-5);
  border-bottom: 1px solid var(--border);
  transition: border-color var(--d-1) var(--ease);
}
.mz-review:hover { border-bottom-color: var(--ink-1); }

.mz-review__inner { display: grid; gap: var(--s-3); }

/* Header griglia: indice (col 1, auto) · stelle (col 2, riempie a sinistra)
   · meta (col 3, auto a destra). Senza stelle il flexer 1fr ingoia lo spazio
   intermedio e meta resta correttamente a destra. */
.mz-review__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--s-3) var(--s-4);
  row-gap: var(--s-1);
}
.mz-review__idx {
  font: 500 var(--t-xs)/1 var(--ff-mono);
  color: var(--ink-4);
  letter-spacing: var(--tr-label);
  font-feature-settings: 'tnum', 'zero';
}
.mz-review__stars {
  --mz-rev-star-size: 14px;
  color: var(--brand);
  grid-column: 2;
  justify-self: start;
}

.mz-review__meta {
  grid-column: 3;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2) var(--s-3);
  justify-self: end;
  font-size: var(--t-sm);
  color: var(--ink-3);
}
.mz-review__author {
  font: 600 var(--t-sm)/1.2 var(--ff-ui);
  color: var(--ink-1);
  letter-spacing: 0;
}
.mz-review__verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: 500 11px/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--success);
  padding: 3px 6px;
  border: 1px solid var(--success);
  border-radius: var(--r-1);
}
.mz-review__verified svg { display: block; }
.mz-review__date {
  font: 500 var(--t-xs)/1 var(--ff-mono);
  color: var(--ink-3);
  letter-spacing: var(--tr-label);
  font-feature-settings: 'tnum', 'zero';
  padding: 4px 6px;
  background: var(--paper-3);
  border-radius: var(--r-1);
}

.mz-review__awaiting {
  font: 500 var(--t-xs)/1.4 var(--ff-mono);
  color: var(--accent-ink);
  margin: 0;
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
}

.mz-review__body {
  font: 400 var(--t-base)/1.6 var(--ff-ui);
  color: var(--ink-1);
  max-width: 70ch;
}
.mz-review__body p { margin: 0 0 var(--s-3); }
.mz-review__body p:last-child { margin: 0; }

/* Su mobile l'header passa a colonna piena: indice/stelle su una riga,
   meta su quella sotto. */
@media (max-width: 560px) {
  .mz-review__head { grid-template-columns: auto 1fr; }
  .mz-review__stars { grid-column: 2; }
  .mz-review__meta { justify-self: start; grid-column: 1 / -1; }
}

/* --- Empty state ------------------------------------------------------- */
.mz-reviews__empty {
  display: grid;
  justify-items: center;
  text-align: center;
  padding: var(--s-8) var(--s-5);
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-radius: var(--r-2);
  gap: var(--s-3);
  margin-bottom: var(--s-7);
}
.mz-reviews__empty-mark { width: 48px; height: 48px; color: var(--ink-4); }
.mz-reviews__empty-title {
  font: 600 var(--t-md)/1.3 var(--ff-ui);
  color: var(--ink-1);
  margin: 0;
}
.mz-reviews__empty-sub {
  font: 400 var(--t-sm)/1.55 var(--ff-ui);
  color: var(--ink-2);
  margin: 0;
  max-width: 56ch;
}

/* --- Pagination -------------------------------------------------------- */
.mz-reviews__pagination {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  margin: 0 0 var(--s-7);
  padding-top: var(--s-3);
  border-top: 1px solid var(--border);
}
.mz-reviews__page a,
.mz-reviews__page > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 var(--s-3);
  font: 500 var(--t-sm)/1 var(--ff-mono);
  color: var(--ink-2);
  border: 1px solid var(--border);
  border-radius: var(--r-1);
  text-decoration: none;
  transition: border-color var(--d-1) var(--ease), color var(--d-1) var(--ease);
}
.mz-reviews__page a:hover { color: var(--ink-1); border-color: var(--ink-1); }
.mz-reviews__page > span.current { color: var(--paper); background: var(--ink-1); border-color: var(--ink-1); }

.mz-reviews__notice {
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-left: 0;
  border-right: 0;
  padding: var(--s-4) var(--s-5);
  font: 400 var(--t-sm)/1.5 var(--ff-ui);
  color: var(--ink-2);
  margin: 0;
}

/* --- Form -------------------------------------------------------------- */
/* Il modulo è un atto di compilazione, non un display di dati. Cap a ~820px
   left-aligned: gli input restano a una larghezza ergonomica anche quando
   il pannello recensioni occupa tutta la pagina. */
.mz-reviews__formwrap {
  margin-top: var(--s-7);
  padding: var(--s-6) var(--s-6) var(--s-5);
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-radius: var(--r-3);
  max-width: 820px;
}
.mz-reviews__form-head { margin-bottom: var(--s-4); }
.mz-rev-form__title {
  font: 700 var(--t-lg)/1.2 var(--ff-ui);
  letter-spacing: var(--tr-tight);
  color: var(--ink-1);
  margin: 0 0 var(--s-5);
}
.mz-rev-form__form {
  display: grid;
  gap: var(--s-4);
}
.mz-rev-form__field { margin: 0; display: grid; gap: var(--s-2); }
.mz-rev-form__label {
  font: 500 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-rev-form__req { color: var(--accent); }
.mz-rev-form__input,
.mz-rev-form__textarea,
.mz-rev-form__rating-select {
  width: 100%;
  background: var(--ctl-bg);
  border: 1px solid var(--ctl-border);
  border-radius: var(--r-2);
  padding: 0 var(--s-4);
  font: 400 var(--t-sm)/1 var(--ff-ui);
  color: var(--ink-1);
  height: 44px;
  transition: border-color var(--d-1) var(--ease);
}
.mz-rev-form__textarea {
  padding: var(--s-3) var(--s-4);
  height: auto;
  min-height: 140px;
  line-height: 1.55;
  resize: vertical;
}
.mz-rev-form__input:hover,
.mz-rev-form__textarea:hover,
.mz-rev-form__rating-select:hover { border-color: var(--ctl-border-h); }
.mz-rev-form__input:focus-visible,
.mz-rev-form__textarea:focus-visible,
.mz-rev-form__rating-select:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
  border-color: var(--ink-1);
}
.mz-rev-form__hint {
  font: 400 var(--t-xs)/1.4 var(--ff-ui);
  color: var(--ink-3);
}

.mz-rev-form__rating { margin: 0; display: grid; gap: var(--s-2); }

/* Star rating widget — il template emette <p class="stars"> server-side per
   garantire la presenza anche senza JS. WC's wc-single-product.js (se gira)
   inietterebbe un secondo <p class="stars"> prima di #rating; deduplichiamo via
   selettore di adiacenza. WC's stesso click-handler valorizza #rating e setta
   .active/.selected sulla nostra <p class="stars">. */
.mz-rev-form__rating > p.stars ~ p.stars { display: none !important; }
.mz-reviews .stars {
  margin: 0 0 var(--s-2);
  padding: 0;
  display: inline-block;
  font-size: 0;
  line-height: 1;
}
.mz-reviews .stars span {
  display: inline-flex;
  gap: 2px;
}
.mz-reviews .stars a {
  position: relative;
  width: 32px;
  height: 32px;
  display: inline-block;
  text-indent: -9999px;
  text-decoration: none;
  cursor: pointer;
  border: 0;
  background: transparent;
  border-radius: var(--r-1);
}
.mz-reviews .stars a::before,
.mz-reviews .stars a::after {
  content: "";
  position: absolute;
  inset: 4px;
  background-color: var(--ink-4);
  font-family: inherit !important;
  font-size: 0 !important;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/></svg>") center / 24px 24px no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/></svg>") center / 24px 24px no-repeat;
  transition: background-color var(--d-1) var(--ease);
}
/* WC base CSS aggiunge un `::after` con content="\e021" font-family:WooCommerce.
   Lo sovrascriviamo: stesso path SVG così non genera glifo doppio. */
.mz-reviews .stars a::after { display: none; }
.mz-reviews .stars a:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
}
/* Hover: riempi da sinistra fino alla stella sotto cursore */
.mz-reviews .stars:hover a::before { background-color: var(--brand); }
.mz-reviews .stars a:hover ~ a::before { background-color: var(--ink-4); }
/* Selected (post-click): persistente */
.mz-reviews .stars.selected a:not(.active)::before { background-color: var(--brand); }
.mz-reviews .stars.selected a.active::before { background-color: var(--brand); }
.mz-reviews .stars.selected a.active ~ a::before { background-color: var(--ink-4); }
/* Il <select id="rating"> è il fallback senza JS: WC lo nasconde inline via
   $('#rating').hide() quando inietta le stelle. Senza JS resta visibile come
   dropdown — la base (size/colore/border) eredita dal grouped rule sopra,
   qui solo l'appearance-reset + chevron custom. */
.mz-rev-form__rating-select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%231e1e1e' stroke-width='1.5'><path d='M1 1.5l5 5 5-5'/></svg>");
  background-repeat: no-repeat;
  background-position: right var(--s-4) center;
  background-size: 12px 8px;
  padding-right: 36px;
}

/* Author + Email su due colonne ≥ 640px */
@media (min-width: 640px) {
  .mz-rev-form__form {
    grid-template-columns: 1fr 1fr;
  }
  .mz-rev-form__rating,
  .comment-form-comment,
  .mz-rev-form__submitwrap { grid-column: 1 / -1; }
}

.mz-rev-form__submitwrap {
  margin: var(--s-2) 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-3) var(--s-5);
}
.mz-rev-form__submit {
  /* Eredita .mz-btn .mz-btn--primary, qui solo override minimi se servono */
  min-width: 200px;
}
.mz-rev-form__legal {
  font: 400 var(--t-xs)/1.4 var(--ff-ui);
  color: var(--ink-3);
  flex: 1 1 200px;
}

/* WC core: rimuovi le .comment-form-cookies-consent inline default style */
.mz-reviews .comment-form-cookies-consent {
  font: 400 var(--t-xs)/1.4 var(--ff-ui);
  color: var(--ink-3);
  display: flex;
  gap: var(--s-2);
  align-items: flex-start;
}
.mz-reviews .comment-form-cookies-consent input[type="checkbox"] { margin-top: 2px; accent-color: var(--brand); }

/* Related / upsells */
.mz-scheda-tabs .related,
.mz-scheda-tabs .upsells {
  margin-top: var(--s-9);
  padding-top: var(--s-7);
  border-top: 1px solid var(--ink-1);
}
.mz-scheda-tabs .related > h2,
.mz-scheda-tabs .upsells > h2 {
  font: 700 var(--t-lg)/1 var(--ff-ui);
  letter-spacing: var(--tr-tight);
  color: var(--ink-1);
  margin: 0 0 var(--s-6);
}
.mz-scheda-tabs .related > h2::before,
.mz-scheda-tabs .upsells > h2::before {
  content: 'Ricambi correlati';
  display: block;
  font: 600 var(--t-xs)/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: var(--s-2);
}
.mz-scheda-tabs .upsells > h2::before { content: 'Acquistati insieme'; }

.mz-related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--s-5);
  margin: 0;
  padding: 0;
}
@media (max-width: 1000px) { .mz-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .mz-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Large screens: auto-fill (non auto-fit) così quando i related products
   sono < 4 le tracce vuote restano e le cards non si gonfino a tutta la riga. */
@media (min-width: 2560px) { .mz-related-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); } }

/* Reset any float/layout WC applies to the .related/.upsells sections */
.mz-scheda-tabs .related,
.mz-scheda-tabs .upsells {
  display: block;
  float: none;
  width: auto;
}

/* =========================================================
   Scheda tecnica — 3 colonne (Modelli / Matricole / Codici)
   Ogni colonna è una scheda dati: eyebrow mono uppercase +
   totale grande, sotto una lista numerata di voci monospace.
   Le colonne sono separate da una linea netta (no card stack);
   l'indice 01·02·03 dà ritmo, il totale dà scala.
   ========================================================= */
.mz-scheda-tabs .mz-spec { max-width: none; }

.mz-spec {
  display: grid;
  grid-template-columns: repeat(var(--mz-spec-cols, 3), minmax(0, 1fr));
  border-top: 1px solid var(--ink-1);
  border-bottom: 1px solid var(--ink-1);
}
.mz-spec[data-cols="1"] { --mz-spec-cols: 1; }
.mz-spec[data-cols="2"] { --mz-spec-cols: 2; }
.mz-spec[data-cols="3"] { --mz-spec-cols: 3; }

.mz-spec__col {
  padding: var(--s-6) var(--s-5) var(--s-6) 0;
  min-width: 0;
}
.mz-spec__col + .mz-spec__col {
  padding-left: var(--s-6);
  border-left: 1px solid var(--border);
}

.mz-spec__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-3);
  padding-bottom: var(--s-3);
  margin-bottom: var(--s-4);
  border-bottom: 1px solid var(--border);
}
.mz-spec__eyebrow {
  font: 600 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-2);
}
.mz-spec__total {
  font: 700 28px/1 var(--ff-ui);
  letter-spacing: var(--tr-tight);
  color: var(--ink-1);
  font-variant-numeric: tabular-nums;
}

.mz-spec__items {
  list-style: none;
  margin: 0;
  padding: 0 var(--s-1) 0 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  counter-reset: mz-spec;
  /* Limita la lista a ~8 righe visibili e scrolla internamente. */
  --mz-spec-row-h: 28px;
  max-height: calc(var(--mz-spec-row-h) * 8 + 2px * 7);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--ink-3) transparent;
  mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 24px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 24px), transparent 100%);
}
.mz-spec__items::-webkit-scrollbar { width: 6px; }
.mz-spec__items::-webkit-scrollbar-track { background: transparent; }
.mz-spec__items::-webkit-scrollbar-thumb {
  background: color-mix(in oklch, var(--ink-3) 40%, transparent);
  border-radius: 3px;
}
.mz-spec__items::-webkit-scrollbar-thumb:hover {
  background: var(--ink-3);
}
/* Quando ci sono <=8 voci, niente fade né scroll. */
.mz-spec__items:not(:has(> :nth-child(9))) {
  mask-image: none;
  -webkit-mask-image: none;
  max-height: none;
  overflow-y: visible;
}
.mz-spec__item {
  display: grid;
  grid-template-columns: 28px 1fr 24px;
  align-items: center;
  gap: var(--s-3);
  padding: 5px var(--s-2) 5px var(--s-3);
  border-radius: var(--r-2);
  background: transparent;
  transition: background var(--d-1) var(--ease);
}
.mz-spec__item:hover {
  background: color-mix(in oklch, var(--brand) 8%, transparent);
}
.mz-spec__item:hover .mz-spec__idx {
  color: var(--brand-ink);
}

.mz-spec__idx {
  font: 600 10px/1 var(--ff-mono);
  letter-spacing: 0.06em;
  color: var(--ink-4);
  font-variant-numeric: tabular-nums;
  text-align: right;
  padding-right: var(--s-2);
  border-right: 1px solid var(--border);
  transition: color var(--d-1) var(--ease);
}
.mz-spec__val {
  font: 500 var(--t-sm)/1.3 var(--ff-mono);
  letter-spacing: 0.02em;
  color: var(--ink-1);
  word-break: break-word;
  user-select: all;
}
.mz-spec__search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: var(--r-1);
  color: var(--ink-4);
  text-decoration: none;
  transition: color var(--d-1) var(--ease), background var(--d-1) var(--ease);
}
.mz-spec__item:hover .mz-spec__search {
  color: var(--ink-2);
}
.mz-spec__search:hover,
.mz-spec__search:focus-visible {
  color: var(--brand-ink);
  background: var(--brand-tint);
  outline: none;
}

@media (max-width: 800px) {
  .mz-spec[data-cols="3"] { --mz-spec-cols: 1; }
  .mz-spec[data-cols="2"] { --mz-spec-cols: 1; }
  .mz-spec__col {
    padding: var(--s-5) 0;
  }
  .mz-spec__col + .mz-spec__col {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--border);
  }
  .mz-spec__total { font-size: 22px; }
}

/* =========================================================
   Scheda tecnica — variante tabella riga-per-riga (mm_modelli).
   Sostituisce il layout a colonne aggregate quando i dati vengono
   dalla tabella `wp_manzo_modelli` (sorgente di verità del fitment).
   Ogni riga = una combinazione completa di codici, così la relazione
   tra modello / 12NC / industriale / commerciale resta visibile.
   ========================================================= */
.mz-spec--table {
  display: block;
  border-top: 1px solid var(--ink-1);
  border-bottom: 1px solid var(--ink-1);
  padding: var(--s-5) 0;
}
.mz-spec-table__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  padding: 0 0 var(--s-3);
  margin-bottom: var(--s-4);
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}
.mz-spec-table__head .mz-spec__total {
  font: 600 var(--t-sm)/1.2 var(--ff-mono);
  color: var(--ink-2);
  letter-spacing: 0.02em;
  text-transform: none;
  white-space: nowrap;
}
.mz-spec-table__head .mz-spec__total b {
  font-weight: 700;
  color: var(--ink-1);
  font-variant-numeric: tabular-nums;
}

.mz-spec-table__search {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  flex: 1 1 280px;
  max-width: 380px;
  padding: 6px var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--r-2);
  background: var(--paper);
  color: var(--ink-3);
  transition: border-color var(--d-1) var(--ease), color var(--d-1) var(--ease);
}
.mz-spec-table__search:focus-within {
  border-color: var(--ink-2);
  color: var(--ink-2);
}
.mz-spec-table__filter {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  font: 500 var(--t-sm)/1.3 var(--ff-mono);
  letter-spacing: 0.02em;
  color: var(--ink-1);
  padding: 0;
}
.mz-spec-table__filter::placeholder { color: var(--ink-4); }
.mz-spec-table__filter::-webkit-search-cancel-button { cursor: pointer; }

.mz-spec-table__wrap {
  overflow: auto;
  max-height: calc(var(--mz-spec-table-row-h, 34px) * 14);
  scrollbar-width: thin;
  scrollbar-color: var(--ink-3) transparent;
  mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 24px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 24px), transparent 100%);
}
.mz-spec-table__wrap::-webkit-scrollbar { width: 6px; height: 6px; }
.mz-spec-table__wrap::-webkit-scrollbar-track { background: transparent; }
.mz-spec-table__wrap::-webkit-scrollbar-thumb {
  background: color-mix(in oklch, var(--ink-3) 40%, transparent);
  border-radius: 3px;
}
.mz-spec-table__wrap::-webkit-scrollbar-thumb:hover { background: var(--ink-3); }
/* Quando ci sono poche righe (≤14), niente fade né scroll. */
.mz-spec-table__el tbody:not(:has(.mz-spec-table__row:nth-child(15))) ~ * { display: none; }
.mz-spec-table__wrap:not(:has(.mz-spec-table__row:nth-child(15))) {
  max-height: none;
  overflow: visible;
  mask-image: none;
  -webkit-mask-image: none;
}
.mz-spec-table__el {
  width: 100%;
  border-collapse: collapse;
  font: 500 var(--t-sm)/1.35 var(--ff-mono);
  letter-spacing: 0.02em;
  color: var(--ink-1);
  table-layout: auto;
}
.mz-spec-table__th {
  text-align: left;
  font: 600 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-2);
  padding: var(--s-2) var(--s-3);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  background: var(--paper);
  position: sticky;
  top: 0;
  z-index: 1;
}
.mz-spec-table__empty-msg {
  margin: var(--s-4) 0 0;
  padding: var(--s-3);
  text-align: center;
  font: 500 var(--t-sm)/1.4 var(--ff-mono);
  color: var(--ink-3);
  border: 1px dashed var(--border);
  border-radius: var(--r-2);
}
.mz-spec-table__th--idx {
  width: 36px;
  text-align: right;
  color: var(--ink-4);
}
.mz-spec-table__row {
  transition: background var(--d-1) var(--ease);
}
.mz-spec-table__row:hover {
  background: color-mix(in oklch, var(--brand) 8%, transparent);
}
.mz-spec-table__row + .mz-spec-table__row .mz-spec-table__td {
  border-top: 1px solid color-mix(in oklch, var(--border) 60%, transparent);
}
.mz-spec-table__td {
  padding: 6px var(--s-3);
  vertical-align: middle;
  white-space: nowrap;
}
.mz-spec-table__td--idx {
  font: 600 10px/1 var(--ff-mono);
  letter-spacing: 0.06em;
  color: var(--ink-4);
  font-variant-numeric: tabular-nums;
  text-align: right;
  width: 36px;
}
.mz-spec-table__val {
  color: var(--ink-1);
  user-select: all;
  word-break: break-word;
}
.mz-spec-table__td .mz-spec__search {
  margin-left: var(--s-2);
  vertical-align: middle;
}
.mz-spec-table__empty {
  color: var(--ink-4);
  user-select: none;
}
.mz-spec-table__row--more .mz-spec-table__td {
  text-align: center;
  font: 600 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
  padding: var(--s-4) var(--s-3);
  border-top: 1px dashed var(--border) !important;
}

@media (max-width: 800px) {
  .mz-spec-table__wrap {
    margin: 0 calc(-1 * var(--s-4));
    padding: 0 var(--s-4);
  }
  .mz-spec-table__el { font-size: 12px; }
  .mz-spec-table__th, .mz-spec-table__td { padding: 6px var(--s-2); }
}

/* =========================================================
   Informazioni aggiuntive — tre blocchi semantici
   Sostituisce la default shop_attributes table di WC. Due
   "fact card" affiancate in alto (Marca + Disponibilità) e
   sotto la lista compatibili a tutta larghezza (riusa mz-spec).
   Niente tabelle, niente italic: ogni dato col suo componente.
   ========================================================= */
.mz-scheda-tabs .mz-info { max-width: none; }

.mz-info {
  display: flex;
  flex-direction: column;
  gap: var(--s-6);
  border-top: 1px solid var(--ink-1);
  padding-top: var(--s-6);
}

.mz-info__row--facts {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1px;
  background: var(--paper);
}

.mz-info__fact {
  background: var(--paper);
  padding: var(--s-4) var(--s-5) var(--s-5);
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  min-width: 0;
}

.mz-info__head {
  padding-bottom: var(--s-2);
  border-bottom: 1px solid var(--border);
}

.mz-info__eyebrow {
  font: 600 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}

.mz-info__body {
  display: flex;
  align-items: center;
  min-height: 32px;
  font-style: normal;
}

.mz-info__brand {
  display: inline-flex;
  align-items: center;
  font-size: var(--t-sm);
  padding: 8px 12px;
  text-decoration: none;
  transition: background var(--d-1) var(--ease), color var(--d-1) var(--ease);
}
.mz-info__brand:hover,
.mz-info__brand:focus-visible {
  background: var(--brand);
  color: var(--paper);
  outline: none;
}

.mz-info__stock {
  font-size: var(--t-sm);
}
.mz-info__stock::before {
  width: 8px;
  height: 8px;
}

.mz-info__row--compat.mz-spec {
  border-top: 1px solid var(--ink-1);
  border-bottom: 1px solid var(--ink-1);
}
.mz-info__row--compat .mz-spec__col {
  padding: var(--s-6) 0;
}
.mz-info__row--compat .mz-spec__col:not(:last-child) {
  padding-right: var(--s-7);
}
.mz-info__row--compat .mz-spec__col + .mz-spec__col {
  padding-left: var(--s-7);
}

/* Lista interna a 2 colonne per marche e codici */
.mz-info__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--s-5);
  max-height: calc(var(--mz-spec-row-h, 28px) * 10 + 2px * 9);
}

@media (max-width: 800px) {
  .mz-info__row--facts {
    grid-template-columns: 1fr;
  }
  .mz-info__row--compat .mz-spec__col:not(:last-child) {
    padding-right: 0;
  }
  .mz-info__row--compat .mz-spec__col + .mz-spec__col {
    padding-left: 0;
  }
  .mz-info__items {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Tab "Misure" — diagramma SVG tecnico del filtro + valori
   in elenco. Solo per i prodotti con pa_filtro_*.
   ========================================================= */
.mz-scheda-tabs .mz-misure { max-width: none; }

.mz-misure {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: var(--s-8);
  align-items: center;
  padding: var(--s-6) 0;
  border-top: 1px solid var(--ink-1);
  border-bottom: 1px solid var(--ink-1);
  color: var(--ink-1);
}

.mz-misure__diagram {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  align-items: center;
  text-align: center;
  color: var(--ink-1);
}
.mz-misure__diagram svg {
  width: 100%;
  max-width: 620px;
  height: auto;
  display: block;
}
.mz-misure__caption {
  font: 500 var(--t-xs)/1.3 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-3);
}

.mz-misure__svg-label {
  font: 700 13px/1 var(--ff-mono);
  letter-spacing: 0.14em;
  fill: var(--ink-2);
  text-transform: uppercase;
}
.mz-misure__svg-value {
  font: 700 16px/1 var(--ff-ui);
  letter-spacing: -0.01em;
  fill: var(--ink-1);
  font-variant-numeric: tabular-nums;
}

.mz-misure__list {
  margin: 0;
  display: grid;
  gap: 0;
  align-self: center;
}
.mz-misure__row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: var(--s-5);
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--border);
}
.mz-misure__row:last-child { border-bottom: 0; }
.mz-misure__key {
  margin: 0;
  font: 600 var(--t-xs)/1.2 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--ink-2);
}
.mz-misure__val {
  margin: 0;
  font: 700 28px/1 var(--ff-ui);
  letter-spacing: var(--tr-tight);
  color: var(--ink-1);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 720px) {
  .mz-misure {
    grid-template-columns: 1fr;
    gap: var(--s-5);
  }
  .mz-misure__val { font-size: 22px; }
}

/* ---- Image protect — friction lato CSS
   Niente selezione testo/immagine, niente drag-out, niente long-press iOS.
   Il blocco del contextmenu / middle-click sta in assets/js/image-protect.js. */
.mz-scheda__media img,
.mz-scheda__media a,
.pswp img {
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

