/*
Theme Name: DomShop Enterprise
Theme URI: https://example.com
Author: DomShop
Description: Tema custom WooCommerce (Enterprise) – UI/CSS/JS + wishlist + buy-now + my-account + endpoint notifiche/ticket.
Version: 1.7.11
Text Domain: domshop
*/


@layer ds-overrides {
/* ==========================================================================
   BASE + TOKENS (FONTE DI VERITÀ)
   ========================================================================== */

:root {
  --ds-font: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ds-bg: #ffffff;
  --ds-surface: #fbfbf7;
  --ds-surface-2: #f1f1ec;
  --ds-black: #2b2b2b;
  /* NERO CARBONE (vincolante) */
  --ds-muted: rgba(0, 0, 0, .6);
  --ds-border: rgba(0, 0, 0, .12);
  --ds-border-strong: rgba(0, 0, 0, .22);
  --ds-radius: 12px;
  --ds-radius-sm: 10px;
  --ds-shadow: 0 6px 20px rgba(0, 0, 0, .025);
  --ds-gap: 18px;

  --ds-success: #2f7d4a;
  --ds-warning: #b45309;
  --ds-yellow: #FFC107;
  --ds-yellow-dark: #e0a800;
}

/* =====================================================================
   BUTTON SYSTEM (BASE)
   ---------------------------------------------------------------------
   In alcune sezioni (Home / Shop / Drawer) i bottoni Woo e i CTA custom
   condividono classi diverse. Definiamo una base solida per .ds-btn
   (SOLO forma/typography/layout) lasciando a modifier e contesti colori
   e varianti.
   ===================================================================== */

.ds-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  min-height: 44px;
  padding: 12px 14px;
  border-radius: var(--ds-radius-sm, 10px);

  font-family: var(--ds-font, system-ui);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;

  text-decoration: none;
  cursor: pointer;

  border: 1px solid transparent;
  background: transparent;
  color: inherit;

  box-sizing: border-box;
  white-space: nowrap;
}

.ds-btn:focus-visible {
  outline: 2px solid rgba(47, 47, 47, .5);
  outline-offset: 2px;
}

* {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  /* overflow-x: clip rimosso da html e body: rompeva position:sticky di .ds-header
   * su iOS Safari < 16 e su alcune build Chrome (clip viene trattato come hidden,
   * creando uno scroll container su body/html che intercetta lo sticky).
   * Sostituito da touch-action: pan-y su body per prevenire swipe orizzontale touch
   * senza creare scroll container. */
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  /* Risolve nativamente la viewport dinamica su iOS e Chrome */
  font-family: var(--ds-font);
  background: var(--ds-bg);
  color: var(--ds-black);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  /* Previeni swipe orizzontale touch su mobile senza usare overflow-x (che rompe sticky).
   * pan-y permette scroll verticale, blocca scroll/swipe orizzontale. */
  touch-action: pan-y;
}

/* Media */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Link base: non distruttivo (evita di rompere componenti terzi) */
a {
  color: inherit;
}

a:hover {
  color: inherit;
}

/* Focus visibile (accessibilità) */
:focus-visible {
  outline: 2px solid rgba(47, 47, 47, .5);
  outline-offset: 2px;
}

/* Riduci motion se richiesto */
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto;
    transition: none;
    animation: none;
  }
}

/* Utility screen reader only */
.ds-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Skip link (accessibilità) */
.ds-skip-link {
  position: absolute;
  left: -9999px;
  top: 10px;
  z-index: 100;
  background: #fff;
  color: var(--ds-black);
  padding: 10px 14px;
  border-radius: 12px;
  box-shadow: var(--ds-shadow);
}

.ds-skip-link:focus {
  left: 10px;
}


/* Layout container */
.ds-container {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.ds-main {
  padding: 26px 0 60px;
}

.ds-page-title {
  font-size: 34px;
  font-weight: 700;
  margin: 0 0 18px;
}


/* ==========================================================================
   HEADER – DESKTOP + MOBILE
   REGOLE: NESSUN RIQUADRO/BOX INTORNO ALLE ICONE (MAI)
   ========================================================================== */

.ds-header {
  position: sticky;
  top: 0;
  z-index: 69;
  background: #ffffff;
  border-bottom: 1px solid var(--ds-border);
}

.ds-header__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 0;
}

/* Brand / logo */
.ds-brand a {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.ds-brand img {
  height: 30px;
  width: auto;
  display: block;
}

/* Desktop menu */
.ds-nav {
  flex: 1;
  display: flex;
  justify-content: center;
}

.ds-nav ul {
  display: flex;
  align-items: stretch;
  /* li si allunga fino al fondo dell'header: gap=0 col sub-menu */
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ds-nav a {
  font-weight: 600;
  text-decoration: none;
  color: var(--ds-black);
  transition: color .12s ease;
}

.ds-nav a:hover {
  color: rgba(47, 47, 47, .78);
}

/* Actions */
.ds-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

/* Icon button: no box */
.ds-iconbtn {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  color: var(--ds-black);
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
  transition: color .12s ease, filter .12s ease;
}

@media (hover: hover) {
  .ds-iconbtn:hover {
    color: rgba(47, 47, 47, .78);
    filter: none;
  }
}

.ds-iconbtn svg {
  width: 20px;
  height: 20px;
  display: block;
}

/* Badge wrapper */
.ds-iconwrap {
  position: relative;
  display: inline-flex;
  line-height: 1;
}

/* Badge */
.ds-badge {
  position: absolute;
  top: -6px;
  right: -7px;
  width: 16px;
  height: 16px;
  padding: 0;
  border-radius: 50%;
  background: var(--ds-yellow);
  color: var(--ds-black);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
  border: 1.5px solid #fff;
  box-sizing: content-box;
  line-height: 1;
}

.ds-badge.is-zero {
  display: none;
}

/* Account pill */
.ds-account-pill {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--ds-black);
  color: #ffffff;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 12px;
}

/* Visibility */
.ds-mobile-only {
  display: none;
}

.ds-desktop-only {
  display: inline-flex;
}

/* Mobile header */
@media (max-width: 900px) {
  .ds-header__row {
    padding: 14px 0;
    gap: 14px;
  }

  .ds-desktop-only {
    display: none;
  }

  .ds-mobile-only {
    display: inline-flex;
  }

  .ds-nav {
    display: none;
  }
}


/* ==========================================================================
   NAVBAR MOBILE – FIXED BOTTOM
   ========================================================================== */

.ds-mobile-nav {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 45 !important;

  background: #ffffff;
  border-top: 1px solid var(--ds-border) !important;

  display: none;
}

.ds-mobile-nav__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 6px;
}

.ds-mnav-item {
  flex: 1;
  display: flex;
  justify-content: center;
}

/* Link/button: anchor badge here */
.ds-mobile-nav a,
.ds-mobile-nav button {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;

  background: none;
  border: 0;
  padding: 6px 0;

  color: var(--ds-black);
  text-decoration: none;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;

  transition: color .12s ease;
}

.ds-mobile-nav a:hover,
.ds-mobile-nav button:hover {
  color: rgba(47, 47, 47, .78);
}

.ds-mobile-nav svg {
  width: 22px;
  height: 22px;
  display: block;
}

.ds-mnav-badge {
  position: absolute;
  top: -2px;
  right: -7px;

  width: 16px;
  height: 16px;
  padding: 0;
  border-radius: 50%;

  background: var(--ds-yellow);
  color: var(--ds-black);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;

  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
  border: 1.5px solid #fff;
  box-sizing: content-box;
  line-height: 1;
}

.ds-mnav-badge.is-zero {
  display: none;
}

@media (max-width: 900px) {
  .ds-mobile-nav {
    display: block;
    position: fixed;
    bottom: 0;
    top: auto;
    width: 100%;
    left: 0;
    right: 0;
    z-index: 10000;
    /* Rilancio z-index al massimo assoluto */
    padding-bottom: env(safe-area-inset-bottom, 0px);
    margin: 0;
    /* Pulisco forzatamente qualsiasi hack grafico che manda in crash Chrome iOS */
    transform: none;
    will-change: auto;
  }

  body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  }
}


/* ==========================================================================
   FLOATING ICONS FIX (WHATSAPP & COOKIEYES)
   ========================================================================== */
@media (max-width: 900px) {
  .ds-wa-minimized {
    top: auto !important;
    bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
    margin-bottom: 0 !important;
    transform: none !important;
    z-index: 10003 !important;
  }

  [class*="cky-revisit"],
  [id*="cky-revisit"],
  [data-cky-tag="revisit-consent"],
  [class*="cli-plugin-button"],
  #cookie-law-info-again,
  #cookie-law-info-bar {
    top: auto !important;
    /* Sollevato per allinearlo al CENTRO geometrico di WhatsApp che è più grande */
    bottom: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
    margin-bottom: 0 !important;
    transform: none !important;
    z-index: 10003 !important;
  }
}

/* ==========================================================================
   LOADING STATE – WISHLIST & CARRELLO
   ========================================================================== */

.ds-is-loading {
  position: relative;
  pointer-events: none;
  opacity: .6;
}

.ds-is-loading>* {
  visibility: hidden;
}

.ds-is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;

  width: 18px;
  height: 18px;

  border-radius: 50%;
  border: 2px solid rgba(47, 47, 47, .25);
  border-top-color: var(--ds-black);

  animation: ds-spin .7s linear infinite;
}

.ds-is-loading.ds-loading--icon::after {
  width: 14px;
  height: 14px;
  border-width: 2px;
}

.ds-is-loading.ds-loading--btn::after {
  width: 20px;
  height: 20px;
  border-width: 3px;
}

@keyframes ds-spin {
  to {
    transform: rotate(360deg);
  }
}


/* ==========================================================================
   OFF-CANVAS – MENU + CARRELLO (BLOCCO DEFINITIVO)
   ========================================================================== */

/* Drawer base */
.ds-drawer {
  position: fixed;
  top: 0;
  right: 0;

  width: min(420px, 92vw);
  height: 100%;

  background: #ffffff;
  border-left: 1px solid var(--ds-border);

  z-index: 10000;

  display: flex;
  flex-direction: column;

  transform: translateX(100%);
  transition: transform .25s ease;
}

/* Solo da mobile: a tutto schermo e sopra la navbar (che ha z-index 999999) */
@media (max-width: 900px) {
  .ds-drawer {
    width: 100vw;
    max-width: 100vw;
    z-index: 10005;
  }

  .ds-backdrop {
    z-index: 10004;
  }
}

.ds-drawer.is-open {
  transform: translateX(0);
}

/* Blocca scroll pagina (meglio su html+body, ma mantengo tua classe) */
.ds-scroll-lock {
  overflow: hidden;
}

/* Backdrop */
.ds-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .35);
  z-index: 50;
}

/* Drawer head */
.ds-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 16px;
  border-bottom: 1px solid var(--ds-border);

  font-weight: 800;
}

.ds-drawer__head .ds-iconbtn {
  background: none;
  border: 0;
  padding: 0;
  color: var(--ds-black);
  cursor: pointer;
}

@media (hover: hover) {
  .ds-drawer__head .ds-iconbtn:hover {
    color: rgba(47, 47, 47, .75);
  }
}

/* Drawer body (default: scroll) */
.ds-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
}


/* ==========================================================================
   OFF-CANVAS MENU
   ========================================================================== */

#ds-menu-drawer nav ul {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  flex-direction: column;
  gap: 14px;
}

#ds-menu-drawer nav a {
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  color: var(--ds-black);
}

#ds-menu-drawer nav a:hover {
  color: rgba(47, 47, 47, .78);
}


/* ==========================================================================
   OFF-CANVAS CARRELLO (header.php)
   Obiettivo: lista scroll + footer Woo fisso in basso
   ========================================================================== */

/* Nascondi footer custom drawer (usiamo footer Woo) */
#ds-cart-drawer .ds-drawer__foot {
  display: none;
}

/* Nascondi total/buttons globali, poi riattivali SOLO nel drawer */
.woocommerce-mini-cart__total,
.woocommerce-mini-cart__buttons {
  display: none;
}

/* Drawer carrello: colonna piena */
#ds-cart-drawer {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* IMPORTANTISSIMO:
   nel CARRELLO lo scroll NON deve stare su .ds-drawer__body (evita doppio scroll)
   lo scroll sta SOLO sulla lista prodotti */
#ds-cart-drawer .ds-drawer__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;

  overflow: hidden;
  /* FIX anomalia */
  padding: 0;
  /* padding lo mettiamo sulla lista */
}

/* wrapper mini-cart (da header.php) */
#ds-cart-drawer [data-ds-mini-cart] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

/* wrapper Woo */
#ds-cart-drawer .widget_shopping_cart_content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

/* Lista prodotti (scrollabile) */
#ds-cart-drawer .woocommerce-mini-cart {
  list-style: none;
  margin: 0;
  padding: 18px 22px;

  display: flex;
  flex-direction: column;
  gap: 14px;

  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

/* =========================
   ITEM PRODOTTO (layout finale)
   SX: titolo + immagine
   DX: quantità + prezzo
   remove: X rossa senza hover
   ========================= */

#ds-cart-drawer .woocommerce-mini-cart-item {
  display: grid;
  grid-template-columns: 1fr auto 18px;
  grid-template-areas:
    "left meta remove";
  column-gap: 12px;
  align-items: start;

  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
}

#ds-cart-drawer .woocommerce-mini-cart-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

/* X rossa, no hover */
#ds-cart-drawer .woocommerce-mini-cart-item>a.remove {
  grid-area: remove;
  justify-self: end;
  align-self: start;

  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;

  color: #d11a1a;
  text-decoration: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  filter: none;
}

#ds-cart-drawer .woocommerce-mini-cart-item>a.remove:hover,
#ds-cart-drawer .woocommerce-mini-cart-item>a.remove:focus,
#ds-cart-drawer .woocommerce-mini-cart-item>a.remove:active {
  color: #d11a1a;
  background: transparent;
  filter: none;
  outline: none;
}

/* BLOCCO SINISTRO: link prodotto contiene testo + img */
#ds-cart-drawer .woocommerce-mini-cart-item>a:not(.remove) {
  grid-area: left;

  display: flex;
  flex-direction: column-reverse;
  /* ← TITOLO SOPRA, IMMAGINE SOTTO */
  gap: 8px;

  text-decoration: none;
  color: var(--ds-black);

  font-weight: 800;
  font-size: 14px;
  line-height: 1.2;
}


/* immagine sotto al titolo */
#ds-cart-drawer .woocommerce-mini-cart-item>a:not(.remove)>img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

/* BLOCCO DESTRO: quantità + prezzo allineati a destra */
#ds-cart-drawer .woocommerce-mini-cart-item>.quantity {
  grid-area: meta;
  justify-self: end;
  align-self: start;

  display: inline-flex;
  align-items: baseline;
  gap: 8px;

  font-size: 13px;
  line-height: 1.2;
  color: rgba(0, 0, 0, .60);
  white-space: nowrap;
}

/* enfatizza prezzo */
#ds-cart-drawer .woocommerce-mini-cart-item>.quantity .amount {
  font-weight: 800;
  color: rgba(0, 0, 0, .90);
}


/* Footer: Subtotale sopra + separatore + bottoni sotto */
#ds-cart-drawer .woocommerce-mini-cart__total {
  display: flex;
  justify-content: space-between;
  align-items: center;

  margin-top: auto;
  padding: 16px 22px;

  font-weight: 900;
  font-size: 15px;

  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, .10);
  border-bottom: 1px solid rgba(0, 0, 0, .10);
}

#ds-cart-drawer .woocommerce-mini-cart__buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;

  padding: 14px 22px 16px;
  background: #fff;
}

#ds-cart-drawer .woocommerce-mini-cart__buttons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 10px 12px;
  min-height: 40px;

  border-radius: var(--ds-radius-sm);
  font-weight: 900;
  font-size: 14px;
  line-height: 1;

  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}

#ds-cart-drawer .woocommerce-mini-cart__buttons a:first-child {
  background: #fff;
  border: 1px solid var(--ds-black);
  color: var(--ds-black);
}

#ds-cart-drawer .woocommerce-mini-cart__buttons a:last-child {
  background: var(--ds-black);
  border: 1px solid var(--ds-black);
  color: #fff;
}


/* ======================================================================
   CTA – BUY NOW
   Pulsante "Acquista ora"
   - Default: identico a "Visualizza carrello" (outline)
   - Hover: identico a "Pagamento / Checkout" (filled)
   ====================================================================== */

.ds-btn--buy-now {
  background: #ffffff;
  border: 1px solid var(--ds-black);
  color: var(--ds-black);

  transition: background .12s ease, color .12s ease, border-color .12s ease;
}

/* Hover / Focus */
.ds-btn--buy-now:hover,
.ds-btn--buy-now:focus-visible {
  background: var(--ds-black);
  border-color: var(--ds-black);
  color: #ffffff;
}

/* Disabled (se mai usato) */
.ds-btn--buy-now:disabled,
.ds-btn--buy-now[disabled] {
  opacity: .5;
  cursor: not-allowed;
}

/* ======================================================================
   END CTA – BUY NOW
   ====================================================================== */







/* ==========================================================================
   OFF-CANVAS MENU — CLEAN (SOLO MENU, CARRELLO INVARIATO)
   - NIENTE riquadri: mai (default/hover/focus)
   - Social in fondo
   ========================================================================== */

/* Layout body menu: nav sopra, social in fondo */
#ds-menu-drawer .ds-drawer__body {
  display: flex;
  flex-direction: column;
  gap: 16px;

  padding: 16px;
  overflow-y: auto;
}

/* Nav prende spazio, social scorre sotto */
#ds-menu-drawer .ds-drawer__body nav {
  flex: 0 0 auto;
  min-height: 0;
}

/* Lista menu */
#ds-menu-drawer nav ul {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  flex-direction: column;
  gap: 14px;
  /* come tuo originale */
}

/* LINK: nessun box MAI */
#ds-menu-drawer nav a {
  display: block;

  padding: 8px 0;
  /* area tap senza riquadri */
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;

  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
  color: var(--ds-black);

  transition: color .12s ease, opacity .12s ease;
}

/* Hover: solo testo */
#ds-menu-drawer nav a:hover {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: rgba(47, 47, 47, .78);
}

/* Focus: accessibile ma senza box */
#ds-menu-drawer nav a:focus,
#ds-menu-drawer nav a:focus-visible {
  outline: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Submenu mobile: accordion con max-height (anima correttamente) */

/* Freccia chevron CSS — coerente desktop, zero unicode */
#ds-menu-drawer nav ul>li.menu-item-has-children>a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

#ds-menu-drawer nav ul>li.menu-item-has-children>a::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.28s ease;
  flex-shrink: 0;
}

#ds-menu-drawer nav ul>li.menu-item-has-children.is-active>a::after {
  transform: rotate(225deg) translateY(2px);
}

/* Submenu nascosto con max-height — unico modo per animare l'apertura */
#ds-menu-drawer nav ul>li>.sub-menu {
  list-style: none;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
  padding: 0;
  margin: 0;
  position: static;
}

#ds-menu-drawer nav ul>li.is-active>.sub-menu {
  max-height: 800px;
  margin-top: 6px;
  display: block;
  visibility: visible;
  opacity: 1;
}

/* Link sottomenù mobile */
#ds-menu-drawer nav ul>li>.sub-menu>li {
  padding: 6px 0 6px 14px;
  border-left: 2px solid var(--ds-border);
  margin-top: 4px;
}

#ds-menu-drawer nav ul>li>.sub-menu>li>a {
  font-size: 14px;
  font-weight: 600;
  padding: 4px 0;
  color: var(--ds-black);
  opacity: 0.85;
  transition: opacity 0.15s ease;
}

#ds-menu-drawer nav ul>li>.sub-menu>li>a:hover {
  opacity: 1;
}

/* ==========================================================================
   MEGA MENU MOBILE - Reset strutturale per isolamento totale
   ========================================================================== */
#ds-menu-drawer nav ul > li.mega-menu > .sub-menu > li,
#ds-menu-drawer nav ul > li.mega-menu > .sub-menu > li *,
#ds-menu-drawer .mega-menu-content,
#ds-menu-drawer .mega-menu-content * {
  position: static;
  float: none;
  display: block;
  opacity: 1;
  visibility: visible;
  width: 100%;
  max-width: none;
  min-width: 0;
  transform: none;
  height: auto;
  min-height: 0;
  box-shadow: none;
  border: none;
}

#ds-menu-drawer nav ul > li.mega-menu > .sub-menu > li {
  padding: 6px 0 6px 14px;
  border-left: 2px solid var(--ds-border);
  margin-top: 4px;
}

#ds-menu-drawer nav ul > li.mega-menu > .sub-menu > li > a {
  font-size: 14px;
  font-weight: 600;
  padding: 4px 0;
  color: var(--ds-black);
}


/* ==========================================================================
   SOCIAL (template-parts/social-icon/social-icon.php)
   - Sempre in fondo
   - NIENTE riquadri: mai (default/hover/focus)
   ========================================================================== */

#ds-menu-drawer .ds-social {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 0, 0, .10);
}

#ds-menu-drawer .ds-social__list {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  align-items: center;
  justify-content: flex-start;
  /* se li vuoi centrati dimmelo */
  gap: 16px;
}

#ds-menu-drawer .ds-social__item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: auto;
  height: auto;

  padding: 6px;
  /* tap area */
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;

  transition: opacity .12s ease, transform .12s ease;
}

#ds-menu-drawer .ds-social__item a:hover {
  background: transparent;
  border: 0;
  box-shadow: none;
  opacity: .78;
}

#ds-menu-drawer .ds-social__item a:active {
  transform: translateY(1px);
}

#ds-menu-drawer .ds-social__item a:focus,
#ds-menu-drawer .ds-social__item a:focus-visible {
  outline: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: 4px;
}

#ds-menu-drawer .ds-social__icon {
  width: 18px;
  height: 18px;
  display: block;
}

/* ======================================================================
   WISHLIST (Enterprise) – DESKTOP (FIX)
   Fix richiesti:
   - NASCONDERE completamente i blocchi mobile (.ds-wishlist__mobile*) su desktop
   - "Aggiungi al carrello" deve essere identico a "Aggiungi tutto al carrello" (stesso stile primary)
   - "Continua gli acquisti": stile secondary MA senza sottolineatura (no underline)
   - Testo bottoni: NON in grassetto (font-weight normale/coerente)
   - Nessuna regola mobile qui dentro
   ====================================================================== */

/* 0) Desktop-only: nascondi la struttura mobile che il template stampa */
.ds-wishlist__mobile {
  display: none;
}

/* Wrapper pagina */
.ds-wishlist {
  padding-top: 6px;
}

/* Titolo pagina */
.ds-wishlist .ds-page-title {
  margin-bottom: 18px;
}

/* Contenitore tabella come card */
.ds-wishlist__tableWrap {
  background: #ffffff;
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
  overflow: hidden;
}

/* Tabella base */
.ds-wishlist__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

/* Header tabella */
.ds-wishlist__th {
  text-align: left;
  font-weight: 700;
  font-size: 14px;
  color: rgba(0, 0, 0, .65);
  padding: 14px 16px;
  background: rgba(0, 0, 0, .02);
  border-bottom: 1px solid var(--ds-border);
}

/* Larghezze colonne (desktop) */
.ds-wishlist__th--product {
  width: 52%;
  ;
}

.ds-wishlist__th--remove {
  width: 64px;
  text-align: center;
}

.ds-wishlist__th--actions {
  width: 28%;
}

.ds-wishlist__th--actions {
  text-align: center;
}

/* Celle */
.ds-wishlist__cell {
  padding: 16px;
  vertical-align: middle;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
  background: #fff;
}

.ds-wishlist__row:last-child .ds-wishlist__cell {
  border-bottom: 0;
}

/* Prodotto: thumb + name */
.ds-wishlist__prod {
  display: flex;
  align-items: center;
  gap: 14px;
}

.ds-wishlist__thumb {
  position: relative;
  width: 74px;
  flex: 0 0 74px;
}

.ds-wishlist__thumbImg,
.ds-wishlist__thumbPlaceholder {
  width: 74px;
  height: 74px;
  border-radius: 10px;
  background: rgba(0, 0, 0, .03);
  border: 1px solid rgba(0, 0, 0, .06);
  overflow: hidden;
}

.ds-wishlist__thumbImg {
  object-fit: cover;
}

/* Cuoricino overlay */
.ds-wishlist__thumbHeart {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(0, 0, 0, .08);
}

.ds-wishlist__thumbHeart svg {
  width: 14px;
  height: 14px;
  display: block;
}

/* Nome prodotto */
.ds-wishlist__name a {
  font-weight: 700;
  text-decoration: none;
  color: var(--ds-black);
  line-height: 1.25;
}

.ds-wishlist__name a:hover {
  color: rgba(47, 47, 47, .78);
}

/* Prezzo */
.ds-wishlist__price {
  font-weight: 700;
  color: var(--ds-black);
}

/* Stock */
.ds-wishlist__stock {
  font-weight: 700;
  font-size: 14px;
}

.ds-wishlist__stock--in {
  color: var(--ds-success);
}

.ds-wishlist__stock--out,
.ds-wishlist__stock--missing {
  color: rgba(0, 0, 0, .55);
}

/* Colonna Rimuovi */
.ds-wishlist__cell--remove {
  text-align: center;
}

.ds-wishlist__remove {
  background: transparent;
  border: 0;
  padding: 6px;
  cursor: pointer;
  color: rgba(0, 0, 0, .55);
}

.ds-wishlist__remove:hover {
  color: rgba(0, 0, 0, .85);
}

.ds-wishlist__remove svg {
  display: block;
}

/* Colonna Acquisto (pulsanti) */
.ds-wishlist__cell--actions {
  text-align: right;
}

.ds-wishlist__actions {
  display: grid;
  gap: 10px;
  justify-items: end;
}

.ds-wishlist__form {
  margin: 0;
}

/* Bottoni azioni: size come reference, testo NON bold */
.ds-wishlist__actions .ds-btn {
  min-width: 210px;
  padding: 10px 14px;
  min-height: 40px;
  font-size: 14px;
  border-radius: var(--ds-radius-sm);
  white-space: nowrap;
  font-weight: 600;
  /* non grassetto */
}

/* FORZA: "Aggiungi al carrello" come "Pagamento" (primary) */
.ds-wishlist__actions .ds-btn--primary {
  background: #FFC107;
  border: 1px solid #FFC107;
  color: #2b2b2b;
}

/* Stati */
.ds-wishlist__row.is-missing {
  opacity: .75;
}

.ds-wishlist__row.is-oos .ds-wishlist__actions .ds-btn {
  opacity: .65;
}

/* Footer */
.ds-wishlist__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 18px;
}

.ds-wishlist__bulk {
  margin: 0;
}

/* Bottoni footer: testo NON bold */
.ds-wishlist__footer .ds-btn {
  padding: 12px 18px;
  min-height: 44px;
  border-radius: var(--ds-radius-sm);
  font-weight: 600;
  /* non grassetto */
}

/* Continua gli acquisti: secondary + NO underline (niente linea sotto) */
.ds-wishlist__footer .ds-btn--secondary {
  background: #ffffff;
  border: 1px solid var(--ds-black);
  color: var(--ds-black);
  text-decoration: none;
  /* <-- rimuove la linea */
}

/* Aggiungi tutto al carrello: primary (come Pagamento) */
.ds-wishlist__footer .ds-btn--primary {
  background: var(--ds-black);
  border: 1px solid var(--ds-black);
  color: #ffffff;
}

/* ======================================================================
   END WISHLIST (Enterprise) – DESKTOP (FIX)
   ====================================================================== */



/* ======================================================================
   WISHLIST (Enterprise) – MOBILE (SAFE)
   - Usa .ds-wishlist__mobile (presente nel template)
   - Nasconde solo colonne desktop (non distrugge la tabella)
   - Bottoni: stesso font, NON bold, full-width e centrati
   ====================================================================== */

