/* ============================================================
   GROSSCLIMA · custom.css
   Override CSS-only sul tema Warehouse 4.7.2 — PrestaShop 8.2.5
   ------------------------------------------------------------
   FASE 1: design tokens + reset tipografico + utilities base
   Per disabilitare TUTTI gli override: svuotare questo file.
   ============================================================ */


/* ============================================================
   0 · COMPATIBILITÀ — regole pre-esistenti da preservare
   (originariamente in iqitthemeeditor → "Custom CSS")
   ============================================================ */
.ps-shoppingcart.dropdown #blockcart-content { z-index: 1000; }


/* ============================================================
   1 · FONT LOADING
   Montserrat 400/500/600/700 + JetBrains Mono 400/500/600
   In Fase 5 sposteremo questa @import dentro hook
   actionFrontControllerSetMedia per priorità + preconnect.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');


/* ============================================================
   2 · DESIGN TOKENS (allineati al prototipo styles.css)
   ============================================================ */
:root {
  /* Brand */
  --gc-primary:        #004A5C;  /* petrol scuro · accenti, link active, hover nav */
  --gc-primary-ink:    #003440;  /* petrol scuro hover */
  --gc-primary-50:     #E5EDF0;  /* petrol lavato — backgrounds soft */
  --gc-accent:         #111111;  /* nero deciso · CTA primario */

  /* Surfaces */
  --gc-bg:             #FAFAF7;  /* off-white warm — background pagina */
  --gc-bg-alt:         #F2F0EA;  /* sezioni alternate */
  --gc-surface:        #FFFFFF;  /* card, panels */

  /* Ink */
  --gc-ink:            #111111;  /* testo principale */
  --gc-ink-2:          #3A3A3A;  /* testo secondario */
  --gc-muted:          #7A7873;  /* eyebrow, captions, placeholder */

  /* Rules */
  --gc-rule:           #E3E0D9;
  --gc-rule-strong:    #CFCBC1;

  /* States */
  --gc-success:        #1F6B3F;
  --gc-warn:           #B86A1E;
  --gc-error:          #B0291E;

  /* Typography */
  --gc-font:           'Montserrat', system-ui, -apple-system, sans-serif;
  --gc-mono:           'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Spacing scale (4px base) */
  --gc-s-1: 4px;  --gc-s-2: 8px;  --gc-s-3: 12px;
  --gc-s-4: 16px; --gc-s-5: 24px; --gc-s-6: 32px;
  --gc-s-7: 48px; --gc-s-8: 64px; --gc-s-9: 96px;

  /* Layout */
  --gc-maxw:           1440px;   /* container principale (override iqitthemeed 1270) */
  --gc-pad:            40px;     /* padding orizzontale container */
  --gc-radius:         2px;      /* industrial: rounding minimo */

  /* Shadows */
  --gc-shadow-input:   3px 3px 0 var(--gc-primary);
  --gc-shadow-card:    0 24px 40px -20px rgba(0,0,0,0.08);
}


/* ============================================================
   3 · RESET TIPOGRAFICO GLOBALE
   Warehouse + iqitthemeeditor configurano Spirax sui headings.
   Forziamo Montserrat ovunque. Specificità via combinatori,
   senza !important. Aggiungere !important solo se in QA
   troviamo regole resistenti (commento obbligatorio).
   ============================================================ */
html body,
html body button,
html body input,
html body select,
html body textarea,
html body .h1, html body .h2, html body .h3,
html body .h4, html body .h5, html body .h6,
html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6 {
  font-family: var(--gc-font);
}

body {
  color: var(--gc-ink);
  background: var(--gc-bg);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'ss01', 'tnum';
}

/* Scala headings (allineata al prototipo) */
body h1, body .h1 { font-size: 64px; line-height: 1.02; font-weight: 700; letter-spacing: -0.025em; }
body h2, body .h2 { font-size: 40px; line-height: 1.08; font-weight: 700; letter-spacing: -0.02em; }
body h3, body .h3 { font-size: 28px; line-height: 1.15; font-weight: 600; letter-spacing: -0.01em; }
body h4, body .h4 { font-size: 20px; line-height: 1.25; font-weight: 600; }
body h5, body .h5 { font-size: 16px; line-height: 1.3;  font-weight: 600; }
body h6, body .h6 { font-size: 13px; line-height: 1.3;  font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }

/* Headings dentro le sezioni di Warehouse usano queste classi */
body .page-title,
body .page-header h1,
body .product-information h1,
body #js-product-list-header h1 { font-family: var(--gc-font); }

/* Body copy & link */
body p { margin: 0 0 var(--gc-s-4); }
body small, body .small { font-size: 13px; }

body a { color: inherit; text-decoration: none; transition: color 0.15s ease; }
body a:hover, body a:focus { color: var(--gc-primary); text-decoration: none; }

/* Numeri tabulari su tutti i prezzi (PDP, listing, cart, account) */
body .price,
body .current-price,
body .regular-price,
body .product-price,
body [class*="price"],
body .num,
body .qty,
body td.qty,
body .cart-summary-line .value { font-variant-numeric: tabular-nums; font-feature-settings: 'tnum'; }

/* Codici ricambio in monospace (PDP reference, listing reference, history) */
body .product-reference span,
body .reference,
body [data-reference],
body .product-miniature .reference,
body .order-reference { font-family: var(--gc-mono); letter-spacing: 0.02em; }

/* Selezione testo in petrol */
::selection      { background: var(--gc-primary); color: #fff; }
::-moz-selection { background: var(--gc-primary); color: #fff; }


/* ============================================================
   4 · UTILITIES BASE
   Container, focus, hr. Niente componenti specifici qui:
   header / hero / cards arrivano nelle Fasi 2-3.
   ============================================================ */

/* Container principale: override iqitthemeeditor (1270 → 1440) */
body .container,
body .container-lg,
body .container-xl,
body .container-xxl { max-width: var(--gc-maxw); }

@media (max-width: 1480px) {
  body .container,
  body .container-lg,
  body .container-xl,
  body .container-xxl { padding-left: 24px; padding-right: 24px; }
}

/* Focus visibile accessibile (override Bootstrap default azzurro) */
body *:focus-visible {
  outline: 2px solid var(--gc-primary);
  outline-offset: 2px;
}
body button:focus,
body .btn:focus,
body a:focus { box-shadow: none; outline: none; }
body button:focus-visible,
body .btn:focus-visible,
body a:focus-visible { outline: 2px solid var(--gc-primary); outline-offset: 2px; }

/* Horizontal rule */
body hr { border: 0; border-top: 1px solid var(--gc-rule); margin: var(--gc-s-6) 0; }


/* ============================================================
   5 · BUTTON RESET (solo i pattern globali — niente CTA-specific)
   I bottoni del PDP/cart/checkout li toccheremo in Fase 2-3
   con selettori più precisi (#product .add-to-cart, ecc.)
   ============================================================ */

body .btn,
body .button,
body button.btn,
body input[type="submit"].btn {
  font-family: var(--gc-font);
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--gc-radius);
  border-width: 1px;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}

/* Primary CTA = nero (Warehouse `btn-primary` è già nero via iqitthemeeditor btn_action_bg) */
body .btn-primary,
body button.btn-primary {
  background-color: var(--gc-accent);
  border-color: var(--gc-accent);
  color: #fff;
}
body .btn-primary:hover,
body .btn-primary:focus,
body button.btn-primary:hover {
  background-color: #000;
  border-color: #000;
  color: #fff;
}

/* Secondary / outline = petrol */
body .btn-secondary,
body .btn-outline-primary {
  background-color: transparent;
  border-color: var(--gc-primary);
  color: var(--gc-primary);
}
body .btn-secondary:hover,
body .btn-outline-primary:hover {
  background-color: var(--gc-primary);
  border-color: var(--gc-primary);
  color: #fff;
}

/* Default Warehouse btn-default → grigio chiaro neutro */
body .btn-default,
body .btn-light {
  background-color: var(--gc-bg-alt);
  border-color: var(--gc-rule);
  color: var(--gc-ink);
}
body .btn-default:hover,
body .btn-light:hover {
  background-color: var(--gc-rule);
  border-color: var(--gc-rule-strong);
  color: var(--gc-ink);
}


/* ============================================================
   6 · UTILITY BAR (top dark)
   Selettore live: <nav class="header-nav"> dentro #header
   Hooks renderizzati al suo interno:
     .left-nav    → displayNav1 (iqitlinksmanager, ecc.)
     .center-nav  → displayNavCenter
     .right-nav   → displayNav2 (currency/lang selector, wishlist, compare)
   ============================================================ */
body #header > nav.header-nav,
body #header .header-nav {
  background: var(--gc-ink) !important; /* batte iqitthemeed_header_nav_bg #f8f8f8 */
  color: rgba(255,255,255,0.85);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.01em;
  border-bottom: 0;
  /* Fix altezza: iqit setta padding-top/bottom: 0.5rem (~16px), troppo */
  padding: 0 !important;
  font-family: var(--gc-font);
}
body .header-nav .container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  max-width: var(--gc-maxw);
}
body .header-nav .row {
  min-height: 38px;
  align-items: center;
  margin: 0;
}
body .header-nav .col,
body .header-nav .left-nav,
body .header-nav .right-nav,
body .header-nav .center-nav { padding-top: 0; padding-bottom: 0; }

/* Nascondi i link CMS placeholder di iqitlinksmanager nel nav (left).
   Sostituiti dal nostro hookDisplayNav1 (.gc-utility-left). */
body .header-nav .left-nav .block-iqitlinksmanager { display: none !important; }

/* Link nella utility bar */
body .header-nav a:not(.btn):not(.dropdown-item) {
  color: rgba(255,255,255,0.85);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  transition: color 0.15s ease;
}
body .header-nav a:not(.btn):not(.dropdown-item):hover { color: #fff; }

/* Linklist iqit */
body .header-nav .block-iqitlinksmanager ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0;
}
body .header-nav .block-iqitlinksmanager ul li {
  position: relative;
  padding: 0 14px;
}
body .header-nav .block-iqitlinksmanager ul li:first-child { padding-left: 0; }
body .header-nav .block-iqitlinksmanager ul li + li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background: rgba(255,255,255,0.2);
}

/* Selettore valuta + lingua nella right-nav */
body .header-nav #currency_selector .expand-more,
body .header-nav .language-selector-wrapper a,
body .header-nav .currency-selector .expand-more {
  color: rgba(255,255,255,0.85);
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  padding: 6px 10px;
}
body .header-nav .right-nav > div + div { margin-left: 4px; }

/* Dropdowns aperti dal selettore valuta/lingua: bianchi */
body .header-nav .dropdown-menu {
  background: #fff;
  color: var(--gc-ink);
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  font-family: var(--gc-font);
  min-width: 140px;
}
body .header-nav .dropdown-menu .dropdown-item { color: var(--gc-ink); }
body .header-nav .dropdown-menu .dropdown-item:hover { background: var(--gc-bg-alt); }


/* ============================================================
   7 · HEADER MAIN (#desktop-header.desktop-header-style-1)
   ------------------------------------------------------------
   Strategia:
   - Logo a sinistra
   - Search bar nascosta (verrà caricata da Doofinder nell'hero)
   - Tools (cart, signin) a destra come icone tonde 40x40
   ============================================================ */
body #desktop-header.desktop-header-style-1 {
  background: var(--gc-bg);
  border-bottom: 1px solid var(--gc-rule);
}
body #desktop-header .header-top {
  padding-top: 18px;
  padding-bottom: 18px;
}
body #desktop-header #desktop-header-container.container {
  max-width: var(--gc-maxw);
}

/* Logo */
body #desktop-header #desktop_logo img.logo {
  max-height: 40px;
  width: auto;
  height: auto;
}

/* Search nell'header → nascosta. La search vera è nell'hero (Doofinder).
   IMPORTANTE: target SOLO il widget search, NON l'intera .col-header-center
   perché iqitthemeeditor ci mette anche il mega-menu (.col-header-menu) e
   nasconderebbe pure quello. */
body #desktop-header .col-header-center #search_widget,
body #desktop-header .col-header-center .header-search,
body #desktop-header .col-header-center .iqit_searchbox,
body #desktop-header .col-header-center > .searchbar { display: none; }
body #desktop-header .header-top .row {
  justify-content: space-between;
}
/* Allarga la col logo per riempire lo spazio liberato */
body #desktop-header .col-header-left { flex: 0 0 auto; }
body #desktop-header .col-header-right { flex: 0 0 auto; }

/* ----- Header tools: cart + signin come icone tonde ----- */
/* FIX disallineamento (v0.7): cart e user uno sopra l'altro perché il
   container parent (.row Bootstrap) aveva wrap. Forziamo nowrap esplicito
   + flex-direction row sul col-header-right. */
body #desktop-header .header-top .row { flex-wrap: nowrap !important; }
body #desktop-header .col-header-right {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  padding-right: 0;
  min-height: 44px;
  white-space: nowrap;
  text-align: right;
}

/* Tutti i figli e wrapper annidati DEVONO essere inline-flex 44px alti.
   Senza questo, il <a class="cart-toogle"> dentro nested div assume
   line-height del parent e si disallinea con #user_info > <a>. */
body #desktop-header .col-header-right > * {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  height: 44px;
  line-height: 1;
}
body #desktop-header #ps-shoppingcart-wrapper,
body #desktop-header #ps-shoppingcart,
body #desktop-header #blockcart,
body #desktop-header #user_info {
  display: inline-flex !important;
  align-items: center;
  height: 44px;
  margin: 0;
  padding: 0;
  line-height: 1;
  position: relative;
}
/* Force inner wrapper di blockcart a NON aggiungere altezza */
body #desktop-header #ps-shoppingcart .blockcart { line-height: 1; }

/* Mini-cart: sostituiamo il pill nero stock con un'icona tonda neutra */
body #ps-shoppingcart-wrapper { display: inline-flex; align-items: center; }
body #ps-shoppingcart.header-cart-default a.cart-toogle {
  background: var(--gc-surface) !important; /* batte iqit #000 */
  color: var(--gc-ink) !important;
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  width: 44px !important;
  height: 44px !important;
  min-height: 44px;
  padding: 0 !important; /* batte iqit padding 0.5625rem */
  margin: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  transition: border-color 0.15s ease, color 0.15s ease;
}
body #ps-shoppingcart.header-cart-default a.cart-toogle:hover {
  border-color: var(--gc-ink);
  color: var(--gc-ink);
  background: var(--gc-surface);
}
body #ps-shoppingcart.header-cart-default a.cart-toogle .info-wrapper { display: none !important; }
body #ps-shoppingcart.header-cart-default a.cart-toogle i.fa-shopping-bag,
body #ps-shoppingcart.header-cart-default a.cart-toogle i.fa {
  font-size: 18px;
  margin: 0;
  padding: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Counter prodotti — pill in alto a destra dell'icona */
body #ps-shoppingcart .cart-products-count-btn {
  position: absolute;
  top: -6px;
  right: -6px;
  background: var(--gc-ink);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  font-family: var(--gc-mono);
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
/* Nascondi il counter quando vuoto (.d-none è già messo dal tema) */
body #ps-shoppingcart .cart-products-count-btn.d-none { display: none; }

/* Dropdown del cart: bianco con border petrol top */
body #ps-shoppingcart .dropdown-menu-custom {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-card);
  padding: 16px;
  min-width: 320px;
  margin-top: 8px;
}
body #ps-shoppingcart #blockcart-content .cart-title .modal-title {
  font-family: var(--gc-font);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-ink);
}
body #ps-shoppingcart #blockcart-content .no-items {
  color: var(--gc-muted);
  font-size: 13px;
}

/* User info icon */
body #user_info {
  display: inline-flex !important;
  align-items: center;
  height: 44px;
  margin: 0;
  padding: 0;
  line-height: 1;
}
body #user_info > a {
  background: var(--gc-surface);
  color: var(--gc-ink) !important;
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  width: 44px !important;
  height: 44px !important;
  min-height: 44px;
  padding: 0 !important;
  margin: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-decoration: none;
  transition: border-color 0.15s ease;
}
body #user_info > a:hover { border-color: var(--gc-ink); color: var(--gc-ink); }
body #user_info > a i.fa-user,
body #user_info > a i.fa {
  font-size: 16px;
  margin: 0;
  padding: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body #user_info > a span { display: none !important; } /* "Accedi" — solo l'icona */


/* ============================================================
   8 · MEGA MENU (iqitmegamenu)
   Selettori live:
   .container.iqit-megamenu-container
     #iqitmegamenu-wrapper.iqitmegamenu-all
       .container.container-iqitmegamenu
         #iqitmegamenu-horizontal
           nav#cbp-hrmenu.cbp-hrmenu.cbp-horizontal
   ------------------------------------------------------------
   iqitthemeeditor mette bg #000 e bordi groove. Ribaltiamo
   in stile minimal: bg trasparente, separatore sottile,
   testo --gc-ink, hover --gc-primary, dropdown bianco.
   ============================================================ */
body .iqit-megamenu-container { padding: 0; max-width: var(--gc-maxw); }
body #iqitmegamenu-wrapper.iqitmegamenu-wrapper {
  background: var(--gc-bg);
  border-top: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
}
body #iqitmegamenu-wrapper .container-iqitmegamenu {
  max-width: var(--gc-maxw);
  padding: 0 24px;
}

/* Striscia orizzontale del mega menu */
body #iqitmegamenu-horizontal.iqitmegamenu {
  background: transparent;
  border: 0 !important;  /* batte gli border-groove di iqitthemeeditor */
}
body nav#cbp-hrmenu.cbp-horizontal { background: transparent; }
body #cbp-hrmenu.cbp-horizontal > ul { display: flex; gap: 4px; padding: 0; margin: 0; }
body #cbp-hrmenu.cbp-horizontal > ul > li { list-style: none; }
body #cbp-hrmenu.cbp-horizontal > ul > li > a,
body #cbp-hrmenu.cbp-horizontal > ul > li > a:not([href]):not([tabindex]),
body #cbp-hrmenu.cbp-horizontal > ul > li > .cbp-main-link {
  color: var(--gc-ink);
  background: transparent;
  border: 0 !important; /* batte i border-groove di iqitthemeeditor */
  padding: 16px 18px;
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1;
  height: auto;
  max-width: none;
  position: relative;
  transition: color 0.15s ease;
}
body #cbp-hrmenu.cbp-horizontal > ul > li > a:hover,
body #cbp-hrmenu.cbp-horizontal > ul > li.cbp-hropen > a,
body #cbp-hrmenu.cbp-horizontal > ul > li.cbp-hropen > a:hover {
  color: var(--gc-primary);
  background: transparent;
}
/* Underline petrol on active/hover */
body #cbp-hrmenu.cbp-horizontal > ul > li > a::after {
  content: '';
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;
  height: 2px;
  background: var(--gc-primary);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.18s ease;
}
body #cbp-hrmenu.cbp-horizontal > ul > li > a:hover::after,
body #cbp-hrmenu.cbp-horizontal > ul > li.cbp-hropen > a::after {
  transform: scaleX(1);
}

/* Sub-menu (cbp-hrsub) */
body #cbp-hrmenu .cbp-hrsub-inner,
body #cbp-hrmenu ul.cbp-hrsub-level2 {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule) !important; /* batte iqitthemeeditor "none 1px" */
  border-top: 2px solid var(--gc-primary) !important;
  box-shadow: var(--gc-shadow-card);
  padding: 24px;
  border-radius: 0 0 var(--gc-radius) var(--gc-radius);
}
body #cbp-hrmenu .cbp-hrsub-inner,
body #cbp-hrmenu .cbp-hrsub-inner a,
body #cbp-hrmenu .cbp-hrsub-inner a:link {
  color: var(--gc-ink) !important; /* nel CSS dinamico iqit la regola era con color: vuoto */
}
body #cbp-hrmenu .cbp-hrsub-inner a:hover { color: var(--gc-primary) !important; }
body #cbp-hrmenu .cbp-hrsub-inner .cbp-column-title,
body #cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:link {
  color: var(--gc-muted) !important;
  font-family: var(--gc-font);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  border-bottom: 1px solid var(--gc-rule) !important;
  padding-bottom: 10px;
  margin-bottom: 12px;
}

/* Tabs interne dei mega menu (categorie con tab) */
body #cbp-hrmenu .tabs-links { background: var(--gc-bg-alt); }
body #cbp-hrmenu .cbp-tabs-names li a {
  color: var(--gc-muted) !important;
  font-weight: 600;
  padding: 12px 16px;
}
body #cbp-hrmenu .cbp-tabs-names li a:hover,
body #cbp-hrmenu .cbp-tabs-names li a.active {
  background: var(--gc-surface);
  color: var(--gc-ink) !important;
}

/* Legend (badge "NEW", ecc. nelle voci di menu) */
body #cbp-hrmenu .cbp-legend,
body #cbp-hrmenu1 .cbp-legend {
  background: var(--gc-primary);
  color: #fff;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.05em;
  padding: 2px 6px;
  font-weight: 600;
}


/* ============================================================
   8b · MEGA MENU ENRICHMENT (3-col aside / content / promo)
   ------------------------------------------------------------
   Wrapping del .cbp-hrsub-inner di iqitmegamenu (override theme
   in modules/iqitmegamenu/views/templates/hook/horizontal.tpl).
   Aggiunge una colonna sinistra (.gc-mm-aside) con titolo +
   descrizione + CTA "Vedi tutti", e una colonna destra opzionale
   (.gc-mm-promo) renderizzata solo se la tab ha promo configurata
   in BO. La colonna centrale resta il submenu_container originale.
   ============================================================ */

/* Posizionamento full-viewport (override del Bootstrap col-N che iqitmegamenu
   mette su .cbp-hrsub e del cbp-hrsub-narrow). Il dropdown si ancora a tutto
   il wrapper iqitmegamenu, non al singolo <li>. */
body #iqitmegamenu-wrapper { position: relative; }
body #cbp-hrmenu.cbp-horizontal > ul > li.cbp-hrmenu-tab { position: static; }
body #cbp-hrmenu .cbp-hrsub.gc-mm-shell {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;   /* batte col-1 ... col-12 di Bootstrap */
  margin: 0 !important;
  padding: 0 !important;
  z-index: 100;
}

