/* =============================================================================
   SNOPEX PRIVATI — custom.css
   Tema: Hummingbird 1.x (PrestaShop 9.0) riscritto · cartella /themes/snopex/
   Prefisso: sxp-  (SnopeX Privati)
   Stile: automotive light · glassmorphism dosato · pills · Space Grotesk + Inter
   Palette dal portale dealer "Racing Glass": ink #0f1113 · racing red #E63226

   Caricato dal core (FrontController, priority 1000) DOPO theme.css:
   a parità di specificità vince sempre questo file.

   INDICE
   00  Font (self-hosted)
   01  Token sxp
   02  Mappatura Bootstrap / Hummingbird
   03  Base e tipografia
   04  Primitive sxp (glass, pill, chip, stripe)
   05  Bottoni
   06  Form e input quantità
   07  Badge, flag, alert, toast
   08  Header, ricerca, menu
   09  Breadcrumb e titoli pagina
   10  Listing: barra ordinamento, filtri, paginazione, sottocategorie
   11  Miniatura prodotto
   12  Pagina prodotto
   13  Barra acquisto sticky (mobile, creata da custom.js)
   14  Modali e offcanvas
   15  Carrello
   16  Checkout
   17  Account cliente
   18  Footer
   19  Fallback, accessibilità, performance
   ============================================================================= */


/* -----------------------------------------------------------------------------
   00 · FONT
   Self-hosted (nessuna chiamata a Google: GDPR/nLPD ok, zero latenza DNS).
   Variable font: un file copre tutti i pesi.
   ----------------------------------------------------------------------------- */
@font-face {
  font-family: "Space Grotesk Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 300 700;
  src: url("../fonts/sxp/space-grotesk-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Space Grotesk Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 300 700;
  src: url("../fonts/sxp/space-grotesk-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter variabile: Hummingbird carica solo Inter 400, i grassetti sarebbero finti */
@font-face {
  font-family: "Inter Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/sxp/inter-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/sxp/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}


/* -----------------------------------------------------------------------------
   01 · TOKEN SXP
   Unico punto da toccare per cambiare il look. Tutto il resto li usa.
   ----------------------------------------------------------------------------- */
:root {
  /* Colori brand (portale dealer) */
  --sxp-ink: #0f1113;            /* nero carbonio: testi forti, footer, bottoni scuri */
  --sxp-ink-2: #1b1f24;          /* hover sulle superfici scure */
  --sxp-ink-rgb: 15, 17, 19;
  --sxp-accent: #e63226;         /* racing red: dettagli, linee, badge, focus */
  --sxp-accent-rgb: 230, 50, 38;
  --sxp-accent-strong: #d62d21;  /* fondo dei bottoni con testo bianco (contrasto 4.9:1 AA) */
  --sxp-accent-hover: #bf271c;
  --sxp-accent-text: #cf2a1f;    /* rosso usato COME testo su fondo chiaro (4.7:1 AA) */
  --sxp-accent-soft: rgba(230, 50, 38, .10);

  /* Superfici light */
  --sxp-bg: #f2f3f5;             /* fondo pagina "asfalto chiaro" */
  --sxp-surface: #ffffff;        /* card */
  --sxp-surface-2: #f7f8f9;      /* pozzetti immagine, righe alternate */
  --sxp-well: #eef0f2;           /* fondo dietro le foto prodotto */
  --sxp-text: #23272c;           /* testo corrente */
  --sxp-muted: #5b6168;          /* testo secondario (5.6:1 su --sxp-bg) */
  --sxp-line: rgba(15, 17, 19, .09);
  --sxp-line-strong: rgba(15, 17, 19, .16);

  /* Stati */
  --sxp-success: #1f8a4c;
  --sxp-success-soft: rgba(31, 138, 76, .10);
  --sxp-warning: #b56a00;
  --sxp-warning-soft: rgba(229, 145, 0, .12);
  --sxp-danger: var(--sxp-accent-text);
  --sxp-danger-soft: var(--sxp-accent-soft);

  /* Glass (solo su header, menu, modali, offcanvas, barre sticky) */
  --sxp-glass-bg: rgba(255, 255, 255, .72);
  --sxp-glass-bg-strong: rgba(255, 255, 255, .86);
  --sxp-glass-border: rgba(255, 255, 255, .65);
  --sxp-glass-blur: 18px;
  --sxp-glass-sat: 170%;
  --sxp-glass-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 10px 40px -12px rgba(var(--sxp-ink-rgb), .18);
  --sxp-glass-dark-bg: rgba(15, 17, 19, .78);

  /* Forme */
  --sxp-radius-pill: 999px;
  --sxp-radius-xl: 28px;
  --sxp-radius-lg: 22px;
  --sxp-radius-md: 16px;
  --sxp-radius-sm: 12px;
  --sxp-radius-xs: 8px;

  /* Ombre */
  --sxp-shadow-sm: 0 1px 2px rgba(var(--sxp-ink-rgb), .06), 0 1px 1px rgba(var(--sxp-ink-rgb), .04);
  --sxp-shadow-md: 0 8px 24px -10px rgba(var(--sxp-ink-rgb), .16), 0 2px 6px rgba(var(--sxp-ink-rgb), .05);
  --sxp-shadow-lg: 0 24px 60px -20px rgba(var(--sxp-ink-rgb), .28);
  --sxp-ring: 0 0 0 4px rgba(var(--sxp-accent-rgb), .18);

  /* Tipografia */
  --sxp-font-display: "Space Grotesk Variable", "Space Grotesk", "Inter Variable", system-ui, sans-serif;
  --sxp-font-body: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --sxp-tracking-tight: -.02em;
  --sxp-tracking-caps: .08em;

  /* Movimento */
  --sxp-ease: cubic-bezier(.2, .7, .2, 1);
  --sxp-dur: .22s;

  /* Layout */
  --sxp-control-h: 2.875rem;     /* altezza input / bottoni standard (46px) */
  --sxp-control-h-lg: 3.5rem;    /* CTA principali (56px) */
  --sxp-header-h: 7rem;          /* aggiornata da custom.js con l'altezza reale */
  --sxp-sticky-top: calc(var(--sxp-header-h) + 1rem);

  /* Foto prodotto: "multiply" fonde i fondi bianchi delle foto nel pozzetto grigio.
     Metti "normal" se le foto hanno fondi scuri o scontornati colorati. */
  --sxp-img-blend: multiply;
}


/* -----------------------------------------------------------------------------
   02 · MAPPATURA BOOTSTRAP / HUMMINGBIRD
   Ridefinisce le variabili su cui sono costruiti tema e utility BS 5.3.
   ----------------------------------------------------------------------------- */
:root,
[data-bs-theme=light] {
  --bs-primary: var(--sxp-accent);
  --bs-primary-rgb: var(--sxp-accent-rgb);
  --bs-primary-text-emphasis: var(--sxp-accent-text);
  --bs-primary-bg-subtle: var(--sxp-accent-soft);
  --bs-primary-border-subtle: rgba(var(--sxp-accent-rgb), .3);
  --bs-dark: var(--sxp-ink);
  --bs-dark-rgb: var(--sxp-ink-rgb);
  --bs-danger: var(--sxp-accent-text);
  --bs-success: var(--sxp-success);

  --bs-body-font-family: var(--sxp-font-body);
  --bs-body-color: var(--sxp-text);
  --bs-body-color-rgb: 35, 39, 44;
  --bs-body-bg: var(--sxp-bg);
  --bs-body-line-height: 1.55;
  --bs-emphasis-color: var(--sxp-ink);
  --bs-secondary-color: var(--sxp-muted);
  --bs-heading-color: var(--sxp-ink);

  --bs-link-color: var(--sxp-ink);
  --bs-link-color-rgb: var(--sxp-ink-rgb);
  --bs-link-hover-color: var(--sxp-accent-text);
  --bs-link-hover-color-rgb: 207, 42, 31;

  --bs-border-color: var(--sxp-line);
  --bs-border-color-translucent: var(--sxp-line);
  --bs-border-radius: var(--sxp-radius-sm);
  --bs-border-radius-sm: var(--sxp-radius-xs);
  --bs-border-radius-lg: var(--sxp-radius-md);
  --bs-border-radius-xl: var(--sxp-radius-lg);
  --bs-border-radius-xxl: var(--sxp-radius-xl);
  --bs-border-radius-pill: var(--sxp-radius-pill);

  --bs-box-shadow: var(--sxp-shadow-md);
  --bs-box-shadow-sm: var(--sxp-shadow-sm);
  --bs-box-shadow-lg: var(--sxp-shadow-lg);
  --bs-focus-ring-color: rgba(var(--sxp-accent-rgb), .25);

  --bs-light: var(--sxp-surface-2);
  --bs-light-rgb: 247, 248, 249;
  --bs-gray-100: var(--sxp-surface-2);
}

/* Variabili proprie di Hummingbird */
.header {
  --header-bg: var(--sxp-glass-bg);
  --header-top-bg: var(--sxp-ink);
  --header-color: var(--sxp-ink);
  --header-top-color: rgba(255, 255, 255, .78);
  --header-top-border-bottom: 0;
  --header-bottom-border-bottom: 1px solid var(--sxp-line);
}
.footer {
  --footer-background-color: var(--sxp-ink);
  --footer-text-color: rgba(255, 255, 255, .66);
  --footer-hover-color: #fff;
  --footer-heading-color: #fff;
}


/* -----------------------------------------------------------------------------
   03 · BASE E TIPOGRAFIA
   ----------------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--sxp-sticky-top); }

body {
  font-family: var(--sxp-font-body);
  color: var(--sxp-text);
  background-color: var(--sxp-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--sxp-font-display);
  color: var(--sxp-ink);
  font-weight: 600;
  letter-spacing: var(--sxp-tracking-tight);
  line-height: 1.15;
}
h1, .h1 { font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.75rem); }
h2, .h2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.125rem); }
h3, .h3 { font-size: clamp(1.25rem, 1.12rem + .5vw, 1.5rem); }

a { text-underline-offset: .18em; transition: color var(--sxp-dur) var(--sxp-ease); }

.rich-text a, .cms-content a { color: var(--sxp-accent-text); text-decoration: underline; }

::selection { background: rgba(var(--sxp-accent-rgb), .9); color: #fff; }

:focus-visible { outline: 2px solid var(--sxp-accent); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }

hr { border-color: var(--sxp-line); opacity: 1; }

.wrapper { padding-top: 1.5rem; padding-bottom: 3rem; }

/* Card Bootstrap: base comune di molte sezioni */
.card {
  --bs-card-border-color: var(--sxp-line);
  --bs-card-border-radius: var(--sxp-radius-lg);
  --bs-card-inner-border-radius: calc(var(--sxp-radius-lg) - 1px);
  --bs-card-bg: var(--sxp-surface);
  --bs-card-cap-bg: transparent;
  --bs-card-spacer-x: 1.25rem;
  --bs-card-spacer-y: 1.25rem;
}

/* Tabelle (dettaglio ordine, storico, ecc.) */
.table {
  --bs-table-border-color: var(--sxp-line);
  --bs-table-striped-bg: var(--sxp-surface-2);
}
.table-wrapper {
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  overflow: hidden;
}
.table thead th {
  font-family: var(--sxp-font-display);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--sxp-tracking-caps);
  text-transform: uppercase;
  color: var(--sxp-muted);
  background: var(--sxp-surface-2);
}


/* -----------------------------------------------------------------------------
   04 · PRIMITIVE SXP
   Classi riutilizzabili da usare nei .tpl riscritti e nei moduli (mega menu).
   ----------------------------------------------------------------------------- */
.sxp-glass {
  background: var(--sxp-glass-bg);
  -webkit-backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
  border: 1px solid var(--sxp-glass-border);
  box-shadow: var(--sxp-glass-shadow);
}
.sxp-glass--dark {
  background: var(--sxp-glass-dark-bg);
  border-color: rgba(255, 255, 255, .08);
  color: #fff;
}

.sxp-surface {
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  box-shadow: var(--sxp-shadow-sm);
}

.sxp-pill {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  min-height: 2rem;
  padding: .25rem .875rem;
  border-radius: var(--sxp-radius-pill);
  border: 1px solid var(--sxp-line-strong);
  background: var(--sxp-surface);
  color: var(--sxp-ink);
  font-size: .8125rem;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color var(--sxp-dur) var(--sxp-ease), border-color var(--sxp-dur) var(--sxp-ease), color var(--sxp-dur) var(--sxp-ease);
}
a.sxp-pill:hover, button.sxp-pill:hover { border-color: var(--sxp-ink); color: var(--sxp-ink); }
.sxp-pill.is-active, .sxp-pill[aria-pressed=true], .sxp-pill[aria-current] {
  background: var(--sxp-ink); border-color: var(--sxp-ink); color: #fff;
}
.sxp-pill--accent { background: var(--sxp-accent-strong); border-color: var(--sxp-accent-strong); color: #fff; }
.sxp-pill--soft { background: var(--sxp-accent-soft); border-color: transparent; color: var(--sxp-accent-text); }

/* Etichetta tecnica in maiuscoletto, stile cruscotto */
.sxp-eyebrow {
  font-family: var(--sxp-font-display);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--sxp-tracking-caps);
  text-transform: uppercase;
  color: var(--sxp-accent-text);
}

/* Linea racing: sotto i titoli di sezione o in testa alle card */
.sxp-stripe { position: relative; }
.sxp-stripe::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 2.5rem;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--sxp-accent) 0 70%, var(--sxp-ink) 70% 100%);
}