@media (max-width: 900px) {

  /* Header tabella OFF */
  .ds-wishlist__th {
    display: none;
  }

  /* Manteniamo la tabella, ma rendiamo ogni riga una "card" */
  .ds-wishlist__table,
  .ds-wishlist__table tbody {
    display: block;
    width: 100%;
  }

  .ds-wishlist__row {
    display: block;
    padding: 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
  }

  /* Ogni cella resta block */
  .ds-wishlist__cell {
    display: block;
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
  }

  /* Nascondi SOLO le celle desktop non necessarie */
  .ds-wishlist__cell--price,
  .ds-wishlist__cell--stock,
  .ds-wishlist__cell--remove,
  .ds-wishlist__cell--actions {
    display: none;
  }

  /* La cella prodotto contiene sia desktop che mobile */
  .ds-wishlist__cell--product {
    padding: 14px;
    background: #fff;
  }

  /* Spegni blocco desktop dentro la cella prodotto */
  .ds-wishlist__prod {
    display: none;
  }

  /* Accendi blocco mobile */
  .ds-wishlist__mobile {
    display: block;
  }

  /* Layout top: sinistra (titolo+img+prezzo) / destra (stock+trash) */
  .ds-wishlist__mobileTop {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 14px;
    align-items: start;
  }

  /* Titolo a sinistra */
  .ds-wishlist__mobileTitle a,
  .ds-wishlist__mobileTitle span {
    display: inline-block;
    margin-bottom: 10px;
    font-weight: 700;
    color: var(--ds-black);
    text-decoration: none;
    line-height: 1.25;
  }

  /* Immagine sotto al titolo */
  .ds-wishlist__mobileThumb {
    width: 76px;
  }

  .ds-wishlist__mobileThumb .ds-wishlist__thumbImg,
  .ds-wishlist__mobileThumb .ds-wishlist__thumbPlaceholder {
    width: 76px;
    height: 76px;
    border-radius: 10px;
    background: rgba(0, 0, 0, .03);
    border: 1px solid rgba(0, 0, 0, .06);
    overflow: hidden;
  }

  .ds-wishlist__mobileThumb .ds-wishlist__thumbImg {
    display: block;
    object-fit: cover;
  }

  /* Prezzo sotto immagine */
  .ds-wishlist__mobilePrice {
    margin-top: 10px;
  }

  .ds-wishlist__mobilePrice .ds-wishlist__price {
    font-weight: 700;
    color: var(--ds-black);
  }

  /* Colonna destra: stock + trash */
  .ds-wishlist__mobileRight {
    display: grid;
    justify-items: end;
    gap: 10px;
  }

  .ds-wishlist__mobileStock .ds-wishlist__stock {
    font-weight: 700;
    font-size: 14px;
  }

  /* Trash */
  .ds-wishlist__remove {
    background: transparent;
    border: 0;
    padding: 6px;
    cursor: pointer;
    color: rgba(0, 0, 0, .55);
  }

  .ds-wishlist__remove:hover {
    color: rgba(0, 0, 0, .85);
  }

  /* CTA full-width */
  .ds-wishlist__mobileCtas {
    margin-top: 14px;
    display: grid;
    gap: 10px;
  }

  /* Uniforma font e toglie bold per TUTTI i bottoni in mobile */
  .ds-wishlist__mobileCtas .ds-btn,
  .ds-wishlist__footer .ds-btn {
    font-family: var(--ds-font);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
  }

  .ds-wishlist__mobileCtas .ds-btn {
    width: 100%;
    min-height: 44px;
    padding: 12px 14px;
    border-radius: var(--ds-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    /* niente grassetto */
  }

  /* Aggiungi al carrello = stesso stile di "Aggiungi tutto al carrello" */
  .ds-wishlist__mobileCtas .ds-btn--primary {
    background: #FFC107;
    color: #2b2b2b;
    border-color: #FFC107;
  }


  /* Footer mobile stack */
  .ds-wishlist__footer {
    flex-direction: column;
    align-items: stretch;
  }

  .ds-wishlist__footer .ds-btn {
    width: 100%;
    min-height: 44px;
    padding: 12px 14px;
    border-radius: var(--ds-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* ======================================================================
   END WISHLIST (Enterprise) – MOBILE (SAFE)
   ====================================================================== */



/* ======================================================================
   WISHLIST (Enterprise) – EMPTY STATE
   Obiettivo:
   - "Continua gli acquisti" uguale a "Aggiungi al carrello"
   - Nessun underline
   - Testo normale (non bold extra)
   ====================================================================== */

.ds-wishlist__empty a.ds-btn,
.ds-wishlist__empty a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 44px;
  padding: 12px 18px;
  border-radius: var(--ds-radius-sm);

  background: var(--ds-black);
  color: #fff;
  border: 1px solid var(--ds-black);

  text-decoration: none;
  font-weight: 400;
}

/* Hover coerente con primary */
.ds-wishlist__empty a:hover {
  background: var(--ds-black);
  color: #fff;
  text-decoration: none;
}

/* Mobile: bottone full width */
@media (max-width: 900px) {
  .ds-wishlist__empty a {
    width: 100%;
  }
}

/* ======================================================================
   END WISHLIST (Enterprise) – EMPTY STATE
   ====================================================================== */



/* =========================================================
   DOMSHOP – PDP MEDIA (DESKTOP)
   Scope: .ds-pdp (content-single-product.php)
   ========================================================= */

/* -----------------------------
   HERO GRID
------------------------------ */
@media (min-width: 1024px) {
  .ds-pdp__hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 48px;
    align-items: start;
  }
}

/* -----------------------------
   MEDIA WRAPPER
------------------------------ */
.ds-pdp__media {
  position: relative;
  width: 100%;
}

/* Woo gallery reset */
.ds-pdp__media .woocommerce-product-gallery {
  float: none;
  width: 100%;
  margin: 0;
}

/* -----------------------------
   MAIN IMAGE
------------------------------ */
.ds-pdp__media .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;

  border-radius: var(--ds-radius, 12px);
}

/* -----------------------------
   ZOOM ICON
------------------------------ */
.ds-pdp__media .woocommerce-product-gallery__trigger {
  display: none;
}

/* -----------------------------
   WISHLIST OVERLAY
------------------------------ */
.ds-pdp__media .ds-wishlist-btn--overlay {
  position: absolute;
  top: 62px;
  right: 14px;
  z-index: 11;

  width: 42px;
  height: 42px;
  border-radius: 50%;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(255, 255, 255, .95);
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  box-shadow: var(--ds-shadow, 0 6px 18px rgba(0, 0, 0, .12));

  padding: 0;
  cursor: pointer;
}

/* Icon base */
.ds-pdp__media .ds-wishlist-btn--overlay svg {
  width: 20px;
  height: 20px;

  fill: none;
  stroke: var(--ds-black, #2f2f2f);
  stroke-width: 2;

  transition: fill .2s ease, stroke .2s ease;
}

/* SOLO CUORE NERO (non il cerchio) */
.ds-pdp__media .ds-wishlist-btn--overlay[data-in-wishlist="1"] svg {
  fill: #000;
  stroke: #000;
}

/* -----------------------------
   THUMBNAILS GALLERY
------------------------------ */
.ds-pdp__media .flex-control-thumbs {
  margin-top: 14px;
  padding: 0 0 10px 0;

  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
}

/* Nascondi scrollbar ovunque (Desktop & Mobile) poichè useremo le frecce custom */
.ds-pdp__media .flex-control-thumbs::-webkit-scrollbar {
  display: none;
}

.ds-pdp__media .flex-control-thumbs {
  scrollbar-width: none;
  -ms-overflow-style: none;
  overflow-y: hidden;
  /* Previeni scroll verticale accidentale */
}

/* Frecce di Scorrimento Thumbnails Custom */
.ds-pdp__media .ds-thumbs-wrapper {
  position: relative;
  display: block;
  width: 100%;
}

.ds-pdp__media .ds-thumb-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  color: #2b2b2b;
  transition: all 0.2s ease;
}

.ds-pdp__media .ds-thumb-arrow:hover {
  background: #2b2b2b;
  color: #ffffff;
  transform: translateY(-50%) scale(1.05);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.ds-pdp__media .ds-thumb-arrow--prev {
  left: -12px;
}

.ds-pdp__media .ds-thumb-arrow--next {
  right: -12px;
}

@media (max-width: 768px) {
  .ds-pdp__media .ds-thumb-arrow--prev {
    left: -4px;
  }

  .ds-pdp__media .ds-thumb-arrow--next {
    right: -4px;
  }

  .ds-pdp__media .ds-thumb-arrow {
    width: 30px;
    height: 30px;
  }
}

.ds-pdp__media .ds-thumb-arrow.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-50%) scale(0.9);
}

.ds-pdp__media .ds-thumb-arrow svg {
  width: 18px;
  height: 18px;
  stroke-width: 2.5;
}

/* Singola thumb */
.ds-pdp__media .flex-control-thumbs li {
  margin: 0;
  padding: 0;
  list-style: none;
  list-style-type: none;
  flex: 0 0 calc((100% - (12px * 5)) / 6);
  scroll-snap-align: start;
}

/* Thumb image */
.ds-pdp__media .flex-control-thumbs img {
  display: block;
  width: 100%;
  height: auto;

  border-radius: var(--ds-radius, 12px);
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));

  opacity: .7;
  transition: opacity .2s ease, border-color .2s ease;
}

/* Active / hover */
.ds-pdp__media .flex-control-thumbs img.flex-active,
.ds-pdp__media .flex-control-thumbs img:hover {
  opacity: 1;
  border-color: var(--ds-black, #2f2f2f);
}


/* Spazio REALE sotto l'immagine principale */
.ds-pdp__media .woocommerce-product-gallery .flex-viewport {
  margin-bottom: 16px;
}

/* =========================================================
   PDP BENEFITS — sotto i pagamenti (DENTRO il box di destra)
   - CENTRATO (box più stretto del container)
   - 2 colonne SEMPRE (anche mobile)
   - NO background, solo bordo
   - NO bullet / marker
   ========================================================= */

/* se la summary è una grid: metti i benefits full-row */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 18px;
  padding: 0;
}

/* QUESTO è il punto chiave del centraggio:
   il box NON deve essere width:100%, ma un blocco più stretto con margin auto */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__benefits-inner {
  width: min(420px, 100%);
  /* ✅ più stretto del box -> si centra */
  margin: 0 auto;
  /* ✅ centrato */
  box-sizing: border-box;

  padding: 18px 16px;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;

  justify-self: center;
  /* ✅ se il parent è grid */
}

/* griglia interna: 2 colonne SEMPRE */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__benefits-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  /* ✅ sempre 2 */
  gap: 26px;
  align-items: start;
}

/* titoli */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__benefits-title {
  margin: 0 0 10px;
  font-family: var(--ds-font, system-ui);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--ds-black, #2f2f2f);
}

/* NO bullet (anche marker safari) */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__checklist {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__checklist-item {
  list-style: none;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__checklist-item::marker {
  content: "";
}

/* riga */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__checklist-item {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  align-items: start;
  padding: 6px 0;
}

/* check */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__check {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #7ea48d;
  position: relative;
  margin-top: 2px;
  display: inline-block;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__check::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 5px;
  width: 6px;
  height: 3px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
}

/* testo */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__checklist-text {
  font-family: var(--ds-font, system-ui);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(0, 0, 0, .72);
}

/* mobile: resta 2 colonne, solo più compatto */
@media (max-width: 991px) {
  .ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__benefits-inner {
    width: min(420px, 100%);
    padding: 16px 14px;
  }

  .ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__benefits-title {
    font-size: 16px;
  }

  .ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__benefits .ds-pdp__checklist-text {
    font-size: 13px;
  }
}



/* =========================================================
   PDP RIGHT BOX — SPEC ESATTO (scoped)
   - Contenitore BIANCO (già nel markup: .ds-box.ds-pdp__box)
   - Titolo a SINISTRA
   - Riga 2: Prezzo a sinistra + Quantità a destra
   - Poi FULL WIDTH in ordine:
     1) Aggiungi al carrello
     2) Acquista ora
     3) Metodi di pagamento
     4) Express checkout
   ========================================================= */

/* 0) BOX BIANCO  ✅ FIX: ora “contiene” SEMPRE tutta l’altezza */
.ds-pdp__summary .ds-box.ds-pdp__box {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  box-sizing: border-box;

  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .06);
  padding: 22px;

  /* ✅ FIX ALTEZZA: crea un BFC che abbraccia anche contenuti “problematici” (iframe/contents) */
  display: flow-root;
  height: auto;
  overflow: visible;
}

/* 1) GRID INTERNA (titolo / prezzo+qty / stack) */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__summary-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  /* sinistra testo, destra qty */
  grid-auto-rows: auto;
  gap: 12px 14px;

  width: 100%;
  text-align: left;
}

/* Title block: titolo + descrizione sotto (stessa cella grid) */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__titleBlock {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
}

/* Reset margini Woo dentro box */
.ds-pdp__summary .ds-box.ds-pdp__box :where(h1, p, form, ul, ol) {
  margin: 0;
}