/* Grid wrapper sul .cbp-hrsub-inner: 3 col fissi quando c'è promo,
   2 col quando non c'è. La centrale è fluida.
   ATTENZIONE: iqitmegamenu emette uno pseudo-elemento ::before/::after
   con `content: ""; display: table;` (clearfix) che, in regime grid,
   diventa un grid item invisibile e occupa la prima cella. Lo
   neutralizziamo qui sotto, altrimenti aside e content slittano nelle
   celle sbagliate. */
body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .cbp-hrsub-inner.gc-mm-grid {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 32px;
  padding: 32px 40px;
  max-width: var(--gc-maxw);
  margin: 0 auto;
  align-items: stretch;
  width: 100%;
}
body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .cbp-hrsub-inner.gc-mm-grid::before,
body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .cbp-hrsub-inner.gc-mm-grid::after {
  content: none !important;
  display: none !important;
}
body #cbp-hrmenu .cbp-hrsub.gc-mm-shell--with-promo .cbp-hrsub-inner.gc-mm-grid {
  grid-template-columns: 240px 1fr 280px;
}

/* Reset: la container interna originale di iqit non deve aggiungere
   max-width né padding propri quando è dentro la nostra grid. */
body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .iqitmegamenu-submenu-container.gc-mm-content {
  max-width: none;
  padding: 0;
  width: 100%;
  margin: 0;
}

/* === Aside (colonna sinistra) === */
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-right: 24px;
  border-right: 1px solid var(--gc-rule);
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-eyebrow,
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .eyebrow {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-muted);
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-title {
  font-family: var(--gc-font);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--gc-ink);
  margin: 0;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-text {
  font-size: 13px;
  line-height: 1.5;
  color: var(--gc-muted);
  margin: 0 0 4px;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding: 10px 0;
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-ink) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--gc-rule-strong);
  align-self: flex-start;
  transition: border-color 0.15s ease, color 0.15s ease;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-cta:hover {
  border-bottom-color: var(--gc-primary);
  color: var(--gc-primary) !important;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-cta .gc-mm-arrow {
  transition: transform 0.15s ease;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-aside .gc-mm-aside-cta:hover .gc-mm-arrow {
  transform: translateX(3px);
}

/* === Promo (colonna destra) === */
body #cbp-hrmenu .cbp-hrsub .gc-mm-promo {
  background: var(--gc-bg-alt);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-radius: var(--gc-radius);
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-promo .gc-mm-promo-eyebrow,
body #cbp-hrmenu .cbp-hrsub .gc-mm-promo .eyebrow {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-primary);
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-promo .gc-mm-promo-title {
  font-family: var(--gc-font);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--gc-ink);
  margin: 0;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-promo .gc-mm-promo-text {
  font-size: 13px;
  line-height: 1.5;
  color: var(--gc-ink-2);
  margin: 0 0 12px;
}
body #cbp-hrmenu .cbp-hrsub .gc-mm-promo .gc-mm-promo-cta {
  align-self: flex-start;
  margin-top: auto;
  padding: 12px 18px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Mobile: nascondi enrichment, lascia che iqitmegamenu mobile.tpl
   gestisca la nav drawer come al solito */
@media (max-width: 1024px) {
  body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .gc-mm-aside,
  body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .gc-mm-promo { display: none; }
  body #cbp-hrmenu .cbp-hrsub.gc-mm-shell .cbp-hrsub-inner.gc-mm-grid {
    display: block;
    padding: 16px 24px;
  }
}


/* ============================================================
   9 · HERO (renderizzato dal modulo grossclima_settings)
   Tutte le classi prefisso .gc-hero-* per non collidere con
   selettori del tema o di altri moduli.
   ============================================================ */
.gc-hero {
  background: var(--gc-bg);
  border-bottom: 1px solid var(--gc-rule);
  overflow: hidden;
}
.gc-hero-container {
  max-width: var(--gc-maxw);
  margin: 0 auto;
  padding: 80px 40px;
}
.gc-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 80px;
  align-items: center;
}

/* Eyebrow */
.gc-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin-bottom: 32px;
}
.gc-hero-eyebrow .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gc-primary);
  display: inline-block;
}

/* Claim H1 */
.gc-hero-claim h1 {
  font-family: var(--gc-font);
  font-size: 80px;
  line-height: 1.0;
  font-weight: 700;
  letter-spacing: -0.035em;
  margin: 0 0 32px;
  color: var(--gc-ink);
}
.gc-hero-claim h1 em {
  font-style: italic;
  font-weight: 700;
  color: var(--gc-primary);
}

/* Sub-claim */
.gc-hero-sub {
  font-size: 17px;
  line-height: 1.55;
  color: var(--gc-ink-2);
  max-width: 540px;
  margin: 0 0 40px;
}

/* CTA temporaneo (in attesa di Doofinder search) */
.gc-hero-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.gc-hero-actions .btn {
  font-family: var(--gc-font);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
  padding: 16px 28px;
  border-radius: var(--gc-radius);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid transparent;
  transition: all 0.15s ease;
}
.gc-hero-actions .btn-primary {
  background: var(--gc-accent);
  border-color: var(--gc-accent);
  color: #fff;
}
.gc-hero-actions .btn-primary:hover { background: #000; border-color: #000; color: #fff; }
.gc-hero-actions .btn-ghost {
  background: transparent;
  border-color: var(--gc-rule-strong);
  color: var(--gc-ink);
}
.gc-hero-actions .btn-ghost:hover { border-color: var(--gc-ink); }

/* Slot per Doofinder search (vuoto in v0.1) */
#gc-hero-search-slot { margin-top: 24px; min-height: 0; }
#gc-hero-search-slot:not(:empty) { margin-top: 32px; }

/* Visual destra */
.gc-hero-visual {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  background-image: repeating-linear-gradient(45deg, transparent 0 12px, rgba(0,0,0,0.03) 12px 13px);
  display: grid;
  place-items: center;
  overflow: hidden;
}

/* Hero visual con foto reale (no texture, foto a copertura) */
.gc-hero-visual--photo {
  background-image: none;
  background: var(--gc-ink);
}
.gc-hero-visual--photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gc-hero-visual--photo .gc-hero-visual-label,
.gc-hero-visual--photo .gc-hero-visual-coords {
  color: rgba(255,255,255,0.6);
  z-index: 2;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
.gc-hero-visual img,
.gc-hero-visual video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gc-hero-visual-label {
  position: absolute;
  top: 20px;
  left: 24px;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gc-muted);
}
.gc-hero-visual-coords {
  position: absolute;
  bottom: 20px;
  right: 24px;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--gc-muted);
}
.gc-hero-visual-meta {
  position: absolute;
  left: 24px;
  bottom: 24px;
  font-family: var(--gc-font);
  font-size: 12px;
  line-height: 1.4;
  color: var(--gc-ink-2);
  max-width: 60%;
}
.gc-hero-visual-meta .code {
  display: block;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--gc-muted);
  margin-bottom: 6px;
}

/* Responsive */
@media (max-width: 1024px) {
  .gc-hero-container { padding: 60px 24px; }
  .gc-hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .gc-hero-claim h1 { font-size: 56px; }
}
@media (max-width: 600px) {
  .gc-hero-container { padding: 40px 20px; }
  .gc-hero-claim h1 { font-size: 40px; line-height: 1.04; }
  .gc-hero-sub { font-size: 15px; }
}


/* ============================================================
   10 · BLOCCHI PER iqitelementor (utility .gc-*)
   ------------------------------------------------------------
   La home è progettata in iqitelementor. Queste classi sono
   "vocabolario" pronto: dentro un widget "Custom HTML" di
   elementor, copi-incolli lo snippet sotto e ottieni il blocco
   stilizzato come da prototipo.
   ------------------------------------------------------------
   PREFISSO: tutto inizia con .gc- per non collidere con
   selettori del tema o di altri moduli.
   ============================================================ */

/* ----------------------------------------------------------
   10.1 · SECTION wrapper + heading di sezione
   ----------------------------------------------------------
   <section class="gc-section">
     <div class="gc-section-head">
       <div class="gc-title-block">
         <span class="gc-eyebrow">Categorie · 06</span>
         <h2>Esplora per macchina<br>o componente.</h2>
       </div>
       <div class="gc-side-text">Sei aree operative...</div>
     </div>
     ...contenuto della sezione...
   </section>
   ---------------------------------------------------------- */
.gc-section {
  padding: 96px 0;
  border-bottom: 1px solid var(--gc-rule);
}
.gc-section.gc-section-bgalt { background: var(--gc-bg-alt); }
.gc-section.gc-section-dark { background: var(--gc-ink); color: #fff; }

.gc-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  margin-bottom: 48px;
  max-width: var(--gc-maxw);
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--gc-pad);
}
.gc-title-block { flex: 1; max-width: 720px; }
.gc-eyebrow {
  display: block;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin-bottom: 16px;
}
.gc-section-head h2,
.gc-section-head .h2 {
  font-family: var(--gc-font);
  font-size: 56px;
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.03em;
  margin: 0;
  color: inherit;
}
.gc-side-text {
  font-size: 14px;
  color: var(--gc-muted);
  max-width: 300px;
  line-height: 1.5;
}

/* ----------------------------------------------------------
   10.2 · TRUST BAR (4 KPI numerici)
   ----------------------------------------------------------
   <section class="gc-trustbar">
     <div class="gc-trust-grid">
       <div class="gc-trust-item">
         <div class="gc-trust-value">2M<span class="plus">+</span></div>
         <div class="gc-trust-label">ricambi a catalogo</div>
       </div>
       <div class="gc-trust-item">
         <div class="gc-trust-value">42<span class="plus"> anni</span></div>
         <div class="gc-trust-label">di esperienza</div>
       </div>
       <div class="gc-trust-item">
         <div class="gc-trust-value">48h</div>
         <div class="gc-trust-label">tempo medio di spedizione</div>
       </div>
       <div class="gc-trust-item">
         <div class="gc-trust-value">12.000<span class="plus">+</span></div>
         <div class="gc-trust-label">clienti professionisti</div>
       </div>
     </div>
   </section>
   ---------------------------------------------------------- */
.gc-trustbar {
  padding: 48px var(--gc-pad);
  background: var(--gc-bg);
  border-bottom: 1px solid var(--gc-rule);
}
.gc-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: var(--gc-maxw);
  margin: 0 auto;
}
.gc-trust-item {
  padding: 0 32px;
  border-left: 1px solid var(--gc-rule);
}
.gc-trust-item:first-child { border-left: 0; padding-left: 0; }
.gc-trust-value {
  font-family: var(--gc-font);
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 10px;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
}
.gc-trust-value .plus { color: var(--gc-primary); }
.gc-trust-label {
  font-size: 12px;
  color: var(--gc-muted);
  letter-spacing: 0.04em;
  line-height: 1.4;
}

/* ----------------------------------------------------------
   10.3 · CATEGORY GRID (3 col cards)
   ----------------------------------------------------------
   <div class="gc-cat-grid">
     <a class="gc-cat-card" href="/categoria/cottura">
       <div>
         <div class="gc-cat-num">01 / 06</div>
         <h3>Cottura</h3>
         <div class="gc-cat-count">38.420 ricambi</div>
       </div>
       <div class="gc-cat-tags">
         <span class="gc-cat-tag">Resistenze</span>
         <span class="gc-cat-tag">Termostati</span>
       </div>
       <div class="gc-cat-arrow">↗</div>
     </a>
     <a class="gc-cat-card gc-cat-card--featured" href="...">...</a>
     <a class="gc-cat-card gc-cat-card--primary" href="...">...</a>
   </div>
   ---------------------------------------------------------- */
.gc-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--gc-rule);
  border-left: 1px solid var(--gc-rule);
  max-width: var(--gc-maxw);
  margin: 0 auto;
}
.gc-cat-card {
  border-right: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  padding: 32px;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--gc-surface);
  color: var(--gc-ink);
  position: relative;
  overflow: hidden;
  transition: background 0.2s ease;
  text-decoration: none;
}
.gc-cat-card:hover { background: var(--gc-bg-alt); color: var(--gc-ink); }
.gc-cat-card:hover .gc-cat-arrow { transform: translate(4px, -4px); }
.gc-cat-num {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-muted);
  letter-spacing: 0.1em;
}
.gc-cat-card h3 {
  font-family: var(--gc-font);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 12px 0 0;
}
.gc-cat-count {
  font-family: var(--gc-mono);
  font-size: 12px;
  color: var(--gc-muted);
  margin-top: 6px;
}
.gc-cat-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 12px;
  color: var(--gc-ink-2);
  margin-top: 20px;
}
.gc-cat-tag {
  padding: 4px 10px;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  border-radius: 999px;
}
.gc-cat-card:hover .gc-cat-tag { background: var(--gc-surface); }
.gc-cat-arrow {
  position: absolute;
  top: 32px;
  right: 32px;
  width: 36px;
  height: 36px;
  border: 1px solid var(--gc-rule-strong);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 14px;
  transition: transform 0.2s ease;
  color: var(--gc-ink-2);
}

/* Variante: card featured (sfondo nero) */
.gc-cat-card.gc-cat-card--featured {
  background: var(--gc-ink);
  color: #fff;
}
.gc-cat-card.gc-cat-card--featured h3,
.gc-cat-card.gc-cat-card--featured .gc-cat-num,
.gc-cat-card.gc-cat-card--featured .gc-cat-count { color: #fff; }
.gc-cat-card.gc-cat-card--featured .gc-cat-tag {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.15);
  color: #fff;
}
.gc-cat-card.gc-cat-card--featured .gc-cat-arrow {
  border-color: rgba(255,255,255,0.3);
  color: #fff;
}
.gc-cat-card.gc-cat-card--featured:hover { background: #000; color: #fff; }

/* Variante: card primary (sfondo petrol) */
.gc-cat-card.gc-cat-card--primary {
  background: var(--gc-primary);
  color: #fff;
}
.gc-cat-card.gc-cat-card--primary h3,
.gc-cat-card.gc-cat-card--primary .gc-cat-num,
.gc-cat-card.gc-cat-card--primary .gc-cat-count { color: #fff; }
.gc-cat-card.gc-cat-card--primary .gc-cat-tag {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
  color: #fff;
}
.gc-cat-card.gc-cat-card--primary .gc-cat-arrow {
  border-color: rgba(255,255,255,0.4);
  color: #fff;
}
.gc-cat-card.gc-cat-card--primary:hover { background: var(--gc-primary-ink); color: #fff; }

/* ----------------------------------------------------------
   10.4 · BENEFITS (3 col feature)
   ----------------------------------------------------------
   <div class="gc-benefits">
     <div class="gc-benefit">
       <div class="gc-benefit-num">01</div>
       <h3>Spedizione 48h</h3>
       <p>Consegna garantita in 48h su tutto il territorio italiano.</p>
     </div>
     <div class="gc-benefit">...</div>
     <div class="gc-benefit">...</div>
   </div>
   ---------------------------------------------------------- */
.gc-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--gc-rule);
  border-left: 1px solid var(--gc-rule);
  max-width: var(--gc-maxw);
  margin: 0 auto;
}
.gc-benefit {
  padding: 40px 36px;
  border-right: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  background: var(--gc-surface);
}
.gc-benefit-num {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-muted);
  letter-spacing: 0.1em;
  margin-bottom: 24px;
}
.gc-benefit h3 {
  font-family: var(--gc-font);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
  color: var(--gc-ink);
}
.gc-benefit p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--gc-ink-2);
  margin: 0;
}

/* ----------------------------------------------------------
   10.5 · STORY (2 col visual + text — "42 anni di ricambi")
   ----------------------------------------------------------
   <div class="gc-story">
     <div class="gc-story-visual">
       <div class="gc-story-visual-label">EST. 1982</div>
       <div class="gc-story-visual-stamp">SELARGIUS<br>CAGLIARI · IT</div>
     </div>
     <div class="gc-story-text">
       <span class="gc-eyebrow">La nostra storia</span>
       <h2>42 anni di ricambi.<br>Niente compromessi.</h2>
       <p>Dal 1982 forniamo ricambi originali...</p>
     </div>
   </div>
   ---------------------------------------------------------- */
.gc-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: var(--gc-maxw);
  margin: 0 auto;
  padding: 0 var(--gc-pad);
}
.gc-story-visual {
  aspect-ratio: 4/5;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  background-image: repeating-linear-gradient(135deg, transparent 0 20px, rgba(0,0,0,0.03) 20px 21px);
  position: relative;
}
.gc-story-visual img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gc-story-visual-label {
  position: absolute;
  top: 20px;
  left: 20px;
  font-family: var(--gc-mono);
  font-size: 10px;
  color: var(--gc-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.gc-story-visual-stamp {
  position: absolute;
  bottom: 20px;
  left: 20px;
  background: var(--gc-ink);
  color: #fff;
  padding: 14px 18px;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}
.gc-story-text h2 {
  font-family: var(--gc-font);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin: 12px 0 28px;
  color: var(--gc-ink);
}
.gc-story-text p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--gc-ink-2);
  margin: 0 0 16px;
}

/* ----------------------------------------------------------
   10.6 · ASSISTANCE BLOCK (sfondo nero, 2 col)
   ----------------------------------------------------------
   <section class="gc-assist">
     <div class="gc-assist-inner">
       <div>
         <span class="gc-eyebrow">Assistenza</span>
         <h2>Ti serve una mano?<br>Siamo qui.</h2>
         <p>Il nostro team tecnico risponde in italiano, in giornata.</p>
       </div>
       <div class="gc-assist-channels">
         <a class="gc-assist-ch" href="tel:+39070123456">
           <span class="gc-icon">📞</span>
           <div>
             <div class="label">Telefono</div>
             <div class="val">+39 070 123 4567</div>
           </div>
           <span class="arr">↗</span>
         </a>
         <a class="gc-assist-ch" href="mailto:ricambi@grossclima.com">...</a>
         <a class="gc-assist-ch" href="https://wa.me/...">WhatsApp</a>
       </div>
     </div>
   </section>
   ---------------------------------------------------------- */
.gc-assist {
  background: var(--gc-ink);
  color: #fff;
  padding: 80px var(--gc-pad);
}
.gc-assist-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  max-width: var(--gc-maxw);
  margin: 0 auto;
  align-items: center;
}
.gc-assist .gc-eyebrow { color: rgba(255,255,255,0.5); }
.gc-assist h2 {
  font-family: var(--gc-font);
  font-weight: 700;
  font-size: 56px;
  letter-spacing: -0.03em;
  line-height: 1;
  margin: 16px 0 24px;
  color: #fff;
}
.gc-assist p {
  color: rgba(255,255,255,0.7);
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
}
.gc-assist-channels {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(255,255,255,0.12);
}
.gc-assist-ch {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  text-decoration: none;
  transition: padding-left 0.15s ease;
}
.gc-assist-ch:hover { padding-left: 8px; color: #fff; }
.gc-assist-ch .label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 4px;
}
.gc-assist-ch .val { font-size: 18px; font-weight: 600; }
.gc-assist-ch .arr { color: rgba(255,255,255,0.5); }

/* ----------------------------------------------------------
   10.7 · BRAND WALL (grid loghi, 7 colonne desktop)
   ----------------------------------------------------------
   <div class="gc-brands">
     <div class="gc-brands-row">
       <div class="gc-brand-cell">ELCO</div>
       <div class="gc-brand-cell">EGO</div>
       ...
     </div>
   </div>
   Per loghi reali: <img src="..." alt="Brand"> dentro .gc-brand-cell
   ---------------------------------------------------------- */
.gc-brands {
  padding: 64px var(--gc-pad);
  border-bottom: 1px solid var(--gc-rule);
  max-width: var(--gc-maxw);
  margin: 0 auto;
}
.gc-brands-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  align-items: center;
  border-top: 1px solid var(--gc-rule);
  border-left: 1px solid var(--gc-rule);
}
.gc-brand-cell {
  height: 96px;
  display: grid;
  place-items: center;
  border-right: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  font-family: var(--gc-mono);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gc-muted);
  transition: color 0.15s ease, background 0.15s ease;
  text-decoration: none;
}
.gc-brand-cell img {
  max-height: 56px;
  max-width: 80%;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.6;
  transition: filter 0.15s ease, opacity 0.15s ease;
}
.gc-brand-cell:hover { color: var(--gc-ink); background: var(--gc-bg-alt); }
.gc-brand-cell:hover img { filter: grayscale(0); opacity: 1; }

/* ----------------------------------------------------------
   10.8 · RESPONSIVE per i blocchi sopra
   ---------------------------------------------------------- */
@media (max-width: 1024px) {
  .gc-section { padding: 64px 0; }
  .gc-section-head { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 32px; }
  .gc-section-head h2 { font-size: 40px; }
  .gc-trust-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 0; }
  .gc-trust-item { border-left: 0; padding: 0 16px; }
  .gc-trust-value { font-size: 40px; }
  .gc-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .gc-benefits { grid-template-columns: 1fr; }
  .gc-story { grid-template-columns: 1fr; gap: 40px; }
  .gc-story-text h2 { font-size: 36px; }
  .gc-assist { padding: 56px 24px; }
  .gc-assist-inner { grid-template-columns: 1fr; gap: 40px; }
  .gc-assist h2 { font-size: 40px; }
  .gc-brands-row { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 600px) {
  .gc-cat-grid { grid-template-columns: 1fr; }
  .gc-trust-grid { grid-template-columns: 1fr; gap: 24px; }
  .gc-brands-row { grid-template-columns: repeat(3, 1fr); }
  .gc-brand-cell { height: 72px; font-size: 12px; }
  .gc-section-head h2 { font-size: 32px; }
}


/* ============================================================
   11 · PDP (#product) — Fase 3.1
   ------------------------------------------------------------
   Selettori live confermati (Warehouse 4.7.2 + iqitthemeeditor):
     body#product.page-product
       #main .row.product-info-row
         .col-product-image (gallery)
         .col-product-info  (info + cta + tabs)
       .tabs.product-tabs (sotto)
   Gallery: thumbs configurate "bottom" da iqitthemeed_pp_thumbs
   ============================================================ */

/* ----- 11.1 · Wrapper + breadcrumb -------------------------- */
body#product #wrapper {
  background: var(--gc-bg);
  color: var(--gc-ink);
  padding-top: 24px;
  padding-bottom: 96px;
}
body#product #wrapper .breadcrumb {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-muted);
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0 0 32px;
}
body#product #wrapper .breadcrumb a:link,
body#product #wrapper .breadcrumb a:visited { color: var(--gc-muted); }
body#product #wrapper .breadcrumb a:hover { color: var(--gc-ink); }
body#product #wrapper .breadcrumb li:last-child,
body#product #wrapper .breadcrumb li.active { color: var(--gc-ink); }
body#product #wrapper .breadcrumb li:after { color: var(--gc-rule-strong); margin: 0 8px; }