/* Titoli di sezione Hummingbird (home, prodotti correlati) */
.section-title {
  --section-title-title-color: var(--sxp-ink);
  --section-title-border-bottom: 0;
}
.section-title__title,
.featured-products .h2, .products-section-title {
  font-family: var(--sxp-font-display);
  letter-spacing: var(--sxp-tracking-tight);
}


/* -----------------------------------------------------------------------------
   05 · BOTTONI  →  tutti pill
   ----------------------------------------------------------------------------- */
.btn {
  --bs-btn-border-radius: var(--sxp-radius-pill);
  --bs-btn-padding-x: 1.375rem;
  --bs-btn-padding-y: .625rem;
  --bs-btn-font-family: var(--sxp-font-display);
  --bs-btn-font-weight: 600;
  --bs-btn-font-size: .9375rem;
  --bs-btn-line-height: 1.25;
  --bs-btn-box-shadow: none;
  --bs-btn-focus-box-shadow: var(--sxp-ring);
  letter-spacing: -.005em;
  transition: background-color var(--sxp-dur) var(--sxp-ease), border-color var(--sxp-dur) var(--sxp-ease),
              color var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease), transform .12s var(--sxp-ease);
}
.btn:active:not(:disabled) { transform: scale(.98); }
.btn-with-icon { gap: .5rem; }
.btn-with-icon .material-icons { font-size: 1.25rem; }

.btn-lg { --bs-btn-padding-y: .875rem; --bs-btn-padding-x: 1.75rem; --bs-btn-font-size: 1rem; }
.btn-sm { --bs-btn-padding-y: .375rem; --bs-btn-padding-x: 1rem; --bs-btn-font-size: .8125rem; }

/* Primario: racing red */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--sxp-accent-strong);
  --bs-btn-border-color: var(--sxp-accent-strong);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--sxp-accent-hover);
  --bs-btn-hover-border-color: var(--sxp-accent-hover);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--sxp-accent-hover);
  --bs-btn-active-border-color: var(--sxp-accent-hover);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #c9cdd2;
  --bs-btn-disabled-border-color: #c9cdd2;
  --bs-btn-focus-shadow-rgb: var(--sxp-accent-rgb);
  box-shadow: 0 8px 20px -10px rgba(var(--sxp-accent-rgb), .7);
}
.btn-primary:hover { box-shadow: 0 10px 24px -10px rgba(var(--sxp-accent-rgb), .85); }
.btn-primary:disabled, .btn-primary.disabled { box-shadow: none; }

/* Secondario / scuro: carbonio */
.btn-secondary, .btn-dark {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--sxp-ink);
  --bs-btn-border-color: var(--sxp-ink);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--sxp-ink-2);
  --bs-btn-hover-border-color: var(--sxp-ink-2);
  --bs-btn-active-bg: var(--sxp-ink-2);
  --bs-btn-active-border-color: var(--sxp-ink-2);
  --bs-btn-focus-shadow-rgb: var(--sxp-ink-rgb);
}

/* Outline: bordo carbonio, si riempie in hover */
.btn-outline-primary, .btn-outline-secondary, .btn-outline-dark {
  --bs-btn-color: var(--sxp-ink);
  --bs-btn-bg: var(--sxp-surface);
  --bs-btn-border-color: var(--sxp-line-strong);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--sxp-ink);
  --bs-btn-hover-border-color: var(--sxp-ink);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--sxp-ink);
  --bs-btn-active-border-color: var(--sxp-ink);
  --bs-btn-disabled-color: var(--sxp-muted);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--sxp-line);
  --bs-btn-focus-shadow-rgb: var(--sxp-ink-rgb);
}

/* Terziario / light: vetro */
.btn-tertiary, .btn-light {
  --bs-btn-color: var(--sxp-ink);
  --bs-btn-bg: rgba(255, 255, 255, .7);
  --bs-btn-border-color: var(--sxp-line);
  --bs-btn-hover-color: var(--sxp-ink);
  --bs-btn-hover-bg: #fff;
  --bs-btn-hover-border-color: var(--sxp-line-strong);
}

.btn-link {
  --bs-btn-color: var(--sxp-ink);
  --bs-btn-hover-color: var(--sxp-accent-text);
  --bs-btn-active-color: var(--sxp-accent-text);
  --bs-btn-font-family: var(--sxp-font-body);
  --bs-btn-font-weight: 500;
  text-decoration: none;
}

.btn-close { border-radius: var(--sxp-radius-pill); }
.btn-close:focus { box-shadow: var(--sxp-ring); }


/* -----------------------------------------------------------------------------
   06 · FORM E INPUT QUANTITÀ
   ----------------------------------------------------------------------------- */
.form-control,
.form-select {
  min-height: var(--sxp-control-h);
  padding: .625rem 1rem;
  font-size: 1rem; /* 16px: evita lo zoom automatico su iOS */
  color: var(--sxp-ink);
  background-color: var(--sxp-surface);
  border: 1px solid var(--sxp-line-strong);
  border-radius: var(--sxp-radius-sm);
  transition: border-color var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease);
}
.form-select { padding-right: 2.5rem; }
.form-control::placeholder { color: #8a9097; }
.form-control:hover, .form-select:hover { border-color: rgba(var(--sxp-ink-rgb), .3); }
.form-control:focus, .form-select:focus {
  border-color: var(--sxp-accent);
  box-shadow: var(--sxp-ring);
  outline: 0;
}
.form-control.is-invalid, .was-validated .form-control:invalid { border-color: var(--sxp-accent-text); }
.form-control.is-valid, .was-validated .form-control:valid { border-color: var(--sxp-success); }

.form-label, label.required, .form-group > label {
  font-weight: 600;
  font-size: .875rem;
  color: var(--sxp-ink);
}

.form-check-input {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: .125rem;
  border: 1.5px solid var(--sxp-line-strong);
}
.form-check-input:checked {
  background-color: var(--sxp-ink);
  border-color: var(--sxp-ink);
}
.form-check-input:focus { border-color: var(--sxp-accent); box-shadow: var(--sxp-ring); }
.form-switch .form-check-input { width: 2.5rem; border-radius: var(--sxp-radius-pill); }
.form-switch .form-check-input:checked { background-color: var(--sxp-accent-strong); border-color: var(--sxp-accent-strong); }

.input-group > .form-control:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }

/* Input quantità (components/qty-input.tpl) → pill unica con +/- tondi */
.quantity-button .input-group {
  align-items: center;
  height: var(--sxp-control-h-lg);
  padding: .3125rem;
  margin-bottom: 0 !important;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line-strong);
  border-radius: var(--sxp-radius-pill);
}
.quantity-button .input-group > .btn {
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  --bs-btn-bg: var(--sxp-surface-2);
  --bs-btn-hover-bg: var(--sxp-ink);
  --bs-btn-hover-color: #fff;
  --bs-btn-color: var(--sxp-ink);
  flex: 0 0 auto;
  width: calc(var(--sxp-control-h-lg) - .75rem);
  height: calc(var(--sxp-control-h-lg) - .75rem);
  border-radius: 50% !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.quantity-button .input-group > .btn .material-icons { font-size: 1.125rem; }
.quantity-button .input-group > .form-control {
  min-height: 0;
  height: 100%;
  width: 3rem;
  min-width: 3rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
  font-family: var(--sxp-font-display);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.quantity-button .input-group:focus-within { border-color: var(--sxp-accent); box-shadow: var(--sxp-ring); }

/* Dropdown */
.dropdown-menu {
  --bs-dropdown-border-color: var(--sxp-line);
  --bs-dropdown-border-radius: var(--sxp-radius-md);
  --bs-dropdown-box-shadow: var(--sxp-shadow-lg);
  --bs-dropdown-link-hover-bg: var(--sxp-surface-2);
  --bs-dropdown-link-active-bg: var(--sxp-ink);
  --bs-dropdown-link-active-color: #fff;
  --bs-dropdown-item-border-radius: var(--sxp-radius-xs);
  --bs-dropdown-padding-x: .375rem;
  --bs-dropdown-padding-y: .375rem;
  box-shadow: var(--bs-dropdown-box-shadow);
}
.dropdown-item { border-radius: var(--sxp-radius-xs); padding: .5rem .75rem; }


/* -----------------------------------------------------------------------------
   07 · BADGE, FLAG, ALERT, TOAST
   ----------------------------------------------------------------------------- */
.badge {
  --bs-badge-border-radius: var(--sxp-radius-pill);
  --bs-badge-padding-x: .625rem;
  --bs-badge-padding-y: .3125rem;
  --bs-badge-font-weight: 600;
  font-family: var(--sxp-font-display);
  letter-spacing: .01em;
}

/* Flag prodotto (Nuovo, -20%, Pack, Esaurito…) */
.product-flags {
  position: absolute;
  inset: .75rem auto auto .75rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .375rem;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}
.product-flags .badge {
  font-size: .6875rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--sxp-ink);
  background: var(--sxp-glass-bg-strong);
  border: 1px solid var(--sxp-glass-border);
  box-shadow: var(--sxp-shadow-sm);
}
.product-flags .badge.discount,
.product-flags .badge.on-sale { background: var(--sxp-accent-strong); border-color: transparent; color: #fff; }
.product-flags .badge.new { background: var(--sxp-ink); border-color: transparent; color: #fff; }
.product-flags .badge.out_of_stock { color: var(--sxp-muted); }

/* Alert: tinta morbida, niente bordi duri */
.alert {
  --bs-alert-border-radius: var(--sxp-radius-md);
  --bs-alert-padding-x: 1rem;
  --bs-alert-padding-y: .875rem;
  border: 0;
  font-size: .9375rem;
}
.alert-success { --bs-alert-bg: var(--sxp-success-soft); --bs-alert-color: #146b39; }
.alert-warning { --bs-alert-bg: var(--sxp-warning-soft); --bs-alert-color: #7a4800; }
.alert-danger  { --bs-alert-bg: var(--sxp-danger-soft);  --bs-alert-color: #a3211a; }
.alert-info    { --bs-alert-bg: rgba(var(--sxp-ink-rgb), .05); --bs-alert-color: var(--sxp-ink); }

/* Toast (aggiunto al carrello, errori) */
.toast {
  --bs-toast-border-radius: var(--sxp-radius-md);
  --bs-toast-bg: var(--sxp-glass-bg-strong);
  --bs-toast-border-color: var(--sxp-glass-border);
  --bs-toast-box-shadow: var(--sxp-shadow-lg);
  -webkit-backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
}

/* Tooltip / popover */
.tooltip { --bs-tooltip-bg: var(--sxp-ink); --bs-tooltip-border-radius: var(--sxp-radius-xs); }

/* Spinner e loader pagina */
.spinner-border { --bs-spinner-border-width: .15em; }
.page-loader { --page-loader-background: rgba(242, 243, 245, .75); }


/* -----------------------------------------------------------------------------
   08 · HEADER, RICERCA, MENU
   Header già sticky in Hummingbird (.js-sticky-header). Qui diventa vetro.
   ----------------------------------------------------------------------------- */
/* Il vetro sta su uno pseudo-elemento e NON sull'header:
   un backdrop-filter sull'header diventerebbe il contenitore di tutti i suoi
   figli position:fixed (offcanvas menu e ricerca), che finirebbero ritagliati
   dentro l'header invece di coprire lo schermo. */
.header {
  isolation: isolate;
  background-color: transparent;
  border-bottom: 1px solid transparent;
  transition: box-shadow var(--sxp-dur) var(--sxp-ease), border-color var(--sxp-dur) var(--sxp-ease);
}
.header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--header-bg);
  -webkit-backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
  transition: background-color var(--sxp-dur) var(--sxp-ease);
  pointer-events: none;
}
/* Classe aggiunta da custom.js dopo pochi px di scroll */
.header.sxp-is-scrolled {
  --header-bg: rgba(255, 255, 255, .9);
  border-bottom-color: var(--sxp-line);
  box-shadow: 0 10px 30px -18px rgba(var(--sxp-ink-rgb), .35);
}
/* Rete di sicurezza: se un offcanvas resta dentro l'header (JS spento),
   l'header sale sopra il backdrop di Bootstrap (z-index 1040) */
.header:has(.offcanvas.show, .offcanvas.showing) { z-index: 1050; }

/* Skip link: invisibile finché non lo raggiungi con Tab.
   Nascosto con clip (non fuori schermo) così il focus non fa saltare la pagina. */
.header a.sxp-header__skip:not(.dropdown-item):not(.btn) {
  position: absolute;
  top: .5rem;
  left: .5rem;
  z-index: 2000;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  white-space: nowrap;
  clip-path: inset(50%);
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-ink);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}
.header a.sxp-header__skip:not(.dropdown-item):not(.btn):focus {
  width: auto;
  height: auto;
  padding: .625rem 1.125rem;
  clip-path: none;
  color: #fff;
  box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--sxp-accent);
  outline: 0;
}

/* Banner sopra l'header */
.sxp-header__banner { background: var(--sxp-ink); }
.sxp-header__banner img { display: block; width: 100%; height: auto; }

/* Barra superiore carbonio: contatti | messaggio | lingua, valuta */
.header-top {
  background-color: var(--header-top-bg);
  color: var(--header-top-color);
  font-size: .8125rem;
  border-bottom: 0;
}
.sxp-header__top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 2.25rem;
}
.sxp-header__top-left,
.sxp-header__top-right {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: nowrap;
  min-width: 0;
}
.sxp-header__top-right { justify-content: flex-end; }
.sxp-header__top-center {
  flex: 1;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #fff;
  font-weight: 500;
}
.header-top .contact-link span { color: #fff; font-weight: 500; }
.header .header-top a:not(.dropdown-item):not(.btn) { color: var(--header-top-color); text-decoration: none; }
.header .header-top a:not(.dropdown-item):not(.btn):hover { color: #fff; }
.header-top .form-select {
  min-height: 0;
  height: 1.75rem;
  width: auto;
  padding: 0 1.5rem 0 .625rem;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--sxp-radius-pill);
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-opacity='.7' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-position: right .5rem center;
  background-size: 10px 10px;
  color: var(--header-top-color);
  font-size: .8125rem;
  cursor: pointer;
}
.header-top .form-select:hover { border-color: rgba(255, 255, 255, .35); color: #fff; }
.header-top .form-select:focus { border-color: var(--sxp-accent); box-shadow: 0 0 0 3px rgba(var(--sxp-accent-rgb), .35); }
.header-top .form-select option { color: var(--sxp-ink); background: #fff; }
.header-top .dropdown-toggle,
.header-top .btn {
  --bs-btn-color: var(--header-top-color);
  --bs-btn-hover-color: #fff;
  --bs-btn-font-family: var(--sxp-font-body);
  --bs-btn-font-weight: 500;
  --bs-btn-font-size: .8125rem;
  color: var(--header-top-color);
  background-color: transparent;
  min-height: 0;
}
.header-top .material-icons { font-size: 1.125rem; }
/* Account e carrello, se lasciati in displayNav2, restano leggibili sul carbonio */
.header-top .header-block__action-btn { min-height: 1.75rem; padding: .125rem .5rem; }
.header-top .header-block__action-btn:hover { background: rgba(255, 255, 255, .08); }
.header-top .header-block__action-btn:hover .material-icons { color: #fff; }

/* Riga principale ------------------------------------------------------------
   Ordine deciso qui, indipendente dall'ordine dei moduli nel BO.
   Mobile:  [burger] [logo ........] [cerca] [account] [carrello]
   Tablet:  [burger] [logo] [....... ricerca] [account] [carrello]
   Desktop: [logo] [menu ...........] [ricerca] [account] [carrello]        */
.header-bottom { border-bottom: var(--header-bottom-border-bottom); }
.sxp-header__row {
  display: flex;
  align-items: center;
  gap: .25rem;
  min-height: 4.5rem;
}
.sxp-header__row > * {
  order: 40;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}
.sxp-header__row > .main-menu { order: 5 !important; }
.sxp-header__logo { order: 10 !important; margin-right: auto !important; padding-left: .25rem; }
.sxp-header__row > #_desktop_search { order: 30 !important; }
.sxp-header__search-toggle { order: 30 !important; }
.sxp-header__row > #_desktop_user_info,
.sxp-header__row > #_mobile_user_info { order: 50 !important; }
.sxp-header__row > #_desktop_cart,
.sxp-header__row > #_mobile_cart { order: 60 !important; }

/* Il responsive toggler di Hummingbird sposta l'innerHTML da _desktop_* a _mobile_*.
   Se i moduli sono già nella riga principale e il loro contenuto è ancora lì,
   il segnaposto è un doppione: lo nascondiamo. Dopo lo spostamento il blocco
   _desktop_* resta vuoto e il segnaposto (ora pieno) torna visibile. */
.sxp-header__row:has(> #_desktop_user_info:not(:empty)) > #_mobile_user_info,
.sxp-header__row:has(> #_desktop_cart:not(:empty)) > #_mobile_cart { display: none !important; }
.sxp-header__row > [id^="_desktop_"]:empty { display: none !important; }

@media (min-width: 768px) {
  .sxp-header__row { gap: .5rem; }
  .sxp-header__logo { margin-right: 1rem !important; }
  .sxp-header__row > #_desktop_search { margin-left: auto !important; }
}
@media (min-width: 1200px) {
  .sxp-header__row > .main-menu {
    order: 20 !important;
    flex: 1 1 auto;
    min-width: 0;
    align-self: stretch; /* niente height:100%: impedirebbe lo stretch */
  }
  .sxp-header__logo { padding-left: 0; margin-right: 1.5rem !important; }
  .sxp-header__row > #_desktop_search { margin-left: 0 !important; flex: 0 1 18rem; min-width: 12rem; }
  .sxp-header__row #_desktop_search #search_widget { min-width: 0; }
  /* Le voci del menu non vanno a capo: se sono troppe, ci penserà il mega menu */
  .sxp-header__row .main-menu__tree { flex-wrap: nowrap; white-space: nowrap; }
  /* Altezza piena: voci centrate e area di hover continua fino al pannello */
  .sxp-header__row > .main-menu > .js-menu-desktop { height: 100%; }
}
/* Etichette "Accedi" / "Carrello": solo quando c'è spazio, sotto restano le icone */
@media (max-width: 1399.98px) {
  .sxp-header__row .header-block__title { display: none !important; }
}
@media (min-width: 1400px) {
  .sxp-header__row > #_desktop_search { flex-basis: 20rem; }
}

/* Logo */
.sxp-header__h1 { margin: 0; font-size: inherit; line-height: 1; }
.sxp-header__logo a { display: inline-flex; align-items: center; }
.sxp-header__logo img,
.header-bottom .logo img { display: block; max-height: 2.5rem; width: auto; }
@media (max-width: 767.98px) {
  .sxp-header__logo img { max-height: 2rem; }
  .sxp-header__row { min-height: 3.75rem; }
}
.sxp-header__wordmark {
  font-family: var(--sxp-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -.04em;
  color: var(--sxp-ink) !important;
  text-decoration: none;
}
.sxp-header__wordmark::after { content: "."; color: var(--sxp-accent); }

/* Segnaposto mobile: stesse dimensioni del bottone vero, niente salto al caricamento */
.sxp-header__placeholder .header-block__action-btn { pointer-events: none; }

/* Ricerca mobile: foglio vetro dall'alto */
.sxp-header__search-canvas {
  --bs-offcanvas-height: auto;
  border-bottom: 1px solid var(--sxp-glass-border) !important;
}
.sxp-header__search-canvas-header {
  gap: .5rem;
  padding: calc(.75rem + env(safe-area-inset-top, 0px)) 1rem .75rem !important;
}
.sxp-header__search-slot { flex: 1; min-width: 0; }
.sxp-header__search-close {
  --bs-btn-padding-x: .5rem;
  flex: 0 0 auto;
  color: var(--sxp-ink);
}
.sxp-header__search-canvas .search-widgets__dropdown { left: 0 !important; right: 0 !important; width: auto !important; }

/* Icone azione (account, carrello) → pulsanti tondi */
.header-block__action-btn {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  min-height: 2.75rem;
  padding: .375rem .875rem;
  border-radius: var(--sxp-radius-pill);
  transition: background-color var(--sxp-dur) var(--sxp-ease);
  text-decoration: none;
}
.header-block__action-btn:hover { background: rgba(var(--sxp-ink-rgb), .06); }
/* Hummingbird colora le icone con --header-top-color (pensato per fondo bianco):
   con la barra top carbonio diventerebbero bianche anche nella riga principale */
.header-bottom .header-block__action-btn,
.header-bottom .header-block__action-btn:hover,
.header-bottom .header-block__action-btn:focus { color: var(--sxp-ink); }
.header-top .header-block__action-btn,
.header-top .header-block__action-btn:hover,
.header-top .header-block__action-btn:focus { color: var(--header-top-color); }
.header .header-block__action-btn:hover .material-icons { color: var(--sxp-ink); }
.header-block__title { font-weight: 500; font-size: .875rem; }
@media (max-width: 767.98px) {
  .header-block__action-btn { min-height: 2.75rem; min-width: 2.75rem; padding: .5rem; justify-content: center; }
  .header-block__badge { position: absolute; top: .125rem; right: .125rem; }
}
.header-block__icon { font-size: 1.375rem; }
.header-block__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 .375rem;
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-ink);
  color: #fff;
  font-family: var(--sxp-font-display);
  font-size: .6875rem;
  font-weight: 700;
  line-height: 1;
}
.blockcart.header-block--active .header-block__badge { background: var(--sxp-accent-strong); }
.blockcart.inactive .header-block__badge { background: rgba(var(--sxp-ink-rgb), .25); }

/* Ricerca → pill con lente a sinistra e "x" solo quando c'è testo.
   Hummingbird 1.x posiziona le icone con un selettore (.header__bottom) che non
   corrisponde al markup reale: qui le posizioniamo noi, con l'ID per la specificità. */
#search_widget { position: relative; width: 100%; }
#search_widget form { position: relative; display: flex; align-items: center; width: 100%; }
#search_widget input.js-search-input {
  width: 100%;
  height: 2.75rem;
  padding: 0 2.75rem 0 2.75rem;
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-pill);
  background: rgba(255, 255, 255, .8);
  font-size: 1rem;
  color: var(--sxp-ink);
  -webkit-appearance: none;
          appearance: none;
  transition: border-color var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease), background-color var(--sxp-dur) var(--sxp-ease);
}
#search_widget input.js-search-input::-webkit-search-cancel-button { display: none; }
#search_widget input.js-search-input::placeholder { color: #8a9097; }
#search_widget input.js-search-input:focus {
  outline: 0;
  background: #fff;
  border-color: var(--sxp-accent);
  box-shadow: var(--sxp-ring);
}
#search_widget .material-icons.search,
#search_widget .material-icons.clear {
  position: absolute;
  top: 50%;
  z-index: 2;
  font-size: 1.25rem;
  color: var(--sxp-muted);
  transform: translateY(-50%);
}
#search_widget .material-icons.search { left: 1rem; right: auto; pointer-events: none; }
#search_widget .material-icons.clear { right: 1rem; left: auto; cursor: pointer; }
#search_widget input.js-search-input:placeholder-shown ~ .clear { display: none; }
@media (min-width: 768px) {
  #_desktop_search #search_widget { min-width: 16rem; }
}
@media (min-width: 1200px) {
  #_desktop_search #search_widget { min-width: 20rem; }
}
.search-widgets__dropdown {
  border: 1px solid var(--sxp-glass-border) !important;
  border-radius: var(--sxp-radius-lg) !important;
  background: var(--sxp-glass-bg-strong) !important;
  -webkit-backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
  box-shadow: var(--sxp-shadow-lg) !important;
  top: calc(100% + .5rem) !important;
}
.search-widgets__results { padding: .5rem; scrollbar-width: thin; }
.search-result__link {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .5rem;
  border-radius: var(--sxp-radius-sm);
  text-decoration: none;
}
.search-result__link:hover { background: rgba(var(--sxp-ink-rgb), .05); }
.search-result__image {
  width: 3rem;
  height: 3rem;
  object-fit: contain;
  border-radius: var(--sxp-radius-xs);
  border: 1px solid var(--sxp-line);
  background: #fff;
}
.search-result__name { margin: 0; font-weight: 500; color: var(--sxp-ink); }

/* Menu principale (ps_mainmenu): voci pill + pannello vetro.
   Verrà sostituito dal modulo sxp_megamenu che userà le stesse classi sxp. */
.main-menu__tree__item { padding: 0 .125rem; }
.main-menu__tree__link,
.header .main-menu__tree__link:not(.dropdown-item) {
  display: inline-flex;
  align-items: center;
  padding: .5rem .875rem;
  border-radius: var(--sxp-radius-pill);
  font-family: var(--sxp-font-display);
  font-size: .9375rem;
  font-weight: 500;
  color: var(--sxp-ink);
  text-decoration: none;
  transition: background-color var(--sxp-dur) var(--sxp-ease), color var(--sxp-dur) var(--sxp-ease);
}
.main-menu__tree__item:hover > .main-menu__tree__link,
.main-menu__tree__item.current > .main-menu__tree__link {
  background: rgba(var(--sxp-ink-rgb), .06);
  color: var(--sxp-ink);
}
/* Voce corrente: trattino racing sotto il testo */
.main-menu__tree__link { position: relative; }
.main-menu__tree__item.current > .main-menu__tree__link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .25rem;
  width: 1rem;
  height: 2px;
  border-radius: 2px;
  display: block;
  background: var(--sxp-accent);
  border: 0;
  margin: 0;
  transform: translateX(-50%);
}
.main-menu__tree__link.dropdown-toggle::after { display: none; }
.main-menu .menu-container {
  left: 50% !important;
  right: auto !important;
  width: min(1140px, calc(100vw - 2rem));
  transform: translateX(-50%);
  margin-top: .5rem;
  border: 1px solid var(--sxp-glass-border);
  border-radius: var(--sxp-radius-xl);
  background: var(--sxp-glass-bg-strong);
  -webkit-backdrop-filter: blur(24px) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(24px) saturate(var(--sxp-glass-sat));
  box-shadow: var(--sxp-shadow-lg) !important;
  padding: 1.75rem 0;
}
/* Ponte invisibile sul margine: il mouse passa dalla voce al pannello senza chiuderlo */
.main-menu .menu-container::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -.75rem;
  height: .75rem;
}
.main-menu .menu-container a[data-depth="1"] {
  font-family: var(--sxp-font-display);
  font-weight: 600;
  color: var(--sxp-ink);
}
.main-menu .menu-container .dropdown-item {
  white-space: normal;
  color: var(--sxp-muted);
  background: transparent;
}
.main-menu .menu-container .dropdown-item:hover { color: var(--sxp-accent-text); background: transparent; }