/* 2) TITOLO (riga 1, full) */
.ds-pdp__summary .ds-box.ds-pdp__box .product_title {
  grid-column: 1 / -1;
  font-family: var(--ds-font, system-ui);
  font-size: 30px;
  line-height: 1.15;
  font-weight: 800;
  color: var(--ds-black, #2f2f2f);
}

/* 3) PREZZO (riga 2 col 1) */
.ds-pdp__summary .ds-box.ds-pdp__box .price,
.ds-pdp__summary .ds-box.ds-pdp__box .price * {
  grid-column: 1 / 2;
  align-self: center;

  color: var(--ds-black, #2f2f2f);
  font-family: var(--ds-font, system-ui);
  font-size: 18px;
  font-weight: 700;
}

/* 4) “SPACCHETTA” i wrapper per controllare layout/ordine SENZA toccare PHP */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__cta {
  display: contents;
}

.ds-pdp__summary .ds-box.ds-pdp__box form.cart {
  display: contents;
}

/* 5) QUANTITÀ (riga 2 col 2) */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__qtyRow {
  grid-column: 2 / 3;
  grid-row: 2;
  align-self: center;
  justify-self: end;
}

/* Qty UI */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-qty {
  display: inline-flex;
  align-items: center;
  gap: 0;

  border: 1px solid rgba(0, 0, 0, .14);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}



.ds-qtywrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ds-qtywrap__label {
  font-size: 12px;
  font-weight: 900;
  color: var(--ds-black, #2b2b2b);
  letter-spacing: .2px;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-qty__btn {
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  color: var(--ds-black, #2f2f2f);
  font-weight: 700;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-qty__input {
  width: 46px;
  height: 40px;
  border: 0;
  border-left: 1px solid rgba(0, 0, 0, .10);
  border-right: 1px solid rgba(0, 0, 0, .10);
  background: transparent;
  text-align: center;
  font-weight: 700;
  outline: none;
}

/* 6) FULL WIDTH STACK (ordine richiesto) */

/* Aggiungi al carrello (riga 3 full) */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__ctaStack {
  grid-column: 1 / -1;
  grid-row: 3;
  width: 100%;
}

.ds-pdp__summary .ds-box.ds-pdp__box button.single_add_to_cart_button.button.alt.ds-btn.ds-btn--primary {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;

  min-height: 48px;
  padding: 12px 16px;

  border-radius: 10px;
  background: var(--ds-black, #2f2f2f);
  border: 1px solid var(--ds-black, #2f2f2f);
  color: #fff;

  font-family: var(--ds-font, system-ui);
  font-size: 15px;
  font-weight: 700;
}

.ds-pdp__summary .ds-box.ds-pdp__box button.single_add_to_cart_button.button.alt.ds-btn.ds-btn--primary:hover {
  background: var(--ds-black, #2f2f2f);
  border-color: var(--ds-black, #2f2f2f);
}

/* Acquista ora (riga 4 full) */
.ds-pdp__summary .ds-box.ds-pdp__box form.ds-buy-now.ds-pdp__buyNow {
  grid-column: 1 / -1;
  grid-row: 4;
  width: 100%;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-btn.ds-btn--buy-now {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;

  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .35);
  color: var(--ds-black, #2f2f2f);

  font-family: var(--ds-font, system-ui);
  font-size: 15px;
  font-weight: 700;
}

/* Metodi di pagamento (riga 5 full) */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__payments {
  grid-column: 1 / -1;
  grid-row: 5;
  width: 100%;
  margin-top: 2px;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__list {
  list-style: none;
  padding: 0;
  margin: 0;

  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;

  justify-content: flex-start;
  /* coerente col layout a sinistra */
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__icon {
  height: 22px;
  width: auto;
  display: block;
}

/* Express checkout (riga 6 full) */
.ds-pdp__summary .ds-box.ds-pdp__box .wcpay-express-checkout-wrapper {
  grid-column: 1 / -1;
  grid-row: 6;
  width: 100%;
  margin-top: 8px;
}

/* blindiamo la full width dell’iframe Stripe */
.ds-pdp__summary .ds-box.ds-pdp__box .wcpay-express-checkout-wrapper :where(div, iframe) {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__list {
  justify-content: center;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__icon {
  height: 40px;
  /* prova 28–32 se li vuoi più “premium” */
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__payments {
  padding: 12px 0;
}

.ds-pdp__summary .ds-box.ds-pdp__box .ds-payments {
  background: #fff;
}




/* =========================================================
   DOMSHOP – PDP RELATED (NO CONTAINER, SOLO CARD)
   DESKTOP ONLY
   Target: SOLO .ds-pdp__related
   ========================================================= */
@media (min-width: 992px) {

  /* -----------------------------
     1) Sezione: niente “box” attorno
  ------------------------------ */
  body.single-product .ds-pdp__related-inner {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;

    /* spacing semplice */
    padding: 0;
    max-width: none;
    margin: 0;
  }

  body.single-product .ds-pdp__related-inner .ds-pdp__section-title {
    margin: 0 0 14px;
    font-family: var(--ds-font, system-ui);
    font-size: 20px;
    font-weight: 700;
    color: var(--ds-black, #2f2f2f);
  }

  /* -----------------------------
     2) Grid: 3 colonne
  ------------------------------ */
  body.single-product .ds-pdp__related .ds-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ds-gap, 18px);
    align-items: stretch;
    align-content: start;
  }

  /* -----------------------------
     3) Card: stile card (come archive)
  /* -----------------------------
     3) Card: stile card (come archive)
  ------------------------------ */
  body.single-product .ds-pdp__related .ds-related__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;

    background: #fff;
    border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
    border-radius: var(--ds-radius, 12px);
    box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));
    overflow: hidden;
  }

  /* immagine meno alta */
  body.single-product .ds-pdp__related .ds-related__media {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f4f4f4;
  }

  body.single-product .ds-pdp__related .ds-related__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* testo */
  body.single-product .ds-pdp__related .ds-related__title,
  body.single-product .ds-pdp__related .ds-related__price,
  body.single-product .ds-pdp__related .ds-related__cta {
    padding-left: 14px;
    padding-right: 14px;
  }

  body.single-product .ds-pdp__related .ds-related__title {
    margin: 12px 0 6px;
    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
  }

  body.single-product .ds-pdp__related .ds-related__title a {
    color: var(--ds-black, #2f2f2f);
    text-decoration: none;
  }

  body.single-product .ds-pdp__related .ds-related__price {
    display: block;
    margin: 0 0 auto 0;
    /* Spinge giù le CTA sottostanti */
    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 600;
    color: var(--ds-black, #2f2f2f);
  }

  /* -----------------------------
     4) CTA: identico archive
  ------------------------------ */
  body.single-product .ds-pdp__related .ds-related__cta {
    padding-bottom: 12px;
  }

  body.single-product .ds-pdp__related .ds-related__cta a,
  body.single-product .ds-pdp__related .ds-related__cta button {
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    padding: 12px 14px;
    border-radius: var(--ds-radius-sm, 10px);

    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;

    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;

    box-sizing: border-box;
    white-space: normal;
    word-break: break-word;
  }

  /* Add to cart: nero + NO hover */
  body.single-product .ds-pdp__related .ds-related__cta :where(a.add_to_cart_button, a.ajax_add_to_cart, a.button) {
    background: var(--ds-black, #2f2f2f);
    border: 1px solid var(--ds-black, #2f2f2f);
    color: #fff;

    box-shadow: none;
    transform: none;
    filter: none;
  }

  body.single-product .ds-pdp__related .ds-related__cta :where(a.add_to_cart_button, a.ajax_add_to_cart, a.button):hover {
    background: var(--ds-black, #2f2f2f);
    border-color: var(--ds-black, #2f2f2f);
    color: #fff;

    box-shadow: none;
    transform: none;
    filter: none;
  }

  /* Buy now: outline + hover filled */
  body.single-product .ds-pdp__related .ds-buy-now .ds-btn--buy-now {
    background: #fff;
    border: 1px solid var(--ds-black, #2f2f2f);
    color: var(--ds-black, #2f2f2f);
  }

  body.single-product .ds-pdp__related .ds-buy-now .ds-btn--buy-now:hover {
    background: var(--ds-black, #2f2f2f);
    border-color: var(--ds-black, #2f2f2f);
    color: #fff;
  }

  /* -----------------------------
     5) Wishlist overlay: FIX definitivo
  ------------------------------ */
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;

    width: 36px;
    height: 36px;
    border-radius: 999px;

    background: #fff;
    border: 1px solid #e7e7e7;
    color: var(--ds-black, #2f2f2f);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 6px 16px rgba(0, 0, 0, .10);
  }

  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
  }

  /* ATTIVO: cerchio bianco + cuore nero pieno */
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[data-in-wishlist="1"],
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[aria-pressed="true"] {
    background-color: #fff;
    border-color: #e7e7e7;
    color: var(--ds-black, #2f2f2f);
    /* cuore nero */
  }

  /* cuore pieno quando attivo */
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[data-in-wishlist="1"] svg,
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[aria-pressed="true"] svg {
    fill: currentColor;
    stroke: currentColor;
  }

  /* FASCIA FULL WIDTH */
  body.single-product .ds-pdp__related {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;

    background: #fff;
    border-top: 1px solid rgba(0, 0, 0, .08);

    padding: 36px 0 48px;
    margin-bottom: 0;
  }

  /* CONTENUTO CENTRATO */
  body.single-product .ds-pdp__related-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 24px 24px;
    background: transparent;
    border: 0;
    box-shadow: none;
    box-sizing: border-box;
  }

  /* TITOLO + SOTTOTITOLO */
  body.single-product .ds-pdp__section-title {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 6px;
  }

  body.single-product .ds-pdp__section-title::after {
    content: "Scelti per te: aggiungi al volo o apri la scheda";
    display: block;
    margin-top: 6px;
    font-size: 13px;
    font-weight: 600;
    opacity: .7;
  }

  /* GRID / RAIL */
  body.single-product .ds-related__grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(320px, 360px);
    gap: 18px;

    overflow-x: auto;
    padding-bottom: 6px;
    scroll-snap-type: x mandatory;
  }

  body.single-product .ds-related__card {
    scroll-snap-align: start;
    transition: none;
  }

  /* NIENTE EFFETTI */
  body.single-product .ds-related__card:hover {
    transform: none;
    box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));
  }

  /* Footer attaccato */
  body.single-product #primary,
  body.single-product main,
  body.single-product .site-main,
  body.single-product .content-area {
    padding-bottom: 0;
    margin-bottom: 0;
  }

  body.single-product footer,
  body.single-product .site-footer {
    margin-top: 0;
  }

  /* Forza inner centrato (più specifico) */
  body.single-product section.ds-pdp__related>.ds-pdp__related-inner {
    width: 100%;
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
    display: block;
    box-sizing: border-box;
  }

  /* distacco extra */
  .ds-pdp__related {
    margin-top: 40px;
  }

}

/* ✅ CHIUSURA UNICA DEL DESKTOP */



/* =========================================================
   DOMSHOP – PDP RELATED (MOBILE)
   - 1 colonna (uno sopra l’altro)
   - stessa grafica desktop (card, wishlist, CTA)
   - niente rail / overflow orizzontale
   ========================================================= */
@media (max-width: 991px) {

  /* Sezione: stop full-bleed + stop rail */
  body.single-product .ds-pdp__related {
    width: 100%;
    margin-top: 28px;
    padding: 0 0 24px;

    background: transparent;
    border-top: 0;

    position: static;
    left: auto;
    right: auto;
    margin-left: 0;
    margin-right: 0;
  }

  /* Inner centrato */
  body.single-product section.ds-pdp__related>.ds-pdp__related-inner {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 16px;
    box-sizing: border-box;

    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
  }

  /* Titolo */
  body.single-product .ds-pdp__related-inner .ds-pdp__section-title {
    margin: 0 0 14px;
    font-family: var(--ds-font, system-ui);
    font-size: 18px;
    font-weight: 800;
    color: var(--ds-black, #2f2f2f);
  }

  /* no sottotitolo su mobile */
  body.single-product .ds-pdp__section-title::after {
    content: none;
    display: none;
  }

  /* GRID: 1 colonna */
  body.single-product .ds-pdp__related .ds-related__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;

    grid-auto-flow: row;
    grid-auto-columns: unset;

    overflow: visible;
    scroll-snap-type: none;
    padding-bottom: 0;
  }

  /* Card: stessa grafica */
  body.single-product .ds-pdp__related .ds-related__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;

    background: #fff;
    border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
    border-radius: var(--ds-radius, 12px);
    box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));
    overflow: hidden;

    transform: none;
  }

  /* Media: un filo più “vendibile” su mobile */
  body.single-product .ds-pdp__related .ds-related__media {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f4f4f4;
  }

  body.single-product .ds-pdp__related .ds-related__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* testo */
  body.single-product .ds-pdp__related .ds-related__title,
  body.single-product .ds-pdp__related .ds-related__price,
  body.single-product .ds-pdp__related .ds-related__cta {
    padding-left: 14px;
    padding-right: 14px;
  }

  body.single-product .ds-pdp__related .ds-related__title {
    margin: 12px 0 6px;
    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
  }

  body.single-product .ds-pdp__related .ds-related__title a {
    color: var(--ds-black, #2f2f2f);
    text-decoration: none;
  }

  body.single-product .ds-pdp__related .ds-related__price {
    display: block;
    margin: 0 0 12px;
    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 600;
    color: var(--ds-black, #2f2f2f);
  }

  /* CTA */
  body.single-product .ds-pdp__related .ds-related__cta {
    padding-bottom: 12px;
  }

  body.single-product .ds-pdp__related .ds-related__cta :where(a, button) {
    width: 100%;
    min-height: 44px;
    padding: 12px 14px;
    border-radius: var(--ds-radius-sm, 10px);

    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    box-sizing: border-box;
  }

  /* Add to cart: nero + NO hover */
  body.single-product .ds-pdp__related .ds-related__cta :where(a.add_to_cart_button, a.ajax_add_to_cart, a.button) {
    background: var(--ds-black, #2f2f2f);
    border: 1px solid var(--ds-black, #2f2f2f);
    color: #fff;

    box-shadow: none;
    transform: none;
    filter: none;
  }

  body.single-product .ds-pdp__related .ds-related__cta :where(a.add_to_cart_button, a.ajax_add_to_cart, a.button):hover {
    background: var(--ds-black, #2f2f2f);
    border-color: var(--ds-black, #2f2f2f);
    color: #fff;

    box-shadow: none;
    transform: none;
    filter: none;
  }

  /* Buy now */
  body.single-product .ds-pdp__related .ds-buy-now .ds-btn--buy-now {
    background: #fff;
    border: 1px solid var(--ds-black, #2f2f2f);
    color: var(--ds-black, #2f2f2f);
  }

  body.single-product .ds-pdp__related .ds-buy-now .ds-btn--buy-now:hover {
    background: var(--ds-black, #2f2f2f);
    border-color: var(--ds-black, #2f2f2f);
    color: #fff;
  }

  /* Wishlist overlay: stessa logica desktop */
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;

    width: 36px;
    height: 36px;
    border-radius: 999px;

    background: #fff;
    border: 1px solid #e7e7e7;
    color: var(--ds-black, #2f2f2f);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 6px 16px rgba(0, 0, 0, .10);
  }

  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
  }

  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[data-in-wishlist="1"],
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[aria-pressed="true"] {
    background-color: #fff;
    border-color: #e7e7e7;
    color: var(--ds-black, #2f2f2f);
  }

  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[data-in-wishlist="1"] svg,
  body.single-product .ds-pdp__related .ds-wishlist-btn--overlay[aria-pressed="true"] svg {
    fill: currentColor;
    stroke: currentColor;
  }
}


@media (max-width: 991px) {

  /* FULL BLEED bianco: riempie i laterali */
  body.single-product section.ds-pdp__related {
    background: #fff;

    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;

    margin-right: 0;
    padding-bottom: 24px;
    /* base */
  }

  /* contenuto “centrato” dentro la fascia */
  body.single-product section.ds-pdp__related>.ds-pdp__related-inner {
    max-width: 100%;
    margin: 0 auto;
    padding: 20px 16px 24px;
    box-sizing: border-box;
    background: transparent;
  }

  /* attacca al footer: elimina cuscini del tema sotto il main */
  body.single-product #primary,
  body.single-product main,
  body.single-product .site-main,
  body.single-product .content-area {
    padding-bottom: 0;
    margin-bottom: 0;
  }

  body.single-product footer,
  body.single-product .site-footer {
    margin-top: 0;
  }
}



/* =========================================================
   CART (Woo Blocks) — SOLO CONTAINER BIANCO
   Scope: pagina carrello + blocco cart
   ========================================================= */
body.woocommerce-cart article.post-9 {
  /* opzionale: se vuoi più aria attorno */
  padding-bottom: 40px;
}

body.woocommerce-cart article.post-9>div>.wp-block-woocommerce-cart.alignwide {
  /* ✅ container bianco come gli altri box */
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .06);

  /* ✅ centrato e “da sito” */
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px;

  box-sizing: border-box;
}


/* =========================================================
   CART — UX Enhancements (Limit Scroll & Hide Description)
   ========================================================= */

/* Hide product descriptions inside the Cart items completely */
.wc-block-cart-items .wc-block-components-product-details>*:not(.wc-block-components-product-name):not(.wc-block-components-product-metadata):not(.wc-block-components-product-details__item) {
  display: none;
}

.wc-block-components-product-details__description,
.wc-block-components-product-details__short-description,
.wc-block-components-product-summary,
.wp-block-woocommerce-cart-line-items-block .wc-block-components-product-summary,
.wc-block-cart-item__description {
  display: none;
}

/* Custom scrollbar only for specific columns */
.wc-block-cart-items,
.wc-block-cart__items,
.wc-block-components-order-summary-item-list,
.wp-block-woocommerce-checkout-order-summary-cart-items-block {
  max-height: 55vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 15px;
}

/* Custom Sleek Scrollbar for Cart Items */
.wc-block-cart-items::-webkit-scrollbar,
.wc-block-cart__items::-webkit-scrollbar,
.wc-block-components-order-summary-item-list::-webkit-scrollbar,
.wp-block-woocommerce-checkout-order-summary-cart-items-block::-webkit-scrollbar {
  width: 6px;
}

.wc-block-cart-items::-webkit-scrollbar-track,
.wc-block-cart__items::-webkit-scrollbar-track,
.wc-block-components-order-summary-item-list::-webkit-scrollbar-track,
.wp-block-woocommerce-checkout-order-summary-cart-items-block::-webkit-scrollbar-track {
  background: #f4f4f4;
  border-radius: 4px;
}

.wc-block-cart-items::-webkit-scrollbar-thumb,
.wc-block-cart__items::-webkit-scrollbar-thumb,
.wc-block-components-order-summary-item-list::-webkit-scrollbar-thumb,
.wp-block-woocommerce-checkout-order-summary-cart-items-block::-webkit-scrollbar-thumb {
  background: #2b2b2b;
  border-radius: 4px;
}

@media (max-width: 768px) {

  .wc-block-cart-items,
  .wc-block-cart__items,
  .wc-block-components-order-summary-item-list,
  .wp-block-woocommerce-checkout-order-summary-cart-items-block {
    max-height: 60vh;
    padding-right: 4px;
  }
}


/* =========================================================
   CART — Pulsante "Procedi al pagamento"
   identico a "Aggiungi al carrello"
   ========================================================= */

body.woocommerce-cart .wc-block-cart__submit-button {
  background: var(--ds-black, #2f2f2f);
  border: 1px solid var(--ds-black, #2f2f2f);
  color: #fff;

  min-height: 48px;
  border-radius: 10px;

  font-family: var(--ds-font, system-ui);
  font-size: 15px;
  font-weight: 700;

  box-shadow: none;
  transform: none;
}

/* NO hover diverso */
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:focus {
  background: var(--ds-black, #2f2f2f);
  border-color: var(--ds-black, #2f2f2f);
  color: #fff;

  box-shadow: none;
  transform: none;
}

body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-cart__submit-button * {
  text-decoration: none;
}



/* ===============================
   CARRELLO – CODICE PROMO
   input + applica = unico campo
   =============================== */

/* ==========================================================================
   DOMSHOP COUPON FORMS (Cart & Checkout Unified)
   ========================================================================== */

/* Forza struttura a colonna ristretta e compatta nel carrello e checkout */
body.woocommerce-cart .wc-block-components-totals-coupon__form,
body.woocommerce-checkout .wc-block-components-totals-coupon__form {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 14px;
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  height: auto;
  min-height: 0;
  overflow: visible;
}

/* Reset input wrapper per azzerare margini ereditati */
body.woocommerce-cart .wc-block-components-totals-coupon__input,
body.woocommerce-checkout .wc-block-components-totals-coupon__input {
  margin: 0;
  padding: 0;
  flex: none;
  width: 100%;
  height: auto;
}

body.woocommerce-cart .wc-block-components-totals-coupon__input .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-totals-coupon__input .wc-block-components-text-input {
  margin: 0;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.4);
  border-radius: 8px;
  background: #fff;
}

body.woocommerce-cart .wc-block-components-totals-coupon__input input,
body.woocommerce-checkout .wc-block-components-totals-coupon__input input {
  padding: 14px 16px;
  border: none;
  box-shadow: none;
  background: transparent;
  font-size: 15px;
  font-family: var(--ds-font, system-ui);
  color: #2b2b2b;
  height: auto;
}

/* "APPLICA" BUTTON - SAME COLOR AS ADD TO CART (#FFC107) */
body.woocommerce-cart .wc-block-components-totals-coupon__button,
body.woocommerce-checkout .wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon__button.wp-element-button {
  background: #FFC107;
  border: 1px solid #FFC107;
  color: #2B2B2B;
  width: 100%;
  padding: 16px 24px;
  border-radius: 12px;
  font-size: 15px;
  font-family: var(--ds-font, system-ui);
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  height: auto;
  min-height: 52px;
}

.wc-block-components-totals-coupon__button:hover,
.wc-block-components-totals-coupon__button.wp-element-button:hover {
  background: #eab005;
  border-color: #eab005;
  color: #2B2B2B;
}

.wc-block-components-totals-coupon__button .wc-block-components-button__text {
  color: #2B2B2B;
  font-weight: 600;
}

.wc-block-components-totals-coupon__button[aria-disabled="true"],
.wc-block-components-totals-coupon__button[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

/* =========================================================
   HOME HERO — REWORK COMPLETO (compatibile con hero.php)
   - BG sempre visibile via --ds-hero-bg
   - Overlay più “premium” (multi-layer)
   - Accent grafico
   - Scroll indicator VISIBILE (anche se nel markup non c’è __scroll-mouse)
   - CTA colori: ghost invariato, primary carbone #2b2b2b invariato
   ========================================================= */


  section.ds-hero {
    position: relative;
    width: 100%;
    min-height: clamp(560px, 85vh, 860px);
    display: flex;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
  }

  /* BG */
  section.ds-hero>.ds-hero__bg {
    position: absolute;
    inset: 0;
    display: block;

    background-image: var(--ds-hero-bg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transform: scale(1.02);
    filter: saturate(1.02) contrast(1.02);

    z-index: 0;
  }

  /* Overlay premium (strati) */
  section.ds-hero>.ds-hero__overlay {
    position: absolute;
    inset: 0;
    display: block;
    z-index: 1;

    background:
      radial-gradient(1200px 600px at 30% 40%, rgba(0, 0, 0, .10) 0%, rgba(0, 0, 0, .55) 62%, rgba(0, 0, 0, .68) 100%),
      linear-gradient(to bottom, rgba(0, 0, 0, .28) 0%, rgba(0, 0, 0, .55) 55%, rgba(0, 0, 0, .72) 100%);
  }

  /* Accent grafico (soft blob) */
  section.ds-hero>.ds-hero__accent {
    position: absolute;
    inset: -40% -20% auto auto;
    width: 720px;
    height: 720px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .14), rgba(255, 255, 255, 0) 60%);
    filter: blur(6px);
    opacity: .9;
    z-index: 1;
    pointer-events: none;
  }

  /* Layer contenuto */
  section.ds-hero .ds-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
  }

  section.ds-hero .ds-hero__content {
    max-width: 760px;
    margin-left: clamp(24px, 6vw, 120px);
    color: #fff;
  }

  /* Tipografia */
  section.ds-hero .ds-hero__eyebrow {
    color: rgba(255, 255, 255, .86);
    font-weight: 600;
    margin: 0 0 12px;
    letter-spacing: .2px;
  }

  section.ds-hero .ds-hero__title {
    color: #fff;
    margin: 0 0 16px;
    font-weight: 800;
    line-height: 1.06;
    font-size: clamp(34px, 4.2vw, 56px);
    text-wrap: balance;
  }

  section.ds-hero .ds-hero__subtitle {
    color: rgba(255, 255, 255, .92);
    margin: 0 0 26px;
    max-width: 58ch;
    line-height: 1.5;
    font-size: clamp(14px, 1.35vw, 18px);
  }


/* HERO BUTTONS — refactor: @layer ds-overrides vince contro WC/theme defaults senza. */

  /* CTA container */
  section.ds-hero .ds-hero__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 14px;
  }

  section.ds-hero a.ds-hero__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 210px;
    min-height: 46px;
    padding: 12px 18px;

    border-radius: var(--ds-radius-sm);
    font-size: 14px;
    text-decoration: none;

    transform: none;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .10);
  }

  /* "Acquista le box" (SECONDARY wishlist) */
  section.ds-hero a.ds-hero__btn.ds-btn--ghost {
    background: #ffffff;
    border: 1px solid var(--ds-black);
    color: var(--ds-black);
    text-decoration: none;
  }

  section.ds-hero a.ds-hero__btn.ds-btn--ghost:hover,
  section.ds-hero a.ds-hero__btn.ds-btn--ghost:focus,
  section.ds-hero a.ds-hero__btn.ds-btn--ghost:active {
    background: var(--ds-black);
    border-color: var(--ds-black);
    color: #ffffff;
    transform: none;
  }

  /* "Come lavoriamo" (PRIMARY carbone NO HOVER) */
  section.ds-hero a.ds-hero__btn.ds-btn--primary {
    background: #FFC107;
    border: 1px solid #FFC107;
    color: #2b2b2b;
    text-decoration: none;
    font-size: 13px;
  }

  /* HOVER Giallo */
  section.ds-hero a.ds-hero__btn.ds-btn--primary:hover,
  section.ds-hero a.ds-hero__btn.ds-btn--primary:focus,
  section.ds-hero a.ds-hero__btn.ds-btn--primary:active {
    background: #eab005;
    border-color: #eab005;
    color: #2b2b2b;
    transform: none;
  }

  /* Micro trust (se presente) — neutralizzato (niente pill) */
  section.ds-hero .ds-hero__trust,
  section.ds-hero .ds-hero__microtrust {
    display: none;
  }


/* =========================================================
   Scroll indicator (FIX: visibile anche senza __scroll-mouse)
   - se nel markup c’è solo .ds-hero__scroll-dot, mostriamo un “mouse”
   ========================================================= */

  section.ds-hero .ds-hero__scroll {
    position: absolute;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    z-index: 3;
    text-decoration: none;

    width: 30px;
    height: 46px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, .55);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 8px;

    background: rgba(0, 0, 0, .10);
    backdrop-filter: blur(6px);
  }

  section.ds-hero .ds-hero__scroll-dot {
    width: 6px;
    height: 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .75);
    animation: ds_hero_scroll 1.4s ease-in-out infinite;
    display: block;
  }


@keyframes ds_hero_scroll {
  0% {
    transform: translateY(0);
    opacity: .9;
  }

  70% {
    transform: translateY(14px);
    opacity: .3;
  }

  100% {
    transform: translateY(0);
    opacity: .9;
  }
}

/* Divider: disattivato (non lo vuoi) */

  section.ds-hero .ds-hero__divider {
    display: none;
  }


/* Responsive */
@media (max-width: 1024px) {
  section.ds-hero {
    min-height: 72vh;
  }

  section.ds-hero .ds-hero__content {
    margin-left: 0;
    max-width: 720px;
    padding: 0 18px;
    text-align: center;
  }

  section.ds-hero .ds-hero__actions {
    justify-content: center;
  }

  section.ds-hero .ds-hero__subtitle {
    margin-left: auto;
    margin-right: auto;
  }

  section.ds-hero>.ds-hero__accent {
    inset: -55% -35% auto auto;
    width: 640px;
    height: 640px;
    opacity: .75;
  }
}

@media (max-width: 600px) {
  section.ds-hero {
    min-height: 78vh;
  }

  section.ds-hero a.ds-hero__btn {
    min-width: 100%;
  }

  section.ds-hero .ds-hero__scroll {
    bottom: 16px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  section.ds-hero .ds-hero__scroll-dot {
    animation: none;
  }
}

/* legacy: freccia vecchia */

  section.ds-hero .ds-hero__arrow {
    display: none;
  }








/* =========================================================
   DS INFOBAR — CSS DEDICATO (match classi ds-infobar*)
   bg: #2b2b2b | testo+icone: bianco | marquee infinito
   ========================================================= */

.ds-infobar {
  background: #2b2b2b;
  color: #fff;
  width: 100%;
  overflow: hidden;
}

.ds-infobar__viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* fade laterali */
.ds-infobar__viewport::before,
.ds-infobar__viewport::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 44px;
  z-index: 2;
  pointer-events: none;
}

.ds-infobar__viewport::before {
  left: 0;
  background: linear-gradient(to right, #2b2b2b 0%, rgba(43, 43, 43, 0) 100%);
}

.ds-infobar__viewport::after {
  right: 0;
  background: linear-gradient(to left, #2b2b2b 0%, rgba(43, 43, 43, 0) 100%);
}

/* track animata */
.ds-infobar__track {
  display: flex;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  animation: ds_infobar_marquee 18s linear infinite;
}

.ds-infobar:hover .ds-infobar__track {
  animation-play-state: paused;
}

/* gruppi duplicati (A+B) */
.ds-infobar__group {
  display: flex;
  align-items: center;
  gap: 56px;
  padding: 14px 22px;
  white-space: nowrap;
  flex: 0 0 auto;
}

/* item */
.ds-infobar__item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;

  font-weight: 800;
  font-size: 16px;
  line-height: 1;
  letter-spacing: .2px;
  color: #fff;
}

/* icone: BLOCCA “giganti” */
.ds-infobar__icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  color: #fff;
}

.ds-infobar__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

/* testo */
.ds-infobar__text {
  color: #fff;
}

/* loop: metà track (due gruppi uguali) */
@keyframes ds_infobar_marquee {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }
}

/* responsive */
@media (max-width: 900px) {
  .ds-infobar__group {
    gap: 36px;
    padding: 12px 16px;
  }

  .ds-infobar__item {
    font-size: 14px;
  }

  .ds-infobar__icon {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
  }

  .ds-infobar__viewport::before,
  .ds-infobar__viewport::after {
    width: 28px;
  }
}

/* accessibilità */
@media (prefers-reduced-motion: reduce) {
  .ds-infobar__track {
    animation: none;
  }
}






/* =========================================================
   SECTION SELL — BEST SELLER (DEFINITIVO)
   - Boxed e centrato
   - Desktop: 4 visibili (1 riga) + scroll
   - Tablet/Mobile: 2 sopra + 2 sotto (2 righe) + scroll, 4 visibili per "pagina"
   - Scroll snap, NO scrollbar visibile
   - Card stessa altezza + CTA bottom
   - Bottone footer senza hover
   ========================================================= */

.ds-sectionsell {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(26px, 3vw, 44px) 20px;
  position: relative;
  z-index: 1;
}

/* Rimuove qualsiasi "background sotto grigio" forzando un bianco full-width */
.ds-sectionsell::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  background-color: #ffffff;
  z-index: -1;
  pointer-events: none;
}

/* header */
.ds-sectionsell__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 14px;
}

.ds-sectionsell__title {
  margin: 0;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 800;
  letter-spacing: .2px;
}

/* nav arrows */
.ds-sectionsell__nav {
  display: flex;
  gap: 10px;
}

.ds-sectionsell__arrow {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid var(--ds-border-strong);
  background: var(--ds-surface-1);
  color: var(--ds-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  user-select: none;
}

.ds-sectionsell__arrow:hover {
  background: var(--ds-surface-2);
}

/* carousel */
.ds-sectionsell__carousel {
  position: relative;
}

/* TRACK: forza flex e impedisce regole Woo/globali */
.ds-sectionsell .products.ds-sectionsell__track {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;

  gap: 18px;

  overflow-x: auto;
  overflow-y: hidden;

  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;

  margin: 0;
  padding: 6px 2px 2px;
  list-style: none;

  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;
  /* Firefox */
}

.ds-sectionsell .products.ds-sectionsell__track::-webkit-scrollbar {
  display: none;
  /* Chrome/Safari */
}

/* ITEM: 4 visibili desktop */
.ds-sectionsell .ds-sectionsell__item {
  flex: 0 0 calc((100% - (3 * 18px)) / 4);
  scroll-snap-align: start;
  height: auto;
}

/* =========================================================
   TABLET: 2 sopra + 2 sotto, MA con scroll e 4 visibili
   (griglia 2 righe, scorrimento a colonne)
   ========================================================= */

@media (max-width: 1024px) {
  .ds-sectionsell {
    padding-left: 16px;
    padding-right: 16px;
  }

  .ds-sectionsell .products.ds-sectionsell__track {
    display: grid;

    /* 2 righe = 2 sopra + 2 sotto */
    grid-template-rows: repeat(2, auto);

    /* scorrimento a colonne: ogni "colonna" contiene 2 prodotti */
    grid-auto-flow: column;

    /* 2 colonne visibili per viewport => 4 prodotti visibili (2x2) */
    grid-auto-columns: calc((100% - 18px) / 2);

    column-gap: 18px;
    row-gap: 18px;

    overflow-x: auto;
    overflow-y: hidden;

    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;

    margin: 0;
    padding: 6px 2px 2px;
    list-style: none;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;
  }

  .ds-sectionsell .ds-sectionsell__item {
    flex: 0 0 auto;
    /* neutralizza flex */
    width: auto;
    scroll-snap-align: start;
  }
}

/* =========================================================
   MOBILE: 2 sopra + 2 sotto, MA con scroll e 4 visibili
   ========================================================= */

@media (max-width: 600px) {

  .ds-sectionsell .products.ds-sectionsell__track {
    display: grid;

    grid-template-rows: repeat(2, auto);
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 18px) / 2);

    column-gap: 18px;
    row-gap: 18px;

    overflow-x: auto;
    overflow-y: hidden;

    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;

    margin: 0;

    /* respiro laterale come avevi */
    padding: 6px 8px 2px;

    list-style: none;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;
  }

  .ds-sectionsell .products.ds-sectionsell__track::-webkit-scrollbar {
    display: none;
  }

  .ds-sectionsell .ds-sectionsell__item {
    flex: 0 0 auto;
    width: auto;
    scroll-snap-align: start;
  }
}

/* =========================================================
   CARD: stessa altezza + CTA in basso
   ========================================================= */

.ds-sectionsell .ds-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.ds-sectionsell .ds-card__media {
  position: relative;
  flex: 0 0 auto;
}

.ds-sectionsell .ds-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

/* titolo massimo 2 righe (uniforma) */
.ds-sectionsell .ds-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.2em * 2);
}

/* rating: riserva spazio anche se assente */
.ds-sectionsell .ds-card__rating {
  min-height: 18px;
}

/* CTA sempre in fondo */
.ds-sectionsell .ds-card__cta {
  margin-top: auto;
}

/* badge */
.ds-sectionsell .ds-card__badge--bestseller {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;

  background: #2b2b2b;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .10);
  font-weight: 800;
  letter-spacing: .6px;
  font-size: 12px;
  padding: 7px 10px;
  border-radius: 12px;
}

/* =========================================================
   Footer button: NERO, NO HOVER MAI
   ========================================================= */

.ds-sectionsell__footer {
  display: flex;
  justify-content: center;
  margin-top: 18px;
}

.ds-sectionsell__all {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: #2b2b2b;
  color: #fff;
  text-decoration: none;

  border: 1px solid #2b2b2b;
  border-radius: 14px;

  padding: 12px 28px;
  letter-spacing: .2px;

  min-width: min(460px, 92vw);

  transition: none;
}

/* NO HOVER */
.ds-sectionsell__all:hover,
.ds-sectionsell__all:focus,
.ds-sectionsell__all:active {
  background: #2b2b2b;
  color: #fff;
  filter: none;
  transform: none;
  box-shadow: none;
  opacity: 1;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ds-sectionsell .products.ds-sectionsell__track {
    scroll-behavior: auto;
  }
}





/* =========================================================
   FILTERBAR — Acquista per categoria
   4 colonne desktop / 2 tablet / 2 mobile
   Stile coerente con ds-card
   ========================================================= */

.ds-filterbar {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(28px, 3vw, 48px) 20px;
}

.ds-filterbar__head {
  margin-bottom: 18px;
}

.ds-filterbar__title {
  margin: 0;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 800;
  letter-spacing: .2px;
}

/* GRID */
.ds-filterbar__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

/* Tablet + Mobile = 2 colonne */
@media (max-width: 1024px) {
  .ds-filterbar__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* CARD */
.ds-filterbar__card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
}

/* IMAGE */
.ds-filterbar__imgLink {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
}

.ds-filterbar__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.ds-filterbar__card:hover .ds-filterbar__img {
  transform: scale(1.05);
}

/* BODY */
.ds-filterbar__body {
  display: flex;
  flex-direction: column;
  padding: 16px;
  flex: 1 1 auto;
}

.ds-filterbar__name {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

.ds-filterbar__name a {
  text-decoration: none;
  color: inherit;
}

/* CTA link con freccia */
.ds-filterbar__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  text-decoration: none;
  color: var(--ds-black);
  transition: gap .2s ease, opacity .2s ease;
}

.ds-filterbar__cta:hover {
  gap: 12px;
  opacity: .85;
}

.ds-filterbar__arrow {
  font-size: 14px;
  line-height: 1;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {
  .ds-filterbar {
    padding-left: 16px;
    padding-right: 16px;
  }

  .ds-filterbar__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .ds-filterbar {
    padding-left: 16px;
    padding-right: 16px;
  }

  .ds-filterbar__grid {
    grid-template-columns: repeat(2, 1fr);
    /* <-- UNICA MODIFICA */
    gap: 18px;
  }

  .ds-filterbar__name {
    font-size: 15px;
  }

}






/* =========================================================
   FAQ — 2 colonne reali (4 + 4) stabili
   ========================================================= */

.ds-faq {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(28px, 3vw, 48px) 20px;
}

.ds-faq__head {
  margin-bottom: 18px;
}

.ds-faq__title {
  margin: 0;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 800;
  letter-spacing: .2px;
}

/* 🔥 LAYOUT STABILE */
.ds-faq__list {
  display: flex;
  gap: 22px;
}

/* colonne reali */
.ds-faq__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* item */
.ds-faq__item {
  border: 1px solid var(--ds-border);
  border-radius: 16px;
  background: var(--ds-surface-1);
  overflow: hidden;
}

/* bottone */
.ds-faq__question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;

  padding: 16px;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;

  font-weight: 800;
  font-size: 15px;
  line-height: 1.25;
}

.ds-faq__icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex: 0 0 28px;
}

.ds-faq__answer {
  border-top: 1px solid var(--ds-border);
}

.ds-faq__answerInner {
  padding: 14px 16px 16px;
  font-size: 14px;
  line-height: 1.55;
}

/* =========================================================
   TABLET / MOBILE → 1 colonna
   ========================================================= */

@media (max-width: 1024px) {
  .ds-faq {
    padding-left: 16px;
    padding-right: 16px;
  }

  .ds-faq__list {
    flex-direction: column;
  }
}






/* =========================================================
   TRUST ROW — Home Closing Section
   Icone grandi, senza riquadro
   ========================================================= */

.ds-trustrow {
  background: #f3f3f3;
  padding: clamp(28px, 3vw, 48px) 20px;
}

.ds-trustrow__inner {
  max-width: 1200px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.ds-trustrow__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  text-align: center;
}

/* ICONA SENZA RIQUADRO */
.ds-trustrow__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;
}

/* ICONA PIÙ GRANDE */
.ds-trustrow__icon svg {
  width: 32px;
  height: 32px;
  fill: #2b2b2b;
}

.ds-trustrow__text {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {
  .ds-trustrow__inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {
  .ds-trustrow {
    padding-left: 16px;
    padding-right: 16px;
  }

  .ds-trustrow__inner {
    grid-template-columns: 1fr;
    gap: 16px;
    width: max-content;
    margin: 0 auto;
  }

  .ds-trustrow__item {
    align-items: center;
    justify-content: flex-start;
    text-align: left;
  }

  .ds-trustrow__icon svg {
    width: 28px;
    height: 28px;
  }
}






/* =========================================================
   ABOUT US — CHI SIAMO (NO HERO)
   - Card BIANCHE (NO vomito)
   - Primary carbone #2b2b2b NO HOVER
   - Ghost bianco bordo carbone + hover invert
   Namespace: .ds-about
   ========================================================= */

.ds-about {
  background: var(--ds-surface);
}

.ds-about__wrap {
  padding: clamp(28px, 4vw, 44px) 0 clamp(52px, 6vw, 72px);
}

/* Header */
.ds-about__header {
  max-width: 860px;
  margin: 0 auto 22px;
  text-align: center;
}

.ds-about__title {
  margin: 0 0 10px;
}

.ds-about__lead {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(43, 43, 43, .75);
}

/* Typo */
.ds-about__h {
  margin: 0 0 10px;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 800;
  letter-spacing: .2px;
  color: #2b2b2b;
}

.ds-about__p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.7;
  color: #2b2b2b;
}

.ds-about__muted {
  color: rgba(43, 43, 43, .72);
}

/* Section spacing */
.ds-about__section {
  margin-top: 22px;
}

/* Split */
.ds-about__split {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 22px;
  align-items: center;
}

.ds-about__split--reverse .ds-about__media {
  order: 2;
}

.ds-about__split--reverse .ds-about__content {
  order: 1;
}

.ds-about__img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
  border: 1px solid rgba(0, 0, 0, .12);
  background: #fff;
}

/* List (clean) */
.ds-about__list {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.ds-about__li {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  align-items: start;
  font-size: 14px;
  line-height: 1.65;
  color: #2b2b2b;
}

.ds-about__li::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #2b2b2b;
  margin-top: 2px;
}

/* Cards base (bianco) */
.ds-about__card,
.ds-about__stat,
.ds-about__step,
.ds-about__ctaInner {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .06);
}

/* Stats */
.ds-about__statsGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.ds-about__stat {
  padding: 16px;
  text-align: center;
}

.ds-about__statValue {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #2b2b2b;
}

.ds-about__statLabel {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  color: rgba(43, 43, 43, .72);
}

/* Process */
.ds-about__sectionHead {
  max-width: 860px;
  margin: 0 auto 14px;
  text-align: center;
}

.ds-about__processGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.ds-about__step {
  padding: 16px;
}

.ds-about__stepNum {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-weight: 900;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  color: #2b2b2b;
  margin-bottom: 10px;
}

.ds-about__stepTitle {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 850;
  color: #2b2b2b;
}

.ds-about__stepText {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(43, 43, 43, .72);
}

/* Values cards */
.ds-about__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ds-about__card {
  padding: 18px;
}

.ds-about__cardTitle {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 900;
  color: #2b2b2b;
}

.ds-about__cardText {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(43, 43, 43, .72);
}

/* Gallery */
.ds-about__galleryGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.ds-about__shot {
  margin: 0;
}

/* CTA */
.ds-about__ctaInner {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  padding: 22px 18px;
}

.ds-about__actions {
  margin-top: 14px;
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

/* --- BUTTONS (solo qui) --- */
.ds-about__actions .ds-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 46px;
  padding: 12px 18px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);
  transform: none;
}

/* Primary yellow hover-enabled */
.ds-about__actions .ds-btn--primary {
  background: #FFC107;
  border: 1px solid #FFC107;
  color: #2b2b2b;
  transition: all 0.2s ease;
}

.ds-about__actions .ds-btn--primary:hover,
.ds-about__actions .ds-btn--primary:focus,
.ds-about__actions .ds-btn--primary:active {
  background: #E5AD06;
  border-color: #E5AD06;
  color: #2b2b2b;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);
}

/* Ghost (wishlist secondary) */
.ds-about__actions .ds-btn--secondary,
.ds-about__actions .ds-btn--ghost {
  background: #fff;
  border: 1px solid #2b2b2b;
  color: #2b2b2b;
}

.ds-about__actions .ds-btn--secondary:hover,
.ds-about__actions .ds-btn--secondary:focus,
.ds-about__actions .ds-btn--secondary:active,
.ds-about__actions .ds-btn--ghost:hover,
.ds-about__actions .ds-btn--ghost:focus,
.ds-about__actions .ds-btn--ghost:active {
  background: #2b2b2b;
  border-color: #2b2b2b;
  color: #fff;
  transform: none;
}

/* Responsive */
@media (max-width: 1024px) {
  .ds-about__split {
    display: flex;
    flex-direction: column;
    gap: 32px;
    text-align: center;
  }

  .ds-about__split .ds-about__media {
    order: -1;
    /* Force media to always stack above text on mobile */
    width: 100%;
  }

  .ds-about__split .ds-about__content {
    width: 100%;
  }

  .ds-about__statsGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ds-about__processGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ds-about__cards {
    grid-template-columns: 1fr;
  }

  .ds-about__galleryGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .ds-about__actions .ds-btn {
    min-width: 100%;
  }
}







/* =========================================================
   CONTACT — CONTATTI
   - 2 colonne: sinistra 3 card, destra form
   - Card BIANCHE (NO vomito)
   - Primary carbone #2b2b2b NO HOVER
   - Ghost bianco bordo carbone + hover invert
   Namespace: .ds-contact
   ========================================================= */

.ds-contact {
  background: var(--ds-surface);
}

.ds-contact__wrap {
  padding: clamp(28px, 4vw, 44px) 0 clamp(52px, 6vw, 72px);
}

/* Header */
.ds-contact__header {
  max-width: 860px;
  margin: 0 auto 22px;
  text-align: center;
}

.ds-contact__title {
  margin: 0 0 10px;
}

.ds-contact__lead {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(43, 43, 43, .75);
}

/* Notice submit (success/error) */
.ds-contact__notice {
  margin: 16px auto 0;
  max-width: 860px;
  padding: 14px 16px;

  border-radius: 16px;
  border: 1px solid rgba(0, 0, 0, .12);
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .06);

  font-size: 14px;
  line-height: 1.6;
  color: #2b2b2b;
}

.ds-contact__notice--success {
  border-color: rgba(20, 120, 60, .25);
  background: rgba(20, 120, 60, .06);
}

.ds-contact__notice--error {
  border-color: rgba(180, 40, 40, .25);
  background: rgba(180, 40, 40, .06);
}

/* Grid */
.ds-contact__grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 18px;
  align-items: start;
}

/* Cards (Premium Elevate come in Chi Siamo) */
.ds-contact__card,
.ds-contact__formCard {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.03);
  border-radius: 20px;
  box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.05);
  padding: 2.5rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ds-contact__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.08);
}

.ds-contact__left {
  display: grid;
  gap: 14px;
}

.ds-contact__cardTitle,
.ds-contact__formTitle {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .2px;
  color: #2b2b2b;
}

.ds-contact__hint {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(43, 43, 43, .72);
}

.ds-contact__hours {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: #2b2b2b;
}

/* Links — puliti, senza linee */
.ds-contact__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;

  font-size: 14px;
  font-weight: 800;
  color: #2b2b2b;

  text-decoration: none;
  border: none;
  padding: 0;
}

.ds-contact__link:hover,
.ds-contact__link:focus,
.ds-contact__link:active {
  text-decoration: none;
  border: none;
  color: #2b2b2b;
}


/* Form */
.ds-contact__formLead {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(43, 43, 43, .72);
}

.ds-contact__form {
  display: grid;
  gap: 14px;
}

.ds-contact__row {
  display: grid;
  gap: 8px;
}

.ds-contact__label {
  font-size: 13px;
  font-weight: 850;
  color: #2b2b2b;
}

/* Inputs (puliti) */
.ds-contact__input,
.ds-contact__textarea {
  width: 100%;
  font-family: var(--ds-font, system-ui);
  font-size: 14px;
  color: #2b2b2b;

  background: #fff;
  border: 1px solid rgba(0, 0, 0, .22);
  border-radius: 14px;

  padding: 12px 12px;
  box-shadow: none;
  outline: none;
}

.ds-contact__input {
  height: 46px;
}

.ds-contact__textarea {
  min-height: 150px;
  resize: vertical;
}

.ds-contact__input:focus,
.ds-contact__textarea:focus {
  border-color: rgba(43, 43, 43, .65);
}

/* Checkbox */
.ds-contact__check {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(43, 43, 43, .72);
  cursor: pointer;
  user-select: none;
}

.ds-contact__check input {
  margin-top: 2px;
}

/* Actions */
.ds-contact__actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 6px;
}

/* --- BUTTONS (solo qui) --- */
.ds-contact__actions .ds-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 46px;
  padding: 12px 18px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;

  transform: none;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);
}

/* Primary carbone NO hover */
.ds-contact__actions .ds-btn--primary {
  background: #2b2b2b;
  border: 1px solid #2b2b2b;
  color: #fff;
  transition: none;
}

.ds-contact__actions .ds-btn--primary:hover,
.ds-contact__actions .ds-btn--primary:focus,
.ds-contact__actions .ds-btn--primary:active {
  background: #2b2b2b;
  border-color: #2b2b2b;
  color: #fff;
  transform: none;
}

/* Ghost (wishlist secondary) */
.ds-contact__actions .ds-btn--secondary,
.ds-contact__actions .ds-btn--ghost {
  background: #fff;
  border: 1px solid #2b2b2b;
  color: #2b2b2b;
}

.ds-contact__actions .ds-btn--secondary:hover,
.ds-contact__actions .ds-btn--secondary:focus,
.ds-contact__actions .ds-btn--secondary:active,
.ds-contact__actions .ds-btn--ghost:hover,
.ds-contact__actions .ds-btn--ghost:focus,
.ds-contact__actions .ds-btn--ghost:active {
  background: #2b2b2b;
  border-color: #2b2b2b;
  color: #fff;
  transform: none;
}

/* Responsive */
@media (max-width: 991px) {
  .ds-contact__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .ds-contact__actions .ds-btn {
    min-width: 100%;
  }
}





/* =========================================================
   DS FEEDBACK — Spinner in-button + Toast
   - Colore brand: #2b2b2b
   ========================================================= */

/* Spinner inside button */
.ds-is-loading {
  position: relative;
  pointer-events: none;
}

.ds-btn__spinner {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, .45);
  border-top-color: rgba(255, 255, 255, 1);
  display: inline-block;
  margin-left: 10px;
  animation: ds_spin .7s linear infinite;
  vertical-align: middle;
}

/* Se il bottone è chiaro (ghost) */
a.ds-is-loading .ds-btn__spinner,
button.ds-is-loading .ds-btn__spinner {
  /* non forzo colori qui: se serve lo adattiamo dopo */
}

@keyframes ds_spin {
  to {
    transform: rotate(360deg);
  }
}

/* Toast */
.ds-toast {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  z-index: 100;
  display: grid;
  gap: 10px;
  width: min(520px, calc(100vw - 24px));
  pointer-events: none;
}

.ds-toast__item {
  pointer-events: auto;
  background: #2b2b2b;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 14px;
  padding: 12px 14px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .18);
  opacity: 1;
  transform: translateY(0);
  transition: opacity .2s ease, transform .2s ease;
}

.ds-toast__item--error {
  background: #fff;
  color: #2b2b2b;
  border: 1px solid rgba(0, 0, 0, .18);
}

.ds-toast__item.is-leaving {
  opacity: 0;
  transform: translateY(6px);
}

.ds-toast__text {
  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
}





/* =========================================================
   WOOCOMMERCE NOTICES — DomShop FINAL
   Struttura reale: ul > li > testo + a.button
   ========================================================= */

.woocommerce-notices-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Card */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  background: #fff;
  color: #2b2b2b;

  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);

  margin: 0 0 14px;
  padding: 0;
}

/* Reset UL */
.woocommerce-error ul,
.woocommerce-message ul,
.woocommerce-info ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* QUESTO È IL LIVELLO GIUSTO */
.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li {
  display: flex;
  align-items: center;
  gap: 14px;

  padding: 14px 16px;
  margin: 0;

  font-size: 14px;
  line-height: 1.55;
}

/* Testo flessibile */
.woocommerce-error li {
  min-width: 0;
}

/* Spinge il bottone completamente a destra */
.woocommerce-error li .button,
.woocommerce-message li .button,
.woocommerce-info li .button {
  margin-left: auto;
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Rimuove underline da link nel testo */
.woocommerce-error a:not(.button),
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) {
  text-decoration: none;
  border: none;
  color: #2b2b2b;
}

/* Pulsante stile ghost DomShop NO HOVER */
.woocommerce-error li .button,
.woocommerce-message li .button,
.woocommerce-info li .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 46px;
  padding: 12px 18px;

  border-radius: 14px;
  background: #fff;
  border: 1px solid #2b2b2b;
  color: #2b2b2b;

  font-weight: 800;
  text-decoration: none;

  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);
  transition: none;
}

.woocommerce-error li .button:hover,
.woocommerce-message li .button:hover,
.woocommerce-info li .button:hover,
.woocommerce-error li .button:focus,
.woocommerce-message li .button:focus,
.woocommerce-info li .button:focus,
.woocommerce-error li .button:active,
.woocommerce-message li .button:active,
.woocommerce-info li .button:active {
  background: #fff;
  border-color: #2b2b2b;
  color: #2b2b2b;
  transform: none;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);
}

/* Responsive perfetta */
@media (max-width: 700px) {

  .woocommerce-notices-wrapper {
    padding: 0 16px;
  }

  .woocommerce-error li,
  .woocommerce-message li,
  .woocommerce-info li {
    flex-direction: column;
    align-items: flex-start;
  }

  .woocommerce-error li .button,
  .woocommerce-message li .button,
  .woocommerce-info li .button {
    margin-left: 0;
    width: 100%;
  }
}







/* =========================================================
   DOMSHOP – Shop / Archive CSS (CLEAN)
   Modifiche richieste:
   - Card prodotto: background #fff
   - Sidebar filtri: background #fff
   - Meta (result-count + orderby + filtri mobile): background #fff
   Tutto il resto invariato
   ========================================================= */

/* =========================================================
   DOMSHOP – Shop products grid (ONLY .ds-shop)
   ========================================================= */

/* SOLO griglia prodotti nello shop */
.ds-shop .ds-shop__products ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ds-gap, 18px);

  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;

  grid-auto-rows: 1fr;
  align-items: stretch;
}

/* RESET HARD Woo + item che riempie la cella */
.ds-shop .ds-shop__products ul.products>li.product {
  float: none;
  width: auto;
  margin: 0;
  padding: 0;

  align-self: stretch;
  height: 100%;

  display: flex;
  min-width: 0;
}