/* ----- 11.2 · Gallery (col-product-image) ------------------- */
body#product .col-product-image { padding-right: 32px; }

body#product .images-container .product-cover {
  border: 1px solid var(--gc-rule);
  background: var(--gc-bg-alt);
  background-image: repeating-linear-gradient(45deg, transparent 0 24px, rgba(0,0,0,0.025) 24px 25px);
  position: relative;
  overflow: hidden;
}
body#product .images-container .product-cover .product-images-large {
  background: transparent;
}
body#product .images-container .product-cover .swiper-slide {
  background: transparent;
  display: grid;
  place-items: center;
  min-height: 480px;
}
body#product .images-container .product-cover img.img-fluid {
  max-width: 100%;
  max-height: 580px;
  width: auto;
  height: auto;
  object-fit: contain;
  mix-blend-mode: multiply; /* abbatte sfondo bianco delle foto su BG warm */
}

/* Frecce gallery: minimal squadrate */
body#product .images-container .swiper-button-arrow,
body#product .product-cover .expander > span,
body#product-modal .swiper-button-arrow {
  background: var(--gc-ink);
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: var(--gc-radius);
  opacity: 0.92;
  transition: opacity 0.15s ease;
}
body#product .images-container .swiper-button-arrow:hover,
body#product .product-cover .expander > span:hover { opacity: 1; }

/* Zoom button (espandi modale) */
body#product .product-cover .expander {
  background: transparent;
  position: absolute;
  bottom: 16px;
  right: 16px;
  width: auto;
  height: auto;
  z-index: 5;
}

/* Product flags (Sale / New / Promo) overlay sull'immagine */
body#product .product-cover .product-flags {
  position: absolute;
  top: 16px;
  left: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 4;
}
body#product .product-cover .product-flag,
body#product .product-flags .product-flag {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 8px;
  background: var(--gc-ink);
  color: #fff;
  border-radius: 0;
  display: inline-block;
}
body#product .product-flags .product-flag.discount,
body#product .product-flags .product-flag.on-sale {
  background: var(--gc-primary);
  color: #fff;
}
body#product .product-flags .product-flag.new {
  background: var(--gc-surface);
  color: var(--gc-ink);
  border: 1px solid var(--gc-ink);
}

/* Thumbs strip (sotto, perché iqitthemeed_pp_thumbs=bottom) */
body#product #product-images-thumbs.product-images { margin-top: 16px; }
body#product #product-images-thumbs .swiper-slide { padding: 4px; }
body#product #product-images-thumbs .thumb-container {
  border: 1px solid var(--gc-rule);
  background: var(--gc-bg-alt);
  cursor: pointer;
  transition: border-color 0.15s ease;
}
body#product #product-images-thumbs .thumb-container:hover,
body#product #product-images-thumbs .swiper-slide.swiper-slide-thumb-active .thumb-container,
body#product #product-images-thumbs .thumb.selected,
body#product #product-images-thumbs .js-thumb-selected .thumb-container { border-color: var(--gc-ink); }

/* ----- 11.3 · Info column ----------------------------------- */
body#product .col-product-info { padding-left: 16px; }

body#product .product_header_container {
  margin-bottom: 24px;
  border-bottom: 1px solid var(--gc-rule);
  padding-bottom: 24px;
  position: relative;
}

/* Manufacturer logo (Studio Design / brand) */
body#product .product-manufacturer img.manufacturer-logo {
  max-height: 36px;
  max-width: 120px;
  width: auto;
  filter: grayscale(1);
  opacity: 0.7;
  transition: filter 0.15s ease, opacity 0.15s ease;
}
body#product .product-manufacturer:hover img.manufacturer-logo { filter: grayscale(0); opacity: 1; }

/* Title h1 — aderente al prototipo (.pdp-title 36px) */
body#product h1.h1.page-title,
body#product .product_header_container h1.h1 {
  font-family: var(--gc-font);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--gc-ink);
  margin: 0 0 14px;
  border: 0;
  padding: 0;
  text-transform: none;
}

/* Brand line "BRAND · Ricambio originale" — mostra il manufacturer
   come eyebrow uppercase mono sopra il title */
body#product .product-manufacturer.product-manufacturer-next {
  float: none !important;
  display: block;
  margin: 0 0 12px;
}
body#product .product-manufacturer img.manufacturer-logo {
  max-height: 28px;
  margin: 0;
}

/* Prezzo: blocco prominente (.pdp-price-row prototipo) */
body#product .product-prices.js-product-prices {
  margin: 0 0 28px;
  padding: 24px 0;
  border-top: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 16px;
}
body#product .product-prices .current-price { display: inline-flex; align-items: baseline; gap: 12px; }
body#product .product-prices .current-price .product-price,
body#product .product-prices .current-price-value {
  font-family: var(--gc-font);
  font-size: 44px;
  font-weight: 700;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
  line-height: 1;
}
body#product .product-prices .product-discount .regular-price {
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--gc-muted);
  text-decoration: line-through;
  margin-left: 8px;
}
body#product .product-prices .badge-discount,
body#product .product-prices .discount-percentage {
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  background: var(--gc-primary);
  color: #fff;
  padding: 4px 8px;
  border-radius: 0;
  margin-left: 12px;
  vertical-align: middle;
}
/* "IVA esclusa" allineata a destra del row prezzo (.pdp-vat prototipo) */
body#product .product-prices .tax-shipping-delivery-label {
  font-size: 12px;
  color: var(--gc-muted);
  letter-spacing: 0.02em;
  margin: 0 0 0 auto;
  padding-left: 16px;
}

/* Description short */
body#product .product-information .product-description {
  font-size: 15px;
  line-height: 1.6;
  color: var(--gc-ink-2);
  margin-bottom: 24px;
}

/* ----- 11.4 · Variants (select Dimensione, ecc.) ------------ */
body#product .product-variants-item {
  margin-bottom: 16px;
}
body#product .product-variants-item .form-control-label {
  display: block;
  font-family: var(--gc-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--gc-muted);
  margin-bottom: 8px;
}
body#product .product-variants-item .custom-select2,
body#product .product-variants-item select.form-control-select,
body#product .product-variants-item .form-control-select {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  color: var(--gc-ink);
  font-family: var(--gc-font);
  font-size: 14px;
  padding: 12px 16px;
  min-height: 48px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body#product .product-variants-item .form-control-select:focus,
body#product .product-variants-item .custom-select2:focus-within {
  border-color: var(--gc-primary);
  box-shadow: var(--gc-shadow-input);
  outline: none;
}

/* Variants come radio/colore (es. Colore Bianco) */
body#product .product-variants-item .input-color,
body#product .product-variants-item .color {
  width: 32px;
  height: 32px;
  border: 1px solid var(--gc-rule-strong);
  border-radius: 0;
  cursor: pointer;
}
body#product .product-variants-item .input-color:checked + span,
body#product .product-variants-item .color.active { outline: 2px solid var(--gc-primary); outline-offset: 2px; }

/* ----- 11.5 · CTA add-to-cart + wishlist + compare ---------- */
body#product .product-add-to-cart {
  margin-top: 24px;
  padding: 24px 0;
  border-top: 1px solid var(--gc-rule);
}
body#product .product-quantity { gap: 12px; align-items: center; }

/* Quantity input */
body#product .qty input#quantity_wanted,
body#product .qty .input-group {
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  background: var(--gc-surface);
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
  min-height: 56px;
  padding: 0 12px;
  text-align: center;
  width: 80px;
  transition: border-color 0.15s ease;
}
body#product .qty input#quantity_wanted:focus { border-color: var(--gc-primary); outline: none; }

/* Bootstrap touchspin (bottoni +/-) se attivo */
body#product .bootstrap-touchspin .btn-touchspin {
  background: var(--gc-surface);
  color: var(--gc-ink);
  border: 1px solid var(--gc-rule-strong);
  width: 36px;
  height: 28px;
  font-size: 12px;
}
body#product .bootstrap-touchspin .btn-touchspin:hover { background: var(--gc-bg-alt); color: var(--gc-ink); }

/* Add-to-cart bottone primario big */
body#product .product-add-to-cart button.add-to-cart,
body#product button.btn.btn-primary.btn-lg.add-to-cart {
  background: var(--gc-accent);
  border: 1px solid var(--gc-accent);
  color: #fff;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 18px 32px;
  min-height: 56px;
  border-radius: var(--gc-radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: background-color 0.15s ease, transform 0.1s ease;
}
body#product .product-add-to-cart button.add-to-cart:hover {
  background: #000;
  border-color: #000;
  color: #fff;
}
body#product .product-add-to-cart button.add-to-cart .bag-icon {
  font-size: 16px;
  margin: 0;
}

/* Wishlist & Compare: icona quadrata 56x56 outline */
body#product .col-add-wishlist .btn,
body#product .col-add-compare .btn,
body#product .btn.btn-secondary.btn-lg.btn-iconic {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  color: var(--gc-ink);
  width: 56px;
  height: 56px;
  min-height: 56px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gc-radius);
  font-size: 16px;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body#product .col-add-wishlist .btn:hover,
body#product .col-add-compare .btn:hover,
body#product .btn.btn-secondary.btn-lg.btn-iconic:hover {
  border-color: var(--gc-primary);
  color: var(--gc-primary);
  background: var(--gc-surface);
}

/* Stato "added" wishlist (cuore pieno) */
body#product .btn-iqitwishlist-add.added .fa-heart-o,
body#product .btn-iqitwishlist-add:not(.added) .fa-heart { display: none; }
body#product .btn-iqitwishlist-add.added { color: var(--gc-error); border-color: var(--gc-error); }

/* ----- 11.6 · Reference + stock + features sheet ------------ */
/* Pattern K/V (.pdp-stock-line prototipo): griglia 140px 1fr,
   border-bottom dashed, label mono uppercase muted, value semibold. */
body#product .product-reference,
body#product .product-quantities {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: baseline;
  gap: 16px;
  font-size: 13px;
  margin: 0;
  padding: 10px 0;
  border-top: 0;
  border-bottom: 1px dashed var(--gc-rule);
}
body#product .product-reference + .product-quantities { border-top: 0; }
body#product .product-reference .label,
body#product .product-quantities .label {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 500;
  margin: 0;
  padding: 0;
}
body#product .product-reference span {
  font-family: var(--gc-mono);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gc-ink);
}

body#product .product-quantities span[data-stock] {
  color: var(--gc-success);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body#product .product-quantities span[data-stock]::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
body#product .product-quantities span[data-stock="0"] { color: var(--gc-error); }

/* Feature list (data sheet) — 2 colonne affiancate stile prototipo (.pdp-spec).
   Grid 4-cols: dt/dd/dt/dd; le righe si formano automaticamente dato che
   PS emette dt e dd alternati nel <dl>. Su mobile collassa a 2-cols. */
body#product .product-features dl.data-sheet {
  display: grid;
  grid-template-columns: 180px 1fr 180px 1fr;
  column-gap: 60px;
  row-gap: 0;
  margin: 0;
  border: 0;
  background: transparent;
}
body#product .product-features dl.data-sheet dt.name,
body#product .product-features dl.data-sheet dd.value {
  background: transparent;
  font-family: var(--gc-font);
  font-size: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--gc-rule);
  margin: 0;
  letter-spacing: normal;
  text-transform: none;
}
body#product .product-features dl.data-sheet dt.name {
  color: var(--gc-muted);
  font-weight: 400;
}
body#product .product-features dl.data-sheet dd.value {
  color: var(--gc-ink);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
body#product .product-features dl.data-sheet dt.name:last-of-type,
body#product .product-features dl.data-sheet dd.value:last-of-type { border-bottom: 0; }
@media (max-width: 768px) {
  body#product .product-features dl.data-sheet {
    grid-template-columns: 140px 1fr;
    column-gap: 24px;
  }
}

/* ----- 11.7 · Tabs (Description / Details / Reviews) -------- */
body#product .tabs.product-tabs {
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid var(--gc-rule);
}
body#product .nav.nav-tabs#product-infos-tabs {
  border-bottom: 1px solid var(--gc-rule);
  gap: 0;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
body#product .nav-tabs .nav-item { margin: 0; }
body#product .nav-tabs .nav-item .nav-link {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-muted);
  background: transparent;
  border: 0;
  padding: 16px 20px;
  position: relative;
  border-radius: 0;
  transition: color 0.15s ease;
}
body#product .nav-tabs .nav-item .nav-link:hover { color: var(--gc-ink); }
body#product .nav-tabs .nav-item .nav-link.active {
  color: var(--gc-ink);
  background: transparent;
  border: 0;
}
body#product .nav-tabs .nav-item .nav-link.active::after {
  content: '';
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: -1px;
  height: 2px;
  background: var(--gc-primary);
}

/* Tab content padding + typography */
body#product .tab-content {
  font-size: 15px;
  line-height: 1.65;
  color: var(--gc-ink-2);
}
body#product .tab-content .product-description p { margin: 0 0 12px; }

/* iqitreviews block dentro la tab Reviews */
body#product .tab-content #iqit-reviews { padding-top: 8px; }
body#product .tab-content #iqitreviews-snippet { color: var(--gc-muted); font-size: 14px; }

/* ----- 11.8 · Quick view modal & product modal -------------- */
body #product-modal .modal-content {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
}

/* ----- 11.9 · Responsive ------------------------------------- */
@media (max-width: 992px) {
  body#product .col-product-image,
  body#product .col-product-info { padding-left: 0; padding-right: 0; }
  body#product .images-container .product-cover .swiper-slide { min-height: 360px; }
  body#product h1.h1.page-title { font-size: 30px; }
  body#product .product-prices .current-price .product-price,
  body#product .product-prices .current-price-value { font-size: 34px; }
  body#product .nav-tabs .nav-item .nav-link { padding: 12px 14px; }
}
@media (max-width: 600px) {
  body#product #wrapper { padding-bottom: 48px; }
  body#product .images-container .product-cover .swiper-slide { min-height: 280px; }
  body#product h1.h1.page-title { font-size: 26px; }
  body#product .product-prices .current-price .product-price,
  body#product .product-prices .current-price-value { font-size: 28px; }
  body#product .col-add-qty,
  body#product .col-add-btn,
  body#product .col-add-wishlist,
  body#product .col-add-compare { width: auto; }
  body#product .product-add-to-cart .product-quantity { flex-wrap: wrap; row-gap: 8px; }
}


/* ============================================================
   12 · CATEGORY (#category) — Fase 3.2
   ------------------------------------------------------------
   Selettori live confermati:
     body#category.layout-left-column.page-category
       #content-wrapper
         #js-product-list-header (h1 + .category-image)
         #products
           #js-product-list-top.products-selection (sort + view-switcher)
           #js-product-list .products.row.products-grid
             > .js-product-miniature-wrapper (.col-*)
               > article.product-miniature.product-miniature-grid
       nav.pagination
       #left-column #search_filters (ps_facetedsearch)
   iqitthemeeditor live: pl_grid_d=4, btn-product-list nero,
   product-category-name/brand/reference/desc nascosti in grid.
   ============================================================ */

/* ----- 12.1 · Wrapper categoria + breadcrumb ---------------- */
body#category #wrapper {
  background: var(--gc-bg);
  color: var(--gc-ink);
  padding-top: 24px;
  padding-bottom: 96px;
}
body#category #wrapper .breadcrumb {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-muted);
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0 0 24px;
}
body#category #wrapper .breadcrumb a:link,
body#category #wrapper .breadcrumb a:visited { color: var(--gc-muted); }
body#category #wrapper .breadcrumb a:hover { color: var(--gc-ink); }
body#category #wrapper .breadcrumb li:after { color: var(--gc-rule-strong); margin: 0 8px; }

/* ----- 12.2 · Header categoria (#js-product-list-header) ---- */
/* Aderente al mockup: title gigante, description sotto, stat row mono,
   tutto stretched a tutta larghezza. */
body#category #js-product-list-header {
  margin-bottom: 0;
  padding-bottom: 32px;
  border: 0;
  border-bottom: 1px solid var(--gc-rule);
  margin-bottom: 32px;
}
body#category #js-product-list-header h1.h1.page-title,
body#category #content-wrapper #js-product-list-header h1.page-title {
  font-family: var(--gc-font);
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--gc-ink);
  margin: 0 0 12px;
  border: 0;
  padding: 0;
  text-transform: none;
}
body#category #js-product-list-header h1.h1.page-title span { display: inline; }

/* Category description (text under title, before listing) */
body#category .category-cover,
body#category .cat-description,
body#category #category-description,
body#category .category-description,
body#category #js-product-list-header + .category-description,
body#category #js-product-list-header .category-description {
  font-size: 14px;
  line-height: 1.5;
  color: var(--gc-muted);
  margin: 0 0 20px;
  max-width: 100%;
  font-weight: 400;
}

/* Truncation a 300 parole + toggle "Vedi tutto" (gestito da
   category-description.js: aggiunge .gc-truncatable + .gc-collapsed,
   inietta .gc-rte-clip prima di .rte-content e .gc-rte-toggle in fondo). */
body#category .category-description.gc-truncatable .gc-rte-clip {
  white-space: pre-line;
  margin: 0;
}
body#category .category-description.gc-truncatable.gc-collapsed .rte-content { display: none; }
body#category .category-description.gc-truncatable:not(.gc-collapsed) .gc-rte-clip { display: none; }
body#category .category-description .gc-rte-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--gc-rule-strong);
  padding: 4px 0;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
body#category .category-description .gc-rte-toggle:hover {
  border-bottom-color: var(--gc-ink);
  color: var(--gc-ink);
}

/* Stat row dinamica iniettata via JS (.gc-cat-stats), prototipo .meta */
body#category .gc-cat-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  margin: 20px 0 0;
  font-weight: 400;
}
body#category .gc-cat-stats .gc-stat-value {
  color: var(--gc-ink);
  font-weight: 600;
}
body#category .gc-cat-stats .gc-stat-sep {
  color: var(--gc-rule-strong);
}

/* Category-image opzionale (se admin la setta) */
body#category .category-image {
  margin: 16px 0 0;
  border: 1px solid var(--gc-rule);
  background: var(--gc-bg-alt);
  overflow: hidden;
  max-width: 100%;
}
body#category .category-image img.img-fluid {
  width: 100%;
  max-height: 200px;
  object-fit: cover;
  height: auto;
  display: block;
}

/* ----- 12.3 · Top toolbar (sort + view-switcher) ------------ */
body#category #js-product-list-top.products-selection {
  border-top: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  padding: 14px 0;
  margin-bottom: 24px;
}
body#category #js-product-list-top .row { gap: 12px 0; }

/* "Visualizzati 1-1 di 1 articoli" */
body#category #js-product-list-top .showing {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-muted);
}

/* View switcher (grid / list) */
body#category #js-product-list-top .view-switcher a.js-search-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--gc-rule);
  color: var(--gc-muted);
  margin-right: 4px;
  background: var(--gc-surface);
  transition: border-color 0.15s ease, color 0.15s ease;
}
body#category #js-product-list-top .view-switcher a.js-search-link:hover {
  border-color: var(--gc-ink);
  color: var(--gc-ink);
}
body#category #js-product-list-top .view-switcher a.js-search-link.current {
  border-color: var(--gc-ink);
  background: var(--gc-ink);
  color: #fff;
}

/* Sort by dropdown */
body#category .products-sort-order .select-title,
body#category .products-sort-order a.select-title.expand-more {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 500;
  color: var(--gc-ink);
  padding: 10px 16px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: border-color 0.15s ease;
}
body#category .products-sort-order .select-title:hover,
body#category .products-sort-order .select-title:focus { border-color: var(--gc-ink); }
body#category .products-sort-order .select-title-name { font-weight: 500; }
body#category .products-sort-order .select-title i.fa-angle-down { color: var(--gc-muted); font-size: 12px; }

body#category .products-sort-order .dropdown-menu {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-card);
  padding: 4px;
  min-width: 240px;
  margin-top: 4px;
}
body#category .products-sort-order .dropdown-item {
  font-size: 13px;
  color: var(--gc-ink-2);
  padding: 10px 12px;
  border-radius: var(--gc-radius);
}
body#category .products-sort-order .dropdown-item:hover { background: var(--gc-bg-alt); color: var(--gc-ink); }
body#category .products-sort-order .dropdown-item.current {
  background: var(--gc-bg-alt);
  color: var(--gc-ink);
  font-weight: 600;
}

/* Filter toggler mobile */
body#category #search_filter_toggler {
  background: var(--gc-ink);
  color: #fff;
  border: 0;
  font-family: var(--gc-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 10px 16px;
  border-radius: var(--gc-radius);
}
body#category #search_filter_toggler:hover { background: #000; color: #fff; }

/* ----- 12.4 · Sidebar filtri (ps_facetedsearch) ------------- */
body#category #left-column { padding-right: 28px; }
body#category #left-column .block { border: 0; padding: 0; margin: 0; }

body#category #search_filters_wrapper { margin-bottom: 32px; }
body#category #search_filters_wrapper > .block-title {
  display: none; /* "Filtra per" duplicato — il nostro design non lo mostra */
}

body#category #search_filters {
  background: transparent;
  padding: 0;
  border: 0;
}

body#category #search_filters aside.facet {
  border-top: 1px solid var(--gc-rule);
  padding: 24px 0;
  margin: 0;
}
body#category #search_filters aside.facet:first-of-type { border-top: 0; padding-top: 0; }
body#category #search_filters aside.facet:last-of-type { border-bottom: 1px solid var(--gc-rule); }

body#category #search_filters .facet-title,
body#category #search_filters h4.block-title.facet-title {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  border: 0 !important;
  padding: 0 0 14px 0 !important;
  margin: 0;
  background: transparent;
  position: relative;
}
body#category #search_filters .facet-title span { color: var(--gc-muted); }

/* Lista facet (checkboxes) */
body#category #search_filters ul.facet-type-checkbox,
body#category #search_filters ul.facet-type-radio,
body#category #search_filters .facet ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body#category #search_filters .facet ul li { margin: 0; padding: 0; }