/* Menu mobile */
.main-menu__offcanvas .menu__list a,
.menu--mobile a {
  font-family: var(--sxp-font-display);
  font-weight: 500;
  color: var(--sxp-ink);
}


/* -----------------------------------------------------------------------------
   09 · BREADCRUMB E TITOLI PAGINA
   ----------------------------------------------------------------------------- */
.breadcrumb__wrapper { padding: 1rem 0 0; margin-bottom: 0; background: transparent; }
.breadcrumb {
  --bs-breadcrumb-divider-color: rgba(var(--sxp-ink-rgb), .3);
  --bs-breadcrumb-item-active-color: var(--sxp-ink);
  --bs-breadcrumb-font-size: .8125rem;
  margin-bottom: 0;
}
.breadcrumb-link, .breadcrumb a { color: var(--sxp-muted); text-decoration: none; }
.breadcrumb-link:hover, .breadcrumb a:hover { color: var(--sxp-ink); }

.page-title-section { margin-bottom: 1.5rem !important; }


/* -----------------------------------------------------------------------------
   10 · LISTING
   ----------------------------------------------------------------------------- */
/* Barra "N prodotti · Ordina per" */
.products-selection { margin-bottom: 1.25rem; }
.total-products, .total-products p { color: var(--sxp-muted); font-size: .875rem; margin-bottom: 0; }
.products-sort-order .select-title {
  --bs-btn-bg: var(--sxp-surface);
  --bs-btn-border-color: var(--sxp-line-strong);
  --bs-btn-hover-border-color: var(--sxp-ink);
  --bs-btn-font-family: var(--sxp-font-body);
  --bs-btn-font-weight: 500;
  --bs-btn-font-size: .875rem;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--bs-btn-border-color);
}
.sort-by { color: var(--sxp-muted); font-size: .875rem; }
.dropdown-item.select-list.current { font-weight: 600; color: var(--sxp-ink); background: var(--sxp-surface-2); }

/* Filtri (ps_facetedsearch) dentro colonna sinistra → card bianca */
#left-column .search-filters,
.search-filters {
  padding: 1.25rem;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
}
.offcanvas .search-filters { padding: 0; border: 0; background: transparent; }
.search-filters-title, .left-block__title {
  font-family: var(--sxp-font-display);
  font-size: 1.125rem;
  font-weight: 600;
}
.search-filters .accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: var(--sxp-line);
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-active-bg: transparent;
  --bs-accordion-active-color: var(--sxp-ink);
}
.search-filters .accordion-button {
  font-family: var(--sxp-font-display);
  font-size: .9375rem;
  font-weight: 600 !important;
  color: var(--sxp-ink);
}
.search-filters .form-check { min-height: 2rem; display: flex; align-items: center; gap: .5rem; }
.search-filters .form-check-label { color: var(--sxp-text); font-size: .9375rem; }
.search-filters .form-check-label .magnitude { color: var(--sxp-muted); font-size: .8125rem; }
.search-filters .facet-label.active, .search-filters-label.active { font-weight: 600; color: var(--sxp-ink); }
.search-filters .color, .color-variants .color {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  border: 1px solid rgba(var(--sxp-ink-rgb), .15);
  box-shadow: inset 0 0 0 2px #fff;
}
.search-filters .color.active { outline: 2px solid var(--sxp-ink); outline-offset: 2px; }

/* Slider prezzo */
.faceted-slider .noUi-connect, .noUi-connect { background: var(--sxp-accent); }
.noUi-handle { border-radius: 50%; border: 2px solid var(--sxp-ink); box-shadow: var(--sxp-shadow-md); }

/* Filtri attivi → chip */
.active_filters { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.25rem; }
.active-filter-title { margin: 0 .25rem 0 0; font-size: .875rem; color: var(--sxp-muted); }
.active_filters ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.active_filters .filter-block,
.search-filters .js-search-link.rounded-pill {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  min-height: 2rem;
  padding: .25rem .375rem .25rem .875rem;
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-ink) !important;
  color: #fff !important;
  font-size: .8125rem;
  font-weight: 500;
}
.active_filters .filter-block .close,
.active_filters .filter-block .material-icons,
.search-filters .js-search-link.rounded-pill .material-icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, .14);
  color: #fff;
  font-size: 1rem;
}
.js-search-filters-clear-all {
  --bs-btn-font-family: var(--sxp-font-body);
  --bs-btn-font-weight: 500;
  --bs-btn-font-size: .8125rem;
  color: var(--sxp-accent-text) !important;
}