/* La card deve riempire l’item */
.ds-shop .ds-shop__products ul.products>li.product>.ds-card {
  width: 100%;
  height: 100%;
}

/* Tablet */
@media (max-width: 1024px) {
  .ds-shop .ds-shop__products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile */
@media (max-width: 680px) {
  .ds-shop .ds-shop__products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================================
   CARD PRODOTTO (loop)
   ========================================================= */

li.ds-card.product {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Card */
.ds-card {
  background: #ffffff;
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  border-radius: var(--ds-radius, 12px);
  overflow: hidden;
  box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Media */
.ds-card__media {
  position: relative;
  background: var(--ds-surface-2, #f1f1ec);
}

.ds-card__imgLink {
  display: block;
}

.ds-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

/* Wishlist */
.ds-wishlist-btn--card {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .75);
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  color: var(--ds-black);
  cursor: pointer;
  padding: 0;
  line-height: 1;
}

.ds-wishlist-btn--card:hover {
  background: rgba(255, 255, 255, .90);
  border-color: var(--ds-border-strong);
}

.ds-wishlist-btn--card svg {
  width: 18px;
  height: 18px;
  display: block;
}

.ds-wishlist-btn--card[data-in-wishlist="1"] svg {
  fill: var(--ds-black);
  stroke: var(--ds-black);
}

.ds-wishlist-btn--card:not([data-in-wishlist="1"]) svg {
  fill: transparent;
  stroke: var(--ds-black);
}

/* Body */
.ds-card__body {
  padding: 14px 14px 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Title */
.ds-card__title {
  margin: 0 0 6px 0;
  font-family: var(--ds-font, system-ui);
  font-size: 18px;
  font-weight: 700;
  color: var(--ds-black);
  line-height: 1.2;
}

.ds-card__title a {
  color: inherit;
  text-decoration: none;
}

/* Price */
.ds-card__price {
  margin: 0 0 8px 0;
  font-family: var(--ds-font, system-ui);
  font-size: 20px;
  font-weight: 700;
  color: var(--ds-black);
}

.ds-card__price del {
  color: var(--ds-muted);
  font-weight: 600;
  margin-right: 6px;
}

.ds-card__price ins {
  text-decoration: none;
}

/* Rating */
.ds-card__rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px 0;
  color: var(--ds-muted);
  font-size: 13px;
}

.ds-card__stars {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.ds-card__stars .star-rating {
  margin: 0;
  float: none;
}

/* CTA layout */
.ds-card__cta {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ds-card__ctaRow {
  display: block;
}

/* NORMALIZZA CTA */
.ds-card__cta :where(a, button) {
  width: 100%;
  min-height: 44px;
  padding: 12px 14px;
  border-radius: var(--ds-radius-sm, 10px);
  font-family: var(--ds-font);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.ds-card__cta form {
  width: 100%;
  margin: 0;
}

/* =========================================================
   SHOP META (result-count + orderby) — background #fff
   ========================================================= */

.ds-shop .woocommerce-result-count,
.ds-shop .woocommerce-ordering select.orderby {
  font-family: var(--ds-font, system-ui);
  font-size: 14px;
  font-weight: 600;
  color: var(--ds-black);

  background: #ffffff;
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-sm);

  box-shadow: var(--ds-shadow);
  min-height: 40px;
  display: inline-flex;
  align-items: center;
}

.ds-shop .woocommerce-result-count {
  padding: 10px 14px;
  margin: 0;
}

.ds-shop .woocommerce-ordering select.orderby {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  padding: 10px 36px 10px 14px;
  cursor: pointer;
}

.ds-shop .woocommerce-ordering select.orderby:hover,
.ds-shop .woocommerce-ordering select.orderby:focus {
  border-color: var(--ds-border-strong);
  outline: none;
}

.ds-shop .woocommerce-ordering {
  position: relative;
  margin: 0;
}

.ds-shop .woocommerce-ordering::after {
  content: "▾";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--ds-muted);
  font-size: 12px;
}

/* =========================================================
   SHOP/ARCHIVE LAYOUT
   ========================================================= */

body.woocommerce-shop .ds-shop,
body.post-type-archive-product .ds-shop,
body.tax-product_cat .ds-shop,
body.tax-product_tag .ds-shop {
  width: 100%;
}

.ds-shop__head {
  margin-bottom: 18px;
}

.ds-shop__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.ds-shop__filtersBtn {
  display: none;
}

.ds-shop__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-width: 0;
}

.ds-shop__meta .woocommerce-result-count {
  font-family: var(--ds-font, system-ui);
  font-size: 14px;
  font-weight: 600;
  color: var(--ds-black, #2f2f2f);

  background: #ffffff;
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  border-radius: var(--ds-radius-sm, 10px);
  box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));

  padding: 10px 14px;
  min-height: 40px;

  display: inline-flex;
  align-items: center;
  margin: 0;

  white-space: nowrap;
}

.ds-shop__meta form.woocommerce-ordering {
  position: relative;
  margin: 0;
  display: inline-flex;
  min-width: 260px;
  justify-content: flex-end;
}

.ds-shop__meta form.woocommerce-ordering select.orderby {
  font-family: var(--ds-font, system-ui);
  font-size: 14px;
  font-weight: 600;
  color: var(--ds-black, #2f2f2f);

  background: #ffffff;
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  border-radius: var(--ds-radius-sm, 10px);
  box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));

  min-height: 40px;
  padding: 10px 38px 10px 14px;

  outline: none;
  cursor: pointer;

  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  width: 100%;
}

.ds-shop__meta form.woocommerce-ordering::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  opacity: .65;

  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid var(--ds-black, #2f2f2f);
}

.ds-shop__layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
  width: 100%;
}

.ds-shop__sidebar {
  display: block;
  min-width: 0;
}

.ds-shop__sidebar .ds-filters {
  background: #ffffff;
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  border-radius: var(--ds-radius, 12px);
  box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));
  padding: 14px;
}

.ds-shop__sidebar .ds-filters__title {
  display: none;
}

/* UL base */
.ds-shop .ds-shop__products ul.products {
  float: none;
  clear: none;

  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;

  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ds-gap, 18px);

  align-items: stretch;
  align-content: start;
  justify-content: start;
}

.ds-shop .ds-shop__products ul.products::before,
.ds-shop .ds-shop__products ul.products::after {
  content: none;
  display: none;
}

.ds-shop .ds-shop__products ul.products>li.product {
  float: none;
  clear: none;
  width: auto;
  margin: 0;
  padding: 0;

  display: flex;
  min-width: 0;
  align-self: stretch;
}

.ds-shop .ds-shop__products ul.products>li.product>.ds-card {
  width: 100%;
  height: 100%;
}