/* Custom checkbox: contenitore */
body#category #search_filters label.facet-label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  padding: 4px 0;
  margin: 0;
  font-family: var(--gc-font);
  font-size: 13px;
  color: var(--gc-ink-2);
  font-weight: 500;
  transition: color 0.15s ease;
}
body#category #search_filters label.facet-label:hover { color: var(--gc-ink); }

/* Square box stile industrial */
body#category #search_filters label.facet-label .custom-checkbox {
  position: relative;
  width: 18px;
  height: 18px;
  border: 1px solid var(--gc-rule-strong);
  background: var(--gc-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 0; /* squadrato, look industrial */
  transition: border-color 0.15s ease, background 0.15s ease;
}
body#category #search_filters label.facet-label .custom-checkbox input[type="checkbox"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}
body#category #search_filters label.facet-label .custom-checkbox input[type="checkbox"] + span { display: none; }
body#category #search_filters label.facet-label .custom-checkbox input[type="checkbox"]:checked + span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body#category #search_filters label.facet-label .custom-checkbox input[type="checkbox"]:checked + span .checkbox-checked {
  color: var(--gc-primary);
  font-size: 12px;
}
body#category #search_filters label.facet-label:hover .custom-checkbox { border-color: var(--gc-ink); }
body#category #search_filters label.facet-label .custom-checkbox:has(input:checked) {
  border-color: var(--gc-primary);
  background: var(--gc-primary-50);
}

/* Anchor del facet (testo + count) */
body#category #search_filters label.facet-label a.search-link,
body#category #search_filters label.facet-label a.js-search-link {
  color: inherit;
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
body#category #search_filters label.facet-label .magnitude {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-muted);
  letter-spacing: 0.04em;
}

/* Facet color: swatches quadrati */
body#category #search_filters .facet_color li,
body#category #search_filters ul.facet_color {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body#category #search_filters .facet_color li label.facet-label {
  padding: 0;
}
body#category #search_filters .facet_color .custom-checkbox {
  width: 28px;
  height: 28px;
}

/* Slider range (es. prezzo) */
body#category #search_filters .ui-slider {
  background: var(--gc-rule);
  height: 4px;
  border: 0;
  border-radius: 0;
  margin: 16px 0;
}
body#category #search_filters .ui-slider .ui-slider-range { background: var(--gc-primary); }
body#category #search_filters .ui-slider .ui-slider-handle {
  background: var(--gc-ink);
  border: 0;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  top: -5px;
}
body#category #search_filters .faceted-slider-output {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-muted);
  margin-top: 8px;
}

/* Active filters bar (chip neri stile industrial — aderente al mockup) */
body#category #js-active-search-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
body#category #js-active-search-filters::before {
  content: 'Filtri attivi';
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin-right: 8px;
}
body#category #js-active-search-filters .filter-block {
  background: var(--gc-ink);
  border: 0;
  color: #fff;
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 6px 10px;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: var(--gc-radius);
  text-decoration: none;
}
body#category #js-active-search-filters .filter-block .close,
body#category #js-active-search-filters .filter-block i.material-icons {
  color: #fff !important;
  font-size: 12px;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.15s ease;
}
body#category #js-active-search-filters .filter-block:hover .close { opacity: 1; }
body#category #js-active-search-filters .js-search-filters-clear-all {
  background: transparent !important;
  color: var(--gc-ink-2) !important;
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 6px 4px;
  border: 0;
  border-bottom: 1px solid var(--gc-rule-strong);
  text-decoration: none;
  margin-left: 4px;
}
body#category #js-active-search-filters .js-search-filters-clear-all:hover {
  color: var(--gc-ink) !important;
  border-bottom-color: var(--gc-ink);
}

/* ----- 12.5 · Listing layout (.products-grid border lattice) -- */
body#category #js-product-list .products.row.products-grid {
  margin: 0;
  border-top: 1px solid var(--gc-rule);
  border-left: 1px solid var(--gc-rule);
}
/* Mockup: 3 col XL (non 4). Sovrascriviamo le classi col-* di Bootstrap.
   col-xl-3 (default 4col) → col-xl-4 (3col) usando flex-basis. */
body#category .js-product-miniature-wrapper {
  padding: 0;
  border-right: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
}
@media (min-width: 1200px) {
  body#category #js-product-list .products.row.products-grid > .js-product-miniature-wrapper {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
}

/* ============================================================
   12.5b · CARD PRODOTTO — universale (categoria + carousel)
   ------------------------------------------------------------
   Questi stili si applicano a TUTTE le .product-miniature in
   layout grid: pagine catalogo, carousel di home, related su
   PDP, cross-sell, ecc. — un unico look coerente.
   ------------------------------------------------------------
   PROTOTIPO (ProductCard di home.jsx):
     ┌─────────────────────┐
     │ [flag-overlay]      │ ← .product-flags
     │                     │
     │       FOTO          │
     │                     │
     ├─────────────────────┤
     │ COD demo_1          │ ← .product-reference (mono muted)
     │ Hummingbird printed │ ← .product-title
     │ STUDIO DESIGN       │ ← .product-brand (mono muted)
     │                     │
     │ €19,12  €23,90  ⊕   │ ← .price-and-shipping  ⊕=quickadd
     └─────────────────────┘
   ------------------------------------------------------------
   iqitthemeeditor nasconde reference/brand/add-cart con
   display:none !important — li ribaltiamo qui.
   ============================================================ */

body .product-miniature.product-miniature-grid {
  background: var(--gc-surface);
  border: 0;
  outline: 0;
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  text-align: left;
  transition: background 0.15s ease;
}
body .product-miniature.product-miniature-grid:hover {
  background: var(--gc-bg-alt);
  outline: 0;
  box-shadow: none;
}

/* ----- Thumbnail container ----- */
/* v0.9.1: rimosso pattern diagonale (le righe si vedevano attraverso le foto
   con sfondo bianco). Solo bg warm pulito. */
body .product-miniature.product-miniature-grid .thumbnail-container {
  background: var(--gc-bg-alt) !important;
  background-image: none !important;
  border: 0;
  border-bottom: 1px solid var(--gc-rule);
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
}
body .product-miniature.product-miniature-grid:hover .thumbnail-container {
  background-color: var(--gc-surface) !important;
  background-image: none !important;
}
body .product-miniature.product-miniature-grid .thumbnail-container a.thumbnail.product-thumbnail {
  display: block;
  height: 100%;
  width: 100%;
}
body .product-miniature.product-miniature-grid .thumbnail-container picture {
  display: block;
  height: 100%;
  width: 100%;
}
body .product-miniature.product-miniature-grid .thumbnail-container img.product-thumbnail-first,
body .product-miniature.product-miniature-grid .thumbnail-container img.product-thumbnail-second {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14%;
  mix-blend-mode: multiply;
}
/* Doppia picture: la seconda è già gestita da iqitthemeeditor con opacity 0→1 on hover.
   Confermiamo qui per sicurezza. */
body .product-miniature.product-miniature-grid .thumbnail-container .product-thumbnail-second {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}
body .product-miniature.product-miniature-grid .thumbnail-container:hover .product-thumbnail-second {
  opacity: 1;
}

/* ----- Product flags (Sale, New) overlay top-left ----- */
body .product-miniature.product-miniature-grid .product-flags {
  position: absolute;
  top: 12px;
  left: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 3;
}
body .product-miniature.product-miniature-grid .product-flag {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 8px;
  background: var(--gc-ink);
  color: #fff;
  border-radius: 0;
  display: inline-block;
}
body .product-miniature.product-miniature-grid .product-flag.discount,
body .product-miniature.product-miniature-grid .product-flag.on-sale {
  background: var(--gc-primary);
  color: #fff;
}
body .product-miniature.product-miniature-grid .product-flag.new {
  background: var(--gc-surface);
  color: var(--gc-ink);
  border: 1px solid var(--gc-ink);
}

/* ----- Functional buttons (wishlist/compare/quickview) overlay TOP-RIGHT ----- */
/* v0.9.2: theme.css di Warehouse mette su .product-functional-buttons-bottom:
     position: absolute; left: 50%; transform: translate(-50%, 50%); bottom: .5rem
   Devo killare ANCHE il transform (era il responsabile dello scostamento) e
   resettare left/bottom esplicitamente. */
body .product-miniature.product-miniature-grid .product-functional-buttons,
body .product-miniature.product-miniature-grid .product-functional-buttons.product-functional-buttons-bottom,
body .product-miniature.product-miniature-grid .product-functional-buttons-bottom,
body .products-grid .product-miniature-grid .product-functional-buttons-bottom {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  text-align: right !important;
  font-size: 0 !important;
  line-height: 0 !important;
  z-index: 3;
  width: auto;
  height: auto;
  /* Opacity gestita qui sul container (Warehouse mette opacity:0 di base) */
  opacity: 0;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
/* Hover: container visibile (sostituisce regola Warehouse che faceva translate hover) */
body .product-miniature.product-miniature-grid:hover .product-functional-buttons,
body .product-miniature.product-miniature-grid:hover .product-functional-buttons-bottom,
body .products-grid .product-miniature-grid:hover .product-functional-buttons-bottom {
  opacity: 1 !important;
  transform: none !important;
}
body .product-miniature.product-miniature-grid .product-functional-buttons-links {
  display: inline-flex !important;
  flex-direction: column;
  gap: 6px;
  opacity: 1; /* opacity ora gestita sul container parent (vedi sopra) */
  transform: none;
}
body .product-miniature.product-miniature-grid .product-functional-buttons-links a {
  width: 36px;
  height: 36px;
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  color: var(--gc-ink) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  border-radius: var(--gc-radius);
  transition: border-color 0.15s ease, color 0.15s ease;
}
body .product-miniature.product-miniature-grid .product-functional-buttons-links a:hover {
  border-color: var(--gc-primary);
  color: var(--gc-primary) !important;
}

/* ----- Description block (flex column con order custom) ----- */
body .product-miniature.product-miniature-grid .product-description {
  padding: 16px 16px 60px; /* extra bottom padding per ospitare quickadd "+" */
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: left;
  position: relative;
  background: transparent !important; /* batte iqitthemeeditor che mette #ffffff */
}

/* ----- 12.5b.1 · Sblocco e riordino degli elementi ----- */

/* Nascondi category-name (non nel prototipo) */
body .product-miniature.product-miniature-grid .product-description .product-category-name {
  display: none !important;
}
/* Nascondi description-short (non nel prototipo) */
body .product-miniature.product-miniature-grid .product-description .product-description-short {
  display: none !important;
}

/* Mostra reference (COD) — battiamo il display:none di iqitthemeeditor */
body .products-grid .product-miniature.product-miniature-grid .product-description .product-reference {
  display: block !important;
  order: 1;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-muted);
  margin: 0 0 6px;
  line-height: 1.2;
}
body .products-grid .product-miniature.product-miniature-grid .product-reference a {
  color: inherit;
  text-decoration: none;
}
body .products-grid .product-miniature.product-miniature-grid .product-reference::before {
  content: 'COD ';
  color: var(--gc-rule-strong);
}

/* Title */
body .product-miniature.product-miniature-grid h2.h3.product-title,
body .product-miniature.product-miniature-grid .product-title {
  order: 2;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
  margin: 0 0 6px;
  text-transform: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.7em;
}
body .product-miniature.product-miniature-grid .product-title a {
  color: var(--gc-ink);
  text-decoration: none;
}
body .product-miniature.product-miniature-grid .product-title a:hover {
  color: var(--gc-primary);
}

/* Brand uppercase mono — sblocca display:none di iqit */
body .products-grid .product-miniature.product-miniature-grid .product-description .product-brand {
  display: block !important;
  order: 3;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  margin: 0 0 12px;
  line-height: 1.2;
}
body .products-grid .product-miniature.product-miniature-grid .product-brand a {
  color: inherit;
  text-decoration: none;
}

/* Price + shipping (footer card) */
body .product-miniature.product-miniature-grid .product-price-and-shipping {
  order: 4;
  margin-top: auto;
  padding-top: 8px;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}
body .product-miniature.product-miniature-grid .product-price-and-shipping .product-price,
body .product-miniature.product-miniature-grid .product-price-and-shipping a span.product-price {
  font-family: var(--gc-font);
  font-size: 20px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink) !important; /* iqitthemeeditor mette #ad1f00 */
  letter-spacing: -0.01em;
  line-height: 1;
}
body .product-miniature.product-miniature-grid .product-price-and-shipping .regular-price {
  font-family: var(--gc-font);
  font-size: 12px;
  color: var(--gc-muted) !important;
  text-decoration: line-through;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
body .product-miniature.product-miniature-grid .product-price-and-shipping .discount-percentage,
body .product-miniature.product-miniature-grid .product-price-and-shipping .discount-amount {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  background: var(--gc-primary);
  color: #fff;
  padding: 3px 6px;
  letter-spacing: 0.04em;
}

/* Variants color swatches */
body .product-miniature.product-miniature-grid .products-variants {
  order: 5;
}
body .product-miniature.product-miniature-grid .products-variants .variant-links {
  display: flex;
  gap: 4px;
  margin-top: 8px;
  flex-wrap: wrap;
}
body .product-miniature.product-miniature-grid .variant-links a.color {
  width: 16px;
  height: 16px;
  border: 1px solid var(--gc-rule-strong);
  border-radius: 0;
  cursor: pointer;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
body .product-miniature.product-miniature-grid .variant-links a.color:hover {
  border-color: var(--gc-ink);
  transform: scale(1.15);
}

/* Product availability (LED stock) — mostriamo se ha contenuto */
body .product-miniature.product-miniature-grid .product-availability {
  order: 6;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-success);
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body .product-miniature.product-miniature-grid .product-availability:not(:empty)::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
body .product-miniature.product-miniature-grid .product-availability.product-unavailable,
body .product-miniature.product-miniature-grid .product-availability.product-out_of_stock {
  color: var(--gc-error);
}

/* ----- 12.5b.2 · QUICKADD "+" tondo bottom-right -------------- */
/* Sblocca .product-add-cart, lo posiziona absolute in basso a destra. */
body .products-grid .product-miniature.product-miniature-grid .product-add-cart {
  display: block !important;
  position: absolute;
  bottom: 12px;
  right: 12px;
  margin: 0;
  padding: 0;
  z-index: 2;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
body .product-miniature.product-miniature-grid:hover .product-add-cart {
  opacity: 1;
  transform: translateY(0);
}

/* Il form e l'input-group sono compresi → li resettiamo */
body .product-miniature.product-miniature-grid .product-add-cart form {
  margin: 0;
  padding: 0;
}
body .product-miniature.product-miniature-grid .product-add-cart .input-group-add-cart {
  display: block;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
/* Nascondi il qty input (il "+" aggiunge sempre 1) */
body .product-miniature.product-miniature-grid .product-add-cart .input-qty,
body .product-miniature.product-miniature-grid .product-add-cart .bootstrap-touchspin {
  display: none !important;
}

/* Il bottone "+" tondo */
body .product-miniature.product-miniature-grid .product-add-cart .btn-product-list,
body .product-miniature.product-miniature-grid .product-add-cart button.add-to-cart {
  background: var(--gc-ink);
  color: #fff;
  border: 0;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%; /* tondo come prototipo */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0; /* nasconde testo "Aggiungi al carrello" */
  line-height: 0;
  transition: background 0.15s ease, transform 0.15s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
body .product-miniature.product-miniature-grid .product-add-cart .btn-product-list:hover,
body .product-miniature.product-miniature-grid .product-add-cart button.add-to-cart:hover {
  background: var(--gc-primary);
  color: #fff;
  transform: scale(1.05);
}
/* Mostra solo l'icona shopping-bag (font-size 16) — ignora il testo */
body .product-miniature.product-miniature-grid .product-add-cart .btn-product-list i.fa,
body .product-miniature.product-miniature-grid .product-add-cart button.add-to-cart i.fa {
  font-size: 16px;
  line-height: 1;
  margin: 0;
}
body .product-miniature.product-miniature-grid .product-add-cart .btn-product-list i.fa-circle-o-notch,
body .product-miniature.product-miniature-grid .product-add-cart button.add-to-cart i.fa-circle-o-notch {
  display: none; /* lo spinner appare solo quando .loading */
}
body .product-miniature.product-miniature-grid .product-add-cart .btn-product-list.loading i.fa-shopping-bag,
body .product-miniature.product-miniature-grid .product-add-cart button.add-to-cart.loading i.fa-shopping-bag {
  display: none;
}
body .product-miniature.product-miniature-grid .product-add-cart .btn-product-list.loading i.fa-circle-o-notch,
body .product-miniature.product-miniature-grid .product-add-cart button.add-to-cart.loading i.fa-circle-o-notch {
  display: inline-block;
}

/* ----- 12.6 · Pagination ------------------------------------ */
body#category nav.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--gc-rule);
  background: transparent;
}
body#category .pagination .page-list {
  display: inline-flex;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}
body#category .pagination .page-list li {
  border: 1px solid var(--gc-rule);
  background: var(--gc-surface);
  transition: border-color 0.15s ease, color 0.15s ease;
}
body#category .pagination .page-list li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  font-family: var(--gc-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--gc-ink);
}
body#category .pagination .page-list li:hover {
  border-color: var(--gc-ink);
}
body#category .pagination .page-list li:hover a { color: var(--gc-ink); }
body#category .pagination .page-list li.current,
body#category .pagination .page-list li.current a {
  background: var(--gc-ink);
  border-color: var(--gc-ink);
  color: #fff !important;
}
body#category .pagination .page-list li.disabled,
body#category .pagination .page-list li.disabled a { color: var(--gc-muted); pointer-events: none; }
body#category .pagination .page-list li.previous a::before,
body#category .pagination .page-list li.next a::after { font-family: 'FontAwesome'; }

body#category .pagination .col-pagination-total {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ----- 12.7 · Responsive ------------------------------------ */
@media (max-width: 991px) {
  body#category #left-column {
    position: fixed;
    top: 0;
    left: 0;
    width: 320px;
    max-width: 90vw;
    height: 100vh;
    background: var(--gc-surface);
    z-index: 1050;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    overflow-y: auto;
    padding: 24px;
    box-shadow: var(--gc-shadow-card);
  }
  body#category #left-column.faceted-overlay-on-show,
  body#category #left-column.show { transform: translateX(0); }

  body#category #js-product-list-header h1.h1.page-title { font-size: 36px; }
}
@media (max-width: 600px) {
  body#category #wrapper { padding-bottom: 48px; }
  body#category #js-product-list-header h1.h1.page-title { font-size: 28px; }
  body#category #js-product-list .products.row.products-grid { border: 0; }
  body#category .js-product-miniature-wrapper { border-right: 0; }
  body#category .js-product-miniature-wrapper:nth-child(odd) { border-right: 1px solid var(--gc-rule); }
}


/* ============================================================
   13 · CART (#cart) — Fase 3.3
   ------------------------------------------------------------
   Selettori live (Warehouse cart.tpl):
     body#cart.page-cart [.cart-empty]
       #main h1.h1.page-title
       .cart-grid.row
         .cart-grid-body.col-lg-8
           .cart-container .cart-detailed (lista items)
             .product-line-grid.row
               .product-line-grid-body (img + nome + attributes)
               .product-line-grid-right (unit-price + qty + price + remove)
         .cart-grid-right.col-lg-4
           .card.cart-summary
             cart totals + voucher + proceed-to-checkout
   ============================================================ */

/* ----- 13.1 · Wrapper + page title -------------------------- */
body#cart #wrapper {
  background: var(--gc-bg);
  color: var(--gc-ink);
  padding-top: 32px;
  padding-bottom: 96px;
}
body#cart #main h1.h1.page-title,
body#cart #wrapper h1.h1.page-title {
  font-family: var(--gc-font);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--gc-ink);
  margin: 0 0 32px;
  border: 0;
  padding: 0;
}

/* ----- 13.2 · Cart-empty state ------------------------------ */
body#cart.cart-empty .cart-empty,
body#cart .cart-grid .cart-empty {
  text-align: center;
  padding: 80px 24px;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
}
body#cart.cart-empty .cart-empty .alert {
  background: transparent;
  border: 0;
  color: var(--gc-muted);
  font-family: var(--gc-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 24px;
}
body#cart.cart-empty .cart-empty .btn,
body#cart.cart-empty .cart-empty a.btn-secondary {
  background: var(--gc-accent);
  border-color: var(--gc-accent);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 14px 28px;
}

/* ----- 13.3 · Cart grid layout ------------------------------ */
body#cart .cart-grid.row {
  margin: 0;
  gap: 0;
}
body#cart .cart-grid-body { padding-right: 32px; }

@media (max-width: 991px) {
  body#cart .cart-grid-body { padding-right: 0; padding-bottom: 24px; }
}

/* ----- 13.4 · Lista items (cart-container) ------------------ */
body#cart .cart-container {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
}

/* Eventuale heading "Articoli (3)" */
body#cart .cart-container .cart-overview .cart-overview-title,
body#cart .cart-container .cart-summary-line.cart-total {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
  padding: 14px 20px;
  border-bottom: 1px solid var(--gc-rule);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Singolo product line (item) */
body#cart .product-line-grid.row {
  margin: 0;
  padding: 20px;
  border-bottom: 1px solid var(--gc-rule);
  align-items: center;
}
body#cart .product-line-grid.row:last-child { border-bottom: 0; }
body#cart .cart-items > .cart-item:hover .product-line-grid {
  background: var(--gc-bg-alt);
}

/* Left: image + info */
body#cart .product-line-grid-body { padding: 0; }
body#cart .product-line-grid-body .product-image {
  flex: 0 0 80px;
  max-width: 80px;
  padding-right: 16px;
}
body#cart .product-line-grid-body .product-image img.img-fluid {
  width: 80px;
  height: 80px;
  object-fit: contain;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 6px;
  mix-blend-mode: multiply;
}

/* Nome prodotto */
body#cart .product-line-info a.label,
body#cart .product-line-info .label {
  font-family: var(--gc-font);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--gc-ink) !important;
  text-decoration: none;
  display: block;
  margin: 0 0 6px;
  padding: 0;
}
body#cart .product-line-info a.label:hover { color: var(--gc-primary) !important; }

/* Attributes (Colore, Dimensione) */
body#cart .product-line-info-secondary {
  font-size: 12px;
  color: var(--gc-muted);
  margin-bottom: 2px;
  display: inline-flex;
  gap: 4px;
}
body#cart .product-line-info-secondary .label {
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-muted);
}
body#cart .product-line-info-secondary .value {
  color: var(--gc-ink-2);
  font-weight: 500;
}