/* Paginazione → cerchi */
.pagination {
  --bs-pagination-border-width: 0;
  --bs-pagination-bg: transparent;
  --bs-pagination-color: var(--sxp-ink);
  --bs-pagination-hover-bg: var(--sxp-surface);
  --bs-pagination-hover-color: var(--sxp-ink);
  --bs-pagination-active-bg: var(--sxp-ink);
  --bs-pagination-active-color: #fff;
  --bs-pagination-focus-box-shadow: var(--sxp-ring);
  --bs-pagination-disabled-bg: transparent;
  gap: .25rem;
}
.pagination .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 .75rem;
  border-radius: var(--sxp-radius-pill) !important;
  font-family: var(--sxp-font-display);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.pagination-number { color: var(--sxp-muted); font-size: .875rem; }

/* Sottocategorie → tile */
.subcategory__wrapper { margin-bottom: 1rem; }
.subcategory {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  transition: transform var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease);
}
.subcategory:hover { transform: translateY(-2px); box-shadow: var(--sxp-shadow-md); }
.subcategory__image { background: var(--sxp-well); }
.subcategory__image img { mix-blend-mode: var(--sxp-img-blend); }
.subcategory__name {
  padding: .875rem 1rem;
  font-family: var(--sxp-font-display);
  font-weight: 600;
  color: var(--sxp-ink);
}

/* Albero categorie colonna sinistra */
.category-tree a { color: var(--sxp-text); text-decoration: none; }
.category-tree a:hover, .category-tree .current > a { color: var(--sxp-accent-text); }


/* -----------------------------------------------------------------------------
   11 · MINIATURA PRODOTTO  (templates/catalog/_partials/miniatures/product.tpl)
   Card: pozzetto foto con flag e anteprima · nome · varianti · prezzo + carrello rapido
   ----------------------------------------------------------------------------- */
.product-miniature { margin-bottom: 1.5rem; }
.product-miniature .sxp-card__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  padding: .5rem;
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  background: var(--sxp-surface);
  box-shadow: var(--sxp-shadow-sm);
  transition: transform var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease), border-color var(--sxp-dur) var(--sxp-ease);
}
.product-miniature .sxp-card__inner:hover,
.product-miniature .sxp-card__inner:focus-within {
  filter: none;
  transform: translateY(-3px);
  border-color: rgba(var(--sxp-ink-rgb), .14);
  box-shadow: var(--sxp-shadow-md);
}

/* Foto */
.sxp-card__media { position: relative; }
.sxp-card__media-link { display: block; }
.product-miniature .product-miniature__image-container {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  padding: 1rem;
  border-radius: calc(var(--sxp-radius-lg) - .5rem);
  background: var(--sxp-well);
  overflow: hidden;
}
.product-miniature .product-miniature__link:hover .product-miniature__image-container {
  border-radius: calc(var(--sxp-radius-lg) - .5rem);
}
.product-miniature .product-miniature__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: var(--sxp-img-blend);
  transition: transform .5s var(--sxp-ease);
}
.product-miniature .sxp-card__inner:hover .product-miniature__image { transform: scale(1.04); }
.product-miniature .product-flags { inset: .75rem auto auto .75rem; }

/* Anteprima: pill vetro che compare in basso sulla foto (sempre visibile su touch) */
.sxp-card__quickview {
  position: absolute;
  left: 50%;
  bottom: .75rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .5rem .875rem;
  border: 1px solid var(--sxp-glass-border);
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-glass-bg-strong);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  box-shadow: var(--sxp-shadow-md);
  color: var(--sxp-ink);
  font-family: var(--sxp-font-display);
  font-size: .8125rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  opacity: 0;
  transform: translate(-50%, .5rem);
  transition: opacity var(--sxp-dur) var(--sxp-ease), transform var(--sxp-dur) var(--sxp-ease), background-color var(--sxp-dur) var(--sxp-ease), color var(--sxp-dur) var(--sxp-ease);
}
.sxp-card__quickview .material-icons { font-size: 1.125rem; }
.sxp-card__inner:hover .sxp-card__quickview,
.sxp-card__quickview:focus-visible { opacity: 1; transform: translate(-50%, 0); }
.sxp-card__quickview:hover { background: var(--sxp-ink); color: #fff; }
@media (hover: none) {
  /* Touch: solo l'icona, in alto a destra */
  .sxp-card__quickview {
    left: auto;
    right: .625rem;
    top: .625rem;
    bottom: auto;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    justify-content: center;
    opacity: 1;
    transform: none;
  }
  .sxp-card__quickview-label { display: none; }
}

/* Testi */
.product-miniature .sxp-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: .375rem;
  padding: .875rem .5rem .375rem;
  z-index: auto;
}
.product-miniature .sxp-card__title {
  margin: 0;
  font-family: var(--sxp-font-body);
  font-size: .9375rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
}
.sxp-card__title-link {
  color: var(--sxp-ink);
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Tutta la card cliccabile, ma un solo link per gli screen reader */
.sxp-card__title-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sxp-card__title-link:focus-visible { outline: none; }
.sxp-card__inner:has(.sxp-card__title-link:focus-visible) { outline: 2px solid var(--sxp-accent); outline-offset: 2px; }
.sxp-card__variants, .sxp-card__buy, .sxp-card__details, .product-list-reviews { position: relative; z-index: 2; }
.product-miniature .product-list-reviews { padding: 0; min-height: 0; }

/* Prezzo + carrello rapido */
.sxp-card__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: .5rem;
  margin-top: auto;
  padding-top: .375rem;
}
.product-miniature .sxp-card__prices {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
  margin: 0;
}
.product-miniature .sxp-card__price {
  margin: 0 !important;
  font-family: var(--sxp-font-display);
  font-size: 1.1875rem;
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--sxp-ink);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.product-miniature .sxp-card__price.is-discounted { color: var(--sxp-accent-text); }
.product-miniature .sxp-card__price-old { color: var(--sxp-muted); font-size: .8125rem; text-decoration: line-through; }
.sxp-card__buy { margin: 0; flex: 0 0 auto; }
.sxp-card__footer { flex-wrap: wrap; }
.product-miniature .sxp-card__prices { flex: 1 1 auto; }
.sxp-card__details { white-space: nowrap; }
.sxp-card__add {
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
}
.sxp-card__add .material-icons { font-size: 1.25rem; }
.sxp-card__details { flex: 0 0 auto; }

/* Varianti colore in miniatura */
.variant-links { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.variant-links a.color, .variant-links a.texture,
.variant-links a { display: inline-block; width: 1rem; height: 1rem; border-radius: 50%; border: 1px solid rgba(var(--sxp-ink-rgb), .15); background-size: cover; }
.variant-links .count { font-size: .75rem; color: var(--sxp-muted); }

@media (max-width: 575.98px) {
  .product-miniature .sxp-card__inner { padding: .375rem; }
  .product-miniature .product-miniature__image-container { padding: .625rem; }
  .product-miniature .sxp-card__body { padding: .625rem .375rem .25rem; }
  .product-miniature .sxp-card__title { font-size: .875rem; }
  .product-miniature .sxp-card__price { font-size: 1rem; }
  .sxp-card__add { width: 2.5rem; height: 2.5rem; }
  .sxp-card__details { width: 100%; justify-content: center; }
}


/* -----------------------------------------------------------------------------
   12 · PAGINA PRODOTTO
   ----------------------------------------------------------------------------- */
/* Galleria */
.product__images .carousel-inner {
  position: relative;
  border-radius: var(--sxp-radius-xl);
  background: var(--sxp-well);
  overflow: hidden;
}
.product__images .carousel-item picture { display: block; aspect-ratio: 1 / 1; padding: clamp(1rem, 4vw, 2.5rem); }
.product__images .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: var(--sxp-img-blend);
}
.product__images .product-flags { inset: 1.25rem auto auto 1.25rem; }

/* Frecce carosello e lente → tondi vetro */
.product__images .carousel-control-prev,
.product__images .carousel-control-next {
  top: 50%;
  bottom: auto;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0 1rem;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--sxp-glass-bg-strong);
  border: 1px solid var(--sxp-glass-border);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  box-shadow: var(--sxp-shadow-md);
  opacity: 0;
  transition: opacity var(--sxp-dur) var(--sxp-ease), background-color var(--sxp-dur) var(--sxp-ease);
}
.product__images:hover .carousel-control-prev,
.product__images:hover .carousel-control-next,
.product__images .carousel-control-prev:focus-visible,
.product__images .carousel-control-next:focus-visible { opacity: 1; }
.product__images .carousel-control-prev-icon,
.product__images .carousel-control-next-icon { width: 1rem; height: 1rem; filter: invert(1) grayscale(1) brightness(.1); }
@media (hover: none) {
  .product__images .carousel-control-prev,
  .product__images .carousel-control-next { opacity: 1; }
}
.product__images__modal-opener {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--sxp-glass-bg-strong);
  border: 1px solid var(--sxp-glass-border);
  box-shadow: var(--sxp-shadow-md);
  color: var(--sxp-ink);
  cursor: zoom-in;
}

/* Galleria: foto cliccabile per lo zoom, contatore, miniature in striscia scorrevole */
.sxp-gallery__stage { position: relative; }
.sxp-gallery__picture { cursor: zoom-in; }
.sxp-gallery__zoom { border: 0; padding: 0; }
.sxp-gallery__counter {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 3;
  padding: .25rem .75rem;
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-glass-bg-strong);
  border: 1px solid var(--sxp-glass-border);
  box-shadow: var(--sxp-shadow-sm);
  font-family: var(--sxp-font-display);
  font-size: .8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--sxp-ink);
  pointer-events: none;
}
.sxp-gallery__stage .carousel-control-prev,
.sxp-gallery__stage .carousel-control-next {
  position: absolute;
  top: 50%;
  bottom: auto;
  z-index: 3;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0 1rem;
  transform: translateY(-50%);
  border: 1px solid var(--sxp-glass-border);
  border-radius: 50%;
  background: var(--sxp-glass-bg-strong);
  box-shadow: var(--sxp-shadow-md);
  opacity: 0;
  transition: opacity var(--sxp-dur) var(--sxp-ease);
}
.sxp-gallery__stage:hover .carousel-control-prev,
.sxp-gallery__stage:hover .carousel-control-next,
.sxp-gallery__stage .carousel-control-prev:focus-visible,
.sxp-gallery__stage .carousel-control-next:focus-visible { opacity: 1; }
.sxp-gallery__stage .carousel-control-prev-icon,
.sxp-gallery__stage .carousel-control-next-icon { width: 1rem; height: 1rem; filter: invert(1) grayscale(1) brightness(.1); }
@media (hover: none) {
  .sxp-gallery__stage .carousel-control-prev,
  .sxp-gallery__stage .carousel-control-next { display: none; } /* su touch si scorre col dito */
}