/* Tablet */
@media (max-width: 1024px) {
  .ds-shop .ds-shop__products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile */
@media (max-width: 680px) {
  .ds-shop__layout {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ds-shop__sidebar {
    display: none;
  }

  .ds-shop__filtersBtn {
    display: inline-flex;
  }

  .ds-shop .ds-shop__products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ds-shop__meta form.woocommerce-ordering {
    min-width: 0;
    width: auto;
  }
}

/* Blocchi filtri overlay (desktop non devono comparire) */
.ds-shop__sidebar .wc-block-product-filters__open-overlay {
  display: none;
}

/* ADD TO CART (CARD CTA)
   - Home (carousel/section sell)
   - Shop / Archivi
   Refactor: @layer ds-overrides vince contro WC button defaults senza.
*/

  .ds-card__ctaRow :where(a.add_to_cart_button,
    a.ajax_add_to_cart,
    a.button,
    button.add_to_cart_button,
    button.button) {
    font-family: var(--ds-font, system-ui);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;

    display: flex;
    width: 100%;
    margin: 0 0 10px 0;
    align-items: center;
    justify-content: center;
    text-align: center;

    min-height: 44px;
    padding: 12px 14px;

    border-radius: var(--ds-radius-sm, 10px);

    background: var(--ds-black, #2f2f2f);
    border: 1px solid var(--ds-black, #2f2f2f);
    color: #fff;

    box-sizing: border-box;
    white-space: normal;
    word-break: break-word;
  }

  .ds-card__ctaRow :where(a.add_to_cart_button,
    a.ajax_add_to_cart,
    a.button,
    button.add_to_cart_button,
    button.button):hover {
    background: var(--ds-black, #2f2f2f);
    border-color: var(--ds-black, #2f2f2f);
    color: #fff;
    box-shadow: none;
    transform: none;
    filter: none;
  }


/* Mobile: Bottone Filtri come meta — background #fff */
@media (max-width: 680px) {
  .ds-shop .ds-shop__filtersBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    font-family: var(--ds-font, "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
    font-size: 14px;
    font-weight: 600;
    color: var(--ds-black, #2f2f2f);

    background: #ffffff;
    border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
    border-radius: var(--ds-radius-sm, 10px);
    box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));

    padding: 10px 14px;
    min-height: 40px;

    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
  }

  .ds-shop .ds-shop__filtersBtn:hover,
  .ds-shop .ds-shop__filtersBtn:focus {
    border-color: var(--ds-border-strong, rgba(0, 0, 0, .22));
    outline: none;
  }

  .ds-shop .ds-shop__filtersBtn svg {
    width: 14px;
    height: 14px;
    display: block;
  }
}

/* ARCHIVE – CLEAR FILTERS (BLACK) */
.wp-block-woocommerce-product-filter-clear-button button,
button.wp-block-button__link[data-wp-on--click*="removeAllActiveFilters"] {
  width: 100%;
  min-height: 48px;

  background: var(--ds-black, #2f2f2f);
  color: #fff;

  border: 1px solid var(--ds-black, #2f2f2f);
  border-radius: var(--ds-radius-sm, 10px);

  font-family: var(--ds-font, "Inter", system-ui);
  font-size: 15px;
  font-weight: 600;

  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 12px 16px;
  cursor: pointer;
}

.wp-block-woocommerce-product-filter-clear-button button:hover {
  background: #000;
  border-color: #000;
}

/* ARCHIVE – APPLY FILTERS (OUTLINE) */
button.wc-block-product-filters__apply {
  width: 100%;
  min-height: 48px;

  background: #fff;
  color: var(--ds-black, #2f2f2f);

  border: 1px solid var(--ds-black, #2f2f2f);
  border-radius: var(--ds-radius-sm, 10px);

  font-family: var(--ds-font, "Inter", system-ui);
  font-size: 15px;
  font-weight: 600;

  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 12px 16px;
  cursor: pointer;
}

button.wc-block-product-filters__apply:hover {
  background: var(--ds-black, #2f2f2f);
  color: #fff;
}




/* =========================================================
   DOMSHOP — SHOP FILTERS (SIDEBAR) — FIX CORRETTO
   Richieste:
   1) Prezzo Min/Max ORIZZONTALI (2 colonne)
   2) Filtri SEMPRE uno sotto l'altro (mai affiancati)
   3) Reset filtri: sfondo #2b2b2b + testo bianco
   ========================================================= */

/* --- reset “card” interne: la card è la sidebar, non i widget --- */
.ds-shop__sidebar .ds-filters .ds-filter-widget,
.ds-shop__sidebar .ds-filters .widget {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 0 0 18px;
}

.ds-shop__sidebar .ds-filters .ds-filter-widget:last-child,
.ds-shop__sidebar .ds-filters .widget:last-child {
  margin-bottom: 0;
}

/* --- header "FILTRI AVANZATI" --- */
.ds-shop__sidebar .ds-filters .ds-filters__head {
  margin: 0 0 14px;
}

.ds-shop__sidebar .ds-filters .ds-filters__title {
  font-size: 16px;
  font-weight: 900;
  color: #2b2b2b;
  letter-spacing: .2px;
}

/* --- titoli widget (Prezzo, Categorie, ecc.) --- */
.ds-shop__sidebar .ds-filters .ds-filter-title,
.ds-shop__sidebar .ds-filters h3 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 900;
  color: #2b2b2b;
  letter-spacing: .2px;
}

/* =========================================================
   LISTE FILTRI: SEMPRE VERTICALI (mai 2 colonne)
   HTML: .ds-filterlist > label.ds-filteropt
   ========================================================= */
.ds-shop__sidebar .ds-filters .ds-filterlist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
}

/* ogni opzione occupa tutta la riga */
.ds-shop__sidebar .ds-filters label.ds-filteropt {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  width: 100%;
  margin: 0;

  font-size: 14px;
  font-weight: 700;
  color: #2b2b2b;
  line-height: 1.2;

  cursor: pointer;
}

/* testo opzione */
.ds-shop__sidebar .ds-filters .ds-filteropt__text {
  display: inline-block;
  color: #2b2b2b;
}

/* checkbox: quadrata, tick centrato */
.ds-shop__sidebar .ds-filters input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;

  width: 18px;
  height: 18px;
  flex: 0 0 18px;

  border: 2px solid #2b2b2b;
  border-radius: 4px;
  background: #fff;

  position: relative;
  margin: 0;
}

.ds-shop__sidebar .ds-filters input[type="checkbox"]:checked {
  background: #2b2b2b;
}

.ds-shop__sidebar .ds-filters input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 5px;
  height: 9px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  transform: rotate(45deg);
}

/* caso "Solo disponibili" (ha anche ds-filteropt--single) */
.ds-shop__sidebar .ds-filters label.ds-filteropt--single {
  width: 100%;
}

/* =========================================================
   PREZZO: Min/Max ORIZZONTALI (2 colonne)
   HTML: .ds-pricerow > label.ds-pricefield
   ========================================================= */
.ds-shop__sidebar .ds-filters .ds-pricerow {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
  margin: 0;
}

/* label prezzo: testo sopra input */
.ds-shop__sidebar .ds-filters label.ds-pricefield {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;

  width: 100%;
  margin: 0;
}

/* label "Min/Max" */
.ds-shop__sidebar .ds-filters .ds-pricefield__label {
  font-size: 12px;
  font-weight: 900;
  color: #2b2b2b;
  letter-spacing: .2px;
}

/* input number prezzo */
.ds-shop__sidebar .ds-filters input[type="number"] {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;

  background: #fff;
  border: 1px solid rgba(0, 0, 0, .18);
  border-radius: 12px;

  font-size: 14px;
  font-weight: 700;
  color: #2b2b2b;

  outline: none;
  box-sizing: border-box;
}

.ds-shop__sidebar .ds-filters input[type="number"]:focus {
  border-color: #2b2b2b;
}

/* no spinner */
.ds-shop__sidebar .ds-filters input[type="number"]::-webkit-outer-spin-button,
.ds-shop__sidebar .ds-filters input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ds-shop__sidebar .ds-filters input[type="number"] {
  -moz-appearance: textfield;
}

/* mobile: min/max in colonna se serve */
@media (max-width: 520px) {
  .ds-shop__sidebar .ds-filters .ds-pricerow {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   RESET FILTRI: vero selettore nel tuo HTML
   HTML: a.ds-filters__reset
   ========================================================= */
.ds-shop__sidebar .ds-filters a.ds-filters__reset {
  display: inline-flex;
  width: 100%;
  min-height: 46px;

  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 12px 16px;

  background: #2b2b2b;
  border: 1px solid #2b2b2b;
  color: #ffffff;

  border-radius: 14px;

  font-size: 14px;
  font-weight: 900;
  letter-spacing: .2px;
  line-height: 1;

  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);

  transition: none;
  /* NO hover animato */
}

.ds-shop__sidebar .ds-filters a.ds-filters__reset:hover,
.ds-shop__sidebar .ds-filters a.ds-filters__reset:focus,
.ds-shop__sidebar .ds-filters a.ds-filters__reset:active {
  background: #2b2b2b;
  border-color: #2b2b2b;
  color: #ffffff;
  opacity: 1;
  transform: none;
}

/* link normali dentro la sidebar (non il reset) */
.ds-shop__sidebar .ds-filters a:not(.ds-filters__reset) {
  color: #2b2b2b;
  text-decoration: none;
  border: 0;
}








/* =========================================================
   DOMSHOP — SHOP FILTERS (RESPONSIVE) — IDENTICO AL DESKTOP
   + NASCONDI "FILTRI AVANZATI"
   Target: .ds-filters (mobile drawer/box)
   ========================================================= */

/* Nascondi la testata "FILTRI AVANZATI" SOLO in responsive */
@media (max-width: 980px) {
  .ds-filters .ds-filters__head {
    display: none;
  }

  .ds-filters .ds-filters__title {
    display: none;
  }
}

/* --- reset “card” interne: la card è il contenitore, non i widget --- */
.ds-filters .ds-filter-widget,
.ds-filters .widget {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 0 0 18px;
}

.ds-filters .ds-filter-widget:last-child,
.ds-filters .widget:last-child {
  margin-bottom: 0;
}

/* --- titoli widget (Prezzo, Categorie, ecc.) --- */
.ds-filters .ds-filter-title,
.ds-filters h3 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 900;
  color: #2b2b2b;
  letter-spacing: .2px;
}

/* =========================================================
   LISTE FILTRI: SEMPRE VERTICALI (mai 2 colonne)
   HTML: .ds-filterlist > label.ds-filteropt
   ========================================================= */
.ds-filters .ds-filterlist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.ds-filters label.ds-filteropt {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  width: 100%;
  margin: 0;

  font-size: 14px;
  font-weight: 700;
  color: #2b2b2b;
  line-height: 1.2;

  cursor: pointer;
}

.ds-filters .ds-filteropt__text {
  display: inline-block;
  color: #2b2b2b;
}

/* checkbox: quadrata, tick centrato */
.ds-filters input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;

  width: 18px;
  height: 18px;
  flex: 0 0 18px;

  border: 2px solid #2b2b2b;
  border-radius: 4px;
  background: #fff;

  position: relative;
  margin: 0;
}

.ds-filters input[type="checkbox"]:checked {
  background: #2b2b2b;
}

.ds-filters input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 5px;
  height: 9px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  transform: rotate(45deg);
}

/* caso "Solo disponibili" */
.ds-filters label.ds-filteropt--single {
  width: 100%;
}

/* =========================================================
   PREZZO: Min/Max ORIZZONTALI (2 colonne)
   HTML: .ds-pricerow > label.ds-pricefield
   ========================================================= */
.ds-filters .ds-pricerow {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
  margin: 0;
}

.ds-filters label.ds-pricefield {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;

  width: 100%;
  margin: 0;
}

.ds-filters .ds-pricefield__label {
  font-size: 12px;
  font-weight: 900;
  color: #2b2b2b;
  letter-spacing: .2px;
}

.ds-filters input[type="number"] {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;

  background: #fff;
  border: 1px solid rgba(0, 0, 0, .18);
  border-radius: 12px;

  font-size: 14px;
  font-weight: 700;
  color: #2b2b2b;

  outline: none;
  box-sizing: border-box;
}

.ds-filters input[type="number"]:focus {
  border-color: #2b2b2b;
}

/* no spinner */
.ds-filters input[type="number"]::-webkit-outer-spin-button,
.ds-filters input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ds-filters input[type="number"] {
  -moz-appearance: textfield;
}

/* mobile piccolo: min/max in colonna se serve */
@media (max-width: 520px) {
  .ds-filters .ds-pricerow {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   RESET FILTRI: a.ds-filters__reset
   ========================================================= */
.ds-filters a.ds-filters__reset {
  display: inline-flex;
  width: 100%;
  min-height: 46px;

  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 12px 16px;

  background: #2b2b2b;
  border: 1px solid #2b2b2b;
  color: #ffffff;

  border-radius: 14px;

  font-size: 14px;
  font-weight: 900;
  letter-spacing: .2px;
  line-height: 1;

  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .10);

  transition: none;
}

.ds-filters a.ds-filters__reset:hover,
.ds-filters a.ds-filters__reset:focus,
.ds-filters a.ds-filters__reset:active {
  background: #2b2b2b;
  border-color: #2b2b2b;
  color: #ffffff;
  opacity: 1;
  transform: none;
}

/* link normali (non reset) */
.ds-filters a:not(.ds-filters__reset) {
  color: #2b2b2b;
  text-decoration: none;
  border: 0;
}





/* ======================================================================
   MY ACCOUNT – ENTERPRISE (DESKTOP ONLY) | DOMSHOP
   UPDATE:
   - TUTTE le “card” ora IDENTICHE al checkout:
     bg #fff | border 1px solid rgba(0,0,0,.12) | radius 14px
     shadow 0 10px 30px rgba(0,0,0,.06) | padding 22px
   - Input/select/textarea come checkout (bordo quasi invisibile + focus premium)
   - Testi: var(--ds-black) / secondari: var(--ds-muted)
   - Titolo "Il mio account" solo in sidebar
   ====================================================================== */


/* ======================================================================
   END MY ACCOUNT – ENTERPRISE (DESKTOP ONLY)
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – ENDPOINT ORDINI (EMPTY STATE) | DESKTOP
   Obiettivo:
   - Trasformare il messaggio "nessun ordine" in una CARD come checkout
   - Pulsante identico a quelli della bacheca (outline premium)
   ====================================================================== */

@media (min-width: 901px) {

  /* Contenitore endpoint */
  body.woocommerce-account .ds-account__content .woocommerce-MyAccount-content {
    display: block;
  }

  /* Messaggio "nessun ordine" -> card checkout */
  body.woocommerce-account .ds-account__content .woocommerce-message,
  body.woocommerce-account .ds-account__content .woocommerce-info,
  body.woocommerce-account .ds-account__content .woocommerce-notice,
  body.woocommerce-account .ds-account__content .woocommerce-notice--info {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
    margin: 0 0 var(--ds-gap);
    color: var(--ds-black);
    position: relative;

    /* Reset stile Woo (linea blu, ecc.) */
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  /* Rimuove eventuali pseudo-elementi Woo (icona/linea) */
  body.woocommerce-account .ds-account__content .woocommerce-message::before,
  body.woocommerce-account .ds-account__content .woocommerce-info::before,
  body.woocommerce-account .ds-account__content .woocommerce-notice::before {
    content: none;
    display: none;
  }

  /* Testo: coerente col resto */
  body.woocommerce-account .ds-account__content .woocommerce-message,
  body.woocommerce-account .ds-account__content .woocommerce-info,
  body.woocommerce-account .ds-account__content .woocommerce-notice {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.55;
  }

  /* Pulsante "Sfoglia prodotti" -> outline premium */
  body.woocommerce-account .ds-account__content .woocommerce-message .button,
  body.woocommerce-account .ds-account__content .woocommerce-info .button,
  body.woocommerce-account .ds-account__content .woocommerce-notice .button,
  body.woocommerce-account .ds-account__content a.button,
  body.woocommerce-account .ds-account__content a.woocommerce-Button,
  body.woocommerce-account .ds-account__content .woocommerce-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    color: var(--ds-black);
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-weight: 850;
    text-decoration: none;

    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  body.woocommerce-account .ds-account__content .woocommerce-message .button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-info .button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-notice .button:hover,
  body.woocommerce-account .ds-account__content a.button:hover,
  body.woocommerce-account .ds-account__content a.woocommerce-Button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  /* Allineamento: testo a sinistra, pulsante a destra */
  body.woocommerce-account .ds-account__content .woocommerce-message,
  body.woocommerce-account .ds-account__content .woocommerce-info,
  body.woocommerce-account .ds-account__content .woocommerce-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ds-gap);
  }

  /* Se il testo è lungo, evita overflow */
  body.woocommerce-account .ds-account__content .woocommerce-message,
  body.woocommerce-account .ds-account__content .woocommerce-info,
  body.woocommerce-account .ds-account__content .woocommerce-notice {
    flex-wrap: wrap;
  }

  /* Mantiene il pulsante compatto a destra */
  body.woocommerce-account .ds-account__content .woocommerce-message .button,
  body.woocommerce-account .ds-account__content .woocommerce-info .button,
  body.woocommerce-account .ds-account__content .woocommerce-notice .button {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* ======================================================================
   END MY ACCOUNT – ENDPOINT ORDINI (EMPTY STATE) | DESKTOP
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – ENDPOINT ORDINI (CON ORDINI) | DESKTOP
   Obiettivo:
   - Trasformare la tabella ordini in una CARD checkout (contenitore unico)
   - Pulsanti azioni (Visualizza) outline premium
   ====================================================================== */

@media (min-width: 901px) {

  /* --- Card wrapper per la tabella ordini --- */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    overflow: hidden;
    /* arrotondamenti veri */
    margin: 0 0 var(--ds-gap);
  }

  /* Remove Woo default table borders */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table th,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table td {
    border: 0;
  }

  /* --- Header table (stile enterprise) --- */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table thead th {
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 850;
    color: var(--ds-black);
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    text-align: left;
    white-space: nowrap;
  }

  /* --- Body rows --- */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table tbody td {
    padding: 14px 14px;
    font-size: 14px;
    font-weight: 650;
    color: var(--ds-black);
    vertical-align: middle;
    background: transparent;
  }

  /* Separatore tra righe */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table tbody tr+tr td {
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  /* Link ordine (#30) coerente */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a {
    color: var(--ds-black);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  /* Stato / totale leggermente muted */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table .woocommerce-orders-table__cell-order-status,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table .woocommerce-orders-table__cell-order-total {
    color: var(--ds-muted);
  }

  /* --- Colonna azioni a destra --- */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
    text-align: right;
    white-space: nowrap;
  }

  /* --- Pulsanti azione (Visualizza) = outline premium --- */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table .button,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.button,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.woocommerce-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 12px 14px;
    min-height: 44px;

    background: #fff;
    color: var(--ds-black);
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-weight: 850;
    text-decoration: none;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table .button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.woocommerce-button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  /* --- Piccola rifinitura: niente “righe” extra sopra la tabella Woo --- */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table+p {
    margin-top: 0;
  }
}

/* ======================================================================
   END MY ACCOUNT – ENDPOINT ORDINI (CON ORDINI) | DESKTOP
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – ORDINE (RIEPILOGO) | DESKTOP
   Obiettivi:
   - Trasformare "Dettagli ordine" + tabelle in CARD checkout
   - Rimuovere la linea (underline) sotto il nome prodotto
   ====================================================================== */

@media (min-width: 901px) {

  /* ---------- Titoli sezione ---------- */
  body.woocommerce-account .ds-account__content .woocommerce-order-details>h2,
  body.woocommerce-account .ds-account__content .woocommerce-customer-details>h2,
  body.woocommerce-account .ds-account__content .woocommerce-column__title {
    margin: 18px 0 12px;
    color: var(--ds-black);
    font-weight: 900;
    letter-spacing: -0.01em;
  }

  /* ---------- Card: tabella dettagli ordine ---------- */
  body.woocommerce-account .ds-account__content .woocommerce-order-details {
    margin: 0 0 var(--ds-gap);
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table,
  body.woocommerce-account .ds-account__content .woocommerce-customer-details address {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  }

  /* Tabella: card vera */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
  }

  /* reset bordi Woo */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table th,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table td {
    border: 0;
    padding: 12px 14px;
    vertical-align: middle;
  }

  /* header */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table thead th {
    font-size: 13px;
    font-weight: 850;
    color: var(--ds-black);
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    text-align: left;
    white-space: nowrap;
  }

  /* righe */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table tbody td {
    font-size: 14px;
    font-weight: 650;
    color: var(--ds-black);
    background: transparent;
  }

  /* separatori tra righe */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table tbody tr+tr td {
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  /* footer */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot th {
    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);
    background: transparent;
    text-align: left;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot td {
    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);
    text-align: left;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot tr {
    background: transparent;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot tr:first-child th,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot tr:first-child td {
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  /* ---------- RIMOZIONE SOTTOLINEATURA PRODOTTO ---------- */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table a {
    text-decoration: none;
    box-shadow: none;
    border-bottom: 0;
    color: var(--ds-black);
    font-weight: 650;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table a:hover {
    text-decoration: none;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table a::after,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table a::before {
    content: none;
  }

  /* ---------- Card: indirizzi cliente ---------- */
  body.woocommerce-account .ds-account__content .woocommerce-customer-details {
    margin-top: 18px;
  }

  body.woocommerce-account .ds-account__content .woocommerce-customer-details address {
    padding: 22px;
    margin: 12px 0 0;
    font-style: normal;
    color: var(--ds-black);
  }

  body.woocommerce-account .ds-account__content .woocommerce-customer-details address a {
    color: var(--ds-black);
    text-decoration: none;
  }
}

/* ======================================================================
   END MY ACCOUNT – ORDINE (RIEPILOGO) | DESKTOP
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – INDIRIZZI (DESKTOP ONLY) | DOMSHOP
   Target:
   - Pagina "Indirizzi": 2 card affiancate
   - Dentro ogni card: Titolo -> Dati -> Pulsante "Modifica" SOTTO
   - Pagine "Modifica indirizzo": form dentro card
   ====================================================================== */

@media (min-width: 901px) {

  .ds-account__content .woocommerce-Addresses {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-gap);
    margin: 0;
    padding: 0;
    align-items: start;
  }

  .ds-account__content .woocommerce-Addresses .u-column1,
  .ds-account__content .woocommerce-Addresses .u-column2 {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
    min-width: 0;
  }

  /* FORZA POSIZIONE: riga 1 per entrambe */
  .ds-account__content .woocommerce-Addresses .u-column1 {
    grid-column: 2;
    /* fatturazione a destra */
    grid-row: 1;
  }

  .ds-account__content .woocommerce-Addresses .u-column2 {
    grid-column: 1;
    /* spedizione a sinistra */
    grid-row: 1;
  }

  /* ---------- Card base ---------- */
  .ds-account__content .woocommerce-Addresses .woocommerce-Address {
    position: relative;

    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);

    padding: 22px;

    /* spazio in fondo per il pulsante assoluto */
    padding-bottom: calc(22px + 56px);
  }

  /* Header dentro la card */
  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title {
    margin: 0 0 12px;
    padding: 0;
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--ds-black);
  }

  /* Dati indirizzo */
  .ds-account__content .woocommerce-Addresses .woocommerce-Address address {
    margin: 12px 0 0;
    padding: 0;

    font-style: normal;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.55;
    color: var(--ds-muted);
  }

  /* ---------- Pulsante "Modifica" IN FONDO ---------- */
  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title a.edit {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: auto;
    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);
    text-decoration: none;

    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title a.edit:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  /* ---------- Pagine "Modifica indirizzo" ---------- */
  .ds-account__content .woocommerce-address-fields {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper {
    margin: 0;
    padding: 0;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper .form-row {
    margin: 0 0 14px;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper label {
    display: block;
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 800;
    color: var(--ds-black);
  }

  /* INPUT come checkout */
  .ds-account__content .woocommerce-address-fields__field-wrapper input[type="text"],
  .ds-account__content .woocommerce-address-fields__field-wrapper input[type="email"],
  .ds-account__content .woocommerce-address-fields__field-wrapper input[type="tel"],
  .ds-account__content .woocommerce-address-fields__field-wrapper select,
  .ds-account__content .woocommerce-address-fields__field-wrapper textarea {
    width: 100%;
    min-height: 46px;

    background: #fff;
    border: 1px solid rgba(43, 43, 43, .14);
    border-radius: 12px;

    padding: 14px 14px;
    font-family: var(--ds-font);
    font-size: 14px;
    font-weight: 650;
    color: var(--ds-black);

    box-shadow: none;
    outline: none;

    transition: border-color .15s ease, box-shadow .15s ease;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper input:hover,
  .ds-account__content .woocommerce-address-fields__field-wrapper select:hover,
  .ds-account__content .woocommerce-address-fields__field-wrapper textarea:hover {
    border-color: rgba(43, 43, 43, .22);
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper input:focus,
  .ds-account__content .woocommerce-address-fields__field-wrapper select:focus,
  .ds-account__content .woocommerce-address-fields__field-wrapper textarea:focus {
    border-color: rgba(43, 43, 43, .35);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper textarea {
    height: auto;
    min-height: 96px;
    resize: vertical;
  }

  /* Bottone "Salva indirizzo" coerente (outline premium) */
  .ds-account__content .woocommerce-address-fields .button,
  .ds-account__content .woocommerce-address-fields button.button,
  .ds-account__content .woocommerce-address-fields input.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);

    box-shadow: none;
    text-decoration: none;

    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  .ds-account__content .woocommerce-address-fields .button:hover,
  .ds-account__content .woocommerce-address-fields button.button:hover,
  .ds-account__content .woocommerce-address-fields input.button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }
}

/* ======================================================================
   END MY ACCOUNT – INDIRIZZI (DESKTOP ONLY)
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – DETTAGLI ACCOUNT (DESKTOP ONLY) | DOMSHOP
   Obiettivo: come "Modifica indirizzi" (card + form pulito)
   ====================================================================== */

@media (min-width: 901px) {

  /* Wrapper form come "card" */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
    margin: 0;
    max-width: 100%;
  }

  /* Titolo pagina già gestito altrove: qui solo spacing coerente */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account>p {
    margin: 0 0 14px;
  }

  /* Griglia campi: Nome/Cognome su due colonne */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: var(--ds-gap);
    row-gap: 14px;
    align-items: start;
  }

  /* Righe woo: reset */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account p.woocommerce-form-row {
    margin: 0;
    padding: 0;
    float: none;
    width: auto;
  }

  /* Full width per righe "wide" */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account p.form-row-wide,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account p.woocommerce-form-row--wide {
    grid-column: 1 / -1;
  }

  /* Label */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account label {
    display: block;
    margin: 0 0 8px;
    font-weight: 800;
    color: var(--ds-black);
  }

  /* Hint sotto display name */
  .ds-account__content #account_display_name_description {
    display: block;
    margin-top: 6px;
    color: var(--ds-muted);
    font-style: italic;
    line-height: 1.45;
  }

  /* Input / select come checkout */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account input[type="text"],
  .ds-account__content form.woocommerce-EditAccountForm.edit-account input[type="email"],
  .ds-account__content form.woocommerce-EditAccountForm.edit-account input[type="password"],
  .ds-account__content form.woocommerce-EditAccountForm.edit-account select,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea {
    width: 100%;
    min-height: 46px;
    padding: 14px 14px;

    border: 1px solid rgba(43, 43, 43, .14);
    border-radius: 12px;
    background: #fff;

    color: var(--ds-black);
    font-family: var(--ds-font);
    font-weight: 650;

    box-shadow: none;
    outline: none;

    transition: border-color .15s ease, box-shadow .15s ease;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account input:hover,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account select:hover,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea:hover {
    border-color: rgba(43, 43, 43, .22);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account input:focus,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account select:focus,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea:focus {
    border-color: rgba(43, 43, 43, .35);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea {
    min-height: 120px;
    height: auto;
    resize: vertical;
  }

  /* Fieldset password come una “card nella card” */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account fieldset {
    grid-column: 1 / -1;
    margin: 8px 0 0;
    padding: 22px;

    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account fieldset legend {
    padding: 0 6px;
    font-weight: 900;
    color: var(--ds-black);
  }

  /* Eye icon */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account .show-password-input {
    color: var(--ds-black);
  }

  /* Pulsante submit: outline premium */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account button.woocommerce-Button.button {
    grid-column: 1 / -1;
    justify-self: start;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    color: var(--ds-black);

    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-weight: 850;
    text-decoration: none;

    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account button.woocommerce-Button.button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  /* Evita “clear” legacy */
  .ds-account__content form.woocommerce-EditAccountForm.edit-account .clear {
    display: none;
  }
}

/* ======================================================================
   END – DETTAGLI ACCOUNT (DESKTOP ONLY)
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – MOBILE ICON NAV (<=900px) | DOMSHOP
   (mantiene la tua struttura + icone)
   ====================================================================== */


/* ======================================================================
   END MY ACCOUNT – MOBILE ICON NAV
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – ENTERPRISE (MOBILE) | DOMSHOP
   - Card identiche al checkout
   - Grid card: 1 colonna
   ====================================================================== */


/* ======================================================================
   END MY ACCOUNT – ENTERPRISE (MOBILE)
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – ENDPOINT ORDINI | MOBILE (<=900px)
   - Stessi stili desktop
   - Tabelle: contenitore card + scroll orizzontale controllato
   ====================================================================== */

@media (max-width: 900px) {

  /* Contenitore endpoint */
  body.woocommerce-account .ds-account__content .woocommerce-MyAccount-content {
    display: block;
  }

  /* =========================================================
     EMPTY STATE -> CARD + bottone sotto
     ========================================================= */

  body.woocommerce-account .ds-account__content .woocommerce-message,
  body.woocommerce-account .ds-account__content .woocommerce-info,
  body.woocommerce-account .ds-account__content .woocommerce-notice,
  body.woocommerce-account .ds-account__content .woocommerce-notice--info {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
    margin: 0 0 var(--ds-gap);
    color: var(--ds-black);
    position: relative;

    border-top: 1px solid rgba(0, 0, 0, .12);

    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 12px;
  }

  body.woocommerce-account .ds-account__content .woocommerce-message::before,
  body.woocommerce-account .ds-account__content .woocommerce-info::before,
  body.woocommerce-account .ds-account__content .woocommerce-notice::before {
    content: none;
    display: none;
  }

  body.woocommerce-account .ds-account__content .woocommerce-message,
  body.woocommerce-account .ds-account__content .woocommerce-info,
  body.woocommerce-account .ds-account__content .woocommerce-notice {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.55;
  }

  /* Bottone: full width */
  body.woocommerce-account .ds-account__content .woocommerce-message .button,
  body.woocommerce-account .ds-account__content .woocommerce-info .button,
  body.woocommerce-account .ds-account__content .woocommerce-notice .button,
  body.woocommerce-account .ds-account__content a.button,
  body.woocommerce-account .ds-account__content a.woocommerce-Button,
  body.woocommerce-account .ds-account__content .woocommerce-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    width: 100%;
    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    color: var(--ds-black);
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-weight: 850;
    text-decoration: none;

    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  body.woocommerce-account .ds-account__content .woocommerce-message .button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-info .button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-notice .button:hover,
  body.woocommerce-account .ds-account__content a.button:hover,
  body.woocommerce-account .ds-account__content a.woocommerce-Button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  /* =========================================================
     ORDINI (tabella con ordini) -> CARD + scroll orizzontale
     ========================================================= */

  body.woocommerce-account .ds-account__content .woocommerce-orders-table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;

    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    margin: 0 0 var(--ds-gap);
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table thead,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table tbody,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table tfoot {
    background: transparent;
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table th,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table td {
    border: 0;
  }

  /* Header */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table thead th {
    padding: 12px 12px;
    font-size: 13px;
    font-weight: 850;
    color: var(--ds-black);
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    text-align: left;
    white-space: nowrap;
  }

  /* Body */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table tbody td {
    padding: 12px 12px;
    font-size: 14px;
    font-weight: 650;
    color: var(--ds-black);
    vertical-align: middle;
    background: transparent;
    white-space: nowrap;
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table tbody tr+tr td {
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table a {
    color: var(--ds-black);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table .woocommerce-orders-table__cell-order-status,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table .woocommerce-orders-table__cell-order-total {
    color: var(--ds-muted);
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
    text-align: right;
    white-space: nowrap;
  }

  /* Pulsanti azione */
  body.woocommerce-account .ds-account__content .woocommerce-orders-table .button,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.button,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.woocommerce-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 12px 14px;
    min-height: 44px;

    background: #fff;
    color: var(--ds-black);
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-weight: 850;
    text-decoration: none;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table .button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.button:hover,
  body.woocommerce-account .ds-account__content .woocommerce-orders-table a.woocommerce-button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  body.woocommerce-account .ds-account__content .woocommerce-orders-table+p {
    margin-top: 0;
  }

  /* =========================================================
     ORDINE (RIEPILOGO) -> card + tabelle scroll se serve
     ========================================================= */

  body.woocommerce-account .ds-account__content .woocommerce-order-details>h2,
  body.woocommerce-account .ds-account__content .woocommerce-customer-details>h2,
  body.woocommerce-account .ds-account__content .woocommerce-column__title {
    margin: 16px 0 10px;
    color: var(--ds-black);
    font-weight: 900;
    letter-spacing: -0.01em;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details {
    margin: 0 0 var(--ds-gap);
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table,
  body.woocommerce-account .ds-account__content .woocommerce-customer-details address {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;

    border-collapse: separate;
    border-spacing: 0;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table th,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table td {
    border: 0;
    padding: 12px 12px;
    vertical-align: middle;
    white-space: nowrap;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table thead th {
    font-size: 13px;
    font-weight: 850;
    color: var(--ds-black);
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    text-align: left;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tbody td {
    font-size: 14px;
    font-weight: 650;
    color: var(--ds-black);
    background: transparent;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tbody tr+tr td {
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot th,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot td {
    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);
    text-align: left;
    white-space: nowrap;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot tr:first-child th,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table tfoot tr:first-child td {
    border-top: 1px solid rgba(0, 0, 0, .12);
  }

  /* Rimozione underline nome prodotto */
  body.woocommerce-account .ds-account__content .woocommerce-order-details table a {
    text-decoration: none;
    box-shadow: none;
    border-bottom: 0;
    color: var(--ds-black);
    font-weight: 650;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table a:hover {
    text-decoration: none;
  }

  body.woocommerce-account .ds-account__content .woocommerce-order-details table a::after,
  body.woocommerce-account .ds-account__content .woocommerce-order-details table a::before {
    content: none;
  }

  /* Indirizzi cliente */
  body.woocommerce-account .ds-account__content .woocommerce-customer-details {
    margin-top: 16px;
  }

  body.woocommerce-account .ds-account__content .woocommerce-customer-details address {
    padding: 22px;
    margin: 12px 0 0;
    font-style: normal;
    color: var(--ds-black);
  }

  body.woocommerce-account .ds-account__content .woocommerce-customer-details address a {
    color: var(--ds-black);
    text-decoration: none;
  }
}

/* ======================================================================
   END MY ACCOUNT – ENDPOINT ORDINI | MOBILE
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – INDIRIZZI (MOBILE ONLY) | DOMSHOP
   - 2 card UNA SOTTO L’ALTRA (spedizione sopra, fatturazione sotto)
   - Pulsante "Modifica" in fondo
   ====================================================================== */

@media (max-width: 900px) {

  .ds-account__content .woocommerce-Addresses {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--ds-gap);
    margin: 0;
    padding: 0;
    align-items: stretch;
  }

  .ds-account__content .woocommerce-Addresses .u-column1,
  .ds-account__content .woocommerce-Addresses .u-column2 {
    float: none;
    width: 100%;
    margin: 0;
    padding: 0;
    min-width: 0;
  }

  .ds-account__content .woocommerce-Addresses .u-column2 {
    grid-column: 1;
    grid-row: 1;
  }

  .ds-account__content .woocommerce-Addresses .u-column1 {
    grid-column: 1;
    grid-row: 2;
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address {
    position: relative;

    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);

    padding: 22px;
    padding-bottom: calc(22px + 56px);
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title {
    margin: 0 0 12px;
    padding: 0;
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--ds-black);
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address address {
    margin: 12px 0 0;
    padding: 0;

    font-style: normal;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.55;
    color: var(--ds-muted);
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title a.edit {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: auto;
    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);
    text-decoration: none;

    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  .ds-account__content .woocommerce-Addresses .woocommerce-Address .woocommerce-Address-title a.edit:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  .ds-account__content .woocommerce-address-fields {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper {
    margin: 0;
    padding: 0;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper .form-row {
    margin: 0 0 14px;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper .form-row-first,
  .ds-account__content .woocommerce-address-fields__field-wrapper .form-row-last {
    width: 100%;
    float: none;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper label {
    display: block;
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 800;
    color: var(--ds-black);
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper input[type="text"],
  .ds-account__content .woocommerce-address-fields__field-wrapper input[type="email"],
  .ds-account__content .woocommerce-address-fields__field-wrapper input[type="tel"],
  .ds-account__content .woocommerce-address-fields__field-wrapper select,
  .ds-account__content .woocommerce-address-fields__field-wrapper textarea {
    width: 100%;
    min-height: 46px;

    background: #fff;
    border: 1px solid rgba(43, 43, 43, .14);
    border-radius: 12px;

    padding: 14px 14px;
    font-family: var(--ds-font);
    font-size: 14px;
    font-weight: 650;
    color: var(--ds-black);

    box-shadow: none;
    outline: none;

    transition: border-color .15s ease, box-shadow .15s ease;
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper input:hover,
  .ds-account__content .woocommerce-address-fields__field-wrapper select:hover,
  .ds-account__content .woocommerce-address-fields__field-wrapper textarea:hover {
    border-color: rgba(43, 43, 43, .22);
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper input:focus,
  .ds-account__content .woocommerce-address-fields__field-wrapper select:focus,
  .ds-account__content .woocommerce-address-fields__field-wrapper textarea:focus {
    border-color: rgba(43, 43, 43, .35);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
  }

  .ds-account__content .woocommerce-address-fields__field-wrapper textarea {
    height: auto;
    min-height: 96px;
    resize: vertical;
  }

  .ds-account__content .woocommerce-address-fields .button,
  .ds-account__content .woocommerce-address-fields button.button,
  .ds-account__content .woocommerce-address-fields input.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-size: 14px;
    font-weight: 850;
    color: var(--ds-black);

    box-shadow: none;
    text-decoration: none;

    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  .ds-account__content .woocommerce-address-fields .button:hover,
  .ds-account__content .woocommerce-address-fields button.button:hover,
  .ds-account__content .woocommerce-address-fields input.button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }
}

/* ======================================================================
   END MY ACCOUNT – INDIRIZZI (MOBILE ONLY)
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – DETTAGLI ACCOUNT (MOBILE ONLY) | DOMSHOP
   - Card checkout
   - Campi full-width
   - Fieldset password “card nella card”
   - Submit full-width
   ====================================================================== */

@media (max-width: 900px) {

  .ds-account__content form.woocommerce-EditAccountForm.edit-account {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
    margin: 0;
    max-width: 100%;

    display: grid;
    grid-template-columns: 1fr;
    row-gap: 14px;
    align-items: start;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account>p {
    margin: 0 0 14px;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account p.woocommerce-form-row {
    margin: 0;
    padding: 0;
    float: none;
    width: 100%;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account p.form-row-wide,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account p.woocommerce-form-row--wide {
    grid-column: 1 / -1;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account label {
    display: block;
    margin: 0 0 8px;
    font-weight: 800;
    color: var(--ds-black);
  }

  .ds-account__content #account_display_name_description {
    display: block;
    margin-top: 6px;
    color: var(--ds-muted);
    font-style: italic;
    line-height: 1.45;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account input[type="text"],
  .ds-account__content form.woocommerce-EditAccountForm.edit-account input[type="email"],
  .ds-account__content form.woocommerce-EditAccountForm.edit-account input[type="password"],
  .ds-account__content form.woocommerce-EditAccountForm.edit-account select,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea {
    width: 100%;
    min-height: 46px;
    padding: 14px 14px;

    border: 1px solid rgba(43, 43, 43, .14);
    border-radius: 12px;
    background: #fff;

    color: var(--ds-black);
    font-family: var(--ds-font);
    font-weight: 650;

    box-shadow: none;
    outline: none;

    transition: border-color .15s ease, box-shadow .15s ease;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account input:hover,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account select:hover,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea:hover {
    border-color: rgba(43, 43, 43, .22);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account input:focus,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account select:focus,
  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea:focus {
    border-color: rgba(43, 43, 43, .35);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account textarea {
    min-height: 120px;
    height: auto;
    resize: vertical;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account fieldset {
    grid-column: 1 / -1;
    margin: 8px 0 0;
    padding: 22px;

    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account fieldset legend {
    padding: 0 6px;
    font-weight: 900;
    color: var(--ds-black);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account .show-password-input {
    color: var(--ds-black);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account button.woocommerce-Button.button {
    grid-column: 1 / -1;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    padding: 14px 16px;
    min-height: 46px;

    background: #fff;
    color: var(--ds-black);

    border: 1px solid rgba(43, 43, 43, .35);
    border-radius: 12px;

    font-weight: 850;
    text-decoration: none;

    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account button.woocommerce-Button.button:hover {
    border-color: rgba(43, 43, 43, .55);
    box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
    transform: translateY(-1px);
  }

  .ds-account__content form.woocommerce-EditAccountForm.edit-account .clear {
    display: none;
  }
}

/* ======================================================================
   END MY ACCOUNT – DETTAGLI ACCOUNT (MOBILE ONLY)
   ====================================================================== */



/* ======================================================================
   MY ACCOUNT – LOGIN / REGISTER (WooCommerce My Account form) | DOMSHOP
   FIX:
   - Desktop: 2 colonne ALLINEATE IN ALTO
   - Mobile: una sopra l’altra
   - Card + input come checkout
   ====================================================================== */

/* ---------- Layout + cards (desktop) ---------- */
@media (min-width: 901px) {

  body.woocommerce-account .woocommerce {
    max-width: 1240px;
    margin: 0 auto;
    padding: 34px var(--ds-gap) 44px;
  }

  body.woocommerce-account .woocommerce #customer_login {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-gap);
    align-items: start;
    margin-top: 6px;
  }

  body.woocommerce-account .woocommerce #customer_login .u-column1,
  body.woocommerce-account .woocommerce #customer_login .u-column2 {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
    min-width: 0;

    display: flex;
    flex-direction: column;
  }

  body.woocommerce-account .woocommerce #customer_login .u-column1 {
    grid-column: 1;
    grid-row: 1;
  }

  body.woocommerce-account .woocommerce #customer_login .u-column2 {
    grid-column: 2;
    grid-row: 1;
  }

  body.woocommerce-account .woocommerce #customer_login .u-column1>form.woocommerce-form-login,
  body.woocommerce-account .woocommerce #customer_login .u-column2>form.woocommerce-form-register {
    height: 100%;
    align-self: stretch;
  }

  body.woocommerce-account .woocommerce form.woocommerce-form-login,
  body.woocommerce-account .woocommerce form.woocommerce-form-register {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
    margin: 0;
  }

  body.woocommerce-account .woocommerce #customer_login h2 {
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--ds-black);
  }
}

/* ---------- Layout + cards (mobile) ---------- */
@media (max-width: 900px) {

  body.woocommerce-account .woocommerce {
    padding: 22px var(--ds-gap) 34px;
  }

  body.woocommerce-account .woocommerce #customer_login {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--ds-gap);
    align-items: start;
    margin-top: 6px;
  }

  body.woocommerce-account .woocommerce #customer_login .u-column1,
  body.woocommerce-account .woocommerce #customer_login .u-column2 {
    float: none;
    width: 100%;
    margin: 0;
    padding: 0;
    min-width: 0;
  }

  body.woocommerce-account .woocommerce form.woocommerce-form-login,
  body.woocommerce-account .woocommerce form.woocommerce-form-register {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    padding: 22px;
    margin: 0;
  }

  body.woocommerce-account .woocommerce #customer_login h2 {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--ds-black);
  }
}

/* ---------- Campi (desktop + mobile) ---------- */
body.woocommerce-account .woocommerce form.woocommerce-form-login p,
body.woocommerce-account .woocommerce form.woocommerce-form-register p {
  margin: 0 0 14px;
}

body.woocommerce-account .woocommerce form.woocommerce-form-login label,
body.woocommerce-account .woocommerce form.woocommerce-form-register label {
  display: block;
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 800;
  color: var(--ds-black);
}

body.woocommerce-account .woocommerce form.woocommerce-form-login input[type="text"],
body.woocommerce-account .woocommerce form.woocommerce-form-login input[type="email"],
body.woocommerce-account .woocommerce form.woocommerce-form-login input[type="password"],
body.woocommerce-account .woocommerce form.woocommerce-form-register input[type="text"],
body.woocommerce-account .woocommerce form.woocommerce-form-register input[type="email"],
body.woocommerce-account .woocommerce form.woocommerce-form-register input[type="password"] {
  width: 100%;
  min-height: 46px;

  background: #fff;
  border: 1px solid rgba(43, 43, 43, .14);
  border-radius: 12px;

  padding: 14px 14px;
  font-family: var(--ds-font);
  font-size: 14px;
  font-weight: 650;
  color: var(--ds-black);

  box-shadow: none;
  outline: none;

  transition: border-color .15s ease, box-shadow .15s ease;
}

body.woocommerce-account .woocommerce form.woocommerce-form-login input:hover,
body.woocommerce-account .woocommerce form.woocommerce-form-register input:hover {
  border-color: rgba(43, 43, 43, .22);
}

body.woocommerce-account .woocommerce form.woocommerce-form-login input:focus,
body.woocommerce-account .woocommerce form.woocommerce-form-register input:focus {
  border-color: rgba(43, 43, 43, .35);
  box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
}

/* testo informativo e link */
body.woocommerce-account .woocommerce form.woocommerce-form-register .woocommerce-privacy-policy-text,
body.woocommerce-account .woocommerce form.woocommerce-form-register p,
body.woocommerce-account .woocommerce form.woocommerce-form-login p {
  color: var(--ds-black);
}

body.woocommerce-account .woocommerce form.woocommerce-form-register .woocommerce-privacy-policy-text,
body.woocommerce-account .woocommerce form.woocommerce-form-register .woocommerce-privacy-policy-text p {
  color: var(--ds-muted);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.55;
}

body.woocommerce-account .woocommerce a {
  color: var(--ds-black);
  text-underline-offset: 2px;
}

/* ---------- Bottoni (outline premium) ---------- */
body.woocommerce-account .woocommerce form.woocommerce-form-login button.button,
body.woocommerce-account .woocommerce form.woocommerce-form-register button.button,
body.woocommerce-account .woocommerce form.woocommerce-form-login input.button,
body.woocommerce-account .woocommerce form.woocommerce-form-register input.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 14px 16px;
  min-height: 46px;

  background: #fff;
  color: var(--ds-black);

  border: 1px solid rgba(43, 43, 43, .35);
  border-radius: 12px;

  font-weight: 850;
  text-decoration: none;

  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}

body.woocommerce-account .woocommerce form.woocommerce-form-login button.button:hover,
body.woocommerce-account .woocommerce form.woocommerce-form-register button.button:hover,
body.woocommerce-account .woocommerce form.woocommerce-form-login input.button:hover,
body.woocommerce-account .woocommerce form.woocommerce-form-register input.button:hover {
  border-color: rgba(43, 43, 43, .55);
  box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
  transform: translateY(-1px);
}

/* checkbox "Ricordami" allineato */
body.woocommerce-account .woocommerce form.woocommerce-form-login .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  color: var(--ds-black);
  font-weight: 650;
}

/* reset eventuali clear floats Woo */
body.woocommerce-account .woocommerce form .clear {
  display: none;
}

/* ======================================================================
   END MY ACCOUNT – LOGIN / REGISTER
   ====================================================================== */






/* ======================================================================
   ORDER RECEIVED / THANK YOU (WooCommerce) | DOMSHOP
   Scope: Pagina "Ordine ricevuto" (order-received / thankyou)
   Fix richiesti:
   - "Grazie. Il tuo ordine è stato ricevuto." DENTRO la stessa card dei dettagli overview
   - Overview (numero/data/email/totale/metodo): dentro UNA card (non tiles staccate)
   - Dettagli ordine: OK (card tabella pulita)
   - Indirizzo fatturazione + spedizione: STESSA RIGA desktop (2 colonne)
   - Titoli (h1 + h2): SENZA card
   - Stile card identico checkout: bg #fff, border rgba(0,0,0,.12), radius 14px, shadow 0 10px 30px rgba(0,0,0,.06)
   ====================================================================== */

/* Base page */
body.woocommerce-order-received {
  background: var(--ds-bg);
}

body.woocommerce-order-received .site-content,
body.woocommerce-order-received #content,
body.woocommerce-order-received .content-area {
  padding: 24px 0 44px;
}

/* Wrapper Woo */
body.woocommerce-order-received .woocommerce {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--ds-gap);
  box-sizing: border-box;
}

/* ------------------------------------------------------
   TITOLI: NO CARD (vincolante)
   ------------------------------------------------------ */
body.woocommerce-order-received h1 {
  margin: 0 auto 14px;
  max-width: 1240px;
  padding: 0 var(--ds-gap);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--ds-black);
}

body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title,
body.woocommerce-order-received .woocommerce-customer-details>h2,
body.woocommerce-order-received .wc-block-order-confirmation-additional-fields-wrapper>h2 {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 22px 0 12px;
  color: var(--ds-black);
  font-weight: 900;
  letter-spacing: -0.01em;
}

/* ------------------------------------------------------
   CARD BASE (identica checkout)
   ------------------------------------------------------ */
body.woocommerce-order-received .woocommerce-order {
  display: block;
}

body.woocommerce-order-received .woocommerce-order-details table,
body.woocommerce-order-received .woocommerce-customer-details address,
body.woocommerce-order-received .wc-block-order-confirmation-additional-fields-wrapper {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  box-sizing: border-box;
}






/* ------------------------------------------------------
   OVERVIEW: UNA SOLA CARD con dentro il messaggio "Grazie..."
   ------------------------------------------------------ */

/* Card wrapper */
body.woocommerce-order-received .woocommerce-order-overview {
  list-style: none;
  margin: 0 0 18px;
  padding: 22px 24px;

  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);

  /* 👇 più spazio alla colonna EMAIL */
  display: grid;
  grid-template-columns: 1fr 1fr 1.6fr 1fr 1fr;
  gap: 0;

  box-sizing: border-box;
}

/* Nascondiamo notice originale */
body.woocommerce-order-received p.woocommerce-notice.woocommerce-thankyou-order-received {
  display: none;
}

/* Riga "Grazie..." */
body.woocommerce-order-received .woocommerce-order-overview::before {
  content: "Grazie. Il tuo ordine è stato ricevuto.";
  grid-column: 1 / -1;

  display: block;
  margin: 0 0 14px;
  padding: 22px 24px;

  border-bottom: 1px solid rgba(0, 0, 0, .12);
  background: transparent;

  color: #2b2b2b;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.45;
}

/* Colonne dati */
body.woocommerce-order-received .woocommerce-order-overview li {
  margin: 0;
  padding: 14px 18px;

  background: transparent;
  border: 0;
  border-right: 1px solid rgba(0, 0, 0, .12);

  color: rgba(43, 43, 43, .75);
  font-weight: 600;
  font-size: 12px;
  line-height: 1.35;

  min-width: 0;
  box-sizing: border-box;
}

/* niente separatore sull’ultima colonna */
body.woocommerce-order-received .woocommerce-order-overview li:last-child {
  border-right: 0;
}

/* Valori */
body.woocommerce-order-received .woocommerce-order-overview li strong {
  display: block;
  margin-top: 6px;

  color: #2b2b2b;
  font-weight: 800;
  font-size: 14px;

  white-space: nowrap;
  /* 👈 no capo */
  overflow: visible;
  /* 👈 niente ellipsis */
  text-overflow: unset;
}









/* ------------------------------------------------------
   ORDER DETAILS TABLE -> card unica (ok)
   ------------------------------------------------------ */
body.woocommerce-order-received .woocommerce-order-details {
  margin: 0 0 10px;
}

body.woocommerce-order-received .woocommerce-order-details table {
  width: 100%;
  margin: 0 0 18px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

/* reset bordi Woo */
body.woocommerce-order-received .woocommerce-order-details table th,
body.woocommerce-order-received .woocommerce-order-details table td {
  border: 0;
}

/* header */
body.woocommerce-order-received .woocommerce-order-details table thead th {
  padding: 14px 16px;
  font-size: 13px;
  font-weight: 800;
  color: rgba(43, 43, 43, .75);
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, .12);
  text-align: left;
  white-space: nowrap;
}

/* righe prodotto */
body.woocommerce-order-received .woocommerce-order-details table tbody td {
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 600;
  color: #2b2b2b;
  background: transparent;
  vertical-align: middle;
}

/* separatore righe */
body.woocommerce-order-received .woocommerce-order-details table tbody tr+tr td {
  border-top: 1px solid rgba(0, 0, 0, .12);
}

/* footer (totali) */
body.woocommerce-order-received .woocommerce-order-details table tfoot th,
body.woocommerce-order-received .woocommerce-order-details table tfoot td {
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 800;
  color: #2b2b2b;
  background: transparent;
}

body.woocommerce-order-received .woocommerce-order-details table tfoot tr:first-child th,
body.woocommerce-order-received .woocommerce-order-details table tfoot tr:first-child td {
  border-top: 1px solid rgba(0, 0, 0, .12);
}

/* link prodotti sobrio */
body.woocommerce-order-received .woocommerce-order-details table a {
  color: #2b2b2b;
  font-weight: 700;
  text-decoration: none;
  box-shadow: none;
}

body.woocommerce-order-received .woocommerce-order-details table a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* shipped via muted */
body.woocommerce-order-received .woocommerce-order-details .shipped_via {
  color: rgba(43, 43, 43, .75);
  font-weight: 600;
}

/* ------------------------------------------------------
   ADDRESSES: stessa riga desktop (2 colonne), 1 colonna mobile
   ------------------------------------------------------ */
body.woocommerce-order-received .woocommerce-customer-details {
  margin-top: 6px;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
  margin: 0;
  padding: 0;
}

/* Desktop: forza 2 colonne e disattiva float legacy */
@media (min-width: 901px) {
  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses {
    display: flex;
    /* ✅ invece di grid: Woo-proof */
    flex-wrap: nowrap;
    gap: 16px;
    align-items: stretch;
    width: 100%;
  }

  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses .col-1,
  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses .col-2 {
    float: none;
    /* ✅ kill float Woo */
    clear: none;
    /* ✅ kill clear Woo */
    width: auto;
    margin: 0;
    padding: 0;
    min-width: 0;

    flex: 1 1 0;
    /* ✅ stessa riga, stessa larghezza */
    display: flex;
    flex-direction: column;
  }

  /* Safety: se Woo tocca anche queste */
  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
    min-width: 0;
  }

  /* address riempie la colonna (allineamento perfetto visivo) */
  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses .col-1>address,
  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses .col-2>address {
    flex: 1 1 auto;
  }
}

/* Mobile */
@media (max-width: 900px) {
  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }

  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
    float: none;
    width: 100%;
    margin: 0;
    padding: 0;
    min-width: 0;
  }

  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses .col-1,
  body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses.col2-set.addresses .col-2 {
    float: none;
    clear: none;
    width: 100%;
    margin: 0;
    padding: 0;
    min-width: 0;
  }
}

/* Address card content */
body.woocommerce-order-received .woocommerce-customer-details address {
  margin: 0;
  padding: 18px 18px;
  font-style: normal;

  color: rgba(43, 43, 43, .75);
  font-weight: 600;
  line-height: 1.55;
}

body.woocommerce-order-received .woocommerce-customer-details address a {
  color: #2b2b2b;
  text-decoration: none;
}

body.woocommerce-order-received .woocommerce-customer-details address a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.woocommerce-order-received .woocommerce-customer-details .woocommerce-customer-details--email,
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-customer-details--phone {
  margin: 10px 0 0;
  color: #2b2b2b;
  font-weight: 700;
}



/* ------------------------------------------------------
   Additional fields wrapper -> card
   ------------------------------------------------------ */
body.woocommerce-order-received .wc-block-order-confirmation-additional-fields-wrapper {
  margin: 18px 0 0;
  padding: 18px 18px;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-fields-wrapper dl {
  margin: 0;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-fields-wrapper dt {
  margin: 0 0 10px;
  color: rgba(43, 43, 43, .75);
  font-weight: 700;
  line-height: 1.5;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-fields-wrapper dd {
  margin: 0;
  color: #2b2b2b;
  font-weight: 700;
}

/* ------------------------------------------------------
   Safety resets
   ------------------------------------------------------ */
body.woocommerce-order-received .woocommerce-order ul,
body.woocommerce-order-received .woocommerce-order ol {
  list-style: none;
  margin: 0;
  padding: 0;
}





/* =========================================================
   FOOTER — ENTERPRISE (DOMSHOP)
   Namespace: .ds-footer
   - 4 colonne desktop (brand + 3 menu)
   - Strip: social sx / payments dx
   - Mobile: tutto in colonna, leggibile, premium
   - Nessun overlay / nessun fixed / nessun z-index
   - FONT: INTER FORZATO GLOBALMENTE NEL FOOTER
   ========================================================= */

/* ---------- FONT INTER (IDENTICO AI PULSANTI) ---------- */
.ds-footer,
.ds-footer * {
  font-family: "Inter";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ---------- Base ---------- */
.ds-footer {
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, .10);
}

.ds-footer__wrap {
  max-width: var(--ds-container, 1240px);
  margin: 0 auto;
  padding: clamp(28px, 3.2vw, 56px) 20px 18px;
  box-sizing: border-box;
}

.ds-footer * {
  box-sizing: border-box;
}

/* ---------- Top grid ---------- */
.ds-footer__top {
  display: grid;
  grid-template-columns: minmax(240px, 1.15fr) 1fr 1fr 1fr;
  gap: clamp(22px, 3vw, 58px);
  align-items: start;
}

/* Brand */
.ds-footer__brand {
  min-width: 0;
}

.ds-footer__logo {
  display: inline-flex;
  align-items: flex-start;
  text-decoration: none;
  color: #141414;
}

.ds-footer__logo img,
.ds-footer__logo .custom-logo {
  display: block;
  height: 48px;
  width: auto;
}

.ds-footer__siteName {
  font-size: 26px;
  font-weight: 850;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: #141414;
}

/* Colonne */
.ds-footer__col {
  min-width: 0;
}

.ds-footer__title {
  margin: 0 0 14px;
  font-size: 15px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #000;
}

/* Liste */
.ds-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.ds-footer__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;

  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;

  color: rgba(20, 20, 20, .72);
  text-decoration: none;

  transition: color .18s ease, transform .18s ease, text-decoration-color .18s ease;
  text-decoration-color: rgba(20, 20, 20, .25);
}

.ds-footer__link:hover {
  color: #141414;
  text-decoration: underline;
  text-underline-offset: 3px;
  transform: translateY(-1px);
}

/* Focus accessibile */
.ds-footer__link:focus-visible,
.ds-footer__creditLink:focus-visible {
  outline: 2px solid rgba(20, 20, 20, .85);
  outline-offset: 3px;
  border-radius: 8px;
}

/* ---------- Strip (social / payments) ---------- */
.ds-footer__strip {
  margin-top: clamp(18px, 2.4vw, 30px);
  padding-top: clamp(16px, 2.2vw, 24px);
  border-top: 1px solid rgba(0, 0, 0, .10);

  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}

.ds-footer__social,
.ds-footer__payments {
  min-width: 0;
}

/* Sx social */
.ds-footer__social {
  display: flex;
  align-items: flex-start;
}

/* Dx payments */
.ds-footer__payments {
  display: flex;
  justify-content: flex-end;
}

/* ---------- Social template ---------- */

.ds-social {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.ds-social::before {
  content: "Seguici sui nostri social";
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #141414;
  line-height: 1.2;
}

.ds-social__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 14px;
}

.ds-social__item {
  display: flex;
  align-items: center;
}

.ds-social__item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  line-height: 1;
  border-radius: 12px;
}

.ds-social__icon {
  height: 28px;
  width: auto;
  display: block;
  transition: opacity .18s ease, transform .18s ease;
}

.ds-social__item a:hover .ds-social__icon {
  opacity: .78;
  transform: translateY(-2px);
}

/* ---------- Payments template ---------- */

.ds-payments {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

.ds-payments::before {
  content: "Metodi di pagamento";
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #141414;
  line-height: 1.2;
}

.ds-payments__list {
  margin: 0;
  padding: 0;
  list-style: none;

  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ds-payments__item {
  display: flex;
  align-items: center;
}

.ds-payments__icon {
  height: 28px;
  width: auto;
  display: block;
  transition: opacity .18s ease, transform .18s ease;
}

.ds-payments__item:hover .ds-payments__icon {
  opacity: .82;
  transform: translateY(-2px);
}

/* ---------- Bottom ---------- */

.ds-footer__bottom {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(0, 0, 0, .10);
}

.ds-footer__copyright {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;

  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  color: rgba(20, 20, 20, .68);
}

.ds-footer__creditLink {
  color: #141414;
  font-weight: 850;
  text-decoration: none;
  transition: opacity .18s ease, transform .18s ease, text-decoration-color .18s ease;
  text-decoration-color: rgba(20, 20, 20, .25);
}

.ds-footer__creditLink:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  transform: translateY(-1px);
}

/* ---------- Responsive ---------- */

@media (max-width: 1000px) {
  .ds-footer__wrap {
    padding-left: 18px;
    padding-right: 18px;
  }

  .ds-footer__top {
    grid-template-columns: 1fr 1fr;
    gap: 22px 28px;
  }

  .ds-footer__logo img,
  .ds-footer__logo .custom-logo {
    height: 44px;
  }

  .ds-footer__strip {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .ds-payments {
    align-items: flex-start;
  }

  .ds-payments__list {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .ds-footer__social {
    width: 100%;
    justify-content: center;
  }

  .ds-footer__payments {
    width: 100%;
    justify-content: center;
    margin-bottom: 40px;
  }

  .ds-footer__wrap {
    padding: 26px 16px 18px;
  }

  .ds-footer__top {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ds-footer__title {
    margin-bottom: 10px;
  }

  .ds-footer__strip {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: start;
  }

  .ds-footer__social,
  .ds-footer__payments {
    justify-content: flex-start;
    width: 100%;
  }

  .ds-payments {
    align-items: flex-start;
  }

  .ds-payments__list {
    justify-content: flex-start;
  }

  .ds-footer__logo img,
  .ds-footer__logo .custom-logo {
    height: 40px;
  }

  .ds-social__icon,
  .ds-payments__icon {
    height: 26px;
  }

  .ds-footer__copyright {
    display: block;
    text-align: center;
    font-size: 11.5px;
    line-height: 1.6;
    padding-bottom: 16px;
    padding-left: 60px;
    padding-right: 60px;
  }

  .ds-footer__copyright span {
    display: inline;
  }
}





/* =====================================================
   SOCIAL TEMPLATE (ds-social) — FIX PRO (NO LOGHI SFONDATI)
   ===================================================== */

.ds-social {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

/* Titolo */
.ds-social::before {
  content: "Seguici sui nostri social";
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #141414;
  line-height: 1.2;
}

/* Lista */
.ds-social__list {
  margin: 0;
  padding: 0;
  list-style: none;

  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  flex-wrap: nowrap;
}

/* Item */
.ds-social__item {
  display: flex;
  align-items: center;
}

/* Link (se presente) */
.ds-social__item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  line-height: 1;
}

/* Icone (img/svg) */
.ds-social__icon,
.ds-social img,
.ds-social svg {
  display: block;
  height: 28px;
  width: auto;
  max-width: 28px;
  object-fit: contain;
  transition: opacity .18s ease, transform .18s ease;
}

.ds-social__item a:hover .ds-social__icon,
.ds-social__item a:hover img,
.ds-social__item a:hover svg {
  opacity: .78;
  transform: translateY(-2px);
}






/* =====================================================
   PAYMENTS TEMPLATE (ds-payments) — FIX PRO (NO LOGHI GIGANTI)
   ===================================================== */

.ds-payments {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  /* desktop: a destra nel footer */
  gap: 10px;
  min-width: 0;
}

/* Titolo */
.ds-payments::before {
  content: "Metodi di pagamento";
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #141414;
  line-height: 1.2;
}

/* Lista */
.ds-payments__list {
  margin: 0;
  padding: 0;
  list-style: none;

  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Item */
.ds-payments__item {
  display: flex;
  align-items: center;
}

/* Icone (img/svg) — qui è la chiave: blocca le dimensioni enormi */
.ds-payments__icon,
.ds-payments img,
.ds-payments svg {
  display: block;
  height: 28px;
  width: auto;
  max-width: 60px;
  /* impedisce VISA gigante */
  object-fit: contain;
  transition: opacity .18s ease, transform .18s ease;
}

.ds-payments__item:hover .ds-payments__icon,
.ds-payments__item:hover img,
.ds-payments__item:hover svg {
  opacity: .82;
  transform: translateY(-2px);
}

/* Mobile: payments non deve stare “tirato” a destra */
@media (max-width: 720px) {
  .ds-payments {
    align-items: flex-start;
  }

  .ds-payments__list {
    justify-content: flex-start;
  }
}






@media (max-width: 720px) {
  .cky-btn-revisit-wrapper {
    bottom: 72px !important;
  }
}






/* =========================================================
   PDP — SOLO: Pulsante WhatsApp dedicato + Pagamenti sotto
   Non modifica titolo/prezzo né altri bottoni.
   ========================================================= */

/* (Rimosso: regole .ds-wa-contact erano dead code, nessun renderer le usa.
 * Il pulsante Contattami reale e' .ds-btn--whatsapp, stilato altrove.) */

/* 2) Metodi di pagamento: SOLO il blocco pagamenti */
.single-product .ds-pdp__payments {
  display: block;
  width: 100%;
  margin-top: 8px;
  /* sotto al bottone */
  clear: both;
}

/* Se il tema li mette in riga strana, normalizza solo la lista */
.single-product .ds-pdp__payments .ds-payments__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  /* se li vuoi a sinistra: flex-start */
}





section.ds-pdp__description h2.ds-pdp__section-title::after,
section.ds-pdp__related h2.ds-pdp__section-title::after {
  content: none;
  display: none;
}




/* BUY NOW: full width + testo centrato */
button.ds-btn.ds-btn--buy-now,
a.ds-btn.ds-btn--buy-now {
  width: 100%;
  flex: 1 1 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

/* ======================================================================
   PDP – VARIAZIONI: freccia verso il basso nel select "Scegli un’opzione"
   (richiesta: icona freccia verso il basso nella box seleziona)
   ====================================================================== */

.ds-pdp__box .variations select.ds-variation-select {
  width: 100%;
  min-height: 46px;
  padding: 12px 44px 12px 14px;
  border: 1px solid rgba(0, 0, 0, .14);
  border-radius: 12px;
  background-color: #fff;
  color: var(--ds-black, #2b2b2b);
  font-weight: 750;
  letter-spacing: .1px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%232b2b2b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D%276%209%2012%2015%2018%209%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 14px 14px;
}

/* Nasconde il select quando ci sono gli swatch */
.ds-pdp__box .variations select.ds-variation-select--hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.ds-pdp__box .variations select.ds-variation-select:focus {
  outline: none;
  border-color: rgba(43, 43, 43, .55);
  box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
}

/* ==========================================================================
   PDP – SWATCH ATTRIBUTI VARIAZIONE
   ========================================================================== */

.ds-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.ds-swatch {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 80px;
  padding: 10px 16px;
  border: 2px solid var(--ds-black, #2b2b2b);
  border-radius: 10px;
  background: #fff;
  color: var(--ds-black, #2b2b2b);
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  text-align: center;
  font-family: var(--ds-font, inherit);
}

.ds-swatch__label {
  font-size: 14px;
  font-weight: 650;
  line-height: 1.3;
}

.ds-swatch__price {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  opacity: .75;
  white-space: nowrap;
}

/* Stato selezionato: sfondo e bordo giallo */
.ds-swatch.is-selected {
  background: #FFC107;
  border-color: #FFC107;
  color: var(--ds-black, #2b2b2b);
}

.ds-swatch.is-selected .ds-swatch__price {
  opacity: 1;
}

/* Hover (solo non selezionato) */
.ds-swatch:not(.is-selected):hover {
  border-color: #FFC107;
}

/* Focus visible per accessibilità */
.ds-swatch:focus-visible {
  outline: 2px solid var(--ds-black, #2b2b2b);
  outline-offset: 2px;
}



/* ======================================================================
   PDP – DESCRIZIONE INLINE (sotto prezzo, sopra CTA)
   ====================================================================== */

.ds-pdp__inlineDesc {
  margin: 10px 0 0;
  padding: 10px 0 0;
  border-top: 1px solid rgba(0, 0, 0, .12);
}

.ds-pdp__inlineDesc-preview {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.55;
  color: var(--ds-muted, rgba(0, 0, 0, .72));
}

.ds-pdp__inlineDesc-toggle {
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ds-black, #2b2b2b);
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.ds-pdp__inlineDesc-full {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.6;
  color: var(--ds-black, #2b2b2b);
}


/* ======================================================================
   FIX – PDP description right panel (full) + remove inline toggle
   ====================================================================== */
.ds-pdp__fullDesc {
  margin: 12px 0 18px;
  font-size: 14px;
  line-height: 1.65;
  font-weight: 550;
  color: var(--ds-black, #2b2b2b);
}

.ds-pdp__fullDesc p {
  margin: 0 0 10px;
}

.ds-pdp__fullDesc p:last-child {
  margin-bottom: 0;
}

/* Descrizione sotto titolo (PDP) */
.ds-pdp__fullDesc--underTitle {
  margin: 0 0 14px;
  /* nel titleBlock gestiamo già la distanza */
}

.ds-pdp__descLink {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  margin-top: 8px;
  font-size: 13px;
  font-weight: 850;

  color: var(--ds-black, #2b2b2b);
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 0, 0, .18);
  padding-bottom: 2px;
}

.ds-pdp__descLink:hover {
  border-bottom-color: rgba(0, 0, 0, .30);
}


/* Nascondi eventuale residuo inline toggle (non usato) */
.ds-pdp__inlineDesc {
  display: none;
}

/* ======================================================================
   FIX – Product cards: immagine full-bleed (no bande laterali)
   ====================================================================== */
.ds-card__media {
  background: transparent;
  padding: 0;
  overflow: hidden;
}

.ds-card__imgLink {
  padding: 0;
  margin: 0;
}

.ds-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.woocommerce ul.products li.product a img {
  margin: 0;
  display: block;
}

/* ======================================================================
   FIX – Woo pagination styling (restore enterprise UI)
   ====================================================================== */
.woocommerce nav.woocommerce-pagination {
  margin: 24px 0 10px
}

.woocommerce nav.woocommerce-pagination ul {
  border: 0;
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 0;
  list-style: none;
  list-style-type: none;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  margin: 0;
  list-style: none;
  list-style-type: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, .12);
  background: #fff;
  font-weight: 850;
  text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  background: #2b2b2b;
  color: #fff;
  border-color: #2b2b2b;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: rgba(0, 0, 0, .04);
}


/* ==========================================================================
   DOMSHOP ENTERPRISE - CHI SIAMO PREMIUM CARDS & STATS
========================================================================== */

/* 1. STATISTICHE (Numeri) */
.ds-about__stats {
  padding: 2rem 0;
}

.ds-about__statsGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
}

.ds-about__stat {
  background: linear-gradient(145deg, #ffffff, #f5f6f8);
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 20px;
  padding: 2.5rem 1.5rem;
  text-align: center;
  box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.06), inset 0 2px 0 rgba(255, 255, 255, 0.7);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.ds-about__stat:hover {
  transform: translateY(-5px);
}

.ds-about__statValue {
  font-size: 2.25rem;
  font-weight: 800;
  color: #111;
  letter-spacing: -1px;
  margin-bottom: 0.5rem;
}

.ds-about__statLabel {
  font-size: 0.875rem;
  color: #666;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* 2. PROCESSO (Come lavoriamo) */
.ds-about__process {
  padding: 4rem 0;
}

.ds-about__sectionHead {
  text-align: center;
  margin-bottom: 3.5rem;
}

.ds-about__sectionHead .ds-about__h {
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: -1px;
  margin-bottom: 1rem;
}

.ds-about__sectionHead .ds-about__p {
  font-size: 1.125rem;
  color: #555;
  max-width: 600px;
  margin: 0 auto;
}

.ds-about__processGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}

@media (max-width: 991px) {
  .ds-about__processGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

@media (max-width: 600px) {
  .ds-about__processGrid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

.ds-about__step {
  background: #ffffff;
  border-radius: 24px;
  padding: 1.8rem;
  position: relative;
  box-shadow: 0 20px 50px -15px rgba(0, 0, 0, 0.07);
  border: 1px solid rgba(0, 0, 0, 0.03);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  z-index: 1;
}

.ds-about__step::after {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(0, 0, 0, 0.03) 0%, transparent 70%);
  border-radius: 50%;
  z-index: -1;
  pointer-events: none;
}

.ds-about__stepNum {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #111;
  color: #fff;
  border-radius: 50%;
  font-weight: 800;
  font-size: 1.25rem;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
  margin-bottom: 0.5rem;
}

.ds-about__stepTitle {
  font-size: 1.35rem;
  font-weight: 700;
  color: #111;
  margin: 0;
  line-height: 1.3;
}

.ds-about__stepText {
  font-size: 1rem;
  color: #666;
  line-height: 1.6;
  margin: 0;
}


/* 3. VALORI (Cards) */
.ds-about__values {
  padding: 3rem 0;
}

.ds-about__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.ds-about__card {
  background: #ffffff;
  border-radius: 20px;
  padding: 2.5rem;
  box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.03);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ds-about__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.08);
}

.ds-about__cardTitle {
  font-size: 1.25rem;
  font-weight: 800;
  color: #111;
  margin: 0 0 1rem 0;
  letter-spacing: -0.5px;
}

.ds-about__cardText {
  font-size: 1rem;
  color: #666;
  line-height: 1.6;
  margin: 0;
}


/* 4. SPLIT SECTIONS (Immagine + Testo) */
.ds-about__split {
  display: flex;
  align-items: center;
  gap: 4rem;
  padding: 4rem 0;
}

@media (max-width: 991px) {

  .ds-about__split,
  .ds-about__split--reverse {
    flex-direction: column;
    gap: 2rem;
  }
}

.ds-about__split--reverse {
  flex-direction: row-reverse;
}

.ds-about__media {
  flex: 1;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
  transform: translateY(0);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.ds-about__media:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.2);
}

.ds-about__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.ds-about__content {
  flex: 1;
}

.ds-about__h {
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: -1px;
  color: #111;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.ds-about__p {
  font-size: 1.125rem;
  color: #555;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.ds-about__list {
  list-style: none;
  padding: 0;
  margin: 2rem 0 0 0;
}

.ds-about__li {
  display: block;
  font-size: 1.125rem;
  color: #333;
  font-weight: 500;
  padding-left: 2rem;
  position: relative;
  margin-bottom: 1rem;
}

.ds-about__li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  background: #111;
  border-radius: 50%;
}

/* 5. GALLERY (Dietro le quinte) */
.ds-about__gallery {
  padding: 2rem 0 6rem;
}

.ds-about__galleryGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
}

.ds-about__shot {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.1);
  margin: 0;
  transition: transform 0.3s ease;
}

.ds-about__shot:hover {
  transform: scale(1.03);
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.15);
}


/* 6. BACKGROUND ASSOLUTO PER PAGINE SPECIFICHE */
body.page-template-page-chi-siamo,
body.page-template-page-contact,
.page-template-page-chi-siamo #primary,
.page-template-page-contact #primary,
.ds-about-page,
.ds-about,
.ds-contact {
  background-color: #ffffff;
}


/* =========================================================
   DOMSHOP ENTERPRISE - HEADER & LOGO REFINEMENT
   ========================================================= */
.ds-header {
  padding: 20px 0;
}

.ds-brand img {
  max-height: 70px;
  height: auto;
  width: auto;
  transition: max-height 0.3s ease;
}

@media (min-width: 992px) {
  .ds-container {
    max-width: 1400px;
    padding-left: 4%;
    padding-right: 4%;
  }

  .ds-nav {
    flex-grow: 1;
    display: flex;
    justify-content: center;
  }

  .ds-actions {
    transform: scale(1.15);
    transform-origin: right center;
  }
}

@media (max-width: 991px) {
  .ds-brand img {
    max-height: 70px;
    height: auto;
    /* Più contenuto su mobile */
  }

  /* Ripristina il display:none per la navigazione desktop, 
     lasciando operare il menu hamburger mobile nativo */
  .ds-nav {
    display: none;
  }
}


/* =========================================================
   FIX ASSOLUTO HEADER MOBILE - DOMSHOP ENTERPRISE
   ========================================================= */
@media (max-width: 991px) {
  .ds-header {
    padding: 10px 0;
  }

  .ds-brand img {
    max-height: 70px;
    height: auto;
    width: auto;
  }

  .ds-container {
    padding-left: 15px;
    padding-right: 15px;
  }

  .ds-header__row {
    min-height: auto;
  }
}

/* =========================================================
   DOMSHOP ENTERPRISE - IL LAYOUT PERFETTO PRODOTTO VARIABILE (ALL-NEW)
   ========================================================= */

/* 
  1. Il Prezzo Base (Sopra il CTA) sparisce se il form variazioni è pronto o mostra il prezzo interno.
  WooCommerce nativamente mostra il prezzo sotto al titolo. Se la selezione è fatta, lo eliminiamo.
*/
body.single-product.product-type-variable .ds-box.ds-pdp__box:has(.woocommerce-variation-price .price) .ds-pdp__summary-inner>p.price,
body.single-product.product-type-variable .ds-box.ds-pdp__box:has(form.variation-is-visible) .ds-pdp__summary-inner>p.price {
  display: none;
}

/* Assicurati che il Prezzo Base sia sempre grande e nero */
body.single-product.product-type-variable .ds-pdp__summary-inner>p.price {
  font-size: 24px;
  font-weight: 700;
  color: #2b2b2b;
  margin: 10px 0 20px 0;
}

/* 2. Il FORM Variabile non usa display: contents che è buggato sui browser, usa flex-colonna */
body.single-product.product-type-variable form.variations_form {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  gap: 0;
}

/* 
  3. LA TABELLA DELLE SELEZIONI (Scegli Opzioni)
  Messa in cima al form con flex order -1 
*/
body.single-product.product-type-variable table.variations {
  order: -1;
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 20px 0;
  border: none;
}

body.single-product.product-type-variable table.variations th,
body.single-product.product-type-variable table.variations td {
  padding: 6px 0;
  vertical-align: middle;
  border: none;
}

body.single-product.product-type-variable table.variations th.label {
  display: none;
  /* Spesso il label rompe, nascondiamolo se non vitale o mettiamo width 0 */
}

body.single-product.product-type-variable table.variations td.value {
  width: 100%;
}

/* Dropdown Stile Enterprise */
body.single-product.product-type-variable table.variations select {
  width: 100%;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  font-family: var(--ds-font, system-ui);
  font-size: 16px;
  font-weight: 500;
  color: #333;
  appearance: none;
  background: #fdfdfd url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%207.5L10%2012.5L15%207.5%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E") no-repeat right 16px center;
  outline: none;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

body.single-product.product-type-variable table.variations select:focus {
  border-color: var(--ds-black, #2f2f2f);
}

/* Tasto Pulisci */
body.single-product.product-type-variable .reset_variations {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  color: #777;
  text-decoration: underline;
}

/* ========================================================
   SINGLE TRUTH: PDP LAYOUT OVERRIDES
   ======================================================== */

/* ROW: Split into left and right */
body.single-product form.cart .ds-pdp__price-qty-row {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  margin: 0 0 24px 0;
  padding: 0;
  gap: 0;
}

/* KILL WORDPRESS GHOST ELEMENTS */
body.single-product form.cart .ds-pdp__price-qty-row::before,
body.single-product form.cart .ds-pdp__price-qty-row::after {
  display: none;
  content: none;
}

/* LEFT COLUMN: PRICE */
body.single-product form.cart .ds-pdp__price-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* Force to left edge */
  justify-content: flex-end;
  text-align: left;
  margin: 0;
  margin-right: auto;
  /* Force rightwards gap */
  padding: 0;
  flex: 0 1 auto;
  /* Shrink to fit, but allow text to take space */
}

/* ALL TEXT IN PRICE COLUMN */
body.single-product form.cart .ds-pdp__price-col * {
  text-align: left;
  margin-left: 0;
  padding-left: 0;
  /* NUKE PADDING */
  align-self: flex-start;
}

body.single-product form.cart .ds-pdp__price-col .ds-pdp__label {
  font-size: 11px;
  font-weight: 700;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 5px;
  display: block;
}

body.single-product form.cart .ds-pdp__price-col .ds-price-raw {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-start;
}

body.single-product form.cart .ds-pdp__price-col .ds-price-raw,
body.single-product form.cart .ds-pdp__price-col .ds-price-raw *,
body.single-product form.cart .ds-pdp__price-col .price {
  font-size: 20px;
  /* SMALLER FONT FOR RANGES */
  font-weight: 800;
  color: #111;
  line-height: 1.2;
  white-space: nowrap;
  /* NO KINKING / WRAPPING AS REQUESTED */
  word-break: normal;
}

@media (max-width: 768px) {

  body.single-product form.cart .ds-pdp__price-col .ds-price-raw,
  body.single-product form.cart .ds-pdp__price-col .ds-price-raw *,
  body.single-product form.cart .ds-pdp__price-col .price {
    font-size: 16px;
  }
}


/* RIGHT COLUMN: QUANTITY */
body.single-product form.cart .ds-pdp__qty-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  /* Force to right edge */
  justify-content: flex-end;
  text-align: right;
  margin: 0;
  margin-left: auto;
  /* Force leftwards gap */
  padding: 0;
  flex: 0 0 auto;
}

/* ALL TEXT AND INPUTS IN QUANTITY COLUMN */
body.single-product form.cart .ds-pdp__qty-col * {
  text-align: right;
  margin-right: 0;
  align-self: flex-end;
}

/* Hide native duplicate quantity labels */
body.single-product form.cart .ds-pdp__qty-col label.screen-reader-text {
  display: none;
}

/* VARIATION SPECIFIC (Single Variation replaces Base Price) */
body.single-product form.cart .woocommerce-variation.single_variation[style*="block"]~.ds-main-price-wrapper,
body.single-product form.cart .woocommerce-variation.single_variation:not([style*="none"]):not(:empty)~.ds-main-price-wrapper {
  display: none;
}

/* Forcing quantity box to never disappear under variation JS toggles */
body.single-product form.cart .ds-qty {
  display: flex;
  visibility: visible;
  opacity: 1;
}

body.single-product form.cart .woocommerce-variation.single_variation {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0;
}

body.single-product form.cart .woocommerce-variation.single_variation * {
  text-align: left;
  align-self: flex-start;
}

/* Stock text */
body.single-product form.cart .woocommerce-variation-availability,
body.single-product form.cart .woocommerce-variation-availability *,
body.single-product form.cart .woocommerce-variation-availability p.stock {
  color: #2b2b2b;
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}

/* Full Width Variation Selectors */
body.single-product form.cart table.variations {
  width: 100%;
  display: flex;
  flex-direction: column;
  border: none;
  margin: 0 0 20px 0;
}

body.single-product form.cart table.variations tbody,
body.single-product form.cart table.variations tr {
  width: 100%;
  display: flex;
  flex-direction: column;
}

body.single-product form.cart table.variations th,
body.single-product form.cart table.variations td {
  width: 100%;
  display: block;
  padding: 0;
  text-align: left;
  border: none;
}

body.single-product form.cart table.variations th {
  margin-bottom: 5px;
}

body.single-product form.cart table.variations select {
  width: 100%;
}

/* CTA Stack (Buy Now / Add to Cart) Full Width */
body.single-product form.cart .ds-pdp__ctaStack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  clear: both;
  align-items: stretch;
  margin: 0;
  padding: 0;
}

body.single-product form.cart .ds-pdp__ctaStack button,
body.single-product form.ds-buy-now button.ds-btn--buy-now {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* ========================================================
   ABSOLUTE ISOLATION OF THE CART FORM (DESTROYING THE GRID LEAK)
   ======================================================== */

/* The theme's native CSS uses display: contents to throw the cart children into the grandparent grid. 
   This forces the price-row into a constrained grid cell, centering it and ignoring width 100%.
   We break the chain here. */
.ds-pdp__summary .ds-box.ds-pdp__box .ds-pdp__cta,
.ds-pdp__summary .ds-box.ds-pdp__box form.ds-buy-now {
  display: block;
  width: 100%;
  grid-column: 1 / -1;
  /* Force the CTA container to span the whole card */
  margin: 0;
  padding: 0;

}

.ds-pdp__summary .ds-box.ds-pdp__box form.cart,
.ds-pdp__summary .ds-box.ds-pdp__box form.ds-buy-now {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Costringiamo SPECIFICATAMENTE i form e i bottoni a centracisi e limitarsi, RESTRINGENDOSI (es, a 260px) esattamente come il blocco Express Checkout che ospita GPay nativo, senza sfondare al 100% */
body.single-product form.cart .ds-pdp__ctaStack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  clear: both;
  align-items: center;
  /* Centra nel flex */
  justify-content: center;
  margin: 0;
  padding: 0;
}

body.single-product form.cart .ds-pdp__ctaStack button,
body.single-product form.cart button.single_add_to_cart_button,
body.single-product form.ds-buy-now button.ds-btn--buy-now,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .wcpay-express-checkout-wrapper,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box #wc-stripe-payment-request-wrapper {
  width: 100%;
  max-width: 100%;
  /* Estensione massima assoluta al contenitore padre */
  margin: 0 0 12px 0;
  /* Margine basso per distanziare, zero ai lati */
  display: block;
  padding: 12px 0;
  /* IMPORTANTE: 0 LATERALE per non schiacciare gli Iframe interni di GPay! */
  box-sizing: border-box;
}

/* Forziamo gli iframe di payment e i shadow root a prendere tutto lo spazio eludendo restrizioni di Stripe/WooCommerce */
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .wcpay-express-checkout-wrapper iframe,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .wcpay-express-checkout-wrapper>div,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box #wc-stripe-payment-request-wrapper iframe,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box #wc-stripe-payment-request-wrapper>div,
body.single-product .gpay-button {
  width: 100%;
  min-width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* Now our row lives safely inside a 100% block container, where flexbox ACTUALLY works */
body.single-product form.cart .ds-pdp__price-qty-row {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  margin: 0 0 24px 0;
  padding: 0;
  gap: 0;
}

body.single-product form.cart .ds-pdp__price-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  text-align: left;
  margin: 0;
  padding: 0;
}

body.single-product form.cart .ds-pdp__qty-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  text-align: right;
  margin: 0;
  padding: 0;
}

/* ========================================================
   SHOP PAGE FIXES (BREADCRUMBS, BUTTONS, GRID)
   ======================================================== */

/* 1. Nascondere Breadcrumbs WooCommerce globalmente */
.woocommerce-breadcrumb {
  display: none;
}

/* 2. Pulsante Aggiungi al Carrello e Scegli: uniformati a 100% e Allineati in Basso su tutte le Griglie - GLOBALE WOOCOMMERCE */

/* FIX PER ALTEZZA CARD NEI PRODOTTI CORRELATI E UP-SELLS (SENZA TOCCARE DS-CARD NATIVA) */
.woocommerce .related.products ul.products li.product,
.woocommerce .up-sells ul.products li.product,
.woocommerce-page .related.products ul.products li.product,
.woocommerce-page .up-sells ul.products li.product {
  display: flex;
  height: 100%;
  flex-direction: column;
}

/* 3. Griglia Prodotti: Da 4 a 3 Colonne (Solo Desktop) - ALTA SPECIFICITÀ */
@media (min-width: 992px) {
  body .ds-shop .ds-shop__products ul.products {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ========================================================
   SHOP PAGE EXTREME WIDTH (LET IT BREATHE)
   ======================================================== */
@media (min-width: 992px) {

  /* 1. Allargare il contenitore principale solo per lo shop */
  body.archive.woocommerce .ds-container,
  body.post-type-archive-product .ds-container {
    width: min(1440px, calc(100% - 60px));
    /* Espansione da 1160px a 1440px */
    max-width: 1440px;
  }

  /* 2. Allargare la griglia interna */
  body.archive.woocommerce .ds-shop__layout,
  body.post-type-archive-product .ds-shop__layout {
    max-width: 100%;
    gap: 24px;
    /* Più respiro tra le carte */
  }

  /* 3. Più respiro interno alla grid a 3 colonne */
  body .ds-shop .ds-shop__products ul.products {
    gap: 28px;
    /* Distanza tra i singoli prodotti */
  }
}



/* =========================================================
   DOMSHOP ENTERPRISE - CUSTOM COLOR BUTTONS (CARRELLO & WISHLIST)
   ========================================================= */

body :where(.add_to_cart_button, .single_add_to_cart_button, .ajax_add_to_cart),
body .ds-wishlist__actions .ds-btn--primary,
body .ds-wishlist__footer .ds-btn--primary,
body.single-product form.cart .button {
  background: #FFC107;
  color: #2B2B2B;
  border-color: #FFC107;
}

body :where(.add_to_cart_button, .single_add_to_cart_button, .ajax_add_to_cart):hover,
body .ds-wishlist__actions .ds-btn--primary:hover,
body .ds-wishlist__footer .ds-btn--primary:hover,
body.single-product form.cart .button:hover {
  background: #eab005;
  color: #2B2B2B;
  border-color: #eab005;
}

/* =========================================================
   DOMSHOP ENTERPRISE - IL GIALLO ASSOLUTO PER TUTTI I CARRELLI
   ========================================================= */

/* Tutti i bottoni Add to Cart di WooCommerce (Griglie, Singolo, Ajax) */
body button.single_add_to_cart_button,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box button.single_add_to_cart_button.button.alt.ds-btn.ds-btn--primary,
body a.add_to_cart_button.ajax_add_to_cart,
body a.add_to_cart_button,
body .woocommerce-page ul.products li.product a.button,
body ul.products li.product .button,
/* I 3 bottoni chiave della pagina Wishlist */
body.page-template-default .ds-wishlist__actions .ds-btn--primary,
body.page-template-default .ds-wishlist__footer .ds-btn--primary,
body .ds-wishlist__actions .ds-btn--primary,
body .ds-wishlist__footer .ds-btn--primary,
body .ds-pdp__ctaStack .single_add_to_cart_button,
/* Nuove aggiunte HomePage richieste */
body .ds-hero__actions .ds-btn--primary,
body .ds-sectionsell__all,
body .ds-card__badge--bestseller,
/* Pulsanti Up-sells / Cross-sells PDP */
body .ds-related__cta .ds-btn--primary,
body .ds-related__cta .add_to_cart_button {
  background: #FFC107;
  color: #2B2B2B;
  border-color: #FFC107;
  box-shadow: none;
}

body button.single_add_to_cart_button:hover,
body.single-product .ds-pdp__summary .ds-box.ds-pdp__box button.single_add_to_cart_button.button.alt.ds-btn.ds-btn--primary:hover,
body a.add_to_cart_button.ajax_add_to_cart:hover,
body a.add_to_cart_button:hover,
body .woocommerce-page ul.products li.product a.button:hover,
body ul.products li.product .button:hover,
body.page-template-default .ds-wishlist__actions .ds-btn--primary:hover,
body.page-template-default .ds-wishlist__footer .ds-btn--primary:hover,
body .ds-wishlist__actions .ds-btn--primary:hover,
body .ds-wishlist__footer .ds-btn--primary:hover,
body .ds-pdp__ctaStack .single_add_to_cart_button:hover,
/* Hover nuove aggiunte HomePage */
body .ds-hero__actions .ds-btn--primary:hover,
body .ds-sectionsell__all:hover,
body .ds-related__cta .ds-btn--primary:hover,
body .ds-related__cta .add_to_cart_button:hover {
  background: #eab005;
  color: #2B2B2B;
  border-color: #eab005;
}

/* =========================================================
   DOMSHOP ENTERPRISE - UNIFORMAZIONE BOTTONI (FORZA BRUTA)
   ========================================================= */

/* Tutti i bottoni generali, custom, sistemi di form e WooCommerce */
body .ds-btn,
body button.ds-btn,
body a.ds-btn,
body .ds-container input[type="submit"],
body .ds-container input[type="button"],
body .ds-container button[type="submit"],
body .wpforms-submit,
body .wpcf7-submit,
body :where(.add_to_cart_button,
  .single_add_to_cart_button,
  .ajax_add_to_cart,
  .checkout-button,
  .wc-forward,
  #place_order),
body .woocommerce-page ul.products li.product a.button,
body ul.products li.product .button,
body.single-product form.cart .button,
body.page-template-default .ds-wishlist__actions .ds-btn,
body.page-template-default .ds-wishlist__footer .ds-btn,
body .ds-wishlist__actions .ds-btn,
body .ds-wishlist__footer .ds-btn,
body .ds-pdp__ctaStack .single_add_to_cart_button,
body .ds-btn.ds-btn--buy-now,
body button.ds-btn.ds-btn--buy-now,
body form.ds-buy-now .ds-btn--buy-now,
/* Bottoni Homepage */
body .ds-hero__actions .ds-btn--primary,
body .ds-sectionsell__all {
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 15px;
}

/* Casi specifici in cui la grandezza fissa del tasto "Acquista Ora" va onorata in altezza e LARGHEZZA TOTALE (min-height e width) */
body .ds-container input[type="submit"],
body .ds-container input[type="button"],
body .ds-container button[type="submit"],
body .wpforms-submit,
body .wpcf7-submit,
body :where(.add_to_cart_button,
  .single_add_to_cart_button,
  .ajax_add_to_cart,
  .checkout-button,
  .wc-forward),
body.single-product form.cart .button,
body .woocommerce-page ul.products li.product a.button,
body ul.products li.product .button,
body .ds-pdp__ctaStack .single_add_to_cart_button,
body .ds-related__cta a.add_to_cart_button,
body .ds-card__ctaRow a.add_to_cart_button,
body .ds-btn.ds-btn--buy-now,
body button.ds-btn.ds-btn--buy-now,
body form.ds-buy-now .ds-btn--buy-now {
  min-height: 48px;
  padding: 12px 16px;
  width: 100%;
  max-width: 100%;
  flex: 1 1 100%;
  box-sizing: border-box;
  margin-left: 0;
  margin-right: 0;
}

/* Forziamo il contenitore dei bottoni a non limitare la larghezza */
body .ds-pdp__ctaStack {
  display: flex;
  flex-direction: column;
  width: 100%;
  align-items: stretch;
}

/* Bottoni Homepage (Solo Altezza/Padding, NO Larghezza 100%) */
body .ds-hero__actions .ds-btn--primary,
body .ds-sectionsell__all {
  min-height: 48px;
  padding: 12px 16px;
  box-sizing: border-box;
}

/* Addolciamo anche le drop-down di selezione variazioni che erano a 10px in alcune zone */
body.single-product.product-type-variable table.variations select {
  border-radius: 12px;
}

/* =========================================================
   DOMSHOP ENTERPRISE - HIDE INTRUSIVE SEARCH BAR FROM HEADER
   ========================================================= */

/* Un form di ricerca si è auto-inserito nel top header. Lo nascondiamo per lasciare solo l'iconcina ds-actions corretta. */
.ds-header .ds-container>form.search-form,
.ds-header .ds-nav form.search-form,
.ds-header form.search-form:not(#searchform):not(.ds-drawer form) {
  display: none;
}

/* Protezione specifica qualora il widget si trovasse esattamente a fianco delle .ds-actions */
.ds-header__row>.search-form {
  display: none;
}

/* =========================================================
   DOMSHOP ENTERPRISE - WHATSAPP BROADCAST POPUP
   ========================================================= */

/* Sfondo Overlay Scuro (separato dal popup per evitare problemi di z-index e oscuramento interno) */
.ds-wa-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 49;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.ds-wa-overlay.ds-show {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.ds-wa-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  width: calc(100% - 48px);
  max-width: 560px;
  /* Ulteriormente ingrandito per accogliere copy più lungo */
  background: #ffffff;
  /* Sfondo bianco solido e pulito, non trasparente per non mischiarsi all'overlay */
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 28px;
  /* Bordi più morbidi */
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.25), 0 15px 35px rgba(0, 0, 0, 0.1);
  /* Ombra ultra premium */
  padding: 48px;
  /* Respiro interno generoso per alzarlo ulteriormente */
  z-index: 50;

  /* Initial hidden state */
  opacity: 0;
  transform: translate(-50%, -40%) scale(0.95);
  /* Modificato per transizione dal centro */
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.5s;
}

/* Shown state via JS */
.ds-wa-popup.ds-show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
  visibility: visible;
}

.ds-wa-popup__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f0f0f0;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #555;
  transition: all 0.2s ease;
  z-index: 2;
}

.ds-wa-popup__close:hover,
.ds-wa-popup__close:focus {
  background: #e4e4e4;
  color: #111;
  transform: scale(1.05);
}

.ds-wa-popup__close svg {
  width: 16px;
  height: 16px;
}

.ds-wa-popup__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  /* Centrato text-align per renderlo più "modale premio" */
  gap: 24px;
  /* Aumentato il gap tra elementi per alzarlo  */
  position: relative;
}

.ds-wa-popup__icon {
  width: 64px;
  /* Icona più grande */
  height: 64px;
  border-radius: 50%;
  background: rgba(37, 211, 102, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.15);
}

.ds-wa-popup__icon svg {
  width: 38px;
  height: 38px;
}

.ds-wa-popup__content {
  flex: 1;
}

.ds-wa-popup__title {
  margin: 0 0 12px 0;
  font-size: 22px;
  /* Titolo più grande */
  font-weight: 800;
  color: #2b2b2b;
  line-height: 1.25;
  letter-spacing: -0.5px;
}

.ds-wa-popup__text {
  margin: 0 0 24px 0;
  font-size: 16px;
  /* Testo più grande e leggibile */
  line-height: 1.6;
  color: #555;
}

.ds-wa-popup__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  /* Tasto più alto */
  background: #25D366;
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  border-radius: 12px;
  text-decoration: none;
  border: none;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
  transition: all 0.3s ease;
}

.ds-wa-popup__btn:hover,
.ds-wa-popup__btn:focus {
  background: #20BA56;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(37, 211, 102, 0.4);
}

/* Mobile Adjustments */
@media (max-width: 600px) {
  .ds-wa-popup {
    top: auto;
    bottom: 80px;
    /* Above mobile navigation */
    left: 16px;
    right: 16px;
    width: calc(100% - 32px);
    max-width: none;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    padding: 24px;
    transform: translateY(20px) scale(0.95);
  }

  .ds-wa-popup.ds-show {
    transform: translateY(0) scale(1);
  }
}

/* Icona Minimizzata */
.ds-wa-minimized {
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  width: 64px !important;
  height: 64px !important;
  background: transparent !important;
  /* Tolto il green background perché l'SVG è già colorato */
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4), 0 10px 24px rgba(0, 0, 0, 0.15) !important;
  z-index: 49 !important;
  cursor: pointer;

  /* Initial hidden state */
  opacity: 0;
  transform: translateY(100px) scale(0.5) !important;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.4s !important;
}

.ds-wa-minimized.ds-show-min {
  opacity: 1;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto;
  visibility: visible;
}

.ds-wa-minimized:hover,
.ds-wa-minimized:focus {
  background: transparent !important;
  /* Hover background removed */
  transform: translateY(-4px) scale(1.05) !important;
  box-shadow: 0 8px 16px rgba(37, 211, 102, 0.5), 0 14px 28px rgba(0, 0, 0, 0.2) !important;
}

.ds-wa-minimized svg {
  width: 100% !important;
  /* Lascia che l'SVG riempia completamente il cerchio */
  height: 100% !important;
}

/* Mobile Adjustments for Minimized Icon */
@media (max-width: 600px) {
  .ds-wa-minimized {
    bottom: 80px !important;
    /* Above mobile navigation */
    right: 16px !important;
    width: 54px !important;
    height: 54px !important;
  }

  .ds-wa-minimized svg {
    width: 30px !important;
    height: 30px !important;
  }
}

/* Hide WhatsApp completely when Off-Canvas Drawer (Cart/Menu) is open */
html.ds-scroll-lock .ds-wa-popup,
body.ds-scroll-lock .ds-wa-popup,
html.ds-scroll-lock .ds-wa-overlay,
body.ds-scroll-lock .ds-wa-overlay,
html.ds-scroll-lock .ds-wa-minimized,
body.ds-scroll-lock .ds-wa-minimized {
  display: none !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: -9999 !important;
}

/* ======================================================================
   USER REQUESTED IMPROVEMENTS (Mar 18)
   ====================================================================== */

/* 1. Desktop Width: Fix Site Content Restricting Max Width */
body.woocommerce-account .ds-container,
body.woocommerce-account .site-content,
body.woocommerce-account #content,
body.woocommerce-account .content-area {
  max-width: 100%;
  width: 100%;
  padding-left: var(--ds-gap, 24px);
  padding-right: var(--ds-gap, 24px);
}

/* 2. Payment Methods: Remove Border/Box for Empty State Message */
body.woocommerce-account.woocommerce-payment-methods .woocommerce-info,
body.woocommerce-account.woocommerce-payment-methods .woocommerce-Message,
body.woocommerce-account.woocommerce-edit-payment-methods .woocommerce-info,
body.woocommerce-account.woocommerce-edit-payment-methods .woocommerce-Message {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0 0 20px 0;
  margin: 0;
}

body.woocommerce-account.woocommerce-payment-methods .woocommerce-info::before,
body.woocommerce-account.woocommerce-payment-methods .woocommerce-Message::before,
body.woocommerce-account.woocommerce-edit-payment-methods .woocommerce-info::before,
body.woocommerce-account.woocommerce-edit-payment-methods .woocommerce-Message::before {
  display: none;
}

/* 3. Payment Methods: Improve Form UI & Remove Gray Card Icon */
body.woocommerce-account form#add_payment_method {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  margin-top: 20px;
}

body.woocommerce-account form#add_payment_method #wc-stripe-cc-form {
  background: transparent;
  border: 0;
  padding: 0;
}

/* Hide the top-right gray card icon and other logos */
body.woocommerce-account form#add_payment_method .wc-stripe-card-icons-container,
body.woocommerce-account form#add_payment_method img.wc-credit-card-form-card-number-icon,
body.woocommerce-account form#add_payment_method img,
body.woocommerce-account form#add_payment_method .woocommerce-SavedPaymentMethods-tokenInput label::after {
  display: none;
}

body.woocommerce-account form#add_payment_method label {
  font-weight: 800;
  margin-bottom: 8px;
  display: block;
  font-size: 14px;
  color: var(--ds-black);
}

body.woocommerce-account form#add_payment_method input[type="text"],
body.woocommerce-account form#add_payment_method input[type="email"],
body.woocommerce-account form#add_payment_method input[type="tel"],
body.woocommerce-account form#add_payment_method select,
body.woocommerce-account form#add_payment_method .wc-stripe-elements-field,
body.woocommerce-account form#add_payment_method .StripeElement {
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 10px;
  padding: 14px 16px;
  background: #fafafa;
  width: 100%;
  box-sizing: border-box;
  font-size: 15px;
  color: var(--ds-black);
  box-shadow: none;
}

/* 4. Mobile: Orders Table as Cards */
@media (max-width: 900px) {

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table,
  body.woocommerce-account .ds-account__content table.shop_table {
    display: block;
    border: 0;
    margin: 0;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table thead,
  body.woocommerce-account .ds-account__content table.shop_table thead {
    display: none;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody,
  body.woocommerce-account .ds-account__content table.shop_table tbody {
    display: block;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody tr,
  body.woocommerce-account .ds-account__content table.shop_table tbody tr {
    display: block;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 14px;
    padding: 18px;
    margin-bottom: 20px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, .04);
    background: #fff;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody td,
  body.woocommerce-account .ds-account__content table.shop_table tbody td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 0;
    padding: 14px 0;
    border-bottom: 1px solid rgba(0, 0, 0, .06);
    text-align: right;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody td:last-child,
  body.woocommerce-account .ds-account__content table.shop_table tbody td:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody td::before,
  body.woocommerce-account .ds-account__content table.shop_table tbody td::before {
    content: attr(data-title);
    font-weight: 800;
    font-size: 13px;
    color: var(--ds-muted);
    text-transform: uppercase;
    margin-right: 15px;
    text-align: left;
  }

  /* Fix the buttons cell */
  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody td.woocommerce-orders-table__cell-order-actions,
  body.woocommerce-account .ds-account__content table.shop_table tbody td.download-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody td.woocommerce-orders-table__cell-order-actions::before,
  body.woocommerce-account .ds-account__content table.shop_table tbody td.download-actions::before {
    display: none;
  }

  body.woocommerce-account .ds-account__content table.woocommerce-orders-table tbody td.woocommerce-orders-table__cell-order-actions a.button,
  body.woocommerce-account .ds-account__content table.shop_table tbody td.download-actions a.button {
    width: 100%;
    justify-content: center;
    padding: 15px;
  }

  /* 5. Mobile Product Page: Payment logos inline & Centered Title */
  body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .ds-payments,
  body.single-product .ds-payments {
    align-items: center;
    text-align: center;
  }

  body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__list,
  body.single-product .ds-payments__list {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 100%;
    padding: 0;
    margin: 10px auto 0;
  }

  body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__item,
  body.single-product .ds-payments__item {
    flex: 0 1 calc(100% / 7);
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 0;
    margin: 0;
    padding: 0;
  }

  body.single-product .ds-pdp__summary .ds-box.ds-pdp__box .ds-payments__icon,
  body.single-product .ds-payments__icon {
    height: auto;
    max-height: 28px;
    width: 100%;
    max-width: 55px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
  }

  /* 5b. Footer Mobile Payments Explicit Left Alignment */
  .ds-footer__payments .ds-payments {
    align-items: flex-start;
    text-align: left;
  }

  .ds-footer__payments .ds-payments__list {
    justify-content: flex-start;
    margin: 10px 0 0 0;
  }

  /* 6. Mobile Shop Page: Prevent Overflow and Expand Cards */
  body.archive.woocommerce #page,
  body.post-type-archive-product #page,
  body.archive.woocommerce #main,
  body.post-type-archive-product #main {
    overflow-x: clip;
    max-width: 100vw;
    width: 100%;
    box-sizing: border-box;
  }

  body.archive.woocommerce .ds-container,
  body.post-type-archive-product .ds-container {
    padding-left: 10px;
    padding-right: 10px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body .ds-shop .ds-shop__products ul.products {
    gap: 8px;
    margin: 0;
    padding: 0;
    width: 100%;
  }

  .ds-shop .ds-shop__products ul.products>li.product>.ds-card .ds-card__body {
    padding: 10px 8px 12px;
  }

  /* 7. Meta Bar Grid Override (Separating Filters and Order Count) */
  .ds-shop__bar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .ds-shop__meta {
    display: contents;
    /* Flattens children directly into .ds-shop__bar flexbox */
  }

  .ds-shop__filtersBtn {
    flex: 1 1 45%;
    justify-content: center;
    order: 1;
  }

  .ds-shop__meta form.woocommerce-ordering {
    flex: 1 1 45%;
    min-width: 0;
    order: 2;
  }

  .ds-shop__meta form.woocommerce-ordering select.orderby {
    width: 100%;
  }

  .ds-shop__meta .woocommerce-result-count {
    flex: 1 1 100%;
    order: 3;
    justify-content: center;
    text-align: center;
    margin-top: 4px;
  }
}

/* WHATSAPP CTA - OUT OF STOCK SPECIFIC FIX
 * Refactor: usa @layer ds-overrides per vincere la cascade contro WC/altri stili
 * non-layered, senza ricorrere a. */

  body.single-product .ds-pdp__cart--contact a.ds-btn--whatsapp,
  body .ds-card__ctaRow a.ds-btn--whatsapp {
    background: #FFC107;
    color: #2B2B2B;
    border: 1px solid #FFC107;
    text-align: center;
    justify-content: center;
    align-items: center;
    display: flex;
    width: 100%;
    border-radius: 10px;
    font-family: var(--ds-font, system-ui);
    font-weight: 700;
    box-sizing: border-box;
    text-decoration: none;
    max-width: none;
  }

  /* Standard Sizing per Layout Environment */
  body.single-product .ds-pdp__cart--contact a.ds-btn--whatsapp {
    min-height: 48px;
    font-size: 15px;
    padding: 12px 16px;
    margin: 0;
  }

  body .ds-card__ctaRow a.ds-btn--whatsapp {
    min-height: 44px;
    font-size: 14px;
    padding: 12px 14px;
    margin: 0 0 10px 0;
  }

  body.single-product .ds-pdp__cart--contact a.ds-btn--whatsapp:hover,
  body .ds-card__ctaRow a.ds-btn--whatsapp:hover {
    background: #eab005;
    border-color: #eab005;
    color: #2B2B2B;
  }



/* CHECKOUT — RIMOZIONE SPUNTA FATTURAZIONE COME RICHIESTO */
.wc-block-checkout__use-address-for-billing {
  display: none;
}

/* FORZATURA VISIBILITÀ OPZIONI SPEDIZIONE */
.wc-block-components-shipping-rates-control {
  display: block;
  opacity: 1;
  visibility: visible;
}


/* CHECKOUT — RIMOZIONE LINK TORNA AL CARRELLO */
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
  display: none;
}


/* CHECKOUT — STILE BOX IN RILIEVO COME CARRELLO */
body.woocommerce-checkout .wc-block-checkout__form,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  padding: 22px;
  box-sizing: border-box;
}


/* CHECKOUT — STILE PULSANTE EFFETTUA ORDINE UGUALE AD AGGIUNGI AL CARRELLO (MASSIMA SPECIFICITÀ) */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout button.wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wp-block-woocommerce-checkout button.wp-element-button.wc-block-components-checkout-place-order-button,
body.woocommerce-checkout #place_order {
  background: #FFC107;
  color: #2B2B2B;
  border: 1px solid #FFC107;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  padding: 16px 24px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-transform: none;
  transition: all 0.3s ease;
  box-shadow: none;
  margin-top: 15px;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout button.wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wp-block-woocommerce-checkout button.wp-element-button.wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout #place_order:hover {
  background: #eab005;
  color: #2B2B2B;
  border-color: #eab005;
  box-shadow: none;
}

/* Forza anche il testo interno ad assumere le proprietà corrette ereditandole */
body.woocommerce-checkout .wc-block-components-button__text,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button__text {
  display: block;
  width: 100%;
  text-align: center;
  color: inherit;
}


/* CHECKOUT — ESPANSIONE LARGHEZZA DESKTOP */
@media (min-width: 1024px) {
  body.woocommerce-checkout .wp-block-woocommerce-checkout {
    max-width: 1400px;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
  }

  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__form {
    width: 58%;
    max-width: 58%;
  }

  body.woocommerce-checkout .wc-block-checkout__sidebar,
  body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    width: 40%;
    max-width: 40%;
  }
}


/* CORREZIONE EMERGENZA LARGHEZZE DOPPIE DESKTOP (Fix Collasso) */
@media (min-width: 1024px) {

  body.woocommerce-checkout .wc-block-checkout__form,
  body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    width: 100%;
    max-width: 100%;
    flex: 1 1 100%;
  }
}


/* CHECKOUT — ESPANSIONE MASSIMA DESKTOP ESTREMA */
@media (min-width: 1024px) {
  body.woocommerce-checkout .wp-block-woocommerce-checkout {
    max-width: 1800px;
    width: 98%;
  }

  body.woocommerce-checkout .wc-block-checkout__main {
    width: 65%;
    max-width: 65%;
    flex: 1 1 65%;
  }

  body.woocommerce-checkout .wc-block-checkout__sidebar {
    width: 33%;
    max-width: 33%;
    flex: 1 1 33%;
  }
}


/* ESTREMO: SBLOCCO DAL CONTENITORE PADRE (VIEWPORT BREAKAWAY) DESKTOP */
@media (min-width: 1024px) {
  body.woocommerce-checkout .wp-block-woocommerce-checkout {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 95vw;
    max-width: 1600px;
  }

  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__sidebar {
    max-width: none;
  }

  body.woocommerce-checkout .wc-block-checkout__main {
    width: 60%;
    flex: 1 1 60%;
  }

  body.woocommerce-checkout .wc-block-checkout__sidebar {
    width: 38%;
    flex: 1 1 38%;
  }
}


/* CHECKOUT — ALLEGGERIMENTO LINEE CHIRURGICO (NO DOPPI BORDI) */
body.woocommerce-checkout .wc-block-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-combobox-control,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input,
body.woocommerce-checkout .wc-block-checkout textarea {}

/* Modifica i colori dei bordi senza AGGIUNGERE bordi a chi non li ha */
body.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control-accordion-content,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-payment-method-options,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__option {}

/* Focus corretto giallo */
body.woocommerce-checkout .wc-block-checkout .wc-block-components-text-input:focus-within,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-combobox-control:focus-within,
body.woocommerce-checkout .wc-block-checkout textarea:focus {}


/* CHECKOUT — STILE RADIO BUTTONS GIALLO BRAND (#FFC107) E RIMOZIONE HOVER NATIVO */
body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input {
  accent-color: #FFC107;
}

body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input:checked {
  background-color: #FFC107;
  border-color: #FFC107;
}

body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input:hover,
body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input:focus,
body.woocommerce-checkout .wc-block-components-radio-control__option:hover,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option:hover {
  box-shadow: none;
  outline: none;
  background-color: transparent;
}


/* CHECKOUT — RADIO COLORATI SICURI (NO-LAYOUT-SHIFT) */
body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input {}

body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input:checked {
  /* Crea un cerchio solido giallo con un punto bianco centrale perfettamente nativo senza pseudo elementi */
}

/* ZERO HOVER come ordinato */
body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input:hover,
body.woocommerce-checkout input[type="radio"].wc-block-components-radio-control__input:focus,
body.woocommerce-checkout .wc-block-components-radio-control__option:hover,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option:hover,
body.woocommerce-checkout .wc-block-components-radio-control__layout:hover {}


/* PAGINA ORDINE RICEVUTO (THANK YOU PAGE) — TABELLA TFOOT */
body .woocommerce-order-details table.shop_table tfoot th,
body .woocommerce-order-details table.shop_table tfoot td {
  text-align: left;
  border-top: 1px solid rgba(43, 43, 43, 0.15);
  padding-top: 16px;
  padding-bottom: 16px;
  vertical-align: middle;
}

/* Linea di chiusura finale per l'ultimo elemento del tfoot */
body .woocommerce-order-details table.shop_table tfoot tr:last-child th,
body .woocommerce-order-details table.shop_table tfoot tr:last-child td {
  border-bottom: 1px solid rgba(43, 43, 43, 0.15);
}





/* RIMOZIONE RIEPILOGO ORDINE DOPPIONE SU MOBILE (Statica Inferiore) */
@media (max-width: 1023px) {

  /* Nascondi solo il blocco statico aperto (footer/sidebar shiftato) */
  body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block.checkout-order-summary-block-fill-wrapper {
    display: none;
  }
}

/* Removed custom mobile slider CSS since it broke JS thumbnail flexslider transform */

/* Nascondi il bottone "Visualizza carrello" che compare dopo l'aggiunta al carrello */
a.added_to_cart {
  display: none;
}

/* ==========================================================================
   LIVE SEARCH
   ========================================================================== */
.ds-search-form {
  position: relative;
}

.ds-live-search-results {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background: #fff;
  border: 1px solid var(--ds-border, #e5e5e5);
  border-top: none;
  border-radius: 0 0 calc(var(--ds-radius, 12px) - 2px) calc(var(--ds-radius, 12px) - 2px);
  box-shadow: var(--ds-shadow, 0 10px 30px rgba(0, 0, 0, .06));
  z-index: 999;
  max-height: 400px;
  overflow-y: auto;
  margin-top: -2px;
}

.ds-live-search-results::-webkit-scrollbar {
  width: 6px;
}

.ds-live-search-results::-webkit-scrollbar-track {
  background: transparent;
}

.ds-live-search-results::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .15);
  border-radius: 99px;
}

.ds-live-search-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  text-decoration: none;
  color: var(--ds-black, #2b2b2b);
  border-bottom: 1px solid rgba(0, 0, 0, .06);
  transition: background .15s ease;
}

.ds-live-search-item:last-child {
  border-bottom: none;
}

.ds-live-search-item:hover {
  background: var(--ds-surface, #fbfbf7);
}

.ds-live-search-item img {
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}

.ds-live-search-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.ds-live-search-content strong {
  font-size: 14px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ds-live-search-content .price {
  font-size: 13px;
  color: var(--ds-muted, rgba(0, 0, 0, .6));
  font-weight: 600;
}

.ds-live-search-content .price del {
  font-weight: 400;
  opacity: .7;
  margin-right: 6px;
}

.ds-live-search-content .price ins {
  text-decoration: none;
  color: var(--ds-black, #2b2b2b);
}

.ds-live-search-all {
  display: block;
  width: 100%;
  padding: 12px;
  text-align: center;
  font-weight: 700;
  font-size: 13px;
  color: var(--ds-black, #2b2b2b);
  background: var(--ds-surface-2, #f1f1ec);
  border: none;
  cursor: pointer;
  transition: background .15s ease;
}

.ds-live-search-all:hover {
  background: #e6e6e2;
}

.ds-live-search-empty {
  padding: 16px;
  text-align: center;
  font-size: 14px;
  color: var(--ds-muted, rgba(0, 0, 0, .6));
}

.ds-live-search-loading {
  position: relative;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* =========================================================
   HEADER CONSTANT WIDTH FIX (GLOBAL)
   ========================================================= */
@media (min-width: 992px) {

  body.archive.woocommerce .ds-header .ds-container,
  body.post-type-archive-product .ds-header .ds-container,
  body.woocommerce-account .ds-header .ds-container,
  html body .ds-header .ds-container {
    width: min(1160px, calc(100% - 40px));
    max-width: 1400px;
    padding-left: 4%;
    padding-right: 4%;
    margin: 0 auto;
  }
}

/* =========================================================
   REVIEW WIDGET (DOMSHOP CAROUSEL)
   ========================================================= */
.ds-review-widget-wrapper {
  margin-top: 40px;
  margin-bottom: 40px;
}

.ds-review-widget-header {
  position: relative;
  text-align: center;
  margin-bottom: 45px;
}

.ds-review-title {
  font-size: 32px;
  font-weight: 800;
  margin: 0;
  color: var(--ds-black, #2b2b2b);
}

.ds-review-nav {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  gap: 8px;
}

@media (max-width: 768px) {
  .ds-review-widget-header {
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 24px;
  }

  .ds-review-title {
    font-size: clamp(18px, 5vw, 24px);
  }

  .ds-review-nav {
    position: relative;
    right: auto;
    bottom: auto;
  }
}

.ds-review-carousel {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 10px 0 30px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  /* Firefox */
}

.ds-review-carousel::-webkit-scrollbar {
  display: none;
  /* Chrome/Safari */
}

.ds-review-card {
  flex: 0 0 calc(33.333% - 13.33px);
  scroll-snap-align: start;
  background: #ffffff;
  border: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  border-radius: var(--ds-radius-sm, 10px);
  padding: 24px;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, border-color 0.3s ease;
}

.ds-review-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 0, 0, .3);
}

.ds-review-card-header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
}

.ds-review-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--ds-black, #2b2b2b);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  flex-shrink: 0;
}

.ds-review-meta {
  display: flex;
  flex-direction: column;
}

.ds-review-author {
  font-weight: 700;
  font-size: 16px;
  color: var(--ds-black, #2b2b2b);
}

.ds-review-verified {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ds-success, #2f7d4a);
  margin-top: 2px;
}

.ds-review-stars {
  display: flex;
  gap: 2px;
  margin-bottom: 12px;
}

.ds-star {
  fill: #ccc;
}

.ds-star.filled {
  fill: #f59e0b;
}

.ds-review-content {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(0, 0, 0, .75);
  margin-bottom: 24px;
  flex-grow: 1;
}

.ds-review-product {
  font-size: 12px;
  border-top: 1px solid var(--ds-border, rgba(0, 0, 0, .12));
  padding-top: 12px;
  margin-top: auto;
  color: var(--ds-muted, rgba(0, 0, 0, .6));
}

.ds-review-product a {
  font-weight: 600;
  color: var(--ds-black, #2b2b2b);
  text-decoration: none;
  transition: color 0.2s ease;
}

.ds-review-product a:hover {
  color: var(--ds-success, #2f7d4a);
}

@media (max-width: 991px) {
  .ds-review-card {
    flex: 0 0 calc(50% - 10px);
  }
}

@media (max-width: 768px) {
  .ds-review-card {
    flex: 0 0 100%;
    padding: 20px;
  }
}

/* ==========================================================================
   FIX ASSOLUTO SCROLL MOBILE CHROME / IOS (HEADER + NAVBAR)
   ========================================================================== */
html,
html body {
  /* Assicura che la document root cresca con il viewport reale */
  height: auto;
  min-height: 100dvh;
}

.ds-header {
  position: -webkit-sticky !important;
  /* per vecchi iOS */
  position: sticky !important;
  top: 0 !important;
  z-index: 999 !important;
}

.ds-site,
.site-wrapper,
#primary {
  /* Assicura che nessun contenitore intermedio blocchi lo sticky */
  overflow: visible !important;
  transform: none !important;
  clip-path: none !important;
}

.ds-mobile-nav {
  position: fixed;
  bottom: 0;
  top: auto;
  left: 0;
  right: 0;
  z-index: 10000;
  transform: none;
  padding-bottom: env(safe-area-inset-bottom, 0);
}


/* ==========================================================================
   DOMSHOP ENTERPRISE: CUSTOM COUPON NOTICES 
   ========================================================================== */
.woocommerce-message:has(.ds-custom-coupon-msg),
.woocommerce-info:has(.ds-custom-coupon-msg),
.woocommerce-error:has(.ds-custom-coupon-msg),
.wc-block-components-notice-banner:has(.ds-custom-coupon-msg) {
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
  margin: 0;
  display: flex;
  justify-content: center;
}

.woocommerce-message:has(.ds-custom-coupon-msg)::before,
.woocommerce-info:has(.ds-custom-coupon-msg)::before,
.woocommerce-error:has(.ds-custom-coupon-msg)::before,
.wc-block-components-notice-banner:has(.ds-custom-coupon-msg)>svg {
  display: none;
}

.wc-block-components-notice-banner:has(.ds-custom-coupon-msg)>.wc-block-components-notice-banner__content {
  margin: 0;
  width: 100%;
  padding: 0;
}

.ds-custom-coupon-msg {
  padding: 14px 18px;
  border-radius: var(--ds-radius-sm, 10px);
  font-weight: 600;
  text-align: center;
  width: 100%;
  display: block;
  animation: dsFadeInUp 0.3s ease;
  font-size: 15px;
}

.ds-custom-coupon-msg.ds-success {
  color: var(--ds-success, #2f7d4a);
  background: rgba(47, 125, 74, 0.1);
}

.ds-custom-coupon-msg.ds-removed {
  color: var(--ds-black, #2b2b2b);
  background: rgba(43, 43, 43, 0.08);
}

/* ==========================================================================
   DOMSHOP ENTERPRISE: WOOCOMMERCE BLOCKS NATIVE NOTICES (COUPONS)
   ========================================================================== */
.wc-block-components-notice-banner.ds-custom-coupon-success-wrapper {
  background: rgba(47, 125, 74, 0.1);
  border: none;
  padding: 14px 18px;
  box-shadow: none;
  margin: 0 0 20px 0;
  display: flex;
  justify-content: center;
  border-radius: var(--ds-radius-sm, 10px);
  animation: dsFadeInUp 0.3s ease;
}

.wc-block-components-notice-banner.ds-custom-coupon-removed-wrapper {
  background: rgba(43, 43, 43, 0.08);
  border: none;
  padding: 14px 18px;
  box-shadow: none;
  margin: 0 0 20px 0;
  display: flex;
  justify-content: center;
  border-radius: var(--ds-radius-sm, 10px);
  animation: dsFadeInUp 0.3s ease;
}

.wc-block-components-notice-banner.ds-custom-coupon-success-wrapper>svg,
.wc-block-components-notice-banner.ds-custom-coupon-removed-wrapper>svg,
.wc-block-components-notice-banner.ds-custom-coupon-success-wrapper>button,
.wc-block-components-notice-banner.ds-custom-coupon-removed-wrapper>button {
  display: none;
}

.wc-block-components-notice-banner.ds-custom-coupon-success-wrapper>.wc-block-components-notice-banner__content {
  font-size: 15px;
  color: var(--ds-success, #2f7d4a);
  margin: 0;
  padding: 0;
  width: 100%;
  text-align: center;
  font-weight: 600;
  display: block;
}

.wc-block-components-notice-banner.ds-custom-coupon-removed-wrapper>.wc-block-components-notice-banner__content {
  font-size: 15px;
  color: var(--ds-black, #2b2b2b);
  margin: 0;
  padding: 0;
  width: 100%;
  text-align: center;
  font-weight: 600;
  display: block;
}

/* ==========================================================================
   DOMSHOP ENTERPRISE: DISABLE WOOCOMMERCE BLOCKS STICKY CART BUTTON
   ========================================================================== */
body.woocommerce-cart .wc-block-cart__submit-container,
body.woocommerce-cart .wc-block-cart__submit-container--sticky,
body.woocommerce-cart .wc-block-cart__submit {
  position: static;
  bottom: auto;
  padding-bottom: 0;
  background: transparent;
  box-shadow: none;
  z-index: auto;
}

/* ==========================================================================
   DOMSHOP ENTERPRISE: MIGRATED FROM FOOTER
   ========================================================================== */
@media (max-width: 900px) {

  /* WHATSAPP & COOKIEYES CON DIMENSIONI E POSIZIONE IDENTICHE */
  .ds-wa-minimized,
  [class*="cky-revisit"],
  [id*="cky-revisit"],
  [data-cky-tag="revisit-consent"],
  [class*="cli-plugin-button"],
  #cookie-law-info-again,
  #cookie-law-info-bar {
    top: auto !important;
    bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
    margin-bottom: 0 !important;
    transform: none !important;
    z-index: 10003 !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 50% !important;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s !important;
  }

  [class*="cky-revisit"],
  [data-cky-tag="revisit-consent"] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
  }

  body.single-product form.cart .ds-pdp__price-col .ds-price-raw,
  body.single-product form.cart .ds-pdp__price-col .ds-price-raw *,
  body.single-product form.cart .ds-pdp__price-col .price {
    font-size: 14px;
    letter-spacing: -0.5px;
    white-space: nowrap;
  }
}

button.show-password-input,
.show-password-input {
  display: none;
}

/* DOMSHOP CUSTOM COUPON EXACT SELECTOR & POSITIONING (ALTO BRAND) */
.wc-block-components-notices__snackbar {
  position: fixed;
  bottom: 40px;
  top: auto;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10000;
  width: max-content;
  max-width: 90vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}

.wc-block-components-notice-snackbar {
  pointer-events: auto;
}

.ds-coupon-notice-green {
  background: rgba(235, 253, 240, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(47, 125, 74, 0.3);
  box-shadow: 0 12px 30px rgba(47, 125, 74, 0.15), 0 4px 10px rgba(0, 0, 0, 0.05);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 16px 32px;
  margin-bottom: 20px;
  border-radius: 50px;
  animation: dsFadeInBottom 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.ds-coupon-notice-green>svg,
.ds-coupon-notice-green>button {
  display: none;
}

.ds-coupon-notice-green>div {
  color: #1a5e30;
  font-weight: 600;
  font-size: 15px;
  text-align: center;
  width: 100%;
  display: block;
  letter-spacing: -0.3px;
  margin: 0;
}

.ds-coupon-notice-black {
  background: rgba(30, 30, 30, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 16px 32px;
  margin-bottom: 20px;
  border-radius: 50px;
  animation: dsFadeInBottom 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.ds-coupon-notice-black>svg,
.ds-coupon-notice-black>button {
  display: none;
}

.ds-coupon-notice-black>div {
  color: #ffffff;
  font-weight: 500;
  font-size: 15px;
  text-align: center;
  width: 100%;
  display: block;
  letter-spacing: -0.3px;
  margin: 0;
}

@keyframes dsFadeInBottom {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 768px) {
  .wc-block-components-notices__snackbar {
    bottom: 100px;
    width: 90vw;
  }

  .ds-coupon-notice-green,
  .ds-coupon-notice-black {
    width: 100%;
    padding: 16px 20px;
    border-radius: 20px;
  }
}

/* ======================================================================
   LOST PASSWORD & CHECKOUT LOGIN CARDS 
   ====================================================================== */
body.woocommerce-account form.woocommerce-ResetPassword,
body.woocommerce-checkout form.woocommerce-form-login.login,
body.woocommerce-checkout form.login {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  padding: 22px;
  max-width: 500px;
  margin: 40px auto;
}

body.woocommerce-account form.woocommerce-ResetPassword p,
body.woocommerce-checkout form.login p {
  margin: 0 0 14px;
  color: var(--ds-black);
  font-size: 15px;
  line-height: 1.5;
}

body.woocommerce-account form.woocommerce-ResetPassword label,
body.woocommerce-checkout form.login label {
  display: block;
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 800;
  color: var(--ds-black);
}

body.woocommerce-account form.woocommerce-ResetPassword input[type="text"],
body.woocommerce-account form.woocommerce-ResetPassword input[type="email"],
body.woocommerce-checkout form.login input[type="text"],
body.woocommerce-checkout form.login input[type="password"] {
  width: 100%;
  min-height: 46px;
  background: #fff;
  border: 1px solid rgba(43, 43, 43, .14);
  border-radius: 12px;
  padding: 14px 14px;
  font-family: var(--ds-font);
  font-size: 14px;
  font-weight: 650;
  color: var(--ds-black);
  box-shadow: none;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

body.woocommerce-account form.woocommerce-ResetPassword input[type="text"]:focus,
body.woocommerce-account form.woocommerce-ResetPassword input[type="email"]:focus,
body.woocommerce-checkout form.login input[type="text"]:focus,
body.woocommerce-checkout form.login input[type="password"]:focus {
  border-color: rgba(43, 43, 43, .35);
  box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
}

body.woocommerce-account form.woocommerce-ResetPassword button.woocommerce-Button.button,
body.woocommerce-checkout form.login button.woocommerce-button.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 14px 16px;
  min-height: 46px;
  background: #fff;
  color: var(--ds-black);
  border: 1px solid rgba(43, 43, 43, .35);
  border-radius: 12px;
  font-weight: 850;
  text-decoration: none;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
  margin-top: 10px;
}

body.woocommerce-account form.woocommerce-ResetPassword button.woocommerce-Button.button:hover,
body.woocommerce-checkout form.login button.woocommerce-button.button:hover {
  border-color: rgba(43, 43, 43, .55);
  box-shadow: 0 0 0 3px rgba(43, 43, 43, .08);
  transform: translateY(-1px);
}

body.woocommerce-checkout form.login .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  color: var(--ds-black);
  font-weight: 650;
}

body.woocommerce-checkout form.login .clear,
body.woocommerce-account form.woocommerce-ResetPassword .clear {
  display: none;
}

/* Rimuovere solo il riquadro ma tenere il testo per l'info-box sul Pay For Order */
body.woocommerce-order-pay .woocommerce-info {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0 0 14px 0;
  margin: 40px auto 0;
  color: var(--ds-black);
  max-width: 500px;
}

body.woocommerce-order-pay .woocommerce-info::before {
  display: none;
}

/* Titoli uniformati fra Account, Password Dimenticata e Pay For Order (uguali a Order Received) */
body.woocommerce-account h1,
body.woocommerce-lost-password h1,
body.woocommerce-order-pay h1 {
  margin: 0 auto 14px;
  max-width: 1240px;
  padding: 0 var(--ds-gap);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--ds-black);
  text-align: left;
  display: block;
}

/* ======================================================================
   ORDINE PAY (Miglioramento Tabella Prodotti e Pagamento)
   ====================================================================== */
body.woocommerce-order-pay form#order_review {
  max-width: 800px;
  margin: 0 auto 40px;
}

body.woocommerce-order-pay form#order_review table.shop_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0 0 24px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  overflow: hidden;
}

body.woocommerce-order-pay form#order_review table.shop_table th,
body.woocommerce-order-pay form#order_review table.shop_table td {
  padding: 16px 20px;
  border: 0;
  text-align: left;
  vertical-align: middle;
  font-size: 14px;
  line-height: 1.5;
}

body.woocommerce-order-pay form#order_review table.shop_table thead th {
  font-weight: 800;
  color: rgba(43, 43, 43, .75);
  border-bottom: 1px solid rgba(0, 0, 0, .12);
  background: #fff;
}

body.woocommerce-order-pay form#order_review table.shop_table tbody td {
  font-weight: 600;
  color: var(--ds-black);
  border-bottom: 1px solid rgba(0, 0, 0, .08);
}

body.woocommerce-order-pay form#order_review table.shop_table tbody td.product-quantity {
  font-weight: 800;
}

body.woocommerce-order-pay form#order_review table.shop_table tfoot th,
body.woocommerce-order-pay form#order_review table.shop_table tfoot td {
  font-weight: 800;
  color: var(--ds-black);
}

body.woocommerce-order-pay form#order_review table.shop_table tfoot tr:last-child th,
body.woocommerce-order-pay form#order_review table.shop_table tfoot tr:last-child td {
  font-size: 18px;
}

body.woocommerce-order-pay form#order_review #payment {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
  padding: 24px;
}

body.woocommerce-order-pay form#order_review #payment ul.payment_methods {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 12px;
  overflow: hidden;
}

body.woocommerce-order-pay form#order_review #payment ul.payment_methods li {
  padding: 16px 20px;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  margin: 0;
}

body.woocommerce-order-pay form#order_review #payment ul.payment_methods li:last-child {
  border-bottom: 0;
}

body.woocommerce-order-pay form#order_review #payment ul.payment_methods li input[type="radio"] {
  margin-right: 12px;
  transform: scale(1.2) translateY(1px);
}

body.woocommerce-order-pay form#order_review #payment ul.payment_methods li label {
  font-size: 15px;
  font-weight: 700;
  color: var(--ds-black);
  cursor: pointer;
}

body.woocommerce-order-pay form#order_review #payment ul.payment_methods li img {
  max-height: 24px;
  margin-left: 10px;
  vertical-align: middle;
}

body.woocommerce-order-pay form#order_review #payment div.payment_box {
  background: #f9f9f9;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 8px;
  padding: 16px;
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(43, 43, 43, .85);
  position: relative;
}

body.woocommerce-order-pay form#order_review #payment div.payment_box::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 20px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid #f9f9f9;
}

body.woocommerce-order-pay form#order_review #payment .terms {
  margin: 0 0 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ds-black);
}

body.woocommerce-order-pay form#order_review #payment .place-order {
  margin: 0;
  padding: 0;
}

body.woocommerce-order-pay form#order_review #payment .place-order button {
  width: 100%;
  padding: 18px;
  font-size: 16px;
  font-weight: 900;
  border-radius: 12px;
  border: 0;
}

/* ==========================================================================
   DOMSHOP ENTERPRISE: MEGA MENU (DESKTOP) & MOBILE SUBMENU (OFF-CANVAS)
   ========================================================================== */

/* 1. DESKTOP MEGA MENU E TENDINE */
@media (min-width: 901px) {
  
  .ds-header {
    /* position: relative rimosso — rompeva sticky desktop; sticky stabilisce comunque containing block per il mega-menu absolute */
  }

  .ds-header .ds-nav li {
    position: relative; 
    display: flex;
    align-items: center;
  }
  
  /* Link header con Chevron dinamico */
  .ds-header .ds-nav > ul > li > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 14px 0; /* Area sensibile migliorata */
  }

  .ds-header .ds-nav .menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 0.25s ease;
    margin-left: 2px;
    opacity: 0.6;
  }

  .ds-header .ds-nav .menu-item-has-children:hover > a::after {
    transform: translateY(2px) rotate(225deg);
    opacity: 1;
  }
  
  .ds-header .ds-nav li.mega-menu {
    position: static;
  }
  
  /* Sottomenu standard - Design Elegante Fashion */
  .ds-header .ds-nav ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 100;
    min-width: 220px;
    margin-top: 0; /* Attaccato all'header */
    background: #ffffff;
    border: 1px solid var(--ds-border, #eee);
    border-top: none;
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    padding: 20px 24px;
    
    display: flex;
    flex-direction: column;
    gap: 8px;
    
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }
  
  /* Hover -> mostra sottomenu */
  .ds-header .ds-nav li:hover > ul.sub-menu {
    opacity: 1;
    visibility: visible;
  }
  
  /* Stile 링크 Elegante testuale (Non a pulsante) */
  .ds-header .ds-nav ul.sub-menu a {
    font-weight: 500;
    font-size: 15px;
    display: inline-block;
    padding: 4px 0; /* Solo vertical padding */
    color: var(--ds-black, #2b2b2b);
    transition: color 0.15s ease;
  }
  
  /* Rimuovo la chevron nei sotto-menu per pulizia */
  .ds-header .ds-nav ul.sub-menu .menu-item-has-children > a::after {
    display: none;
  }
  
  .ds-header .ds-nav ul.sub-menu a:hover {
    color: var(--ds-muted, rgba(0,0,0,.5));
    background: transparent;
  }

  /* =========== MEGA MENU FULL WIDTH HEADER =========== */
  .ds-header .ds-nav li.mega-menu > ul.sub-menu {
    left: 0;
    right: 0;
    margin: 0;
    width: 100vw; /* Forza larghezza schermo intero per coprire l'header */
    left: calc(-50vw + 50%); /* Centra orizzontalmente rispetto allo schermo */
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-bottom: 1px solid #ebebeb;
    box-shadow: 0 8px 24px rgba(0,0,0,0.04);
    
    /* Griglia centrata interna al Mega Menu */
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    padding: 40px 4%;
    max-width: 1240px;
    margin: 0 auto; /* Centra la griglia nel viewport */
    box-sizing: border-box;
  }
  
  /* Fix per far riempire il background del pseudo-contenitore della griglia */
  .ds-header .ds-nav li.mega-menu > ul.sub-menu::before {
     content: "";
     position: absolute;
     top: 0; left: 0; right: 0; bottom: 0;
     background: #fff;
     z-index: -1;
     /* estende il bianco su tutto lo schermo se il max-width stringe la griglia */
     width: 100vw;
     left: calc(-50vw + 50%);
  }
  
  /* reset della griglia interna vera e propria */
  .ds-header .ds-nav li.mega-menu:hover > ul.sub-menu {
    /* Il wrapper è visibile. Dobbiamo assicurarci che la griglia interna sia contenuta ma lo sfondo no. */
  }

  /* Sovrascrittura: Struttura Mega Menu centrata */
  .ds-header .ds-nav li.mega-menu > ul.sub-menu {
    max-width: 100%; 
    border: none;
    border-bottom: 1px solid var(--ds-surface-2, #f1f1ec);
  }

  .ds-header .ds-nav li.mega-menu > ul.sub-menu ul.sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    padding: 0;
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  /* Titoli colonne Mega Menu */
  .ds-header .ds-nav li.mega-menu > ul.sub-menu > li > a {
    font-weight: 800;
    font-size: 15px;
    padding-bottom: 4px;
    margin-bottom: 8px;
    color: var(--ds-black, #000);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.15s ease;
  }
  
  .ds-header .ds-nav li.mega-menu > ul.sub-menu > li > a:hover {
    color: var(--ds-muted, rgba(0,0,0,.5));
    background: transparent;
  }

  .ds-header .ds-nav li.mega-menu > ul.sub-menu ul.sub-menu a {
    font-size: 15px;
    font-weight: 400;
    padding: 2px 0;
  }

}


/* ==========================================================================
   FLOATING FABS — SHRINK ON SCROLL (mobile only)
   Riduce WhatsApp e CookieYes revisit da 54px a 40px quando l'utente scrolla,
   preservando posizione (bottom + right/left invariati).
   Toggle via body.ds-fabs-shrunk (settata da main.js).
   ========================================================================== */
@media (max-width: 900px) {
  .ds-wa-minimized,
  .cky-btn-revisit-wrapper {
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s ease !important;
  }

  body.ds-fabs-shrunk .ds-wa-minimized,
  body.ds-fabs-shrunk .cky-btn-revisit-wrapper {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }

  body.ds-fabs-shrunk .ds-wa-minimized svg {
    width: 22px !important;
    height: 22px !important;
  }

  body.ds-fabs-shrunk .cky-btn-revisit-wrapper svg,
  body.ds-fabs-shrunk .cky-btn-revisit-wrapper img {
    width: 22px !important;
    height: 22px !important;
  }
}

}

/* =========================================================================
   SHOP FILTERS — MODERN UI (2025)
   - Custom checkbox con checkmark animato
   - Color swatches per pa_colore
   - Counts come badge subtle
   - Spacing migliorato, hover states
   ========================================================================= */
.ds-shop__sidebar .ds-filters{
  padding: 0;
}
.ds-shop__sidebar .ds-filter-widget{
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.ds-shop__sidebar .ds-filter-widget:last-child{ border-bottom: 0; }
.ds-shop__sidebar .ds-filter-title{
  margin: 0 0 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ds-muted, #6b7280);
}
.ds-shop__sidebar .ds-filterlist{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* Riga opzione: hover background subtle */
.ds-shop__sidebar .ds-filteropt{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  margin: 0 -10px;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
  font-size: 14px;
  font-weight: 500;
  color: #111;
  user-select: none;
}
.ds-shop__sidebar .ds-filteropt:hover{
  background: rgba(0,0,0,.04);
}
.ds-shop__sidebar .ds-filteropt.is-checked{
  background: rgba(255,193,7,.10);
  font-weight: 600;
}
/* Nascondi il browser checkbox e usa pseudo-element con :checked */
.ds-shop__sidebar .ds-filteropt input[type="checkbox"]{
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 2px solid rgba(0,0,0,.25);
  border-radius: 5px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: border-color .15s ease, background-color .15s ease;
  margin: 0;
}
.ds-shop__sidebar .ds-filteropt input[type="checkbox"]:hover{
  border-color: rgba(0,0,0,.45);
}
.ds-shop__sidebar .ds-filteropt input[type="checkbox"]:checked{
  background: #2b2b2b;
  border-color: #2b2b2b;
}
.ds-shop__sidebar .ds-filteropt input[type="checkbox"]:checked::after{
  content: '';
  position: absolute;
  top: 1px;
  left: 4px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.ds-shop__sidebar .ds-filteropt input[type="checkbox"]:focus-visible{
  outline: 2px solid var(--ds-yellow, #FFC107);
  outline-offset: 2px;
}
/* Counts pill */
.ds-shop__sidebar .ds-filteropt__count{
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: var(--ds-muted, #6b7280);
  background: rgba(0,0,0,.05);
  padding: 2px 8px;
  border-radius: 999px;
  min-width: 22px;
  text-align: center;
}
.ds-shop__sidebar .ds-filteropt.is-checked .ds-filteropt__count{
  background: rgba(255,193,7,.25);
  color: #111;
}
/* Color swatches */
.ds-shop__sidebar .ds-filterlist--swatches .ds-filteropt__swatch{
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--ds-sw, #e5e7eb);
  border: 1px solid rgba(0,0,0,.22);
  flex-shrink: 0;
  box-shadow: 0 0 0 1px rgba(0,0,0,.06), inset 0 1px 2px rgba(0,0,0,.08);
}
.ds-shop__sidebar .ds-filterlist--swatches .ds-filteropt input[type="checkbox"]{
  /* Quando c'e' uno swatch, il checkbox e' piccolo accanto al testo per chiarezza */
  width: 16px;
  height: 16px;
  border-radius: 4px;
}
/* Sticky apply button container */
.ds-shop__sidebar .widget_ds_widget_apply_filters{
  position: sticky;
  bottom: 0;
  background: linear-gradient(to top, #fff 60%, rgba(255,255,255,0));
  padding-top: 18px;
  padding-bottom: 16px;
  z-index: 5;
}
.ds-shop__sidebar .widget_ds_widget_clear_filters{
  padding-top: 6px;
}
.ds-shop__sidebar .widget_ds_widget_clear_filters .ds-shop__applyFiltersBtn,
.ds-shop__sidebar .widget_ds_widget_clear_filters button{
  background: transparent !important;
  color: var(--ds-muted, #6b7280) !important;
  font-weight: 500 !important;
  box-shadow: none !important;
  padding: 8px 0 !important;
  text-decoration: underline;
}
.ds-shop__sidebar .widget_ds_widget_clear_filters button:hover{
  color: #111 !important;
}


/* =============================================================================
   GLOBAL HARDENING — fix 2 bug strutturali tema (caricato in coda a style.css)

   BUG 1 — Scroll orizzontale su mobile
   --------------------------------------
   In coda al cascade per battere selettori specifici. Forza html/body e i
   container principali a NON poter mai scrollare orizzontalmente: anche se
   un widget WC, un mega-menu o un hero full-bleed (width:100vw + margin
   negativo) tenta di sbordare, viene clippato.

   BUG 2 — Mobile bottom-nav che si "stacca" durante lo scroll
   ------------------------------------------------------------
   Forziamo position:fixed con un layer di compositing dedicato (translateZ +
   will-change) e usiamo `contain: layout style paint` per isolare il
   rendering della nav dal flusso del documento. Su Chrome questo evita lo
   "jitter" del bottom-anchored fixed quando l'URL bar appare/scompare.
   ============================================================================= */

/* --------------------------------------------------------------------------
   BUG 1 — Stop scroll orizzontale a livello root
   FIX BB-002: rimosso overflow-x: hidden/clip !important da html,body —
   è il vero killer di position:sticky di .ds-header (hidden crea uno
   scroll container che intercetta lo sticky in TUTTI i browser).
   Per prevenire scroll orizzontale ora ci si affida a:
   - touch-action: pan-y su body (blocca swipe orizzontale touch)
   - overflow-x: clip sui contenitori sotto body (#page, main, .site-main, ecc.)
   - max-width: 100% su html,body (limita la larghezza, niente content > viewport)
   -------------------------------------------------------------------------- */
html,
body {
  max-width: 100%;
}

/* Container "site" / "page" / main / footer non devono mai propagare overflow */
#page,
.site,
.ds-site,
.site-wrapper,
#primary,
main,
.site-main,
footer.ds-footer,
.ds-footer {
  max-width: 100%;
  overflow-x: clip;
}

@media (max-width: 900px) {
  html,
  body {
    /* Su mobile blindiamo anche width: alcuni device contano vw inclusa la
       scrollbar e creano 1-2px di overflow.
       FIX BB-002: rimosso overflow-x: hidden/clip !important — rompeva sticky.
       width + max-width bastano per bloccare scroll orizzontale. */
    width: 100%;
    max-width: 100vw;
  }

  /* I full-bleed (width:100vw + margin:-50vw) restano leciti ma vengono
     clippati dal root: nessuna chance di creare scroll. */
  #page,
  main,
  .site-main,
  footer,
  section,
  .ds-section {
    overflow-x: clip;
    max-width: 100vw;
  }
}

/* --------------------------------------------------------------------------
   BUG 2 — Mobile bottom-nav ancorata al viewport, niente jitter
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .ds-mobile-nav {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100vw !important;

    /* Forza un layer di compositing dedicato: il rendering della nav è
       indipendente dallo scroll del documento. Risolve il "si alza e lascia
       spazio" che alcuni Chrome mostrano quando la URL bar appare/scompare. */
    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;

    /* Isola il flusso: layout/paint della nav non possono "leggere" il
       documento sotto (no reflow propagation). */
    contain: layout style paint;

    z-index: 10000 !important;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  /* Spazio sotto al contenuto per non finire sotto la nav (altezza nav
     stimata ~60px + safe-area iPhone). Se body ha già padding-bottom da
     altre regole, queste sommano via cascade. */
  body {
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }
}


/* =============================================================================
   NOTIFICHE WOOCOMMERCE — stile unificato (success / info / error)
   Copre sia il pattern legacy (.woocommerce-message/info/error) che i WC
   blocks (.wc-block-components-notice-banner.is-{success|info|error}).
   In coda a style.css per vincere sul cascade rispetto alle regole storiche.
   ============================================================================= */

/* Wrapper standard WC */
.woocommerce-notices-wrapper {
	max-width: 1200px;
	margin: 18px auto 0;
	padding: 0 20px;
}
@media (max-width: 720px) {
	.woocommerce-notices-wrapper { padding: 0 14px; }
}

/* ---------- Reset base — applicato a TUTTI i tipi ---------- */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner {
	position: relative;
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 12px 16px !important;
	margin: 0 0 12px !important;
	border-radius: 10px !important;
	border: 1px solid;
	box-shadow: none !important;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	list-style: none;
}
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before,
.wc-block-components-notice-banner::before {
	content: "";
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 800;
	color: #fff;
	line-height: 1;
}

/* Eventuale UL interna: niente bullet, niente padding */
.woocommerce-error > ul,
.woocommerce-message > ul,
.woocommerce-info > ul {
	margin: 0; padding: 0; list-style: none; flex: 1; min-width: 0;
}
.woocommerce-error > ul > li,
.woocommerce-message > ul > li,
.woocommerce-info > ul > li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0;
	margin: 0;
	font-size: inherit;
	color: inherit;
}

/* Bottone interno (es. "Annulla", "Vedi carrello") */
.woocommerce-error .button,
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error li .button,
.woocommerce-message li .button,
.woocommerce-info li .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px !important;
	padding: 6px 14px !important;
	margin-left: auto !important;
	border-radius: 8px !important;
	background: #fff !important;
	border: 1px solid currentColor !important;
	color: inherit !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	white-space: nowrap;
	flex: 0 0 auto;
	transition: background .15s, color .15s !important;
}
.woocommerce-error .button:hover,
.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
	background: currentColor !important;
	color: #fff !important;
}
.woocommerce-error .button:hover *,
.woocommerce-message .button:hover *,
.woocommerce-info .button:hover * { color: #fff !important; }

/* Link inline */
.woocommerce-error a:not(.button),
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-weight: 600;
}

/* ---------- SUCCESS (verde) — Carrello aggiornato, prodotto aggiunto, ecc. ---------- */
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	background: #ecf7f0 !important;
	border-color: #b9dec4 !important;
	color: #19612f !important;
}
.woocommerce-message::before,
.wc-block-components-notice-banner.is-success::before {
	content: "✓";
	background: #19612f;
}

/* ---------- INFO (giallo soft) — informazioni neutre ---------- */
.woocommerce-info,
.wc-block-components-notice-banner.is-info {
	background: #fdf6dc !important;
	border-color: #f1e0a0 !important;
	color: #6b4d0a !important;
}
.woocommerce-info::before,
.wc-block-components-notice-banner.is-info::before {
	content: "i";
	background: #b08a1d;
	font-style: italic;
}

/* ---------- ERROR (rosso) ---------- */
.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	background: #fbeae8 !important;
	border-color: #f0bbb5 !important;
	color: #8b2a22 !important;
}
.woocommerce-error::before,
.wc-block-components-notice-banner.is-error::before {
	content: "!";
	background: #8b2a22;
}

/* Per WC blocks, il container ha già un'icona interna: nascondi quella e usa
   il nostro ::before. Mantiene coerenza grafica tra legacy e blocks. */
.wc-block-components-notice-banner > svg,
.wc-block-components-notice-banner__content > svg {
	display: none !important;
}
.wc-block-components-notice-banner__content {
	flex: 1; min-width: 0;
	padding: 0 !important;
	font-size: inherit !important;
	color: inherit !important;
}

/* Responsive: stack su mobile */
@media (max-width: 540px) {
	.woocommerce-error,
	.woocommerce-message,
	.woocommerce-info,
	.wc-block-components-notice-banner {
		font-size: 13.5px;
		padding: 10px 14px !important;
	}
	.woocommerce-error .button,
	.woocommerce-message .button,
	.woocommerce-info .button {
		margin-left: 0 !important;
		margin-top: 8px !important;
		width: 100%;
	}
	.woocommerce-error > ul > li,
	.woocommerce-message > ul > li,
	.woocommerce-info > ul > li {
		flex-wrap: wrap;
	}
}