/* Right: unit-price + qty + price + remove */
body#cart .product-line-grid-right { padding: 0; }
body#cart .product-line-grid-right .row { gap: 8px 0; }

/* Unit price */
body#cart .product-line-grid-right .unit-price {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink-2);
  text-align: right;
}
body#cart .product-line-grid-right .unit-price .regular-price {
  font-size: 12px;
  color: var(--gc-muted);
  text-decoration: line-through;
  margin-right: 6px;
  display: inline-block;
}
body#cart .product-line-grid-right .unit-price .discount {
  background: var(--gc-primary);
  color: #fff;
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  padding: 2px 6px;
  letter-spacing: 0.04em;
  margin-right: 6px;
  display: inline-block;
}
body#cart .product-line-grid-right .unit-price .value {
  font-family: var(--gc-font);
  font-weight: 500;
  color: var(--gc-ink);
}

/* Quantity input (con stepper) */
body#cart .product-line-grid-right .qty {
  flex: 0 0 auto;
}
body#cart .product-line-grid-right .qty input.js-cart-line-product-quantity,
body#cart input.js-cart-line-product-quantity {
  width: 64px;
  height: 40px;
  border: 1px solid var(--gc-rule-strong);
  background: var(--gc-surface);
  font-family: var(--gc-mono);
  font-size: 14px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
  text-align: center;
  border-radius: var(--gc-radius);
  transition: border-color 0.15s ease;
}
body#cart .product-line-grid-right .qty input.js-cart-line-product-quantity:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}

/* Total price del line item */
body#cart .product-line-grid-right .price {
  text-align: right;
  flex: 1;
}
body#cart .product-line-grid-right .price .product-price strong {
  font-family: var(--gc-font);
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
  letter-spacing: -0.01em;
}

/* Remove button (cestino) */
body#cart .cart-line-product-actions {
  display: inline-flex;
  align-items: center;
}
body#cart .cart-line-product-actions a.remove-from-cart {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gc-muted);
  background: transparent;
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  font-size: 14px;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body#cart .cart-line-product-actions a.remove-from-cart:hover {
  border-color: var(--gc-error);
  color: var(--gc-error);
  background: var(--gc-surface);
}

/* Continue shopping */
body#cart a.btn.btn-secondary[href*="index"] {
  background: transparent;
  border: 1px solid var(--gc-rule-strong);
  color: var(--gc-ink) !important;
  font-family: var(--gc-font);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.02em;
  padding: 12px 18px;
  margin-top: 24px;
  margin-bottom: 0;
  border-radius: var(--gc-radius);
}
body#cart a.btn.btn-secondary[href*="index"]:hover {
  border-color: var(--gc-ink);
  color: var(--gc-ink) !important;
  background: var(--gc-surface);
}

/* ----- 13.5 · Cart summary (right column) ------------------- */
body#cart .cart-grid-right .card.cart-summary {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: 0;
  box-shadow: none;
  padding: 24px;
  position: sticky;
  top: 24px;
}

/* Heading "Riepilogo" */
body#cart .cart-summary .card-block,
body#cart .cart-summary .card-body {
  padding: 0;
}
body#cart .cart-summary .cart-summary-products {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--gc-rule);
}

/* Linee del summary (subtotal, shipping, tax, total) */
body#cart .cart-summary .cart-summary-line,
body#cart .cart-summary-line:not(.cart-total) {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 0;
  border: 0;
  font-family: var(--gc-font);
  font-size: 14px;
}
body#cart .cart-summary-line .label {
  color: var(--gc-ink-2);
  font-weight: 500;
}
body#cart .cart-summary-line .value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
}

/* Total riga (in fondo) */
body#cart .cart-summary .cart-total,
body#cart .cart-summary .cart-summary-line.cart-total {
  border-top: 1px solid var(--gc-rule) !important;
  padding-top: 16px !important;
  margin-top: 12px;
  background: transparent;
}
body#cart .cart-summary .cart-total .label,
body#cart .cart-summary-line.cart-total .label {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  color: var(--gc-ink);
  padding: 0;
}
body#cart .cart-summary .cart-total .value,
body#cart .cart-summary-line.cart-total .value {
  font-family: var(--gc-font);
  font-size: 24px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: var(--gc-ink);
}

/* Tasse note */
body#cart .cart-summary .taxes-shipping,
body#cart .cart-summary .cart-summary-tax-included {
  font-size: 11px;
  color: var(--gc-muted);
  margin-top: 4px;
  font-style: normal;
}

/* ----- 13.6 · Voucher (codice sconto) ----------------------- */
body#cart #promo-code,
body#cart .block-promo {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--gc-rule);
}
body#cart #promo-code .promo-code-button,
body#cart .block-promo .promo-code-button,
body#cart .promo-code .collapse-button {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body#cart #promo-code .promo-code-button:hover { color: var(--gc-ink); }

body#cart #promo-code .promo-input,
body#cart .promo-code form input[type="text"] {
  border: 1px solid var(--gc-rule-strong);
  background: var(--gc-surface);
  font-family: var(--gc-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--gc-ink);
  padding: 10px 14px;
  min-height: 40px;
  border-radius: var(--gc-radius);
  width: 100%;
}
body#cart #promo-code .promo-input:focus,
body#cart .promo-code form input:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}
body#cart #promo-code button.btn,
body#cart .promo-code button[type="submit"] {
  background: var(--gc-ink);
  border: 0;
  color: #fff;
  font-family: var(--gc-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 10px 16px;
  border-radius: var(--gc-radius);
}
body#cart #promo-code button.btn:hover { background: var(--gc-primary); }

/* Voucher applicato (chip) */
body#cart .cart-summary .promo-discounts .cart-summary-line {
  background: var(--gc-primary-50);
  border: 1px solid var(--gc-primary);
  padding: 8px 12px !important;
  margin: 8px 0;
  border-radius: var(--gc-radius);
}
body#cart .cart-summary .promo-discounts .cart-summary-line .label,
body#cart .cart-summary .promo-discounts .cart-summary-line .value {
  color: var(--gc-primary);
}

/* ----- 13.7 · CTA proceed-to-checkout ----------------------- */
body#cart .cart-detailed-actions,
body#cart .checkout {
  margin-top: 24px;
}
body#cart .cart-detailed-actions a.btn,
body#cart .cart-detailed-actions button.btn,
body#cart a.btn.btn-primary[href*="checkout"],
body#cart a.btn[href*="order"] {
  display: block;
  width: 100%;
  background: var(--gc-accent);
  border: 1px solid var(--gc-accent);
  color: #fff;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 18px 24px;
  border-radius: var(--gc-radius);
  text-align: center;
  transition: background 0.15s ease;
}
body#cart .cart-detailed-actions a.btn:hover,
body#cart .cart-detailed-actions button.btn:hover {
  background: #000;
  border-color: #000;
  color: #fff;
}

/* ----- 13.8 · Reassurance block sotto summary --------------- */
body#cart #block-reassurance,
body#cart .block-reassurance {
  margin-top: 24px;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 16px;
}
body#cart #block-reassurance ul,
body#cart .block-reassurance ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body#cart #block-reassurance li,
body#cart .block-reassurance li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: var(--gc-ink-2);
  line-height: 1.4;
}
body#cart #block-reassurance li img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  flex-shrink: 0;
  filter: grayscale(1);
  opacity: 0.7;
}

/* ----- 13.9 · Cross-selling sotto cart ---------------------- */
body#cart .crossselling-products,
body#cart [data-cross-selling] {
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid var(--gc-rule);
}

/* ----- 13.10 · Responsive ------------------------------------ */
@media (max-width: 991px) {
  body#cart #main h1.h1.page-title { font-size: 36px; }
  body#cart .cart-grid-right .card.cart-summary { position: static; }
}
@media (max-width: 600px) {
  body#cart #wrapper { padding-bottom: 48px; }
  body#cart #main h1.h1.page-title { font-size: 28px; }
  body#cart .product-line-grid.row { padding: 16px; }
  body#cart .product-line-grid-body .product-image { flex: 0 0 64px; max-width: 64px; }
  body#cart .product-line-grid-body .product-image img.img-fluid { width: 64px; height: 64px; }
  body#cart .product-line-grid-right .row { justify-content: flex-start; gap: 12px; }
  body#cart .cart-summary .cart-total .value { font-size: 20px; }
}


/* ============================================================
   14 · CHECKOUT (#checkout) — Fase 3.4
   ------------------------------------------------------------
   Selettori live (Warehouse checkout.tpl):
     body#checkout
       (optional) #checkout-header.header-top (simple variant)
       #main h1.h1.page-title
       .row
         .col-md-8 [steps via checkout-process.tpl]
           section.checkout-step.{-current|-reachable|-complete}.js-current-step
             h1.step-title.js-step-title.h3
               .step-number + title + i.fa-check.done + .step-edit
             .content (form interno)
         .col-md-4.cart-grid-right (riepilogo)
       .modal.js-checkout-modal
   Step builtin: personal-information, addresses, shipping, payment.
   ============================================================ */

/* ----- 14.1 · Wrapper + page title -------------------------- */
body#checkout #wrapper {
  background: var(--gc-bg);
  color: var(--gc-ink);
  padding-top: 32px;
  padding-bottom: 96px;
}
body#checkout #main h1.h1.page-title {
  font-family: var(--gc-font);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--gc-ink);
  margin: 0 0 32px;
  border: 0;
  padding: 0;
}

/* ----- 14.2 · Header simple checkout (se attivo) ----------- */
body#checkout #checkout-header {
  background: var(--gc-bg);
  border-bottom: 1px solid var(--gc-rule);
  padding: 16px 0;
}
body#checkout #checkout-header .row { align-items: center; }
body#checkout #checkout-header a.text-muted {
  color: var(--gc-muted) !important;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  text-decoration: none;
}
body#checkout #checkout-header a.text-muted:hover { color: var(--gc-ink) !important; }
body#checkout #checkout-header img.logo { max-height: 36px; width: auto; height: auto; }

/* ----- 14.3 · Checkout step (section.checkout-step) ---------- */
body#checkout section.checkout-step {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-radius: 0;
  margin-bottom: 16px;
  padding: 0;
  overflow: hidden;
  transition: border-color 0.15s ease;
}
body#checkout section.checkout-step.-current {
  border-color: var(--gc-ink);
}
body#checkout section.checkout-step.-complete {
  border-color: var(--gc-rule);
  background: var(--gc-bg-alt);
}
body#checkout section.checkout-step:not(.-reachable):not(.-current) {
  opacity: 0.55;
  pointer-events: none;
}

/* Step title (h1.step-title) */
body#checkout section.checkout-step h1.step-title,
body#checkout section.checkout-step .step-title.js-step-title {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--gc-font);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--gc-ink);
  background: transparent;
  margin: 0;
  padding: 20px 24px;
  border-bottom: 0;
  cursor: default;
}
body#checkout section.checkout-step.-reachable.-complete h1.step-title { cursor: pointer; }
body#checkout section.checkout-step.-current h1.step-title {
  border-bottom: 1px solid var(--gc-rule);
  background: var(--gc-surface);
}

/* Step number (badge tondo) */
body#checkout section.checkout-step .step-number {
  font-family: var(--gc-mono);
  font-size: 12px;
  font-weight: 700;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--gc-bg-alt);
  color: var(--gc-muted);
  border: 1px solid var(--gc-rule-strong);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 0;
}
body#checkout section.checkout-step.-current .step-number {
  background: var(--gc-ink);
  color: #fff;
  border-color: var(--gc-ink);
}
body#checkout section.checkout-step.-complete .step-number {
  background: var(--gc-primary);
  color: #fff;
  border-color: var(--gc-primary);
}

/* Check icon "done" — visibile solo su step complete */
body#checkout section.checkout-step h1.step-title i.fa-check.done {
  display: none;
  margin-left: auto;
  color: var(--gc-primary);
  font-size: 14px;
}
body#checkout section.checkout-step.-complete h1.step-title i.fa-check.done {
  display: inline-block;
}
/* Step number nascosto se step complete (sostituito dal check) */
body#checkout section.checkout-step.-complete h1.step-title .step-number {
  background: var(--gc-primary);
}

/* "Edit" link su step completati (mostra solo se complete & reachable) */
body#checkout section.checkout-step .step-edit {
  margin-left: auto;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  display: none;
  cursor: pointer;
  text-decoration: none;
}
body#checkout section.checkout-step.-complete.-reachable .step-edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body#checkout section.checkout-step.-complete.-reachable .step-edit:hover { color: var(--gc-ink); }

/* Content del step */
body#checkout section.checkout-step .content {
  padding: 0 24px 24px;
  display: block;
}
body#checkout section.checkout-step:not(.-current) .content { display: none; }

/* ----- 14.4 · Form fields globali nel checkout -------------- */
body#checkout .form-group { margin-bottom: 16px; }
body#checkout .form-group label,
body#checkout .form-control-label,
body#checkout label.col-form-label {
  display: block;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin: 0 0 6px;
  padding: 0;
  text-align: left;
}
body#checkout .form-group .required-label::after,
body#checkout label.required::after {
  content: '*';
  color: var(--gc-error);
  margin-left: 3px;
}

body#checkout .form-control,
body#checkout input[type="text"].form-control,
body#checkout input[type="email"].form-control,
body#checkout input[type="tel"].form-control,
body#checkout input[type="password"].form-control,
body#checkout select.form-control,
body#checkout textarea.form-control {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  font-family: var(--gc-font);
  font-size: 14px;
  color: var(--gc-ink);
  padding: 12px 14px;
  min-height: 48px;
  width: 100%;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body#checkout .form-control::placeholder { color: var(--gc-muted); }
body#checkout .form-control:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}

/* Form errors */
body#checkout .form-control.is-invalid,
body#checkout .form-control:invalid:not(:focus):not(:placeholder-shown) {
  border-color: var(--gc-error);
}
body#checkout .form-control-feedback,
body#checkout .invalid-feedback {
  font-size: 12px;
  color: var(--gc-error);
  margin-top: 4px;
}

/* Checkbox + radio (custom) */
body#checkout .custom-checkbox,
body#checkout .custom-radio {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}
body#checkout .custom-checkbox input[type="checkbox"],
body#checkout .custom-radio input[type="radio"] {
  width: 18px;
  height: 18px;
  margin-right: 10px;
  accent-color: var(--gc-primary);
  cursor: pointer;
}

/* ----- 14.5 · Login/Personal-info step ---------------------- */
body#checkout #checkout-personal-information-step .nav-tabs {
  border-bottom: 1px solid var(--gc-rule);
  margin-bottom: 24px;
}
body#checkout #checkout-personal-information-step .nav-tabs .nav-link {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-muted);
  border: 0;
  padding: 12px 18px;
  background: transparent;
  border-radius: 0;
  position: relative;
}
body#checkout #checkout-personal-information-step .nav-tabs .nav-link.active {
  color: var(--gc-ink);
  background: transparent;
}
body#checkout #checkout-personal-information-step .nav-tabs .nav-link.active::after {
  content: '';
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: -1px;
  height: 2px;
  background: var(--gc-primary);
}

/* ----- 14.6 · Address step ---------------------------------- */
body#checkout #delivery-addresses .address-item,
body#checkout #invoice-addresses .address-item {
  border: 1px solid var(--gc-rule);
  background: var(--gc-surface);
  padding: 16px;
  margin-bottom: 12px;
  cursor: pointer;
  transition: border-color 0.15s ease;
}
body#checkout #delivery-addresses .address-item:has(input:checked),
body#checkout #invoice-addresses .address-item:has(input:checked) {
  border-color: var(--gc-primary);
  background: var(--gc-primary-50);
}
body#checkout #delivery-addresses .address-item h4,
body#checkout #invoice-addresses .address-item h4 {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--gc-ink);
}
body#checkout #delivery-addresses .address-item address,
body#checkout #invoice-addresses .address-item address {
  font-size: 13px;
  color: var(--gc-ink-2);
  font-style: normal;
  line-height: 1.5;
  margin: 0;
}

/* ----- 14.7 · Shipping step (delivery options) -------------- */
body#checkout .delivery-options-list .delivery-option {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--gc-rule);
  background: var(--gc-surface);
  margin-bottom: 12px;
  cursor: pointer;
  transition: border-color 0.15s ease;
}
body#checkout .delivery-options-list .delivery-option:has(input:checked) {
  border-color: var(--gc-primary);
  background: var(--gc-primary-50);
}
body#checkout .delivery-options-list .delivery-option .carrier-name,
body#checkout .delivery-options-list .delivery-option strong {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  color: var(--gc-ink);
}
body#checkout .delivery-options-list .delivery-option .carrier-delay,
body#checkout .delivery-options-list .delivery-option .carrier-extra-content {
  font-size: 12px;
  color: var(--gc-muted);
  margin-top: 2px;
}
body#checkout .delivery-options-list .delivery-option .carrier-price {
  margin-left: auto;
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
}
body#checkout .delivery-options-list .delivery-option img {
  max-width: 56px;
  max-height: 36px;
  object-fit: contain;
}

/* Delivery comment field */
body#checkout #delivery textarea {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  font-family: var(--gc-font);
  font-size: 13px;
  color: var(--gc-ink);
  padding: 12px;
  min-height: 80px;
}

/* ----- 14.8 · Payment step ---------------------------------- */
body#checkout #payment-confirmation .ps-shown-by-js,
body#checkout .payment-options {
  margin-bottom: 24px;
}
body#checkout .payment-option,
body#checkout .payment-options > div {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--gc-rule);
  background: var(--gc-surface);
  margin-bottom: 12px;
  cursor: pointer;
  transition: border-color 0.15s ease;
}
body#checkout .payment-option:has(input:checked),
body#checkout .payment-options > div:has(input:checked) {
  border-color: var(--gc-primary);
  background: var(--gc-primary-50);
}
body#checkout .payment-option label,
body#checkout .payment-options label {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  color: var(--gc-ink);
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0;
}
body#checkout .payment-option img,
body#checkout .payment-options img {
  max-height: 28px;
  width: auto;
  margin-left: auto;
  filter: grayscale(0.3);
}

/* Additional info block del payment method */
body#checkout .additional-information {
  font-size: 12px;
  color: var(--gc-ink-2);
  margin-top: 12px;
  padding: 12px 14px;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
}

/* Conditions to approve (terms checkbox) */
body#checkout #conditions-to-approve {
  margin: 24px 0;
}
body#checkout #conditions-to-approve label,
body#checkout .js-conditions-to-approve label {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 500;
  color: var(--gc-ink-2);
  text-transform: none;
  letter-spacing: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  line-height: 1.5;
}
body#checkout #conditions-to-approve a {
  color: var(--gc-primary);
  text-decoration: underline;
}

/* ----- 14.9 · CTA proceed/confirm step ---------------------- */
body#checkout button.continue,
body#checkout button[name="confirm-addresses"],
body#checkout button[name="confirmDeliveryOption"],
body#checkout #payment-confirmation button.btn,
body#checkout button[type="submit"]#confirm-addresses {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--gc-accent);
  border: 1px solid var(--gc-accent);
  color: #fff;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 16px 28px;
  border-radius: var(--gc-radius);
  margin-top: 16px;
  transition: background 0.15s ease;
}
body#checkout button.continue:hover,
body#checkout #payment-confirmation button.btn:hover {
  background: #000;
  border-color: #000;
  color: #fff;
}
body#checkout button.continue:disabled,
body#checkout button.btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ----- 14.10 · Cart summary right (eredita stili 13.5) ------ */
/* Maggiore parte degli stili viene dalla sezione 13. Qui solo
   ritocchi specifici al checkout. */
body#checkout .cart-grid-right .card.cart-summary {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: 0;
  box-shadow: none;
  padding: 24px;
  position: sticky;
  top: 24px;
}

/* Lista prodotti compressa nel summary del checkout */
body#checkout .cart-summary-products .media-list,
body#checkout .cart-summary-product-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 260px;
  overflow-y: auto;
}
body#checkout .cart-summary-product-list .media,
body#checkout .cart-summary-products .media {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gc-rule);
}
body#checkout .cart-summary-product-list .media:last-child,
body#checkout .cart-summary-products .media:last-child { border-bottom: 0; }
body#checkout .cart-summary-product-list img,
body#checkout .cart-summary-products img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 4px;
  flex-shrink: 0;
}
body#checkout .cart-summary-product-list .product-name,
body#checkout .cart-summary-product-list a.label {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 500;
  color: var(--gc-ink) !important;
  line-height: 1.3;
  text-decoration: none;
}
body#checkout .cart-summary-product-list .product-quantity,
body#checkout .cart-summary-products .product-quantity {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-muted);
  margin-top: 2px;
}
body#checkout .cart-summary-product-list .product-price {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
  margin-left: auto;
}

/* "Show details" toggle */
body#checkout #cart-summary-product-list .show-details {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 8px 0;
}
body#checkout #cart-summary-product-list .show-details:hover { color: var(--gc-ink); }

/* ----- 14.11 · Modal (terms, ecc.) -------------------------- */
body .modal.js-checkout-modal .modal-content {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: 0;
}
body .modal.js-checkout-modal .modal-header {
  background: transparent;
  border-bottom: 1px solid var(--gc-rule);
  padding: 16px 24px;
}
body .modal.js-checkout-modal .modal-title {
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 700;
  color: var(--gc-ink);
}
body .modal.js-checkout-modal .modal-body {
  padding: 24px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--gc-ink-2);
}

/* ----- 14.12 · Order confirmation page ----------------------- */
body#order-confirmation #content-hook_order_confirmation,
body#order-confirmation .order-confirmation {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  padding: 32px;
  margin-bottom: 24px;
}
body#order-confirmation h1,
body#order-confirmation h3.card-title {
  font-family: var(--gc-font);
  font-size: 28px;
  font-weight: 700;
  color: var(--gc-ink);
  margin: 0 0 16px;
}
body#order-confirmation #order-details ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
body#order-confirmation #order-details li {
  padding: 10px 0;
  border-bottom: 1px solid var(--gc-rule);
  font-size: 14px;
  color: var(--gc-ink-2);
}

/* ----- 14.13 · Responsive ------------------------------------ */
@media (max-width: 991px) {
  body#checkout #main h1.h1.page-title { font-size: 36px; }
  body#checkout .col-md-8 { padding-right: 0; padding-bottom: 24px; }
  body#checkout section.checkout-step h1.step-title { font-size: 16px; padding: 16px; }
  body#checkout .cart-grid-right .card.cart-summary { position: static; }
}
@media (max-width: 600px) {
  body#checkout #wrapper { padding-bottom: 48px; }
  body#checkout #main h1.h1.page-title { font-size: 24px; }
  body#checkout section.checkout-step .content { padding: 0 16px 16px; }
}