.thumbnails__container.sxp-gallery__thumbs { margin-top: .75rem; }
.sxp-gallery__thumbs-list {
  display: flex;
  gap: .5rem;
  margin: 0;
  padding: .125rem .125rem .25rem;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.sxp-gallery__thumb {
  flex: 0 0 auto;
  width: clamp(4rem, 14vw, 5.5rem);
  scroll-snap-align: start;
  cursor: pointer;
  border-radius: var(--sxp-radius-md);
}
.sxp-gallery__thumb picture {
  display: block;
  aspect-ratio: 1 / 1;
  padding: .375rem;
  border-radius: var(--sxp-radius-md);
  background: var(--sxp-well);
  border: 2px solid transparent;
  transition: border-color var(--sxp-dur) var(--sxp-ease);
}
.sxp-gallery__thumb img,
.thumbnails__container .thumbnail.active img { width: 100%; height: 100%; object-fit: contain; border: 0; mix-blend-mode: var(--sxp-img-blend); }
.sxp-gallery__thumb:hover picture { border-color: var(--sxp-line-strong); }
.sxp-gallery__thumb.active picture,
.sxp-gallery__thumb[aria-current=true] picture { border-color: var(--sxp-ink); }
.sxp-gallery__thumb:focus-visible { outline: 2px solid var(--sxp-accent); outline-offset: 2px; }

/* Colonna destra: pannello acquisto sticky su desktop.
   custom.js aggiunge .sxp-sticky-ok solo se il pannello entra nello schermo,
   altrimenti il fondo (bottone carrello) resterebbe irraggiungibile. */
@media (min-width: 992px) {
  .product__col.sxp-sticky-ok {
    position: sticky;
    top: var(--sxp-sticky-top);
    align-self: flex-start;
  }
}
.product__name {
  font-family: var(--sxp-font-display);
  font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.375rem) !important;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.025em;
  margin-bottom: .75rem;
}
.product__prices .prices__wrapper { margin-bottom: 1.25rem !important; }
.product__current-price {
  font-family: var(--sxp-font-display);
  font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem);
  font-weight: 600;
  letter-spacing: -.02em;
  color: var(--sxp-ink);
  font-variant-numeric: tabular-nums;
}
.product__prices:has(.product__discount) .product__current-price { color: var(--sxp-accent-text); }
.product__price-regular { color: var(--sxp-muted); text-decoration: line-through; margin-right: .5rem; }
.product__discount-percentage,
.product__discount-amount {
  display: inline-flex;
  align-items: center;
  padding: .125rem .625rem;
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-accent-soft);
  color: var(--sxp-accent-text);
  font-family: var(--sxp-font-display);
  font-size: .8125rem;
  font-weight: 600;
}
.product__tax-label, .product__tax-info, .product__unit-price { color: var(--sxp-muted); font-size: .8125rem; }
.product__description-short { color: var(--sxp-text); margin-bottom: 1.5rem; }

/* Varianti */
.product__variants .variant { margin-bottom: 1.25rem; }
.product__variants .form-label {
  font-family: var(--sxp-font-display);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: var(--sxp-tracking-caps);
  text-transform: uppercase;
  color: var(--sxp-muted);
  margin-bottom: .625rem;
}
.product__variants .form-select { border-radius: var(--sxp-radius-pill); padding-left: 1.25rem; }