/* ============================================================
   15 · ACCOUNT + AUTH + CONTACT + 404 — Fase 4
   ============================================================ */

/* ----- 15.0 · Wrapper comune (page-customer-account) -------- */
body.page-customer-account #wrapper,
body#contact #wrapper,
body#pagenotfound #wrapper {
  background: var(--gc-bg);
  color: var(--gc-ink);
  padding-top: 32px;
  padding-bottom: 96px;
}
body.page-customer-account #main h1.h1.page-title,
body.page-customer-account header.page-header h1.h1.page-title,
body#contact #main h1.h1.page-title,
body#pagenotfound #main h1.h1.page-title {
  font-family: var(--gc-font);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--gc-ink);
  margin: 0 0 32px;
  border: 0;
  padding: 0;
}

/* ============================================================
   15.1 · ACCOUNT (Dashboard #my-account, page-customer-account)
   ------------------------------------------------------------
   Selettori live:
     body.page-customer-account
       header.page-header h1.h1.page-title
       #content.page-content.my-account-page-content-wrapper
         .my-account-side-links.col-sm-3 (logged)
           a#identity-link / #addresses-link / #history-link / ...
             .link-item > i.fa
         .my-account-page-content.col-sm-9
   ============================================================ */

body.page-customer-account #content.my-account-page-content-wrapper {
  background: transparent;
  padding: 0;
  margin: 0;
  border: 0;
}

/* Sidebar links account */
body.page-customer-account .my-account-side-links {
  padding: 0 24px 0 0;
}
body.page-customer-account .my-account-side-links a {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: none;
  padding: 14px 16px;
  margin: 0 0 4px;
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  color: var(--gc-ink);
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}
body.page-customer-account .my-account-side-links a:hover {
  border-color: var(--gc-ink);
  background: var(--gc-bg-alt);
  color: var(--gc-ink);
}
body.page-customer-account .my-account-side-links a .link-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}
body.page-customer-account .my-account-side-links a i.fa {
  width: 20px;
  font-size: 16px;
  color: var(--gc-muted);
  flex-shrink: 0;
}
body.page-customer-account .my-account-side-links a:hover i.fa { color: var(--gc-primary); }

/* Logout link: usa colore differente (warn) */
body.page-customer-account .my-account-side-links a[href*="logout"] {
  margin-top: 8px;
  border-color: var(--gc-rule);
  color: var(--gc-muted);
}
body.page-customer-account .my-account-side-links a[href*="logout"]:hover {
  border-color: var(--gc-error);
  color: var(--gc-error);
}

/* Content area */
body.page-customer-account .my-account-page-content {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 32px;
}
body.page-customer-account .my-account-page-content > h2 {
  font-family: var(--gc-font);
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 24px;
  color: var(--gc-ink);
}

/* Bottom links (compare to dashboard) */
body.page-customer-account .myaccount-links a,
body.page-customer-account .my-account-links a,
body.page-customer-account ul.myaccount-links li a {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
}
body.page-customer-account .myaccount-links a:hover { color: var(--gc-ink); }

/* ----- 15.1.1 · Identity / Address forms ------------------- */
body#identity .form-control,
body#address .form-control,
body#addresses .form-control,
body.page-customer-account .form-control {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  font-family: var(--gc-font);
  font-size: 14px;
  color: var(--gc-ink);
  padding: 12px 14px;
  min-height: 48px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-customer-account .form-control:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}
body.page-customer-account .form-group label,
body.page-customer-account .col-form-label {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin-bottom: 6px;
}

/* Submit account forms */
body.page-customer-account button[type="submit"].btn,
body.page-customer-account input[type="submit"].btn,
body#identity button[type="submit"],
body#address button[type="submit"] {
  background: var(--gc-accent);
  border: 1px solid var(--gc-accent);
  color: #fff;
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 14px 24px;
  border-radius: var(--gc-radius);
}
body.page-customer-account button[type="submit"].btn:hover { background: #000; border-color: #000; }

/* ----- 15.1.2 · Addresses list (cards) --------------------- */
body#addresses .address {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 20px;
  margin-bottom: 16px;
}
body#addresses .address h4 {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--gc-ink);
}
body#addresses .address address {
  font-size: 13px;
  color: var(--gc-ink-2);
  font-style: normal;
  line-height: 1.5;
  margin: 0 0 16px;
}
body#addresses .address .address-footer,
body#addresses .address-actions {
  display: flex;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px dashed var(--gc-rule);
}
body#addresses .address-footer a,
body#addresses .address-actions a {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  text-decoration: none;
}
body#addresses .address-footer a:hover { color: var(--gc-ink); }
body#addresses .address-footer a.delete { color: var(--gc-muted); }
body#addresses .address-footer a.delete:hover { color: var(--gc-error); }

/* ----- 15.1.3 · Order history (tabella) -------------------- */
body#history table.table,
body#order-detail table.table {
  width: 100%;
  border-collapse: collapse;
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  font-family: var(--gc-font);
  font-size: 13px;
}
body#history table.table thead th,
body#order-detail table.table thead th {
  background: var(--gc-bg-alt);
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  padding: 12px 16px;
  border-bottom: 1px solid var(--gc-rule);
  border-top: 0;
  text-align: left;
}
body#history table.table tbody td,
body#order-detail table.table tbody td {
  padding: 14px 16px;
  border-top: 1px solid var(--gc-rule);
  vertical-align: middle;
  color: var(--gc-ink-2);
}
body#history table.table tbody tr:hover { background: var(--gc-bg-alt); }
body#history table.table .order-reference,
body#order-detail .order-reference {
  font-family: var(--gc-mono);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gc-ink);
}
body#history table.table .order-status,
body#history .label,
body.page-customer-account .label.label-pill {
  display: inline-block;
  padding: 4px 8px;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  color: var(--gc-ink-2);
  border-radius: 0;
}
body#history table.table a.btn,
body#order-detail .btn-link {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: transparent;
  border: 1px solid var(--gc-rule-strong);
  color: var(--gc-ink);
  padding: 6px 12px;
}
body#history table.table a.btn:hover { border-color: var(--gc-ink); background: var(--gc-bg-alt); }


/* ============================================================
   15.2 · AUTH (#authentication, #registration, #password)
   ============================================================ */

/* Wrapper auth in 2 colonne (visual + form) */
body#authentication #content.page-content,
body#registration #content.page-content,
body#password #content.page-content {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 0;
  position: relative;
  overflow: hidden;
}

/* Aside visual sx (decorativa) — la creiamo via ::before per non toccare i .tpl */
body#authentication #content.page-content::before,
body#registration #content.page-content::before {
  content: 'GROSSCLIMA · AREA RISERVATA';
  position: absolute;
  top: 0;
  left: 0;
  width: 38%;
  height: 100%;
  background: var(--gc-ink);
  color: rgba(255,255,255,0.35);
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  display: flex;
  align-items: flex-end;
  padding: 24px;
  background-image:
    linear-gradient(rgba(0,74,92,0.08), rgba(0,74,92,0.08)),
    repeating-linear-gradient(45deg, transparent 0 28px, rgba(255,255,255,0.04) 28px 29px);
  pointer-events: none;
}
body#authentication.cart-empty #content.page-content::before { display: none; } /* nel checkout-modal non vogliamo l'aside */

/* La login-form va spostata a destra — usiamo padding-left per fare spazio all'aside */
body#authentication section.login-form,
body#registration section.register-form,
body#password section.password-form,
body#password .forgotten-password {
  padding: 56px 56px 56px 56px;
  margin-left: 38%;
  background: var(--gc-surface);
  position: relative;
  z-index: 1;
}

/* Form label */
body#authentication label.col-form-label,
body#registration label.col-form-label,
body#password label,
body#authentication .form-control-label,
body#registration .form-control-label {
  display: block !important;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  text-align: left !important;
  padding: 0 0 6px !important;
  max-width: none !important;
  flex: none !important;
}

/* Form group: stack label sopra input */
body#authentication .form-group.row,
body#registration .form-group.row,
body#password .form-group.row {
  display: block;
  margin-bottom: 16px;
}
body#authentication .form-group.row .js-input-column,
body#authentication .form-group.row .col-md-8,
body#registration .form-group.row .js-input-column,
body#registration .form-group.row .col-md-8,
body#password .form-group.row .col-md-8 {
  flex: none;
  max-width: none;
  width: 100%;
}
body#authentication .form-group.row .col-md-2.form-control-comment,
body#registration .form-group.row .col-md-2.form-control-comment {
  display: none;
}

/* Form control */
body#authentication .form-control,
body#registration .form-control,
body#password .form-control {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  font-family: var(--gc-font);
  font-size: 14px;
  color: var(--gc-ink);
  padding: 12px 14px;
  min-height: 48px;
  width: 100%;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body#authentication .form-control:focus,
body#registration .form-control:focus,
body#password .form-control:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}

/* Show password button */
body#authentication .input-group-append button.btn-outline-secondary,
body#registration .input-group-append button.btn-outline-secondary {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-left: 0;
  color: var(--gc-muted);
  padding: 0 14px;
  border-radius: 0;
}
body#authentication .input-group-append button.btn-outline-secondary:hover { color: var(--gc-ink); }

/* Forgot password link */
body#authentication .forgot-password a,
body#registration .forgot-password a {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  text-decoration: none;
}
body#authentication .forgot-password a:hover { color: var(--gc-primary); }

/* Submit login/register */
body#authentication footer.form-footer,
body#registration footer.form-footer,
body#password footer.form-footer {
  text-align: left !important;
  padding-top: 16px;
  margin-top: 16px;
  border-top: 1px solid var(--gc-rule);
}
body#authentication button#submit-login,
body#registration button[type="submit"].btn-primary,
body#password button[type="submit"].btn-primary,
body#authentication .form-control-submit,
body#registration .form-control-submit {
  background: var(--gc-accent);
  border: 1px solid var(--gc-accent);
  color: #fff;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 16px 32px;
  border-radius: var(--gc-radius);
  width: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: background 0.15s ease;
}
body#authentication button#submit-login:hover { background: #000; }

/* Link "Crea un account" sotto login */
body#authentication .no-account a,
body#authentication .register-link {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-primary);
  font-weight: 600;
  margin-top: 12px;
  display: inline-block;
}
body#authentication .no-account a:hover { color: var(--gc-primary-ink); }


/* ============================================================
   15.3 · CONTACT (#contact)
   ============================================================ */
body#contact #content.page-content {
  background: transparent;
  padding: 0;
}

/* Layout 2 colonne: form a sx, info a dx (via grid se possibile) */
body#contact .contact-form {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 32px;
  margin-bottom: 24px;
}
body#contact .contact-rich {
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 24px;
  margin-bottom: 24px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--gc-ink-2);
}
body#contact .contact-rich h4 {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--gc-ink);
  margin: 0 0 8px;
}
body#contact .contact-rich .data {
  font-family: var(--gc-font);
  font-size: 14px;
  line-height: 1.6;
}
body#contact .contact-rich a {
  color: var(--gc-primary);
  text-decoration: none;
}
body#contact .contact-rich a:hover { color: var(--gc-primary-ink); text-decoration: underline; }

/* Form */
body#contact .contact-form .form-group.row {
  display: block;
  margin-bottom: 16px;
}
body#contact .contact-form label,
body#contact .contact-form .col-form-label {
  display: block;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin-bottom: 6px;
  text-align: left;
  flex: none;
  max-width: none;
}
body#contact .contact-form .col-md-8,
body#contact .contact-form .js-input-column {
  flex: none;
  max-width: none;
  width: 100%;
}
body#contact .contact-form .form-control,
body#contact .contact-form select.form-control,
body#contact .contact-form textarea.form-control {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  font-family: var(--gc-font);
  font-size: 14px;
  color: var(--gc-ink);
  padding: 12px 14px;
  min-height: 48px;
  width: 100%;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body#contact .contact-form textarea.form-control { min-height: 140px; }
body#contact .contact-form .form-control:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}
body#contact .contact-form input[type="submit"].btn,
body#contact .contact-form button[type="submit"].btn {
  background: var(--gc-accent);
  border: 1px solid var(--gc-accent);
  color: #fff;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 16px 32px;
  border-radius: var(--gc-radius);
  cursor: pointer;
  transition: background 0.15s ease;
}
body#contact .contact-form input[type="submit"].btn:hover { background: #000; }


/* ============================================================
   15.4 · 404 (#pagenotfound)
   ============================================================ */
body#pagenotfound #content.page-not-found {
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 96px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
body#pagenotfound #content.page-not-found::before {
  content: '404';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--gc-font);
  font-size: 320px;
  font-weight: 800;
  letter-spacing: -0.06em;
  color: var(--gc-rule);
  z-index: 0;
  pointer-events: none;
  line-height: 1;
}
body#pagenotfound #main h1.h1.page-title {
  position: relative;
  z-index: 1;
  font-size: 36px;
  margin-bottom: 0;
}
body#pagenotfound #content.page-not-found > * {
  position: relative;
  z-index: 1;
}
body#pagenotfound #content.page-not-found .search-widget {
  max-width: 480px;
  margin: 24px auto 0;
}
body#pagenotfound #content.page-not-found .search-widget input.form-search-control {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  font-family: var(--gc-font);
  font-size: 14px;
  padding: 14px 16px;
  min-height: 52px;
  width: 100%;
  border-radius: var(--gc-radius);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body#pagenotfound #content.page-not-found .search-widget input.form-search-control:focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}

/* ----- 15.5 · Notifications (success/error/info) ------------ */
body .notifications-container .notification,
body .alert {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--gc-radius);
  padding: 12px 16px;
  margin: 0 0 16px;
  border: 1px solid var(--gc-rule);
  background: var(--gc-bg-alt);
}
body .alert-success {
  background: rgba(31, 107, 63, 0.08);
  border-color: var(--gc-success);
  color: var(--gc-success);
}
body .alert-danger,
body .alert-error {
  background: rgba(176, 41, 30, 0.08);
  border-color: var(--gc-error);
  color: var(--gc-error);
}
body .alert-warning {
  background: rgba(184, 106, 30, 0.08);
  border-color: var(--gc-warn);
  color: var(--gc-warn);
}
body .alert-info {
  background: var(--gc-primary-50);
  border-color: var(--gc-primary);
  color: var(--gc-primary-ink);
}

/* ----- 15.6 · Responsive ------------------------------------ */
@media (max-width: 991px) {
  body.page-customer-account #main h1.h1.page-title,
  body#contact #main h1.h1.page-title,
  body#pagenotfound #main h1.h1.page-title { font-size: 36px; }
  body.page-customer-account .my-account-side-links { padding: 0 0 24px; }
  body.page-customer-account .my-account-page-content { padding: 24px; }
  body#authentication #content.page-content::before,
  body#registration #content.page-content::before { display: none; }
  body#authentication section.login-form,
  body#registration section.register-form,
  body#password section.password-form,
  body#password .forgotten-password {
    margin-left: 0;
    padding: 32px 24px;
  }
  body#pagenotfound #content.page-not-found::before { font-size: 200px; }
}
@media (max-width: 600px) {
  body.page-customer-account #wrapper,
  body#contact #wrapper,
  body#pagenotfound #wrapper { padding-bottom: 48px; }
  body.page-customer-account #main h1.h1.page-title,
  body#contact #main h1.h1.page-title,
  body#pagenotfound #main h1.h1.page-title { font-size: 28px; }
  body#pagenotfound #content.page-not-found { padding: 64px 16px; }
  body#pagenotfound #content.page-not-found::before { font-size: 140px; }
}


/* ============================================================
   16 · FOOTER (#footer) — Fase 6.1
   ------------------------------------------------------------
   Selettori live (Warehouse footer-style-1):
     footer#footer.js-footer
       #footer-container-main.footer-container.footer-style-1
         .container .row
           .col.col-md.block.block-iqitlinksmanager (linklist N)
             h5.block-title > span
             .block-content > ul > li > a
           .col.col-md.block.block-iqitcontactpage
             .contact-rich (.part > .icon + .data)
           .col-12.col-md-auto
             .block.block-social-links
               ul.social-links._footer > li > a > i.fa
             .block.block-newsletter
               .ps-emailsubscription-block > form
                 .input-group.newsletter-input-group
                   input.form-control.input-subscription
                   button.btn.btn-primary.btn-subscribe
       #footer-copyrights._footer-copyrights-1
         .container .row > .col.copyright-img > img (payment logos)
   ============================================================ */

/* ----- 16.1 · Footer wrapper -------------------------------- */
body footer#footer,
body footer#footer.js-footer {
  background: var(--gc-ink);
  color: rgba(255,255,255,0.85);
  margin-top: 64px;
  border-top: 0;
  padding: 0;
}

body footer#footer #footer-container-main {
  background: var(--gc-ink) !important; /* iqitthemeed setta f_top_bg */
  color: rgba(255,255,255,0.85);
  border: 0;
  padding-top: 64px;
  padding-bottom: 48px;
}
body footer#footer #footer-container-main .container {
  max-width: var(--gc-maxw);
}
body footer#footer #footer-container-main .row { gap: 40px 0; }

/* Disabilita lo state collapse mobile (l'utente cliccava il titolo) per pulizia */
body footer#footer .block-toggle.js-block-toggle .block-title { cursor: default; }
body footer#footer .block-toggle.js-block-toggle .block-title span::after { display: none; }

/* ----- 16.2 · Block titles (h5) ----------------------------- */
body footer#footer .block-title,
body footer#footer h5.block-title {
  background: transparent !important;
  border: 0 !important;
  padding: 0 0 16px !important;
  margin: 0 0 16px !important;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(255,255,255,0.5) !important;
}
body footer#footer .block-title span,
body footer#footer .block-title a:link,
body footer#footer .block-title a:visited {
  color: rgba(255,255,255,0.5) !important;
}

/* ----- 16.3 · Linklist ----------------------------------- */
body footer#footer .block-iqitlinksmanager .block-content,
body footer#footer .block-links .block-content { padding: 0; }
body footer#footer .block-iqitlinksmanager ul,
body footer#footer .block-links ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body footer#footer .block-iqitlinksmanager ul li,
body footer#footer .block-links ul li { margin: 0; padding: 0; border: 0; }
body footer#footer .block-iqitlinksmanager ul li a,
body footer#footer .block-links ul li a {
  font-family: var(--gc-font);
  font-size: 14px;
  color: rgba(255,255,255,0.85) !important;
  text-decoration: none;
  transition: color 0.15s ease;
  padding: 0;
}
body footer#footer .block-iqitlinksmanager ul li a:hover,
body footer#footer .block-links ul li a:hover { color: #fff !important; }

/* ----- 16.4 · Contact block (iqitcontactpage) --------------- */
body footer#footer .block-iqitcontactpage .block-content { padding: 0; }
body footer#footer .block-iqitcontactpage .contact-rich {
  font-family: var(--gc-font);
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255,255,255,0.85);
  background: transparent;
  border: 0;
  padding: 0;
}
body footer#footer .block-iqitcontactpage .contact-rich strong {
  display: block;
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 12px;
  letter-spacing: 0.02em;
}
body footer#footer .block-iqitcontactpage .contact-rich .part {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
}
body footer#footer .block-iqitcontactpage .contact-rich .part .icon {
  flex-shrink: 0;
  width: 20px;
  color: rgba(255,255,255,0.4);
  font-size: 14px;
}
body footer#footer .block-iqitcontactpage .contact-rich .part .data {
  font-size: 13px;
  color: rgba(255,255,255,0.85);
}
body footer#footer .block-iqitcontactpage .contact-rich .part .data a {
  color: rgba(255,255,255,0.85) !important;
  text-decoration: none;
}
body footer#footer .block-iqitcontactpage .contact-rich .part .data a:hover { color: #fff !important; }
body footer#footer .block-iqitcontactpage .contact-rich .part .data.email {
  font-family: var(--gc-mono);
  font-size: 12px;
  letter-spacing: 0.02em;
}
body footer#footer .block-iqitcontactpage .contact-rich hr {
  border: 0;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin: 8px 0;
}

/* ----- 16.5 · Social links --------------------------------- */
body footer#footer .block-social-links .block-content { padding: 0; }
body footer#footer ul.social-links._footer {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
body footer#footer ul.social-links._footer li { margin: 0; padding: 0; }
body footer#footer ul.social-links._footer li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.7) !important;
  text-decoration: none;
  border-radius: var(--gc-radius);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
body footer#footer ul.social-links._footer li a:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.4);
  color: #fff !important;
}
body footer#footer ul.social-links._footer li a i.fa,
body footer#footer ul.social-links._footer li a i {
  font-size: 14px;
}

/* ----- 16.6 · Newsletter ----------------------------------- */
body footer#footer .block-newsletter { margin-top: 24px; }
body footer#footer .block-newsletter .block-content { padding: 0; }

body footer#footer .ps-emailsubscription-block .newsletter-input-group {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-radius: var(--gc-radius);
  padding: 4px 4px 4px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 360px;
}
body footer#footer .ps-emailsubscription-block input.input-subscription,
body footer#footer .ps-emailsubscription-block input[type="email"] {
  flex: 1;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  color: #fff !important;
  font-family: var(--gc-font);
  font-size: 13px;
  padding: 12px 0;
  min-height: 0;
  margin: 0;
}
body footer#footer .ps-emailsubscription-block input.input-subscription::placeholder,
body footer#footer .ps-emailsubscription-block input[type="email"]::placeholder {
  color: rgba(255,255,255,0.4) !important;
}
body footer#footer .ps-emailsubscription-block .input-group-append {
  display: inline-flex;
  align-items: center;
}
body footer#footer .ps-emailsubscription-block button.btn-subscribe,
body footer#footer .ps-emailsubscription-block button[name="submitNewsletter"] {
  background: #fff !important;
  color: var(--gc-ink) !important;
  border: 0 !important;
  padding: 10px 14px;
  font-family: var(--gc-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: var(--gc-radius);
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.15s ease;
}
body footer#footer .ps-emailsubscription-block button.btn-subscribe:hover {
  background: var(--gc-primary) !important;
  color: #fff !important;
}
body footer#footer .ps-emailsubscription-block button.btn-subscribe i.fa { color: inherit; font-size: 13px; }