/* Varianti radio → pill selezionabili (senza toccare il tpl) */
.radio-variants {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.radio-variant.form-check { margin: 0; padding: 0; min-height: 0; }
.radio-variant label {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: .5rem 1.125rem;
  border: 1px solid var(--sxp-line-strong);
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-surface);
  cursor: pointer;
  transition: background-color var(--sxp-dur) var(--sxp-ease), border-color var(--sxp-dur) var(--sxp-ease), color var(--sxp-dur) var(--sxp-ease);
}
.radio-variant label:hover { border-color: var(--sxp-ink); }
.radio-variant .input-radio {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.radio-variant .radio-label { font-weight: 500; color: inherit; padding: 0; }
.radio-variant label:has(.input-radio:checked) {
  background: var(--sxp-ink);
  border-color: var(--sxp-ink);
  color: #fff;
}
.radio-variant label:has(.input-radio:focus-visible) { box-shadow: var(--sxp-ring); }

/* Varianti colore → cerchi */
.color-variants { display: flex; flex-wrap: wrap; gap: .625rem; margin: 0; padding: 0; list-style: none; }
.color-variant label { position: relative; display: inline-flex; cursor: pointer; }
.color-variant .input-color { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; }
.color-variants .color { width: 2.25rem; height: 2.25rem; transition: box-shadow var(--sxp-dur) var(--sxp-ease); }
/* Hummingbird mette un bordo blu fisso (#0d6efd) sui colori attivi/hover: lo neutralizziamo */
label .color.active, label .color:hover,
.variant-links .color.active, .variant-links .color:hover,
.custom-checkbox input[type=checkbox] + span.color.active,
.custom-checkbox input[type=checkbox] + span.color:hover { border: 1px solid rgba(var(--sxp-ink-rgb), .15); }
label .color:hover { box-shadow: inset 0 0 0 3px #fff, 0 0 0 2px var(--sxp-line-strong); }
.color-variant label:has(.input-color:checked) .color,
.color-variants .color.active { box-shadow: inset 0 0 0 3px #fff, 0 0 0 2px var(--sxp-ink); }
.color-variant label:has(.input-color:focus-visible) .color { box-shadow: inset 0 0 0 3px #fff, var(--sxp-ring); }

/* Blocco acquisto (product-add-to-cart.tpl) */
.sxp-buy__status { display: flex; flex-direction: column; gap: .375rem; margin-bottom: 1rem; }
.sxp-stock {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  font-size: .9375rem;
  font-weight: 500;
  color: var(--sxp-ink);
}
.sxp-stock__dot {
  position: relative;
  width: .625rem;
  height: .625rem;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}
.sxp-stock--in .sxp-stock__dot { color: var(--sxp-success); box-shadow: 0 0 0 4px var(--sxp-success-soft); }
.sxp-stock--low .sxp-stock__dot { color: #e59100; box-shadow: 0 0 0 4px var(--sxp-warning-soft); }
.sxp-stock--out .sxp-stock__dot { color: var(--sxp-accent); box-shadow: 0 0 0 4px var(--sxp-accent-soft); }
.sxp-stock__sub { margin: 0; padding-left: 1.125rem; font-size: .8125rem; color: var(--sxp-muted); }
.sxp-buy__delivery {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  font-size: .875rem;
  color: var(--sxp-muted);
}
.sxp-buy__delivery .material-icons { font-size: 1.125rem; color: var(--sxp-ink); }

.sxp-buy__row { display: flex; align-items: center; gap: .625rem; }
.sxp-buy__qty { flex: 0 0 auto; }
.sxp-buy__cta { flex: 1 1 auto; min-width: 0; }
.sxp-buy__cta .add-to-cart {
  --bs-btn-font-size: 1rem;
  width: 100%;
  min-height: var(--sxp-control-h-lg);
  justify-content: center;
}
.sxp-buy__extra:empty { display: none; }
.sxp-buy__extra { margin-top: .75rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.sxp-buy__min { margin: .625rem 0 0; color: var(--sxp-muted); font-size: .8125rem; display: flex; align-items: center; gap: .375rem; }
.sxp-buy__min:empty { display: none; }
.sxp-buy__min .material-icons { font-size: 1rem; }
@media (max-width: 374.98px) {
  .sxp-buy__row { flex-wrap: wrap; }
  .sxp-buy__qty, .sxp-buy__cta { flex: 1 1 100%; }
}

/* Sconti per quantità */
.product-discounts .table { font-size: .875rem; }

/* Accordion descrizione / dettagli → card */
.product__infos.accordion {
  --bs-accordion-bg: var(--sxp-surface);
  --bs-accordion-border-color: var(--sxp-line);
  --bs-accordion-border-radius: var(--sxp-radius-lg);
  --bs-accordion-inner-border-radius: calc(var(--sxp-radius-lg) - 1px);
  --bs-accordion-btn-padding-x: 1.25rem;
  --bs-accordion-btn-padding-y: 1.125rem;
  --bs-accordion-body-padding-x: 1.25rem;
  --bs-accordion-btn-focus-box-shadow: var(--sxp-ring);
  --bs-accordion-active-bg: var(--sxp-surface);
  --bs-accordion-active-color: var(--sxp-ink);
  margin-top: 2rem;
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  overflow: hidden;
  background: var(--sxp-surface);
}
.product__infos .accordion-item { border-left: 0; border-right: 0; }
.product__infos .accordion-item:first-child { border-top: 0; }
.page-product .product__infos .accordion-button,
.product__infos .accordion-button {
  padding: 1.125rem 1.25rem;
  font-family: var(--sxp-font-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--sxp-ink);
}
.page-product .product__infos .accordion-body,
.product__infos .accordion-body { padding: 0 1.25rem 1.25rem; }
.product__features dt, .product__details dt { color: var(--sxp-muted); font-weight: 500; }
.product__features dd, .product__details dd { color: var(--sxp-ink); font-weight: 500; }

/* Rassicurazioni (blockreassurance) */
.blockreassurance_product,
#block-reassurance {
  margin-top: 1.5rem;
  padding: 1rem 1.25rem;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
}

/* Prodotti correlati / accessori */
.product-accessories, .featured-products, .product-category-products { margin-top: 3rem; }


/* -----------------------------------------------------------------------------
   13 · BARRA ACQUISTO STICKY (mobile, markup creato da custom.js)
   ----------------------------------------------------------------------------- */
.sxp-buybar {
  position: fixed;
  left: .75rem;
  right: .75rem;
  bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
  z-index: 1030;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .5rem .5rem .5rem 1.125rem;
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-glass-bg-strong);
  border: 1px solid var(--sxp-glass-border);
  -webkit-backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(var(--sxp-glass-blur)) saturate(var(--sxp-glass-sat));
  box-shadow: var(--sxp-shadow-lg);
  transform: translateY(calc(100% + 2rem));
  opacity: 0;
  visibility: hidden;
  transition: transform .35s var(--sxp-ease), opacity .25s var(--sxp-ease), visibility 0s linear .35s;
}
.sxp-buybar.is-visible {
  transform: none;
  opacity: 1;
  visibility: visible;
  transition: transform .35s var(--sxp-ease), opacity .25s var(--sxp-ease), visibility 0s;
}
.sxp-buybar__info { min-width: 0; flex: 1; line-height: 1.2; }
.sxp-buybar__name {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .8125rem;
  color: var(--sxp-muted);
}
.sxp-buybar__price {
  display: block;
  font-family: var(--sxp-font-display);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sxp-ink);
  font-variant-numeric: tabular-nums;
}
.sxp-buybar__btn { flex: 0 0 auto; min-height: 3rem; }
@media (min-width: 992px) { .sxp-buybar { display: none; } }


/* -----------------------------------------------------------------------------
   14 · MODALI E OFFCANVAS  (qui il vetro ha senso: c'è contenuto dietro)
   ----------------------------------------------------------------------------- */
.modal {
  --bs-modal-border-radius: var(--sxp-radius-xl);
  --bs-modal-inner-border-radius: calc(var(--sxp-radius-xl) - 1px);
  --bs-modal-border-color: var(--sxp-glass-border);
  --bs-modal-bg: var(--sxp-glass-bg-strong);
  --bs-modal-box-shadow: var(--sxp-shadow-lg);
  --bs-modal-header-border-color: var(--sxp-line);
  --bs-modal-footer-border-color: var(--sxp-line);
  --bs-modal-padding: 1.5rem;
  --bs-modal-header-padding: 1.25rem 1.5rem;
}
.modal-content {
  -webkit-backdrop-filter: blur(24px) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(24px) saturate(var(--sxp-glass-sat));
  box-shadow: var(--bs-modal-box-shadow);
}
.modal-backdrop { --bs-backdrop-bg: var(--sxp-ink); --bs-backdrop-opacity: .4; }
.modal-title { font-family: var(--sxp-font-display); font-weight: 600; }
@media (max-width: 575.98px) {
  .modal-fullscreen-sm-down .modal-content { border-radius: 0; }
}

/* Modale "Prodotto aggiunto al carrello" */
.blockcart-modal .modal-title { display: flex; align-items: center; gap: .5rem; font-size: 1.125rem; }
.blockcart-modal .modal-title .material-icons { color: var(--sxp-success); }
.blockcart-modal .product-image {
  border-radius: var(--sxp-radius-md);
  border: 1px solid var(--sxp-line);
  background: #fff;
  padding: .5rem;
}
.blockcart-modal .product-name { font-family: var(--sxp-font-display); font-weight: 600; font-size: 1rem; }
.blockcart-modal .product-price { font-family: var(--sxp-font-display); font-weight: 600; font-size: 1.25rem; color: var(--sxp-ink); }
.blockcart-modal__summery {
  padding: 1.125rem 1.25rem;
  border-radius: var(--sxp-radius-lg);
  background: rgba(255, 255, 255, .7);
  border: 1px solid var(--sxp-line);
}
.blockcart-modal__total { display: flex; justify-content: space-between; gap: 1rem; font-size: .9375rem; }
.blockcart-modal__total.product-total {
  margin-top: .5rem;
  padding-top: .625rem;
  border-top: 1px solid var(--sxp-line);
  font-family: var(--sxp-font-display);
  font-weight: 600;
  font-size: 1.125rem;
}
.blockcart-modal .modal-footer { gap: .5rem; }

/* Offcanvas (menu mobile, filtri mobile, ricerca mobile) */
.offcanvas {
  --bs-offcanvas-bg: var(--sxp-glass-bg-strong);
  --bs-offcanvas-border-color: var(--sxp-glass-border);
  --bs-offcanvas-box-shadow: var(--sxp-shadow-lg);
  -webkit-backdrop-filter: blur(24px) saturate(var(--sxp-glass-sat));
          backdrop-filter: blur(24px) saturate(var(--sxp-glass-sat));
}
.offcanvas-start, .offcanvas-end { --bs-offcanvas-width: min(86vw, 22rem); }
.offcanvas-start { border-top-right-radius: var(--sxp-radius-xl); border-bottom-right-radius: var(--sxp-radius-xl); }
.offcanvas-end { border-top-left-radius: var(--sxp-radius-xl); border-bottom-left-radius: var(--sxp-radius-xl); }
.offcanvas-bottom { border-top-left-radius: var(--sxp-radius-xl); border-top-right-radius: var(--sxp-radius-xl); }
.offcanvas-title { font-family: var(--sxp-font-display); font-weight: 600; }
.offcanvas-backdrop { --bs-backdrop-bg: var(--sxp-ink); --bs-backdrop-opacity: .35; }
.search__offcanvas { border-radius: 0 0 var(--sxp-radius-xl) var(--sxp-radius-xl); }


/* -----------------------------------------------------------------------------
   15 · CARRELLO
   ----------------------------------------------------------------------------- */
.cart-grid .h4, .cart-grid h1, .cart-container .h4 { font-family: var(--sxp-font-display); }

/* Lista righe (cart-detailed.tpl): niente separatori, le card bastano */
.cart-overview > hr, .cart__item > hr, .cart__items + hr { display: none; }
.cart__items { margin: 0; padding: 0; list-style: none; }
.cart__item { margin-bottom: .75rem; list-style: none; }
.cart-container > .card,
.cart-container .card { background: transparent; border: 0; box-shadow: none; }

/* Riga prodotto (cart-detailed-product-line.tpl) → card a griglia
   Desktop: [foto] [info .........] [quantità] [totale] [x]
   Mobile:  [foto] [info ................]
            [quantità ......] [totale] [x]                     */
.sxp-line {
  position: relative;
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) auto auto auto;
  grid-template-areas: "media info qty total actions";
  align-items: center;
  gap: .5rem 1.25rem;
  margin: 0;
  padding: .75rem 1rem .75rem .75rem;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  box-shadow: var(--sxp-shadow-sm);
}
.sxp-line > * { width: auto; max-width: none; padding: 0; }
.sxp-line__alert { position: absolute; inset: auto 1rem calc(100% + .25rem); z-index: 2; }
.sxp-line__alert:empty { display: none; }
.sxp-line__media { grid-area: media; }
.sxp-line__info { grid-area: info; min-width: 0; }
.sxp-line__qty { grid-area: qty; }
.sxp-line__total { grid-area: total; text-align: right; min-width: 6.5rem; }
.sxp-line__actions { grid-area: actions; display: flex; align-items: center; gap: .25rem; }

.sxp-line__media a {
  display: block;
  padding: .375rem;
  border-radius: var(--sxp-radius-md);
  background: var(--sxp-well);
}
/* Il fondo sta sul contenitore: così "multiply" fonde il bianco della foto nel grigio */
.sxp-line__media img,
.cart__item .product-line__image img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
  mix-blend-mode: var(--sxp-img-blend);
}
.sxp-line__title,
.product-line__title {
  display: block;
  margin-bottom: .25rem;
  font-family: var(--sxp-font-display);
  font-weight: 600;
  line-height: 1.25;
  color: var(--sxp-ink);
  text-decoration: none;
}
.sxp-line__title:hover { color: var(--sxp-accent-text); }
.sxp-line__attrs { display: flex; flex-wrap: wrap; gap: .125rem .875rem; margin: 0 0 .25rem; padding: 0; list-style: none; }
.sxp-line__attrs li, .product-line__info { font-size: .8125rem; color: var(--sxp-muted); margin: 0; }
.product-line__info .value { color: var(--sxp-ink); font-weight: 500; }
.sxp-line__unit { display: flex; flex-wrap: wrap; align-items: baseline; gap: .125rem .5rem; font-size: .875rem; color: var(--sxp-muted); }
.sxp-line__unit .price { color: var(--sxp-text); font-variant-numeric: tabular-nums; }
.product-line__regular { color: var(--sxp-muted); text-decoration: line-through; font-size: .8125rem; }
.sxp-line .discount.badge { background: var(--sxp-accent-soft); color: var(--sxp-accent-text); }
.unit-price-cart { font-size: .75rem; color: var(--sxp-muted); }

.sxp-line .quantity-button .input-group { display: inline-flex; width: auto; height: 2.875rem; }
.sxp-line .quantity-button .input-group > .btn { width: 2.125rem; height: 2.125rem; }
.sxp-line .quantity-button .input-group > .form-control { width: 2.5rem; min-width: 2.5rem; }
.sxp-line__gift-qty { font-weight: 600; color: var(--sxp-muted); }

.product-line__price,
.sxp-line__total .product-line__price {
  font-family: var(--sxp-font-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--sxp-ink);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.sxp-line .gift { color: var(--sxp-success); font-weight: 600; }

/* Rimuovi → icona tonda (testo solo per screen reader) */
.cart__item .product-line__actions a.remove-from-cart { margin: 0; padding: 0; }
.cart__item .product-line__actions a::after { display: none; }
.remove-from-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  color: var(--sxp-muted);
  text-decoration: none;
  transition: background-color var(--sxp-dur) var(--sxp-ease), color var(--sxp-dur) var(--sxp-ease);
}
.remove-from-cart span {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.remove-from-cart:hover { background: var(--sxp-accent-soft); color: var(--sxp-accent-text); }
.remove-from-cart .material-icons { font-size: 1.25rem; }

@media (max-width: 767.98px) {
  /* Riga 1: foto · nome e attributi · cestino   Riga 2: quantità ........ totale */
  .sxp-line {
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    grid-template-areas:
      "media info actions"
      "qty   qty  total";
    align-items: start;
    gap: .75rem;
    padding: .75rem;
  }
  .sxp-line__qty { justify-self: start; align-self: center; }
  .sxp-line__total { min-width: 0; align-self: center; }
  .sxp-line__actions { margin: -.25rem -.25rem 0 0; }
}

/* Riepilogo (carrello + checkout) → card sticky */
.cart-summary {
  border: 1px solid var(--sxp-line) !important;
  border-radius: var(--sxp-radius-xl) !important;
  background: var(--sxp-surface);
  box-shadow: var(--sxp-shadow-md);
  overflow: hidden;
}
@media (min-width: 992px) {
  .cart-grid__right .cart-summary,
  .cart-grid-right .cart-summary,
  .cart-grid__right > .js-cart,
  .cart-grid-right > .js-cart {
    position: sticky;
    top: var(--sxp-sticky-top);
  }
}
.cart-summary__line,
.cart-summary .cart-summary-line {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .375rem 0;
  font-size: .9375rem;
}
.cart-summary__label, .cart-summary .label { color: var(--sxp-muted); }
.cart-summary__value, .cart-summary__line__value, .cart-summary .value {
  color: var(--sxp-ink);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.cart-summary__total,
.cart-summary__totals .cart-summary__line:last-child {
  margin-top: .5rem;
  padding-top: .875rem;
  border-top: 1px solid var(--sxp-line);
  font-family: var(--sxp-font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--sxp-ink);
}
.cart-summary__total .cart-summary__label,
.cart-summary__totals .cart-summary__line:last-child .cart-summary__label { color: var(--sxp-ink); }
.cart-detailed-actions .btn,
.checkout .cart-detailed-actions .btn { width: 100%; min-height: var(--sxp-control-h-lg); }

/* Codice sconto */
.cart-voucher .accordion-button { font-weight: 600; color: var(--sxp-ink); }
.cart-voucher form,
.cart-voucher .input-group { gap: .5rem; flex-wrap: nowrap; }
.cart-voucher .form-control { border-radius: var(--sxp-radius-pill) !important; }
.cart-voucher__code { font-family: var(--sxp-font-display); font-weight: 600; color: var(--sxp-accent-text); }

/* Carrello vuoto */
.cart-empty, .cart-grid .no-items { color: var(--sxp-muted); }


/* -----------------------------------------------------------------------------
   16 · CHECKOUT  (solo CSS: i tpl del checkout restano quelli originali)
   ----------------------------------------------------------------------------- */
/* Step in alto → pallini numerati */
.checkout__steps__list { gap: .5rem; }
.checkout__steps__item { font-size: .875rem; color: var(--sxp-muted); }
.checkout__steps__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line-strong);
  color: var(--sxp-ink);
  font-family: var(--sxp-font-display);
  font-weight: 600;
}
.checkout__steps--current .checkout__steps__number { background: var(--sxp-accent-strong); border-color: var(--sxp-accent-strong); color: #fff; }
.checkout__steps--current .checkout__steps__text { color: var(--sxp-ink); font-weight: 600; }
.checkout__steps--success .checkout__steps__number { background: var(--sxp-ink); border-color: var(--sxp-ink); color: #fff; }

/* Ogni step → card */
.checkout-step, section.step {
  margin-bottom: 1rem;
  padding: 1.5rem;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-xl);
  box-shadow: var(--sxp-shadow-sm);
}
.step__title-left { font-family: var(--sxp-font-display); font-size: 1.25rem !important; }

/* Login / ospite → tab a pill */
.checkout .nav-tabs {
  --bs-nav-tabs-border-width: 0;
  display: inline-flex;
  gap: .25rem;
  padding: .25rem;
  border-radius: var(--sxp-radius-pill);
  background: var(--sxp-surface-2);
  border: 1px solid var(--sxp-line);
}
.checkout .nav-tabs .nav-link {
  border: 0;
  border-radius: var(--sxp-radius-pill);
  color: var(--sxp-muted);
  font-weight: 500;
  padding: .5rem 1.125rem;
}
.checkout .nav-tabs .nav-link.active { background: var(--sxp-ink); color: #fff; }

/* Indirizzi / corrieri / pagamenti: opzione scelta evidenziata */
.address-item, .js-address-item {
  border-radius: var(--sxp-radius-lg) !important;
  border: 1px solid var(--sxp-line) !important;
  transition: border-color var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease);
}
.address-item.selected, .address-item:has(input:checked) { border-color: var(--sxp-ink) !important; box-shadow: 0 0 0 1px var(--sxp-ink); }

.delivery-options__list { background: transparent !important; padding: 0 !important; }
.delivery-options__item {
  margin-bottom: .625rem;
  padding: .875rem 1rem;
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  background: var(--sxp-surface);
  transition: border-color var(--sxp-dur) var(--sxp-ease), box-shadow var(--sxp-dur) var(--sxp-ease);
}
.delivery-options__item:has(input:checked) { border-color: var(--sxp-ink); box-shadow: 0 0 0 1px var(--sxp-ink); }
.carrier-name { font-family: var(--sxp-font-display); font-weight: 600; margin: 0; }
.carrier__logo img { max-height: 2rem; width: auto; }

.payment-options .payment-option,
.payment__option {
  padding: .875rem 1rem;
  margin-bottom: .625rem;
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
  background: var(--sxp-surface);
}
.payment-options .payment-option:has(input:checked),
.payment__option:has(input:checked) { border-color: var(--sxp-ink); box-shadow: 0 0 0 1px var(--sxp-ink); }

.js-conditions-to-approve .form-check-label { font-size: .875rem; }

/* Conferma ordine */
.order-confirmation .card, #order-confirmation .card { border-radius: var(--sxp-radius-xl); }


/* -----------------------------------------------------------------------------
   17 · ACCOUNT CLIENTE
   ----------------------------------------------------------------------------- */
.account-menu {
  padding: .75rem;
  background: var(--sxp-surface);
  border: 1px solid var(--sxp-line);
  border-radius: var(--sxp-radius-lg);
}
.account-menu a, .account-menu .list-group-item {
  display: flex;
  align-items: center;
  gap: .625rem;
  padding: .625rem .75rem;
  border: 0;
  border-radius: var(--sxp-radius-sm);
  color: var(--sxp-text);
  text-decoration: none;
  background: transparent;
}
.account-menu a:hover, .account-menu .list-group-item:hover { background: var(--sxp-surface-2); color: var(--sxp-ink); }
.account-menu .active, .account-menu a.current,
.account-menu .list-group-item.active { background: var(--sxp-ink); color: #fff; }
.account-menu .material-icons { font-size: 1.25rem; }

.login, .register-form, .customer-form, .address-form {
  max-width: 36rem;
}
.page-authentication .card, #authentication .card,
.page-customer-account .card, .page-addresses .card { border-radius: var(--sxp-radius-xl); }

/* Mostra/nascondi password */
.input-group .btn[data-action="show-password"],
.js-visible-password + .btn { border-radius: 0 var(--sxp-radius-sm) var(--sxp-radius-sm) 0; }


/* -----------------------------------------------------------------------------
   18 · FOOTER  (templates/_partials/footer.tpl — carbonio con linea racing)
   ----------------------------------------------------------------------------- */
.footer { margin-top: 4rem; }
.footer__before { margin-bottom: 1.5rem; }
.footer__before .email-subscription .container { max-width: none; padding: 0; }

.footer .footer__main {
  position: relative;
  padding: 3.5rem 0 1.5rem;
  border-radius: var(--sxp-radius-xl) var(--sxp-radius-xl) 0 0;
}
.footer .footer__main::before {
  content: "";
  position: absolute;
  inset: 0 2rem auto;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, transparent, var(--sxp-accent) 20%, var(--sxp-accent) 80%, transparent);
}

/* Colonna brand */
.sxp-footer__brand { margin-bottom: 2rem; }
.sxp-footer__logo-link { display: inline-block; text-decoration: none; }
.sxp-footer__logo {
  display: block;
  max-height: 2.25rem;
  width: auto;
  /* Logo del BO (scuro) reso bianco sul carbonio */
  filter: brightness(0) invert(1);
}
.sxp-footer__wordmark {
  font-family: var(--sxp-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -.04em;
  color: #fff;
}
.sxp-footer__wordmark::after { content: "."; color: var(--sxp-accent); }
.sxp-footer__claim { margin: 1rem 0 0; max-width: 18rem; font-size: .875rem; color: var(--footer-text-color); }

/* Titoli colonne */
.footer .h2, .footer .h3, .footer .h4, .footer h2, .footer h3, .footer h4,
.footer .footer__block__title {
  font-family: var(--sxp-font-display);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: var(--sxp-tracking-caps);
  text-transform: uppercase !important;
  color: #fff;
  margin-bottom: 1rem;
}
.footer .footer__block__content-list a { text-decoration: none; transition: color var(--sxp-dur) var(--sxp-ease), transform var(--sxp-dur) var(--sxp-ease); }
.footer .footer__block__content-list a:hover { transform: translateX(3px); }
.footer .footer__block__content-contact,
.footer .footer__block__content { color: var(--footer-text-color); }
.footer .footer__block__toggle { padding: .875rem 0; border-bottom: 1px solid rgba(255, 255, 255, .08); cursor: pointer; }
.footer .footer__block__toggle .footer__block__title { margin: 0; }

/* Barra finale */
.footer__bottom {
  background: var(--sxp-ink);
  color: rgba(255, 255, 255, .45);
  font-size: .8125rem;
}
.sxp-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.5rem;
  padding-top: 1.25rem;
  padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid rgba(255, 255, 255, .08);
}
.sxp-footer__copy, .footer .copyright { margin: 0; color: rgba(255, 255, 255, .45); text-align: left; }
.sxp-footer__after { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0; }
.sxp-footer__after > * { width: auto; max-width: none; flex: 0 0 auto; padding: 0; margin: 0; }
.sxp-footer__after img { max-height: 1.5rem; width: auto; opacity: .8; }
/* Spazio per la barra acquisto mobile sulla scheda prodotto */
@media (max-width: 991.98px) {
  body#product .footer__bottom { padding-bottom: 5rem; }
}

/* Newsletter (ps_emailsubscription, di solito in displayFooterBefore)
   → la fascia grigia diventa una card carbonio con campo pill */
.email-subscription { background: transparent; padding: 0 !important; }
.email-subscription .email-subscription__content {
  max-width: none;
  margin: 0;
  padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  align-items: center;
  border-radius: var(--sxp-radius-xl);
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(var(--sxp-accent-rgb), .28), transparent 55%),
    var(--sxp-ink);
  color: rgba(255, 255, 255, .72);
  --bs-gutter-x: 1.5rem;
}
.email-subscription .email-subscription__label {
  margin: 0 0 1rem;
  font-family: var(--sxp-font-display);
  font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem);
  font-weight: 600;
  letter-spacing: var(--sxp-tracking-tight);
  line-height: 1.2;
  color: #fff;
}
@media (min-width: 768px) { .email-subscription .email-subscription__label { margin: 0; } }
.email-subscription .email-subscription__content__inputs {
  gap: .375rem;
  padding: .3125rem;
  border-radius: var(--sxp-radius-pill);
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
}
.email-subscription .email-subscription__content__inputs input[type=email],
.email-subscription .form-control {
  flex: 1;
  min-width: 0;
  margin: 0 !important;
  padding-left: 1.125rem;
  border: 0 !important;
  border-radius: var(--sxp-radius-pill);
  background: transparent;
  color: #fff !important;
  box-shadow: none;
}
.email-subscription .form-control::placeholder { color: rgba(255, 255, 255, .5); }
.email-subscription .email-subscription__content__inputs:focus-within { border-color: var(--sxp-accent); box-shadow: 0 0 0 4px rgba(var(--sxp-accent-rgb), .25); }
.email-subscription .btn { flex: 0 0 auto; }
.email-subscription .email-subscription__content__infos { font-size: .8125rem; color: rgba(255, 255, 255, .55); }
.email-subscription .email-subscription__content__infos a { color: #fff; }


/* -----------------------------------------------------------------------------
   19 · FALLBACK, ACCESSIBILITÀ, PERFORMANCE
   ----------------------------------------------------------------------------- */
/* Browser senza backdrop-filter: vetro → superficie quasi opaca */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  :root {
    --sxp-glass-bg: rgba(255, 255, 255, .96);
    --sxp-glass-bg-strong: #fff;
    --sxp-glass-dark-bg: var(--sxp-ink);
  }
}