body footer#footer .ps-emailsubscription-block .ps-emailsubscription-conditions,
body footer#footer .ps-emailsubscription-block p.text-muted {
  color: rgba(255,255,255,0.4) !important;
  font-size: 11px;
  margin-top: 12px;
  line-height: 1.5;
}

/* ----- 16.7 · Copyrights bottom strip ----------------------- */
body #footer-copyrights,
body #footer-copyrights._footer-copyrights-1 {
  background: var(--gc-ink) !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.5);
  padding: 24px 0;
}
body #footer-copyrights .container {
  max-width: var(--gc-maxw);
}
body #footer-copyrights .row {
  align-items: center;
}
body #footer-copyrights,
body #footer-copyrights * {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
}
body #footer-copyrights a {
  color: rgba(255,255,255,0.5);
  text-decoration: none;
}
body #footer-copyrights a:hover { color: #fff; }
body #footer-copyrights .copyright-img img {
  max-height: 28px;
  width: auto;
  filter: grayscale(1) brightness(2);
  opacity: 0.5;
  transition: opacity 0.15s ease;
}
body #footer-copyrights .copyright-img img:hover { opacity: 1; }

/* ----- 16.8 · Responsive ------------------------------------ */
@media (max-width: 991px) {
  body footer#footer #footer-container-main {
    padding-top: 48px;
    padding-bottom: 32px;
  }
  body footer#footer #footer-container-main .row { gap: 32px 0; }
  body footer#footer .col-12.col-md-auto { width: 100%; }
  body footer#footer .ps-emailsubscription-block .newsletter-input-group { max-width: 100%; }
}
@media (max-width: 600px) {
  body footer#footer { margin-top: 32px; }
  body footer#footer #footer-container-main { padding: 32px 16px; }
  body #footer-copyrights { padding: 16px 0; text-align: center; }
  body #footer-copyrights .row { gap: 12px; justify-content: center; }
  body #footer-copyrights .copyright-img { text-align: center !important; }
}


/* ============================================================
   17 · TOP-BAR CONTENUTO MODULO — Fase 5.4
   ------------------------------------------------------------
   Stili per .gc-utility-left (hookDisplayNav1) e
   .gc-utility-right (hookDisplayNav2). Si appoggiano alla
   .header-nav esistente (sezione 6) che fa già il bg nero.
   ============================================================ */

/* Container left/right inline-flex, no padding extra */
body .header-nav .gc-utility-left,
body .header-nav .gc-utility-right {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  padding: 0;
  font-family: var(--gc-font);
  line-height: 1;
}

/* Left: testo spedizione + delivery time */
body .header-nav .gc-utility-left { gap: 0; }
body .header-nav .gc-utility-left .gc-util-link,
body .header-nav .gc-utility-left .gc-util-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,0.9);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  padding: 0;
  letter-spacing: 0.01em;
  transition: color 0.15s ease;
}
body .header-nav .gc-utility-left .gc-util-meta {
  color: rgba(255,255,255,0.55);
  font-weight: 400;
}
body .header-nav .gc-utility-left .gc-util-link svg,
body .header-nav .gc-utility-right .gc-util-link svg {
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  color: currentColor;
}

/* Right: phone + whatsapp */
body .header-nav .gc-utility-right .gc-util-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,0.9) !important;
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  padding: 6px 10px;
  margin: 0;
  transition: color 0.15s ease;
  border: 0;
  background: transparent;
}
body .header-nav .gc-utility-right .gc-util-link:hover {
  color: #fff !important;
}
body .header-nav .gc-utility-right .gc-util-link svg {
  width: 12px;
  height: 12px;
}
body .header-nav .gc-utility-right .gc-util-link + .gc-util-link {
  border-left: 1px solid rgba(255,255,255,0.12);
}

/* Separatore verticale (visibile tra "left" e "delivery" o tra elementi) */
body .header-nav .gc-util-sep {
  display: inline-block;
  width: 1px;
  height: 14px;
  background: rgba(255,255,255,0.18);
  margin: 0 14px;
  vertical-align: middle;
  flex-shrink: 0;
}

/* Restyle dei moduli native già su displayNav2 (currency/lang/wishlist):
   accodano dopo il nostro contenuto, dobbiamo uniformare il look
   con i nostri .gc-util-link */
body .header-nav .right-nav .currency-selector .expand-more,
body .header-nav .right-nav .language-selector .expand-more,
body .header-nav .right-nav #_desktop_language_selector a,
body .header-nav .right-nav #_desktop_currency_selector a {
  font-family: var(--gc-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  color: rgba(255,255,255,0.9) !important;
  text-transform: uppercase;
  padding: 6px 10px !important;
  background: transparent !important;
  border: 0 !important;
  text-decoration: none;
}
body .header-nav .right-nav .currency-selector .expand-more:hover,
body .header-nav .right-nav .language-selector .expand-more:hover {
  color: #fff !important;
}

/* Wishlist button in nav */
body .header-nav .right-nav .iqitwishlist-floating-link,
body .header-nav .right-nav a.iqitwishlist-link,
body .header-nav .right-nav [class*="iqitwishlist"] a {
  font-family: var(--gc-font) !important;
  font-size: 11px !important;
  letter-spacing: 0.04em !important;
  color: rgba(255,255,255,0.9) !important;
  text-transform: uppercase;
  font-weight: 500;
  padding: 6px 10px !important;
  background: transparent !important;
  border: 0 !important;
}

/* Mobile: nascondi delivery time + phone in top-bar (rimangono solo l'essenziale) */
@media (max-width: 768px) {
  body .header-nav .gc-utility-left .gc-util-meta,
  body .header-nav .gc-utility-left .gc-util-sep,
  body .header-nav .gc-utility-right .gc-util-link[href^="tel:"] {
    display: none !important;
  }
  body .header-nav .gc-utility-left .gc-util-link,
  body .header-nav .gc-utility-right .gc-util-link {
    font-size: 11px;
    padding: 6px 8px;
  }
}
@media (max-width: 480px) {
  /* Su mobile stretto, spegniamo del tutto la utility bar (troppo spazio prezioso) */
  body .header-nav { display: none; }
}


/* ============================================================
   18 · DESIGN SYSTEM GLOBALE — Fase 7
   ------------------------------------------------------------
   Regole universali che si applicano a QUALSIASI modulo
   PrestaShop installato (Stripe, MailChimp, Live Chat,
   Trustpilot, ecc.) senza dover toccare CSS dei singoli moduli.
   ------------------------------------------------------------
   Usiamo :where() dove possibile per mantenere specificità 0
   sui selettori globali — i moduli specifici possono comunque
   sovrascrivere con le proprie regole standard.
   ============================================================ */

/* ----- 18.1 · Form controls universali --------------------- */
/* Tutti i form input/select/textarea in qualsiasi modulo o pagina */
:where(body) :is(
  input[type="text"], input[type="email"], input[type="tel"],
  input[type="password"], input[type="search"], input[type="url"],
  input[type="number"], input[type="date"], input[type="month"],
  input[type="week"], input[type="time"], input[type="datetime-local"],
  select, textarea
):not(.gc-skip):not(.swiper-input):not([type="hidden"]) {
  font-family: var(--gc-font);
  font-size: 14px;
  color: var(--gc-ink);
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  padding: 10px 14px;
  min-height: 44px;
  line-height: 1.4;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  appearance: none;
  -webkit-appearance: none;
}
:where(body) :is(input[type="text"], input[type="email"], input[type="tel"],
  input[type="password"], input[type="search"], input[type="number"], select,
  textarea):not(.gc-skip):focus {
  border-color: var(--gc-primary);
  outline: none;
  box-shadow: var(--gc-shadow-input);
}
:where(body) :is(input, select, textarea):not(.gc-skip)::placeholder {
  color: var(--gc-muted);
  opacity: 1;
}

/* Disabled */
:where(body) :is(input, select, textarea):not(.gc-skip):disabled,
:where(body) :is(input, select, textarea):not(.gc-skip)[readonly] {
  background: var(--gc-bg-alt);
  color: var(--gc-muted);
  cursor: not-allowed;
}

/* Number input: rimuovi spinner appiccicoso default */
:where(body) input[type="number"]::-webkit-outer-spin-button,
:where(body) input[type="number"]::-webkit-inner-spin-button {
  height: 100%;
}

/* Checkbox & radio nativi: accent color petrol */
:where(body) :is(input[type="checkbox"], input[type="radio"]):not(.gc-skip) {
  accent-color: var(--gc-primary);
  cursor: pointer;
}

/* ----- 18.2 · Bottoni universali --------------------------- */
/* .btn / .button / [class*="btn-"] · Bootstrap + custom */
:where(body) :is(.btn, button.btn, a.btn, input[type="submit"].btn,
  input[type="button"].btn, .button) {
  font-family: var(--gc-font);
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--gc-radius);
  border: 1px solid transparent;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  text-decoration: none;
  cursor: pointer;
}

/* Sizes: btn-sm e btn-lg consistenti ovunque */
:where(body) .btn.btn-sm { font-size: 12px; padding: 8px 14px; }
:where(body) .btn.btn-lg { font-size: 15px; padding: 14px 22px; }

/* Bootstrap "outline-*" varianti — neutralizziamo sui colori petrol/ink */
:where(body) :is(.btn-outline-primary, .btn-outline-info, .btn-outline-secondary) {
  background: transparent !important;
}
:where(body) .btn-outline-primary {
  color: var(--gc-primary) !important;
  border-color: var(--gc-primary) !important;
}
:where(body) .btn-outline-primary:hover {
  background: var(--gc-primary) !important;
  color: #fff !important;
}

/* btn-link: stile clean underlined */
:where(body) .btn-link {
  color: var(--gc-primary);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding: 0 0 1px;
  background: transparent;
  border-radius: 0;
}
:where(body) .btn-link:hover {
  color: var(--gc-primary-ink);
  background: transparent;
}

/* ----- 18.3 · Card globale --------------------------------- */
:where(body) .card:not(.gc-skip) {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  box-shadow: none;
}
:where(body) .card:not(.gc-skip) > .card-header,
:where(body) .card:not(.gc-skip) > .card-body > h3:first-child,
:where(body) .card-title {
  font-family: var(--gc-font);
  font-weight: 700;
  color: var(--gc-ink);
}
:where(body) .card:not(.gc-skip) > .card-header {
  background: var(--gc-bg-alt);
  border-bottom: 1px solid var(--gc-rule);
  padding: 14px 18px;
  font-size: 14px;
  letter-spacing: 0.02em;
}
:where(body) .card:not(.gc-skip) > .card-body {
  padding: 20px;
}
:where(body) .card:not(.gc-skip) > .card-footer {
  background: var(--gc-bg-alt);
  border-top: 1px solid var(--gc-rule);
  padding: 12px 18px;
}

/* ----- 18.4 · Modal globale (qualsiasi modulo) ------------- */
:where(body) .modal:not(.gc-skip) .modal-content {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-card);
}
:where(body) .modal:not(.gc-skip) .modal-header {
  background: transparent;
  border-bottom: 1px solid var(--gc-rule);
  padding: 16px 24px;
}
:where(body) .modal:not(.gc-skip) .modal-title,
:where(body) .modal:not(.gc-skip) .modal-header .h4,
:where(body) .modal:not(.gc-skip) .modal-header h4 {
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 700;
  color: var(--gc-ink);
  margin: 0;
}
:where(body) .modal:not(.gc-skip) .modal-body {
  padding: 24px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--gc-ink-2);
}
:where(body) .modal:not(.gc-skip) .modal-footer {
  background: transparent;
  border-top: 1px solid var(--gc-rule);
  padding: 16px 24px;
  gap: 8px;
}
:where(body) .modal-backdrop {
  background: rgba(15, 21, 24, 0.55);
}
:where(body) .modal:not(.gc-skip) .close,
:where(body) .modal:not(.gc-skip) button.close {
  background: transparent;
  border: 0;
  color: var(--gc-muted);
  font-size: 22px;
  line-height: 1;
  opacity: 0.7;
  transition: opacity 0.15s ease;
}
:where(body) .modal:not(.gc-skip) .close:hover { opacity: 1; }

/* ----- 18.5 · Dropdown menu globale ------------------------ */
:where(body) .dropdown-menu:not(.gc-skip) {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 2px solid var(--gc-primary);
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-card);
  padding: 6px;
  font-family: var(--gc-font);
  font-size: 13px;
  margin-top: 4px;
}
:where(body) .dropdown-menu:not(.gc-skip) .dropdown-item {
  padding: 8px 12px;
  border-radius: var(--gc-radius);
  color: var(--gc-ink-2);
  font-size: 13px;
}
:where(body) .dropdown-menu:not(.gc-skip) .dropdown-item:hover,
:where(body) .dropdown-menu:not(.gc-skip) .dropdown-item:focus {
  background: var(--gc-bg-alt);
  color: var(--gc-ink);
}
:where(body) .dropdown-menu:not(.gc-skip) .dropdown-divider {
  border-top: 1px solid var(--gc-rule);
  margin: 6px 0;
}

/* ----- 18.6 · Badge / Pill --------------------------------- */
:where(body) :is(.badge, .label, .label-pill):not(.gc-skip) {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: var(--gc-radius);
  background: var(--gc-bg-alt);
  color: var(--gc-ink-2);
  border: 1px solid var(--gc-rule);
  display: inline-block;
  line-height: 1.3;
}
:where(body) .badge.badge-primary,
:where(body) .badge-primary {
  background: var(--gc-primary);
  color: #fff;
  border-color: var(--gc-primary);
}
:where(body) .badge.badge-secondary,
:where(body) .badge-secondary {
  background: var(--gc-ink);
  color: #fff;
  border-color: var(--gc-ink);
}
:where(body) .badge.badge-success {
  background: var(--gc-success);
  color: #fff;
  border-color: var(--gc-success);
}
:where(body) .badge.badge-danger,
:where(body) .badge.badge-error {
  background: var(--gc-error);
  color: #fff;
  border-color: var(--gc-error);
}
:where(body) .badge.badge-warning {
  background: var(--gc-warn);
  color: #fff;
  border-color: var(--gc-warn);
}

/* ----- 18.7 · List group ----------------------------------- */
:where(body) .list-group:not(.gc-skip) {
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  overflow: hidden;
  background: var(--gc-surface);
}
:where(body) .list-group:not(.gc-skip) .list-group-item {
  background: var(--gc-surface);
  border: 0;
  border-bottom: 1px solid var(--gc-rule);
  padding: 12px 16px;
  font-size: 14px;
  color: var(--gc-ink-2);
  font-family: var(--gc-font);
}
:where(body) .list-group:not(.gc-skip) .list-group-item:last-child {
  border-bottom: 0;
}
:where(body) .list-group:not(.gc-skip) .list-group-item.active {
  background: var(--gc-primary);
  color: #fff;
  border-color: var(--gc-primary);
}

/* ----- 18.8 · Tabella generica (.table) -------------------- */
:where(body) table.table:not(.gc-skip) {
  width: 100%;
  border-collapse: collapse;
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  font-family: var(--gc-font);
  font-size: 13px;
  color: var(--gc-ink-2);
}
:where(body) table.table:not(.gc-skip) > :is(thead, tbody, tfoot) > tr > :is(th, td) {
  padding: 12px 14px;
  border-top: 1px solid var(--gc-rule);
  text-align: left;
  vertical-align: middle;
}
:where(body) table.table:not(.gc-skip) > thead > tr > th {
  background: var(--gc-bg-alt);
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  border-top: 0;
  border-bottom: 1px solid var(--gc-rule);
}
:where(body) table.table:not(.gc-skip).table-striped > tbody > tr:nth-of-type(odd) {
  background: var(--gc-bg-alt);
}
:where(body) table.table:not(.gc-skip).table-hover > tbody > tr:hover {
  background: var(--gc-bg-alt);
}

/* ----- 18.9 · Tooltip (Bootstrap nativo) ------------------- */
:where(body) .tooltip:not(.gc-skip) .tooltip-inner {
  background: var(--gc-ink) !important;
  color: #fff !important;
  font-family: var(--gc-font);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 6px 10px;
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-card);
}
:where(body) .tooltip:not(.gc-skip) .arrow::before,
:where(body) .tooltip:not(.gc-skip) .tooltip-arrow::before {
  border-color: var(--gc-ink) !important;
}

/* ----- 18.10 · Spinner / loader uniforme ------------------- */
:where(body) :is(.spinner-border, .spinner-grow, [class*="loading"]) {
  color: var(--gc-primary);
  border-color: var(--gc-primary);
}
:where(body) :is(.fa-spinner, .fa-circle-o-notch, .fa-spin) {
  color: inherit;
}

/* ----- 18.11 · Pagination globale (anche moduli custom) ---- */
:where(body) :is(nav.pagination, .page-list, ul.pagination):not(.gc-skip) {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}
:where(body) :is(.page-list li, ul.pagination > li, .pagination > li):not(.gc-skip) {
  border: 1px solid var(--gc-rule);
  background: var(--gc-surface);
}
:where(body) :is(.page-list li a, ul.pagination > li a, .pagination > li a):not(.gc-skip) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-family: var(--gc-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--gc-ink-2);
  text-decoration: none;
}
:where(body) :is(.page-list li, .pagination > li):hover { border-color: var(--gc-ink); }
:where(body) :is(.page-list li.current, .pagination > li.active) {
  background: var(--gc-ink);
  border-color: var(--gc-ink);
}
:where(body) :is(.page-list li.current a, .pagination > li.active a) {
  color: #fff !important;
}

/* ----- 18.12 · Progress bar -------------------------------- */
:where(body) .progress {
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  border-radius: var(--gc-radius);
  height: 8px;
  overflow: hidden;
}
:where(body) .progress-bar {
  background: var(--gc-primary);
  color: #fff;
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 600;
}

/* ----- 18.13 · Form helpers / labels ----------------------- */
:where(body) :is(.form-text, .help-block, .text-muted):not(.gc-skip) {
  font-size: 12px;
  color: var(--gc-muted) !important;
  line-height: 1.4;
}

/* ----- 18.14 · Componenti utility universali (.gc-*) ------- */
/* Le seguenti classi sono il "vocabolario" estendibile per moduli
   custom o widget HTML in elementor. Aggiungile a un elemento per
   ottenere lo stile pronto. */
.gc-card {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 20px;
  border-radius: var(--gc-radius);
}
.gc-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  border-radius: 999px;
  color: var(--gc-ink-2);
}
.gc-pill--dark { background: var(--gc-ink); color: #fff; border-color: var(--gc-ink); }
.gc-pill--primary { background: var(--gc-primary); color: #fff; border-color: var(--gc-primary); }
.gc-pill--success { background: var(--gc-success); color: #fff; border-color: var(--gc-success); }
.gc-pill--warn { background: var(--gc-warn); color: #fff; border-color: var(--gc-warn); }
.gc-pill--error { background: var(--gc-error); color: #fff; border-color: var(--gc-error); }

.gc-divider {
  border: 0;
  border-top: 1px solid var(--gc-rule);
  margin: 24px 0;
}
.gc-divider--strong { border-top-color: var(--gc-rule-strong); }

.gc-stack-1 > * + * { margin-top: var(--gc-s-1); }
.gc-stack-2 > * + * { margin-top: var(--gc-s-2); }
.gc-stack-3 > * + * { margin-top: var(--gc-s-3); }
.gc-stack-4 > * + * { margin-top: var(--gc-s-4); }
.gc-stack-6 > * + * { margin-top: var(--gc-s-6); }
.gc-stack-8 > * + * { margin-top: var(--gc-s-8); }

/* Container helper */
.gc-container {
  max-width: var(--gc-maxw);
  margin: 0 auto;
  padding: 0 var(--gc-pad);
}

/* Text helpers */
.gc-text-mono { font-family: var(--gc-mono); }
.gc-text-num  { font-variant-numeric: tabular-nums; font-feature-settings: 'tnum'; }
.gc-text-muted { color: var(--gc-muted) !important; }
.gc-text-primary { color: var(--gc-primary) !important; }
.gc-text-uppercase { text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }


/* ============================================================
   FINE FASE 7 (Design system globale)
   ============================================================ */


/* ============================================================
   19 · COVERAGE EXTENSION — Fase 8 (v0.10.0)
   ------------------------------------------------------------
   Estensione del CSS alle pagine non ancora coperte:
   listing variants, modali transactional, cookie banner,
   pagine CMS, brand list, sitemap, stores, ecc.
   ============================================================ */

/* ----- 19.1 · Listing variants ----------------------------- */
/* search, best-sales, new-products, prices-drop, manufacturer
   riusano il markup di category (#js-product-list-header,
   #search_filters, .products-grid). I miei selettori erano
   scoped #category — qui li estendo a tutte le listing pages. */

body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier) #wrapper {
  background: var(--gc-bg);
  color: var(--gc-ink);
  padding-top: 24px;
  padding-bottom: 96px;
}

body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier) #js-product-list-header {
  margin-bottom: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--gc-rule);
}
body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier) #js-product-list-header h1.h1.page-title,
body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier) #content-wrapper #js-product-list-header h1.page-title,
body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier) #main h1.h1.page-title {
  font-family: var(--gc-font);
  font-size: 64px;
  font-weight: 700;
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: var(--gc-ink);
  margin: 0 0 12px;
  border: 0;
  padding: 0;
}

/* Top toolbar (sort + view-switcher) — estendo da #category */
body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer) #js-product-list-top.products-selection {
  border-top: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  padding: 14px 0;
  margin-bottom: 24px;
}
body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer) #js-product-list-top .showing {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-muted);
}
body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer) .products-sort-order .select-title {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  border-radius: var(--gc-radius);
  font-size: 13px;
  padding: 10px 16px;
  min-height: 40px;
  color: var(--gc-ink);
}

/* Sidebar filtri (search ha facets se ps_facetedsearch su search active) */
body:is(#search, #manufacturer) #search_filters {
  background: transparent;
  padding: 0;
  border: 0;
}
body:is(#search, #manufacturer) #search_filters aside.facet {
  border-top: 1px solid var(--gc-rule);
  padding: 24px 0;
}