/* Utente che chiede meno trasparenza (macOS/iOS) */
@media (prefers-reduced-transparency: reduce) {
  :root {
    --sxp-glass-bg: #fff;
    --sxp-glass-bg-strong: #fff;
    --sxp-glass-dark-bg: var(--sxp-ink);
  }
  .header::before, .modal-content, .offcanvas, .toast, .sxp-buybar, .sxp-glass,
  .main-menu .menu-container, .search-widgets__dropdown {
    -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
  }
}

/* Utente che chiede meno movimento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
  .product-miniature .sxp-card__inner:hover { transform: none; }
}

/* Mobile: blur più leggero, la GPU dei telefoni economici ringrazia */
@media (max-width: 767.98px) {
  :root { --sxp-glass-blur: 12px; }
  .wrapper { padding-top: 1rem; }
  .checkout-step, section.step { padding: 1.125rem; border-radius: var(--sxp-radius-lg); }
  .footer .footer__main { border-radius: var(--sxp-radius-lg) var(--sxp-radius-lg) 0 0; }
}

/* Contenuti sotto la piega: il browser li renderizza solo quando servono */
.footer__main, .product-accessories, .product-category-products {
  content-visibility: auto;
  contain-intrinsic-size: auto 600px;
}

/* Stampa: niente vetro, niente header sticky */
@media print {
  .header { position: static; }
  .header::before { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .sxp-buybar { display: none !important; }
}