/* Listing 3-col su xl — estendo da #category */
@media (min-width: 1200px) {
  body:is(#search, #best-sales, #new-products, #prices-drop, #manufacturer)
    #js-product-list .products.row.products-grid > .js-product-miniature-wrapper {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
}

/* Pagination + active filters — già coperti globalmente sezione 18 */


/* ----- 19.2 · Add-to-cart confirmation modal --------------- */
/* PrestaShop apre questo modal cliccando "Aggiungi al carrello" */
:where(body) #blockcart-modal {
  /* Modal-content stilato da sezione 18.4 globale, qui solo refinement */
}
:where(body) #blockcart-modal .modal-header {
  background: var(--gc-surface);
  padding: 18px 24px;
}
:where(body) #blockcart-modal .modal-title {
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--gc-ink);
  display: flex;
  align-items: center;
  gap: 10px;
}
:where(body) #blockcart-modal .modal-title i.fa,
:where(body) #blockcart-modal .modal-title .material-icons {
  color: var(--gc-success);
  font-size: 18px;
}
:where(body) #blockcart-modal .product-image,
:where(body) #blockcart-modal .modal-body img.product-image {
  border: 1px solid var(--gc-rule);
  background: var(--gc-bg-alt);
  padding: 6px;
  max-width: 100%;
  height: auto;
}
:where(body) #blockcart-modal .product-name {
  font-family: var(--gc-font);
  font-size: 14px;
  font-weight: 600;
  color: var(--gc-ink);
  line-height: 1.35;
  margin-bottom: 6px;
}
:where(body) #blockcart-modal .product-quantity,
:where(body) #blockcart-modal .product-price-tax {
  font-family: var(--gc-mono);
  font-size: 12px;
  color: var(--gc-muted);
  letter-spacing: 0.04em;
}
:where(body) #blockcart-modal .product-price-tax strong {
  color: var(--gc-ink);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
:where(body) #blockcart-modal .cart-content {
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 14px 16px;
  margin-top: 16px;
}
:where(body) #blockcart-modal .cart-content .cart-content-line {
  display: flex;
  justify-content: space-between;
  font-family: var(--gc-font);
  font-size: 13px;
  padding: 4px 0;
}
:where(body) #blockcart-modal .cart-content .cart-content-line.cart-content-total {
  border-top: 1px solid var(--gc-rule);
  margin-top: 8px;
  padding-top: 12px;
  font-weight: 700;
  font-size: 16px;
}

/* Footer modal: 2 bottoni "Continua shopping" / "Procedi al checkout" */
:where(body) #blockcart-modal .modal-footer {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: space-between;
}
:where(body) #blockcart-modal .modal-footer .btn-primary,
:where(body) #blockcart-modal .modal-footer a.btn-primary {
  background: var(--gc-accent);
  border-color: var(--gc-accent);
  color: #fff !important;
  flex: 1;
  min-width: 180px;
  padding: 14px 20px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
:where(body) #blockcart-modal .modal-footer .btn-secondary {
  background: transparent;
  border: 1px solid var(--gc-rule-strong);
  color: var(--gc-ink) !important;
  padding: 14px 20px;
  flex: 1;
  min-width: 180px;
}


/* ----- 19.3 · Quickview modal (#product-modal raffinata) -- */
:where(body) #product-modal .modal-content {
  background: var(--gc-surface);
}
:where(body) #product-modal .modal-body {
  padding: 24px;
}
:where(body) #product-modal .product-cover {
  border: 1px solid var(--gc-rule);
  background: var(--gc-bg-alt);
  margin-bottom: 12px;
}
:where(body) #product-modal .product-cover img.img-fluid {
  mix-blend-mode: multiply;
  padding: 16px;
}
:where(body) #product-modal h1,
:where(body) #product-modal .h1.product-name,
:where(body) #product-modal .product-information h1 {
  font-family: var(--gc-font);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--gc-ink);
  margin-bottom: 12px;
}
:where(body) #product-modal .current-price .product-price {
  font-size: 28px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink) !important;
}
:where(body) #product-modal .swiper-button-arrow {
  background: var(--gc-ink);
  color: #fff;
  width: 32px;
  height: 32px;
}


/* ----- 19.4 · Cookie banner (iqitcookielaw) ---------------- */
:where(body) #iqitcookieLaw,
:where(body) .iqitcookielaw,
:where(body) #iqitcookielaw {
  background: var(--gc-ink) !important;
  color: rgba(255,255,255,0.9) !important;
  border-top: 1px solid rgba(255,255,255,0.15);
  font-family: var(--gc-font);
  font-size: 13px;
  line-height: 1.5;
  padding: 16px 24px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.15);
}
:where(body) #iqitcookieLaw a:not(.btn),
:where(body) .iqitcookielaw a:not(.btn) {
  color: var(--gc-primary-50) !important;
  text-decoration: underline;
}
:where(body) #iqitcookieLaw a:not(.btn):hover,
:where(body) .iqitcookielaw a:not(.btn):hover {
  color: #fff !important;
}
:where(body) #iqitcookieLaw .btn,
:where(body) .iqitcookielaw .btn {
  background: var(--gc-primary) !important;
  color: #fff !important;
  border: 0 !important;
  padding: 10px 20px;
  font-family: var(--gc-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: var(--gc-radius);
}
:where(body) #iqitcookieLaw .btn:hover,
:where(body) .iqitcookielaw .btn:hover {
  background: var(--gc-primary-ink) !important;
}


/* ----- 19.5 · Order confirmation refinement --------------- */
body#order-confirmation #content-hook_order_confirmation,
body#order-confirmation .order-confirmation-msg,
body#order-confirmation #content-hook_payment_return {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-top: 4px solid var(--gc-success);
  padding: 32px;
  margin-bottom: 24px;
}
body#order-confirmation .order-confirmation-msg h3,
body#order-confirmation #content-hook_payment_return h3 {
  font-family: var(--gc-font);
  font-size: 24px;
  font-weight: 700;
  color: var(--gc-success);
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}
body#order-confirmation .order-confirmation-msg h3::before {
  content: '✓';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--gc-success);
  color: #fff;
  border-radius: 50%;
  font-size: 18px;
  font-weight: 700;
}
body#order-confirmation .order-line {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid var(--gc-rule);
  font-size: 14px;
}
body#order-confirmation .order-line:last-child { border-bottom: 0; }
body#order-confirmation .order-line .order-label {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
}
body#order-confirmation .order-line .order-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gc-ink);
}


/* ----- 19.6 · Manufacturer brand list --------------------- */
body#manufacturer .brand,
body#manufacturer .brand-list .brand-infos,
body#manufacturer ul.brand-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
body#manufacturer .brand-list,
body#manufacturer #manufacturers_list,
body#manufacturer .brands-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0;
  border-top: 1px solid var(--gc-rule);
  border-left: 1px solid var(--gc-rule);
}
body#manufacturer .brand,
body#manufacturer .brands-list > li {
  border-right: 1px solid var(--gc-rule);
  border-bottom: 1px solid var(--gc-rule);
  background: var(--gc-surface);
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  transition: background 0.15s ease;
}
body#manufacturer .brand:hover { background: var(--gc-bg-alt); }
body#manufacturer .brand img,
body#manufacturer .brand-img img {
  max-width: 80%;
  max-height: 80px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.65;
  transition: filter 0.15s ease, opacity 0.15s ease;
}
body#manufacturer .brand:hover img {
  filter: grayscale(0);
  opacity: 1;
}
body#manufacturer .brand .brand-meta,
body#manufacturer .brand-name,
body#manufacturer .brand .h3 {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--gc-ink);
  margin-top: 12px;
  letter-spacing: 0.02em;
}
body#manufacturer .brand .brand-products {
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  margin-top: 4px;
}


/* ----- 19.7 · CMS pages typography (.rte-content) --------- */
body#cms #content.page-content,
body#cms .cms-content,
body#cms .rte-content {
  font-family: var(--gc-font);
  font-size: 16px;
  line-height: 1.7;
  color: var(--gc-ink-2);
  max-width: 760px;
}
body#cms .rte-content :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--gc-font);
  color: var(--gc-ink);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 32px 0 12px;
}
body#cms .rte-content h1, body#cms .rte-content h2 {
  font-size: 32px;
  letter-spacing: -0.02em;
}
body#cms .rte-content h2 { font-size: 28px; }
body#cms .rte-content h3 { font-size: 22px; }
body#cms .rte-content h4 { font-size: 18px; }
body#cms .rte-content :is(h1, h2, h3, h4):first-child { margin-top: 0; }
body#cms .rte-content p {
  margin: 0 0 16px;
}
body#cms .rte-content a:not(.btn) {
  color: var(--gc-primary);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
body#cms .rte-content a:not(.btn):hover {
  color: var(--gc-primary-ink);
}
body#cms .rte-content :is(ul, ol) {
  margin: 0 0 16px;
  padding-left: 22px;
}
body#cms .rte-content li {
  margin-bottom: 6px;
}
body#cms .rte-content blockquote {
  margin: 24px 0;
  padding: 16px 20px;
  border-left: 3px solid var(--gc-primary);
  background: var(--gc-bg-alt);
  font-style: italic;
  color: var(--gc-ink);
}
body#cms .rte-content img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--gc-rule);
  margin: 16px 0;
}
body#cms .rte-content table {
  margin: 16px 0;
}
body#cms .rte-content code,
body#cms .rte-content pre {
  font-family: var(--gc-mono);
  font-size: 13px;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  padding: 2px 6px;
  border-radius: var(--gc-radius);
}
body#cms .rte-content pre {
  padding: 16px;
  overflow-x: auto;
  line-height: 1.5;
}


/* ----- 19.8 · Sitemap ------------------------------------- */
body#sitemap .sitemap-block,
body#sitemap #sitemap_block,
body#sitemap .sitemap {
  background: transparent;
}
body#sitemap ul.sitemap_block,
body#sitemap .sitemap ul {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
body#sitemap .sitemap li {
  padding: 6px 0;
  font-size: 14px;
  font-family: var(--gc-font);
  border-bottom: 1px dashed var(--gc-rule);
}
body#sitemap .sitemap li ul li {
  padding-left: 20px;
  position: relative;
}
body#sitemap .sitemap li ul li::before {
  content: '└';
  color: var(--gc-rule-strong);
  position: absolute;
  left: 4px;
  font-family: var(--gc-mono);
}
body#sitemap .sitemap a {
  color: var(--gc-ink-2);
  text-decoration: none;
  display: inline-block;
  padding: 2px 0;
}
body#sitemap .sitemap a:hover { color: var(--gc-primary); }
body#sitemap .sitemap h2,
body#sitemap .sitemap-block h2 {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin: 24px 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--gc-rule);
}


/* ----- 19.9 · Stores (negozi fisici) ---------------------- */
body#stores .store-list,
body#stores #stores {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
body#stores .store-item,
body#stores .store-list > li {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 24px;
}
body#stores .store-item h3,
body#stores .store-name {
  font-family: var(--gc-font);
  font-size: 16px;
  font-weight: 700;
  color: var(--gc-ink);
  margin: 0 0 10px;
}
body#stores .store-item address,
body#stores .store-address {
  font-style: normal;
  font-size: 13px;
  line-height: 1.55;
  color: var(--gc-ink-2);
}
body#stores .store-item .business-hours,
body#stores .store-hours {
  font-size: 12px;
  color: var(--gc-muted);
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--gc-rule);
  font-family: var(--gc-mono);
}
body#stores iframe {
  border: 1px solid var(--gc-rule);
  width: 100%;
  margin: 16px 0;
}


/* ----- 19.10 · Guest tracking ----------------------------- */
body#guest-tracking #content.page-content {
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  padding: 32px;
  max-width: 720px;
}
body#guest-tracking .form-fields {
  background: transparent;
  padding: 0;
  border: 0;
}
body#guest-tracking .form-fields h2 {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gc-rule);
}
body#guest-tracking .form-fields .form-control-label,
body#guest-tracking .form-fields label {
  display: block;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-muted);
  margin-bottom: 6px;
  text-align: left;
  flex: none;
  max-width: none;
}
body#guest-tracking .form-fields .form-group.row {
  display: block;
  margin-bottom: 16px;
}
body#guest-tracking .form-fields .col-md-8.js-input-column,
body#guest-tracking .form-fields .col-md-2.form-control-comment {
  flex: none;
  max-width: none;
  width: 100%;
}
body#guest-tracking .form-fields .col-md-2.form-control-comment { display: none; }


/* ----- 19.11 · Maintenance page ---------------------------- */
body#maintenance-page,
body.maintenance-page {
  background: var(--gc-bg-alt) !important;
  color: var(--gc-ink) !important;
  font-family: var(--gc-font);
}
body#maintenance-page .container,
body.maintenance-page .container {
  max-width: 720px;
  text-align: center;
  padding: 96px 24px;
}
body#maintenance-page h1,
body.maintenance-page h1 {
  font-family: var(--gc-font);
  font-size: 56px;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--gc-ink) !important;
  margin: 0 0 16px;
}
body#maintenance-page .logo img {
  max-height: 56px;
  width: auto;
  margin: 0 auto 32px;
  display: block;
}


/* ----- 19.12 · Print styles (fattura, preventivi) --------- */
@media print {
  body * { background: #fff !important; color: #000 !important; box-shadow: none !important; }
  header#header,
  footer#footer,
  .header-nav,
  #js-product-list-top,
  #left-column,
  .product-add-to-cart,
  .product-functional-buttons,
  #blockcart-modal,
  .breadcrumb,
  .pagination { display: none !important; }
  .table th { background: #f0f0f0 !important; }
  a { text-decoration: none; color: #000 !important; }
  .product-line-grid { border-bottom: 1px solid #ccc; }
}


/* ============================================================
   FINE FASE 8 (Coverage extension)
   ============================================================ */



/* ============================================================
   21 · LIST VIEW (.prod-row) — Fase 8.2 (v0.11.0)
   ------------------------------------------------------------
   Markup nuovo dal template override grossclima_settings:
   themes/warehouse/templates/catalog/_partials/miniatures/product-list.tpl
   sostituito con un markup .prod-row che ha specs grid + compat chips.
   CSS basato su styles-list.css (handoff utente).
   ============================================================ */

/* ----- 21.1 · View toggle (icone griglia/lista) ------------ */
/* Sovrascrive il view-switcher esistente di Warehouse con un design industrial */
body :is(#category, #search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier)
  #js-product-list-top .view-switcher {
  display: inline-flex;
  border: 1px solid var(--gc-rule-strong);
  margin-left: 12px;
  background: var(--gc-surface);
  border-radius: var(--gc-radius);
  overflow: hidden;
  padding: 0;
}
body :is(#category, #search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier)
  #js-product-list-top .view-switcher a.js-search-link {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: var(--gc-surface);
  border: 0;
  border-right: 1px solid var(--gc-rule);
  color: var(--gc-muted);
  margin: 0;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}
body :is(#category, #search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier)
  #js-product-list-top .view-switcher a.js-search-link:last-child { border-right: 0; }
body :is(#category, #search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier)
  #js-product-list-top .view-switcher a.js-search-link:hover { color: var(--gc-ink); background: var(--gc-bg-alt); }
body :is(#category, #search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier)
  #js-product-list-top .view-switcher a.js-search-link.current {
  background: var(--gc-ink);
  color: #fff;
}
body :is(#category, #search, #best-sales, #new-products, #prices-drop, #manufacturer, #supplier)
  #js-product-list-top .view-switcher a.js-search-link i {
  font-size: 14px;
  line-height: 1;
}

/* ----- 21.2 · List container ------------------------------ */
body .listing-list,
body #js-product-list .products.row.products-list {
  display: flex;
  flex-direction: column;
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule);
  border-bottom: 0;
  margin: 0;
}
/* Wrapper col-12 di ogni riga: niente padding/border interno, lo gestisce .prod-row */
body .listing-list .js-product-miniature-wrapper,
body #js-product-list .products-list .js-product-miniature-wrapper {
  padding: 0;
  border: 0;
  flex: 1 1 100%;
  max-width: 100%;
}

/* ----- 21.3 · Single row (.prod-row) ---------------------- */
body .prod-row {
  display: grid;
  grid-template-columns: 180px 1fr 240px;
  gap: 28px;
  padding: 24px 28px;
  border-bottom: 1px solid var(--gc-rule);
  cursor: pointer;
  background: var(--gc-surface);
  position: relative;
  transition: background 0.12s ease;
  text-decoration: none;
  color: var(--gc-ink);
}
body .prod-row:hover {
  background: var(--gc-bg);
}
body .prod-row:hover .prod-row-title {
  color: var(--gc-primary);
}

/* Thumb */
body .prod-row-thumb {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--gc-bg-alt);
  display: grid;
  place-items: center;
  border: 1px solid var(--gc-rule);
  overflow: hidden;
}
body .prod-row-thumb a {
  display: block;
  width: 100%;
  height: 100%;
}
body .prod-row-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14%;
  mix-blend-mode: multiply;
  display: block;
}
body .prod-row-thumb .prod-flag {
  position: absolute;
  top: 8px;
  left: 8px;
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  background: var(--gc-ink);
  color: #fff;
  padding: 3px 7px;
  z-index: 2;
}
body .prod-row-thumb .prod-flag.sale,
body .prod-row-thumb .prod-flag.discount,
body .prod-row-thumb .prod-flag.on-sale { background: var(--gc-primary); }
body .prod-row-thumb .prod-flag.new { background: var(--gc-success); }

/* ----- 21.4 · Center column (main) ------------------------ */
body .prod-row-main {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

/* Meta riga: BRAND · COD demo_1 · CATEGORIA */
body .prod-row-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
}
body .prod-row-brand {
  color: var(--gc-ink);
  font-weight: 700;
}
body .prod-row-code {
  font-family: var(--gc-mono);
  letter-spacing: 0.04em;
  text-transform: none;
}
body .prod-row-cat {
  color: var(--gc-muted);
}
body .prod-row-sep { color: var(--gc-rule-strong); font-weight: 400; }

/* Title */
body .prod-row-title {
  font-family: var(--gc-font);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 2px 0 4px;
  line-height: 1.25;
  color: var(--gc-ink);
  transition: color 0.12s;
  text-wrap: balance;
}
body .prod-row-title a {
  color: inherit;
  text-decoration: none;
}

/* Specs tecniche grid 4 col (POTENZA · TENSIONE · LUNGHEZZA · ATTACCO) */
body .prod-row-specs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px 18px;
  padding: 12px 0;
  border-top: 1px dashed var(--gc-rule);
  border-bottom: 1px dashed var(--gc-rule);
  margin: 4px 0 2px;
}
body .prod-row-spec {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body .prod-row-spec .k {
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
}
body .prod-row-spec .v {
  font-family: var(--gc-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--gc-ink);
  font-variant-numeric: tabular-nums;
}

/* Compatibilità chip + "+ N modelli" */
body .prod-row-compat {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}
body .prod-row-compat-lbl {
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
  margin-right: 4px;
}
body .prod-row-compat-chip {
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 500;
  padding: 4px 8px;
  background: var(--gc-bg-alt);
  border: 1px solid var(--gc-rule);
  color: var(--gc-ink-2);
  border-radius: var(--gc-radius);
  letter-spacing: 0.02em;
}
body .prod-row-compat-more {
  font-family: var(--gc-font);
  font-size: 11px;
  font-weight: 600;
  color: var(--gc-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 4px;
}
body .prod-row-compat-more:hover { color: var(--gc-primary-ink); }

/* ----- 21.5 · Right column (side) ------------------------- */
body .prod-row-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  border-left: 1px solid var(--gc-rule);
  padding-left: 24px;
}
body .prod-row-price-block {
  text-align: right;
}
body .prod-row-side .prod-price {
  font-family: var(--gc-font);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gc-ink);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
body .prod-row-side .prod-price-was {
  display: inline-block;
  margin-top: 4px;
  text-decoration: line-through;
  color: var(--gc-muted);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
body .prod-row-vat {
  font-family: var(--gc-mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--gc-muted);
  font-weight: 600;
  margin-top: 4px;
}

/* Stock indicator (LED) */
body .prod-row-side .prod-stock {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gc-success);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body .prod-row-side .prod-stock .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gc-success);
}
body .prod-row-side .prod-stock.out { color: var(--gc-muted); }
body .prod-row-side .prod-stock.out .dot { background: var(--gc-muted); }
body .prod-row-side .prod-stock.back { color: var(--gc-warn); }
body .prod-row-side .prod-stock.back .dot { background: var(--gc-warn); }

/* Actions: btn aggiungi + cuore wishlist */
body .prod-row-actions {
  display: flex;
  gap: 8px;
  width: 100%;
  justify-content: flex-end;
  align-items: stretch;
}
body .prod-row-actions form { margin: 0; flex: 1; }
body .prod-row-actions .btn,
body .prod-row-actions .btn.btn-primary,
body .prod-row-actions .btn.btn-sm {
  flex: 1;
  justify-content: center;
  background: var(--gc-accent);
  color: #fff !important;
  border: 0;
  font-family: var(--gc-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 10px 16px;
  min-height: 36px;
  border-radius: var(--gc-radius);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: background 0.15s ease;
}
body .prod-row-actions .btn:hover,
body .prod-row-actions .btn.btn-primary:hover {
  background: var(--gc-primary) !important;
  color: #fff !important;
}
body .prod-row-iconbtn {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: var(--gc-surface);
  border: 1px solid var(--gc-rule-strong);
  cursor: pointer;
  color: var(--gc-muted);
  transition: color 0.12s, border-color 0.12s;
  border-radius: var(--gc-radius);
  flex-shrink: 0;
}
body .prod-row-iconbtn:hover {
  color: var(--gc-primary);
  border-color: var(--gc-primary);
}

/* ----- 21.6 · Responsive list view ------------------------ */
@media (max-width: 1100px) {
  body .prod-row {
    grid-template-columns: 140px 1fr;
  }
  body .prod-row-side {
    grid-column: 1 / -1;
    border-left: 0;
    border-top: 1px solid var(--gc-rule);
    padding-left: 0;
    padding-top: 16px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  body .prod-row-actions { width: auto; }
}
@media (max-width: 640px) {
  body .prod-row {
    grid-template-columns: 1fr;
    padding: 16px;
    gap: 16px;
  }
  body .prod-row-thumb { aspect-ratio: 16 / 9; }
  body .prod-row-specs { grid-template-columns: repeat(2, 1fr); }
  body .prod-row-side { flex-wrap: wrap; }
}


/* ============================================================
   FINE FASE 8.2 (List view .prod-row)
   v0.11.0 — markup nuovo + template override + view-toggle.
   ============================================================ */
