/* =============================================================================
   PRESTIGE / PROBAR - Shop UI Fixes
   -----------------------------------------------------------------------------
   Salva questo file in: [tema-child]/css/shop-ui.css
   Caricato sitewide tramite functions.php (funzione abm_enqueue_shop_ui_assets)
   ============================================================================= */

/* ==========================================================================
   1. PREZZI NEL CARRELLO
   Prezzo di listino barrato -> Colore 2 (var(--ast-global-color-1) = #FFCE53)
   Prezzo effettivo/attuale -> bianco
   ========================================================================== */
.woocommerce-cart-form del,
.woocommerce-cart-form del bdi,
.woocommerce-cart-form del .woocommerce-Price-amount {
  color: var(--ast-global-color-1) !important;
  text-decoration: line-through;
  opacity: 0.85;
}

.woocommerce-cart-form ins,
.woocommerce-cart-form ins bdi,
.woocommerce-cart-form ins .woocommerce-Price-amount {
  color: #ffffff !important;
  text-decoration: none !important;
}

/* Prezzo pieno, quando il prodotto non è in offerta (nessun del/ins) */
.woocommerce-cart-form .cart_item .amount,
.woocommerce-cart-form .cart_item bdi {
  color: #ffffff;
}

/* ==========================================================================
   1b. PREZZI NELLE GRIGLIE PRODOTTO (negozio, correlati, categoria)
   Stessa logica del carrello: listino oro barrato, effettivo bianco
   ========================================================================== */
.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price del .woocommerce-Price-amount {
  color: var(--ast-global-color-1) !important;
  text-decoration: line-through;
  opacity: 0.85;
}

.woocommerce ul.products li.product .price ins,
.woocommerce ul.products li.product .price ins .woocommerce-Price-amount {
  color: #ffffff !important;
  text-decoration: none !important;
}

.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .amount {
  color: #ffffff;
}

/* ==========================================================================
   1c. CATEGORIA PRODOTTO NELLE GRIGLIE - colore fisso oro, niente hover
   ========================================================================== */
.woocommerce ul.products li.product .product-category,
.woocommerce ul.products li.product .posted_in,
.woocommerce ul.products li.product .product_cat,
.woocommerce ul.products li.product a.button.product_type_simple + .product-category {
  color: var(--ast-global-color-1) !important;
}

.woocommerce ul.products li.product .product-category a,
.woocommerce ul.products li.product .posted_in a,
.woocommerce ul.products li.product .product_cat a {
  color: var(--ast-global-color-1) !important;
}

.woocommerce ul.products li.product .product-category a:hover,
.woocommerce ul.products li.product .posted_in a:hover,
.woocommerce ul.products li.product .product_cat a:hover {
  color: var(--ast-global-color-1) !important;
}

/* ==========================================================================
   2. NASCONDE I TAG E IL MARCHIO NELLA PAGINA PRODOTTO
   Classi standard WooCommerce - il marchio è spostato in "Informazioni
   aggiuntive" tramite functions.php (abm_output_brand_in_additional_info)
   ========================================================================== */
.product_meta .tagged_as,
.product_meta .product_brand {
  display: none !important;
}

/* RETE DI SICUREZZA: nasconde qualsiasi blocco metadati stampato dal tema
   o da WooCommerce che NON sia il nostro (.abm-product-meta) */
.single-product .product_meta:not(.abm-product-meta) {
  display: none !important;
}

/* ==========================================================================
   3. FIX SOVRAPPOSIZIONE BARRA DI RICERCA SUL MEGAMENU
   Alza la priorità di sovrapposizione (z-index) del megamenu rispetto
   alla barra di ricerca dell'header, così il menu a tendina resta sempre
   sopra e visibile per intero
   ========================================================================== */
.main-header-menu .sub-menu,
.main-header-menu .ast-megamenu-container,
.main-header-menu .ast-megamenu-wrapper {
  z-index: 9999 !important;
}

.ast-search-menu-icon .search-form,
.ast-search-menu-icon.slide-search .search-field,
.ast-header-search .search-form {
  z-index: 3 !important;
}

/* ==========================================================================
   4. MOBILE - garantisce che il fix valga anche su header mobile/tablet
   ========================================================================== */
@media (max-width: 921px) {
  .ast-mobile-header-wrap .main-header-menu .sub-menu,
  .ast-mobile-header-wrap .main-header-menu .ast-megamenu-container {
    z-index: 9999 !important;
  }
}

/* ==========================================================================
   5. BARRA SPEDIZIONE GRATUITA CUSTOM (Carrello + Mini-carrello)
   Colori: box antracite, riempimento oro (Colore 2), testo bianco
   ========================================================================== */
.abm-fsl-bar-wrap {
  background-color: #1a1a1a;
  border-radius: 10px;
  padding: 16px 18px;
  margin: 16px 0;
  box-sizing: border-box;
  width: 100%;
}

.abm-fsl-title,
.abm-fsl-desc,
.abm-fsl-reached {
  color: #ffffff;
  font-size: 14px;
  margin: 0 0 10px 0;
  line-height: 1.4;
}

.abm-fsl-title strong,
.abm-fsl-desc strong {
  color: var(--ast-global-color-1);
  font-weight: 700;
}

.abm-fsl-desc {
  margin: 10px 0 0 0;
  margin-bottom: 0;
}

.abm-fsl-reached {
  margin-bottom: 0;
  font-weight: 600;
  text-align: center;
}

.abm-fsl-track {
  width: 100%;
  height: 10px;
  background-color: rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  overflow: hidden;
}

.abm-fsl-fill {
  height: 100%;
  background-color: var(--ast-global-color-1);
  border-radius: 20px;
  width: 0%;
  transition: width 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}

/* Mobile: padding leggermente ridotto */
@media (max-width: 480px) {
  .abm-fsl-bar-wrap {
    padding: 14px;
  }
  .abm-fsl-title,
  .abm-fsl-desc,
  .abm-fsl-reached {
    font-size: 13px;
  }
}

/* Accessibilità: niente animazione se l'utente la disattiva */
@media (prefers-reduced-motion: reduce) {
  .abm-fsl-fill {
    transition: none !important;
  }
}

/* ==========================================================================
   6. PULSANTE "PROCEDI AL PAGAMENTO" - sfondo oro
   Copre sia il carrello classico che lo slide-out "moderncart"
   ========================================================================== */
.wc-proceed-to-checkout .checkout-button,
.wc-proceed-to-checkout a.button,
a.checkout-button,
.moderncart-slide-out-footer .checkout-button,
.woocommerce .cart_totals .checkout-button {
  background-color: var(--ast-global-color-1) !important;
  border-color: var(--ast-global-color-1) !important;
  color: #111111 !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
}

.wc-proceed-to-checkout .checkout-button:hover,
.wc-proceed-to-checkout a.button:hover,
a.checkout-button:hover,
.moderncart-slide-out-footer .checkout-button:hover,
.woocommerce .cart_totals .checkout-button:hover {
  background-color: #e6b93d !important;
  color: #111111 !important;
}

/* ==========================================================================
   7. BADGE "PROMO"
   ========================================================================== */

/* 7a. Badge nativo WooCommerce (shop, pagina prodotto) */
.abm-onsale,
.woocommerce span.onsale.abm-onsale {
  background-color: #1a1a1a !important;
  color: var(--ast-global-color-1) !important;
  border: 1px solid var(--ast-global-color-1) !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 11px !important;
  padding: 4px 12px !important;
  border-radius: 20px !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1.6 !important;
}

/* 7b. Badge nel carrello slide-out ("moderncart")
   Sfondo trasparente per non coprire la miniatura, posizionato in basso
   a destra dell'immagine. Il text-shadow garantisce la leggibilità su
   qualsiasi foto prodotto. */
.moderncart-cart-item-image {
  position: relative !important;
}

.moderncart-cart-item-onsale {
  position: absolute !important;
  bottom: 2px !important;
  right: 2px !important;
  top: auto !important;
  left: auto !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  color: var(--ast-global-color-1) !important;
  text-transform: none !important;   /* mantiene "Promo", non "PROMO" */
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.3px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  line-height: 1.2 !important;
  text-shadow: none !important;
  z-index: 2;
}

/* ==========================================================================
   8. FIX PRODOTTI CORRELATI / CROSS-SELLS
   Il prodotto non deve fuoriuscire dal riquadro con bordo
   ========================================================================== */
.cross-sells,
.up-sells,
.related.products {
  box-sizing: border-box;
  overflow: hidden;
  padding: 0 0 24px 0;
}

.cross-sells ul.products,
.up-sells ul.products,
.related.products ul.products {
  margin: 0 !important;
  padding: 0 20px !important;
  box-sizing: border-box;
}

.cross-sells ul.products li.product,
.up-sells ul.products li.product,
.related.products ul.products li.product {
  box-sizing: border-box;
  margin-bottom: 0 !important;
  padding: 10px;
  max-width: 100%;
}

.cross-sells ul.products li.product img,
.up-sells ul.products li.product img,
.related.products ul.products li.product img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
   9. ICONA CARRELLO FLOTTANTE - sfondo oro (sitewide)
   ========================================================================== */
.moderncart-floating-cart-button,
button.moderncart-floating-cart-button {
  background-color: var(--ast-global-color-1) !important;
  background: var(--ast-global-color-1) !important;
  color: #111111 !important;
}

.moderncart-floating-cart-button svg,
.moderncart-floating-cart-button svg path,
.moderncart-floating-cart-button i {
  fill: #111111 !important;
  color: #111111 !important;
}

/* ==========================================================================
   10. PULSANTE "AGGIUNGI AL CARRELLO" - sfondo oro (sitewide)
   ========================================================================== */
.single_add_to_cart_button,
button.single_add_to_cart_button,
.woocommerce div.product form.cart .button,
.woocommerce ul.products li.product .button,
.woocommerce a.button.add_to_cart_button {
  background-color: var(--ast-global-color-1) !important;
  border-color: var(--ast-global-color-1) !important;
  color: #111111 !important;
  transition: all 0.3s ease !important;
}

.single_add_to_cart_button:hover,
button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart .button:hover,
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button.add_to_cart_button:hover {
  background-color: #e6b93d !important;
  border-color: #e6b93d !important;
  color: #111111 !important;
}

/* ==========================================================================
   11. CATEGORIA PRODOTTO - oro fisso, nessun hover (griglie e metadati)
   ========================================================================== */
.ast-woo-product-category,
.astra-shop-summary-wrap .ast-woo-product-category,
.abm-product-meta .posted_in a,
.abm-product-meta .posted_in a:hover {
  color: var(--ast-global-color-1) !important;
}

/* ==========================================================================
   12. PRODOTTI CORRELATI / CROSS-SELLS - colori pieni, niente opacità
   L'oro appariva "spento" perché il tema applica un'opacità/filtro alle card.
   ========================================================================== */
.related.products ul.products li.product,
.cross-sells ul.products li.product,
.up-sells ul.products li.product,
.related.products .astra-shop-summary-wrap,
.related.products .astra-shop-summary-wrap * {
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

/* Nome prodotto -> BIANCO */
.related.products ul.products li.product .woocommerce-loop-product__title,
.related.products ul.products li.product .woocommerce-loop-product__title a,
.cross-sells ul.products li.product .woocommerce-loop-product__title,
.cross-sells ul.products li.product .woocommerce-loop-product__title a,
.up-sells ul.products li.product .woocommerce-loop-product__title,
.up-sells ul.products li.product .woocommerce-loop-product__title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title a {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Categoria sopra il titolo -> oro brillante */
.related.products .ast-woo-product-category,
.cross-sells .ast-woo-product-category,
.up-sells .ast-woo-product-category {
  color: #FFCE53 !important;
  opacity: 1 !important;
}

/* Prezzo (non scontato) -> BIANCO, 14.4px */
.related.products ul.products li.product .price,
.related.products ul.products li.product .price bdi,
.related.products ul.products li.product .price .amount,
.cross-sells ul.products li.product .price,
.cross-sells ul.products li.product .price bdi,
.up-sells ul.products li.product .price,
.up-sells ul.products li.product .price bdi {
  color: #ffffff !important;
  opacity: 1 !important;
  font-size: 14.4px !important;
}

/* Prezzo di LISTINO (barrato) -> oro brillante */
.related.products ul.products li.product .price del,
.related.products ul.products li.product .price del bdi,
.related.products ul.products li.product .price del .amount,
.cross-sells ul.products li.product .price del,
.cross-sells ul.products li.product .price del bdi,
.up-sells ul.products li.product .price del,
.up-sells ul.products li.product .price del bdi {
  color: #FFCE53 !important;
  opacity: 1 !important;
  text-decoration: line-through !important;
  font-size: 14.4px !important;
}

/* Prezzo SCONTATO (attuale) -> BIANCO, come nel carrello */
.related.products ul.products li.product .price ins,
.related.products ul.products li.product .price ins bdi,
.related.products ul.products li.product .price ins .amount,
.cross-sells ul.products li.product .price ins,
.cross-sells ul.products li.product .price ins bdi,
.up-sells ul.products li.product .price ins,
.up-sells ul.products li.product .price ins bdi {
  color: #ffffff !important;
  opacity: 1 !important;
  text-decoration: none !important;
  font-weight: 600;
  font-size: 14.4px !important;
}

/* ==========================================================================
   13. CONTATORE DEL CARRELLO FLOTTANTE
   Sfondo nero, testo bianco, contorno tondo oro
   ========================================================================== */
.moderncart-floating-cart-count,
div.moderncart-floating-cart-count {
  background-color: #000000 !important;
  background: #000000 !important;
  color: #ffffff !important;
  border: 1px solid var(--ast-global-color-1) !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-weight: 600;
}

/* ==========================================================================
   14. PULSANTE "+" QUANTITÀ - oro, grassetto, 20px
   ========================================================================== */
.quantity .plus,
a.plus,
.quantity-buttons .plus,
.quantity.buttons_added .plus {
  color: var(--ast-global-color-1) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

/* ==========================================================================
   15. Z-INDEX: la barra di ricerca NON deve coprire il megamenu
   La ricerca sta in una riga SOTTO l'header, quindi nel DOM viene dopo e
   verrebbe disegnata sopra. Qui l'header (con il menu) viene alzato e la
   riga di ricerca abbassata.
   ========================================================================== */
.site-primary-header-wrap,
.ast-primary-header-bar,
.main-header-bar,
.ast-primary-header-bar .main-header-menu {
  position: relative !important;
  z-index: 999 !important;
}

.site-below-header-wrap,
.ast-below-header-bar,
.ast-below-header-wrap,
.ast-header-search,
.ast-search-menu-icon {
  position: relative !important;
  z-index: 1 !important;
}

/* Il megamenu resta sopra a tutto */
.main-header-menu .sub-menu,
.main-header-menu .ast-megamenu-container,
.main-header-menu .ast-megamenu-wrapper {
  z-index: 99999 !important;
}

/* ==========================================================================
   16. CROSS-SELLS ("Potresti essere interessato a...") - prodotto centrato
   ========================================================================== */
.cross-sells ul.products {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center !important;
  align-items: stretch;
  gap: 16px;
  margin: 0 !important;
  padding: 0 16px 24px 16px !important;
  list-style: none;
}

.cross-sells ul.products li.product {
  float: none !important;
  margin: 0 !important;
  padding: 10px !important;
  max-width: 100%;
  box-sizing: border-box;
  text-align: center;
}

/* ==========================================================================
   17. PULSANTE "APPLICA" CODICE SCONTO (carrello slide-out)
   ========================================================================== */
.moderncart-slide-out-coupon-form-button,
button.moderncart-slide-out-coupon-form-button,
.moderncart-button {
  background-color: var(--ast-global-color-1) !important;
  background: var(--ast-global-color-1) !important;
  color: #000000 !important;
  border-color: var(--ast-global-color-1) !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
}

.moderncart-slide-out-coupon-form-button:hover,
button.moderncart-slide-out-coupon-form-button:hover,
.moderncart-button:hover {
  background-color: #e6b93d !important;
  color: #000000 !important;
}

/* ==========================================================================
   18. OVERLAY DI CARICAMENTO CARRELLO - scuro invece che bianco
   WooCommerce (blockUI) usa un overlay bianco: su tema dark crea un
   "flash" bianco fastidioso durante gli aggiornamenti AJAX.
   ========================================================================== */
.woocommerce .blockUI.blockOverlay,
.blockUI.blockOverlay,
.woocommerce .blockOverlay {
  background-color: #0d0d0d !important;
  background: #0d0d0d !important;
  opacity: 0.75 !important;
}

/* Spinner oro al posto del cerchietto bianco di default */
.woocommerce .blockUI.blockOverlay::before,
.blockUI.blockOverlay::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 28px !important;
  height: 28px !important;
  margin: -14px 0 0 -14px !important;
  border: 2px solid rgba(255, 206, 83, 0.25) !important;
  border-top-color: var(--ast-global-color-1) !important;
  border-radius: 50% !important;
  background: none !important;
  animation: abmSpin 0.7s linear infinite !important;
}

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

/* Transizione morbida invece di uno stacco netto */
.woocommerce-cart-form,
.cart_totals,
.moderncart-slide-out-cart {
  transition: opacity 0.2s ease;
}

/* ==========================================================================
   19. FESTEGGIAMENTO "SPEDIZIONE GRATUITA" - stile fuochi d'artificio dorati
   Sfondo notturno, scintille che cadono, scoppi luminosi e testo serif oro
   con effetto shimmer. Tutto in CSS puro: nessuna libreria, zero peso.
   ========================================================================== */
.abm-fsl-celebrate {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  padding: 22px 14px;
  background:
    radial-gradient(ellipse at 50% 120%, rgba(255, 206, 83, 0.18) 0%, transparent 60%),
    #0a0a0a;
  isolation: isolate;
}

/* --- TESTO --- */
.abm-fsl-reached {
  position: relative;
  z-index: 3;
  margin: 0 !important;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.abm-fsl-title {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  line-height: 1.2;

  /* Gradiente oro con luccichio che scorre */
  background: linear-gradient(
    100deg,
    #c9962b 0%,
    #FFCE53 25%,
    #fff6d8 45%,
    #FFCE53 65%,
    #c9962b 100%
  );
  background-size: 250% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #FFCE53;                       /* fallback */
  animation: abmShimmer 3.2s linear infinite;
  filter: drop-shadow(0 0 12px rgba(255, 206, 83, 0.45));
}

@keyframes abmShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -50% 0; }
}

.abm-fsl-sub {
  font-size: 18px !important;
  font-weight: 500;
  color: #ffffff;
  letter-spacing: 0.3px;
}

/* --- SCOPPI DI FUOCHI D'ARTIFICIO (bagliori pulsanti) --- */
.abm-fsl-burst {
  position: absolute;
  z-index: 1;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 206, 83, 0.45) 0%, rgba(255, 206, 83, 0) 65%);
  opacity: 0;
  animation: abmBurst 3s ease-out infinite;
}

.abm-fsl-burst--1 { top: -18px; left: 12%;  animation-delay: 0s; }
.abm-fsl-burst--2 { top: 8px;   right: 14%; animation-delay: 1s; }
.abm-fsl-burst--3 { bottom: -22px; left: 46%; animation-delay: 2s; }

@keyframes abmBurst {
  0%   { transform: scale(0.2); opacity: 0; }
  25%  { transform: scale(1);   opacity: 0.9; }
  60%  { transform: scale(1.5); opacity: 0; }
  100% { transform: scale(1.5); opacity: 0; }
}

/* --- SCINTILLE DORATE CHE CADONO --- */
.abm-fsl-spark {
  position: absolute;
  z-index: 2;
  top: -8px;
  left: calc(var(--i) * 4.4%);
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #FFCE53;
  box-shadow: 0 0 6px 1px rgba(255, 206, 83, 0.9);
  opacity: 0;
  animation: abmFall 2.8s linear infinite;
  animation-delay: calc(var(--i) * 0.13s);
}

/* Qualche scintilla bianca per dare varietà, come nel riferimento */
.abm-fsl-spark:nth-child(4n) {
  background: #fff6d8;
  box-shadow: 0 0 7px 1px rgba(255, 246, 216, 0.95);
  width: 2px;
  height: 2px;
}

/* Scintille più lente/veloci: profondità */
.abm-fsl-spark:nth-child(3n)   { animation-duration: 3.6s; }
.abm-fsl-spark:nth-child(3n+1) { animation-duration: 2.2s; }

@keyframes abmFall {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  75% {
    opacity: 1;
  }
  100% {
    transform: translateY(110px) scale(0.3);
    opacity: 0;
  }
}

/* --- MOBILE --- */
@media (max-width: 480px) {
  .abm-fsl-title { font-size: 21px; letter-spacing: 1px; }
  .abm-fsl-sub   { font-size: 16px !important; }
  .abm-fsl-celebrate { padding: 18px 10px; }
}

/* --- ACCESSIBILITA': niente animazioni se l'utente le disattiva --- */
@media (prefers-reduced-motion: reduce) {
  .abm-fsl-spark,
  .abm-fsl-burst {
    display: none !important;
  }
  .abm-fsl-title {
    animation: none !important;
    -webkit-text-fill-color: #FFCE53;
    background: none;
  }
  .blockUI.blockOverlay::before {
    animation: none !important;
  }
}

/* ==========================================================================
   20. CARRELLO - ARROTONDAMENTO ELEGANTE DELLE TABELLE (desktop + mobile)
   ========================================================================== */
.woocommerce table.shop_table,
.woocommerce .cart_totals table,
.cross-sells,
.cart_totals {
  border-radius: 14px !important;
  overflow: hidden;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: rgba(255, 255, 255, 0.08) !important;
}

/* ==========================================================================
   21. CARRELLO MOBILE - LAYOUT A SCHEDE (card)
   La tabella diventa una lista di schede: gerarchia chiara, nome prodotto
   sempre leggibile, azione "rimuovi" esplicita. Standard dei luxury shop.
   ========================================================================== */
@media (max-width: 768px) {

  .woocommerce table.shop_table_responsive thead {
    display: none !important;   /* le intestazioni non servono: ogni riga è una scheda */
  }

  .woocommerce table.shop_table_responsive,
  .woocommerce table.shop_table_responsive tbody {
    display: block !important;
    width: 100% !important;
    border: none !important;
    background: transparent !important;
  }

  /* Ogni prodotto = una scheda */
  .woocommerce table.shop_table_responsive tr.cart_item {
    display: grid !important;
    grid-template-columns: 88px 1fr;
    grid-template-areas:
      "thumb  name"
      "thumb  price"
      "qty    subtotal";
    gap: 6px 14px;
    align-items: center;

    position: relative;
    background: #111111 !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 14px !important;
    padding: 18px 16px !important;
    margin: 0 0 14px 0 !important;
  }

  .woocommerce table.shop_table_responsive tr.cart_item td {
    display: flex !important;
    align-items: center;
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }

  /* Etichette ("Prezzo:", "Quantità:") -> discrete, non urlate */
  .woocommerce table.shop_table_responsive tr.cart_item td::before {
    content: attr(data-title);
    color: rgba(255, 255, 255, 0.45) !important;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.3px;
    margin-right: 8px;
  }

  /* Immagine */
  .woocommerce table.shop_table_responsive td.product-thumbnail {
    grid-area: thumb;
    justify-content: center;
  }
  .woocommerce table.shop_table_responsive td.product-thumbnail::before {
    display: none !important;
  }
  .woocommerce table.shop_table_responsive td.product-thumbnail img {
    width: 88px !important;
    height: auto;
    border-radius: 10px !important;
    background: #ffffff;
  }

  /* NOME PRODOTTO -> protagonista, ben leggibile */
  .woocommerce table.shop_table_responsive td.product-name {
    grid-area: name;
    display: block !important;
  }
  .woocommerce table.shop_table_responsive td.product-name::before {
    display: none !important;   /* "Prodotto:" è superfluo, il nome parla da solo */
  }
  .woocommerce table.shop_table_responsive td.product-name a,
  .woocommerce table.shop_table_responsive td.product-name .ast-product-name,
  .woocommerce table.shop_table_responsive td.product-name .ast-product-name a {
    display: block !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
  }
  /* Nasconde SOLO l'immagine duplicata dentro la cella nome (Astra), non il
     wrapper: Astra annida il NOME dentro .ast-product-image, quindi nascondere
     tutto il wrapper faceva sparire il nome del prodotto su mobile. */
  .woocommerce table.shop_table_responsive td.product-name .ast-product-image img {
    display: none !important;
  }
  /* Su mobile il link "Sposta nella lista dei desideri" affolla e si sovrappone
     alla cella nome: nel carrello lo togliamo (resta disponibile su desktop). */
  .woocommerce table.shop_table_responsive td.product-name .abm-wl-move-wrap {
    display: none !important;
  }

  /* Prezzo unitario -> discreto */
  .woocommerce table.shop_table_responsive td.product-price {
    grid-area: price;
    color: rgba(255, 255, 255, 0.65) !important;
    font-size: 13px !important;
  }

  /* Quantità */
  .woocommerce table.shop_table_responsive td.product-quantity {
    grid-area: qty;
    margin-top: 6px;
  }
  .woocommerce table.shop_table_responsive td.product-quantity::before {
    display: none !important;
  }

  /* Subtotale -> in evidenza, allineato a destra */
  .woocommerce table.shop_table_responsive td.product-subtotal {
    grid-area: subtotal;
    justify-content: flex-end;
    margin-top: 6px;
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 700 !important;
  }
  .woocommerce table.shop_table_responsive td.product-subtotal::before {
    display: none !important;
  }

  /* RIMUOVI -> pulsante tondo, in alto a destra della scheda */
  .woocommerce table.shop_table_responsive td.product-remove {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    padding: 0 !important;
    z-index: 2;
  }
  .woocommerce table.shop_table_responsive td.product-remove::before {
    display: none !important;
  }

  /* Riga "Applica coupon / Aggiorna carrello" */
  .woocommerce table.shop_table_responsive td.actions {
    display: block !important;
    padding: 8px 0 0 0 !important;
    border: none !important;
  }
  .woocommerce table.shop_table_responsive td.actions::before {
    display: none !important;
  }
}

/* Pulsante RIMUOVI - stile coerente anche su desktop */
.woocommerce a.remove,
.woocommerce table.shop_table td.product-remove a.remove {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 16px !important;
  line-height: 1 !important;
  transition: all 0.25s ease !important;
}

.woocommerce a.remove:hover {
  border-color: #e05a4f !important;
  background: rgba(224, 90, 79, 0.12) !important;
  color: #e05a4f !important;
}

/* ==========================================================================
   22. CATEGORIA SOTTO IL NOME nei correlati / cross-sells
   ========================================================================== */
.cross-sells .astra-shop-summary-wrap,
.related.products .astra-shop-summary-wrap,
.up-sells .astra-shop-summary-wrap {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.cross-sells .astra-shop-summary-wrap .ast-loop-product__link,
.related.products .astra-shop-summary-wrap .ast-loop-product__link,
.up-sells .astra-shop-summary-wrap .ast-loop-product__link {
  order: 1;
}

.cross-sells .astra-shop-summary-wrap .ast-woo-product-category,
.related.products .astra-shop-summary-wrap .ast-woo-product-category,
.up-sells .astra-shop-summary-wrap .ast-woo-product-category {
  order: 2;                       /* categoria SOTTO il nome */
  font-size: 12px !important;
  letter-spacing: 0.4px;
  margin: 0 !important;
}

.cross-sells .astra-shop-summary-wrap .price,
.related.products .astra-shop-summary-wrap .price,
.up-sells .astra-shop-summary-wrap .price {
  order: 3;
  margin-top: 2px;
}

/* ==========================================================================
   23. CHECKOUT MOBILE - respiro, leggibilità, campi comodi da toccare
   ========================================================================== */
@media (max-width: 768px) {

  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    margin-bottom: 24px;
  }

  .woocommerce-checkout .woocommerce-billing-fields,
  .woocommerce-checkout .woocommerce-shipping-fields,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout .woocommerce-checkout-review-order {
    background: #111111;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    padding: 18px 16px;
    box-sizing: border-box;
  }

  /* Campi: font 16px = niente zoom automatico su iOS */
  .woocommerce-checkout .form-row input.input-text,
  .woocommerce-checkout .form-row textarea,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .select2-container .select2-selection {
    width: 100% !important;
    font-size: 16px !important;
    padding: 13px 14px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    background: #0d0d0d !important;
    color: #ffffff !important;
    box-sizing: border-box;
  }

  .woocommerce-checkout .form-row label {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 13px !important;
    margin-bottom: 6px;
    display: block;
  }

  .woocommerce-checkout .form-row {
    margin-bottom: 16px !important;
    padding: 0 !important;
  }

  /* Riepilogo ordine leggibile */
  .woocommerce-checkout table.shop_table th,
  .woocommerce-checkout table.shop_table td {
    padding: 12px 10px !important;
    font-size: 14px;
  }

  /* Pulsante finale: pieno, comodo, sempre raggiungibile */
  .woocommerce-checkout #place_order {
    width: 100% !important;
    padding: 16px !important;
    font-size: 16px !important;
    border-radius: 10px !important;
    letter-spacing: 0.5px;
  }
}

/* ==========================================================================
   24. BLOCCO CONSENSO PRIVACY NEWSLETTER - respiro e allineamento su mobile
   ========================================================================== */
.probar-privacy-label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 0 4px !important;
  margin-top: 12px !important;
  line-height: 1.55 !important;
  font-size: 13px !important;
  text-align: left !important;
  color: rgba(255, 255, 255, 0.7) !important;
  box-sizing: border-box;
}

.probar-privacy-label input[type="checkbox"] {
  flex: 0 0 auto !important;
  margin: 3px 0 0 0 !important;
  width: 16px;
  height: 16px;
  accent-color: var(--ast-global-color-1);
}

@media (max-width: 768px) {
  .probar-newsletter-container,
  .probar-newsletter-form {
    padding-left: 18px !important;
    padding-right: 18px !important;
    box-sizing: border-box;
  }

  .probar-privacy-label {
    padding: 0 !important;
    font-size: 12.5px !important;
  }
}

/* ==========================================================================
   25. CROSS-SELLS / CORRELATI NEL CARRELLO - card orizzontale allineata
   Immagine a sx | nome + categoria al centro | prezzo a dx (allineato)
   ========================================================================== */
.cross-sells ul.products li.product {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 14px 16px !important;
  margin: 0 0 10px 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
  text-align: left !important;
  box-sizing: border-box;
}

.cross-sells ul.products li.product:last-child {
  margin-bottom: 0 !important;
}

/* Immagine: dimensione fissa, non deve schiacciarsi */
.cross-sells .astra-shop-thumbnail-wrap {
  flex: 0 0 72px !important;
  margin: 0 !important;
}

.cross-sells .astra-shop-thumbnail-wrap img {
  width: 72px !important;
  height: 72px !important;
  object-fit: contain;
  border-radius: 8px !important;
  background: #ffffff;
  padding: 4px;
  box-sizing: border-box;
}

/* Testo + prezzo: griglia a 2 colonne, prezzo verticalmente centrato */
.cross-sells .astra-shop-summary-wrap {
  flex: 1 1 auto !important;
  display: grid !important;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "title price"
    "cat   price";
  align-items: center;
  column-gap: 14px;
  row-gap: 2px;
  text-align: left !important;
  min-width: 0;                    /* evita l'overflow dei titoli lunghi */
}

.cross-sells .astra-shop-summary-wrap .ast-loop-product__link {
  grid-area: title;
  order: 0 !important;
}

.cross-sells .astra-shop-summary-wrap .woocommerce-loop-product__title {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

.cross-sells .astra-shop-summary-wrap .ast-woo-product-category {
  grid-area: cat;
  order: 0 !important;
  text-align: left !important;
  font-size: 12px !important;
  margin: 0 !important;
}

.cross-sells .astra-shop-summary-wrap .price {
  grid-area: price;
  order: 0 !important;
  align-self: center;
  justify-self: end;
  margin: 0 !important;
  white-space: nowrap;
  font-size: 15px !important;
  font-weight: 600 !important;
}

/* --- PULSANTE "AGGIUNGI" nei cross-sells: sotto il prezzo, a destra --- */
.cross-sells .astra-shop-summary-wrap {
  grid-template-areas:
    "title price"
    "cat   btn" !important;
}

.cross-sells ul.products li.product .button,
.cross-sells ul.products li.product a.button.add_to_cart_button,
.cross-sells ul.products li.product a.button {
  grid-area: btn;
  display: inline-block !important;
  justify-self: end;
  align-self: start;

  background-color: #000000 !important;
  background: #000000 !important;
  color: var(--ast-global-color-1) !important;
  border: 1px solid var(--ast-global-color-1) !important;
  border-radius: 8px !important;

  padding: 6px 16px !important;
  margin: 4px 0 0 0 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px;
  line-height: 1.4 !important;
  white-space: nowrap;
  min-width: auto !important;
  width: auto !important;

  transition: background-color 0.3s ease, color 0.3s ease !important;
}

.cross-sells ul.products li.product .button:hover,
.cross-sells ul.products li.product a.button.add_to_cart_button:hover,
.cross-sells ul.products li.product a.button:hover {
  background-color: var(--ast-global-color-1) !important;
  background: var(--ast-global-color-1) !important;
  color: #ffffff !important;
  border-color: var(--ast-global-color-1) !important;
}

/* Stato "aggiunto": non deve rompere il layout */
.cross-sells ul.products li.product a.added_to_cart {
  grid-area: btn;
  justify-self: end;
  font-size: 11px !important;
  color: var(--ast-global-color-1) !important;
  margin-top: 2px !important;
}

/* --- MOBILE: impila testo e prezzo, mantiene l'immagine a sinistra --- */
@media (max-width: 600px) {
  .cross-sells ul.products li.product {
    padding: 12px !important;
    gap: 12px !important;
  }

  .cross-sells .astra-shop-thumbnail-wrap,
  .cross-sells .astra-shop-thumbnail-wrap img {
    flex: 0 0 60px !important;
    width: 60px !important;
    height: 60px !important;
  }

  .cross-sells .astra-shop-summary-wrap {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "cat"
      "price"
      "btn" !important;
    row-gap: 3px;
  }

  .cross-sells ul.products li.product .button,
  .cross-sells ul.products li.product a.button {
    justify-self: start !important;
  }

  .cross-sells .astra-shop-summary-wrap .price {
    justify-self: start;
    margin-top: 2px !important;
  }

  .cross-sells .astra-shop-summary-wrap .woocommerce-loop-product__title {
    font-size: 14px !important;
  }
}

/* ==========================================================================
   26. RICERCA LIVE - restyle elegante + miniatura prodotto
   --------------------------------------------------------------------------
   Il pannello dei risultati (Astra Live Search) arrivava senza alcun nostro
   stile: testo quasi nero (#141516) ereditato dal tema, su uno sfondo che il
   resto del sito rende scuro -> illeggibile. Qui gli diamo la stessa identita'
   del sito (nero, oro, respiro) e affianchiamo la miniatura del prodotto
   (iniettata da js/search-live-thumbs.js): risolve il problema vero di chi
   cerca, che e' RICONOSCERE il prodotto a colpo d'occhio, non solo leggerne
   il nome.

   NOTA SUI SELETTORI: Astra ha usato grafie leggermente diverse tra versioni
   (ast-search-live-results / ast-live-search-results, ast-search--postype-
   heading / ast-search--posttype-heading). Copriamo entrambe cosi' lo stile
   regge a prescindere dalla versione installata sul sito.
   ========================================================================== */
:root {
  --pb-gold: #FFCE53;
  --pb-gold-line: rgba(255, 206, 83, 0.16);
  --pb-gold-hover: rgba(255, 206, 83, 0.70);
  --pb-card-bg: #0d0d0d;
  --pb-ease: cubic-bezier(0.16, 1, 0.30, 1);
}

/* --- Il pannello --- */
.ast-search-live-results,
.ast-live-search-results {
  background-color: var(--pb-card-bg) !important;
  border: 1px solid var(--pb-gold-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55),
              0 0 30px rgba(255, 206, 83, 0.06) !important;
  padding: 8px !important;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--pb-gold-hover) transparent;
}

.ast-search-live-results::-webkit-scrollbar,
.ast-live-search-results::-webkit-scrollbar { width: 6px; }

.ast-search-live-results::-webkit-scrollbar-thumb,
.ast-live-search-results::-webkit-scrollbar-thumb {
  background-color: rgba(255, 206, 83, 0.35);
  border-radius: 10px;
}

/* --- Intestazione "Prodotti" --- */
.ast-search-live-results label.ast-search--postype-heading,
.ast-search-live-results label.ast-search--posttype-heading,
.ast-live-search-results label.ast-search--postype-heading,
.ast-live-search-results label.ast-search--posttype-heading {
  color: var(--pb-gold) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 10px 14px 6px !important;
}

/* --- Nessun risultato --- */
.ast-search-live-results label.ast-search--no-results-heading,
.ast-live-search-results label.ast-search--no-results-heading {
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 13.5px !important;
  padding: 16px 14px !important;
}

/* --- Ogni risultato: riga con miniatura + nome, mai un muro di testo --- */
.ast-search-live-results a.ast-search-item,
.ast-live-search-results a.ast-search-item {
  display: flex !important;
  align-items: center !important;
  gap: 14px;
  padding: 9px 12px !important;
  margin: 2px 4px;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.88) !important;
  font-size: 14px !important;
  line-height: 1.4;
  text-decoration: none !important;
  transition: background-color 0.4s var(--pb-ease), color 0.4s var(--pb-ease);
}

.ast-search-live-results a.ast-search-item:hover,
.ast-search-live-results a.ast-search-item:focus-visible,
.ast-live-search-results a.ast-search-item:hover,
.ast-live-search-results a.ast-search-item:focus-visible {
  background-color: rgba(255, 206, 83, 0.08) !important;
  color: var(--pb-gold) !important;
  outline: none;
}

/* --- "Vedi tutti i risultati" - pillola oro, come il resto del sito --- */
.ast-search-live-results a.ast-search-page-link,
.ast-live-search-results a.ast-search-page-link {
  display: flex !important;
  margin: 8px 6px 4px !important;
  padding: 10px !important;
  border: 1px solid var(--pb-gold-hover) !important;
  border-radius: 8px;
  color: var(--pb-gold) !important;
  font-size: 12px !important;
  font-weight: 600;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  transition: background-color 0.4s var(--pb-ease), color 0.4s var(--pb-ease);
}

.ast-search-live-results a.ast-search-page-link:hover,
.ast-live-search-results a.ast-search-page-link:hover {
  background-color: var(--pb-gold) !important;
  color: #111111 !important;
}

/* --- LA MINIATURA (iniettata da js/search-live-thumbs.js) ---
   Stesso trattamento delle anteprime prodotto in tutto il sito: fondo
   trasparente, foto SEMPRE intera (contain), mai tagliata. Nessuno spazio
   riservato per i risultati senza corrispondenza: l'elenco resta pulito,
   niente caselle vuote in attesa di un'immagine che non arrivera'. */
.pb-search-thumb {
  flex: 0 0 auto;
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  overflow: hidden;
  background-color: transparent;
  border: 1px solid var(--pb-gold-line);
}

.pb-search-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 3px;
  box-sizing: border-box;
}

/* ==========================================================================
   27. RICERCA LIVE - MOBILE
   ========================================================================== */
@media (max-width: 921px) {
  .ast-search-live-results,
  .ast-live-search-results {
    border-radius: 10px !important;
    max-height: 70vh;
  }

  .ast-search-live-results a.ast-search-item,
  .ast-live-search-results a.ast-search-item {
    padding: 9px 10px !important;
    font-size: 13.5px !important;
  }

  .pb-search-thumb {
    width: 38px;
    height: 38px;
  }
}

/* ==========================================================================
   28. RICERCA LIVE - ACCESSIBILITA
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .ast-search-live-results a.ast-search-item,
  .ast-live-search-results a.ast-search-item,
  .ast-search-live-results a.ast-search-page-link,
  .ast-live-search-results a.ast-search-page-link {
    transition: none !important;
  }
}

/* ==========================================================================
   29. NOTIFICHE SENZA "MARKER" - sitewide
   --------------------------------------------------------------------------
   WooCommerce (e Astra) antepongono alle notifiche un'icona presa dal loro
   font-icona: quando il font non c'e', resta un glifo rotto (un quadratino/
   spunta sporca) all'inizio di ogni messaggio - su carrello, checkout,
   account, ovunque. Qui viene spento definitivamente, su tutto il sito.
   ========================================================================== */
.woocommerce-message::before,
.woocommerce-message::after,
.woocommerce-error::before,
.woocommerce-error::after,
.woocommerce-info::before,
.woocommerce-info::after,
.woocommerce-error li::before,
.woocommerce-message li::before,
.woocommerce-info li::before,
.woocommerce-notice::before,
.wc-block-components-notice-banner > svg,
.woocommerce-NoticeGroup .woocommerce-error::before {
  content: none !important;
  display: none !important;
}

/* Il padding extra che Astra riserva all'icona non serve piu' */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  padding-left: 18px !important;
}

/* ==========================================================================
   30. ETICHETTA "ESAURITO" - sempre a misura dell'immagine
   --------------------------------------------------------------------------
   Il badge di Astra (ast-shop-product-out-of-stock) ha una taglia fissa:
   sulle miniature piccole (cross-sell del carrello, liste compatte)
   debordava dall'immagine spezzandosi su due righe. Qui diventa una
   pillola centrata DENTRO l'immagine, che non sfora mai: su una miniatura
   e' minuscola, su una card grande resta discreta.
   ========================================================================== */
span.ast-shop-product-out-of-stock {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  max-width: 92% !important;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 2px 8px !important;
  font-size: 10px !important;
  font-weight: 700;
  line-height: 1.3 !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.92) !important;
  color: #141516 !important;
  z-index: 2;
}

/* I contenitori dell'immagine devono fare da riferimento al badge */
.woocommerce ul.products li.product,
.cross-sells li.product,
td.product-thumbnail,
.moderncart-cart-item-image {
  position: relative;
}

/* ==========================================================================
   30. MODERNCART - stop alle "reminescenze" chiare
   --------------------------------------------------------------------------
   Il plugin del carrello slide-out porta con se' una notifica e una barra
   di avanzamento spedizione proprie, in tema CHIARO: doppioni stonati
   della nostra barra dorata (sez. 19). Vanno spente del tutto.
   Il blocco riepilogo (coupon, subtotale, IVA, totale) resta ma si veste
   di scuro come il resto del sito.
   ========================================================================== */
.moderncart-notification,
[class*="moderncart"][class*="free-shipping"] {
  display: none !important;
}

/* Riepilogo e coupon dello slide-out: fondo scuro, testo chiaro */
[class*="moderncart"][class*="order-summary"],
[class*="moderncart"][class*="coupon-form-container"],
[class*="moderncart"][class*="line-items"],
.moderncart-slide-out-footer {
  background: #0a0a0a !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}

[class*="moderncart"][class*="order-summary"] *,
[class*="moderncart"][class*="coupon-form-container"] *,
[class*="moderncart"][class*="line-items"] * {
  color: #fff !important;
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}

/* I campi del coupon dentro lo slide-out restano leggibili */
[class*="moderncart"][class*="coupon-form-container"] input {
  background: #0f0f0f !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

/* ==========================================================================
   31. CROSS-SELLS: CTA SOTTO IL PREZZO + "IVA ESCL." DENTRO I BORDI
   --------------------------------------------------------------------------
   Nei box "Potresti essere interessato a..." il suffisso di prezzo
   sbordava oltre il contorno della card. Ora il prezzo puo' andare a capo
   e il suffisso vive su una riga propria, sempre dentro i bordi.
   Il pulsante "Aggiungi" sta ESATTAMENTE sotto il prezzo.
   ========================================================================== */
.cross-sells ul.products li.product {
  overflow: hidden;
}

.cross-sells ul.products li.product .price {
  display: block !important;
  white-space: normal !important;
  max-width: 100%;
}

.cross-sells ul.products li.product .price .woocommerce-price-suffix,
.woocommerce ul.products li.product .price .woocommerce-price-suffix {
  display: block;
  margin-top: 2px;
  font-size: 11px !important;
  opacity: 0.7;
  white-space: nowrap;
}

/* La CTA subito sotto il prezzo, pillola dorata compatta */
.cross-sells ul.products li.product .button,
.cross-sells ul.products li.product a.add_to_cart_button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin: 10px 0 0 !important;
  padding: 8px 20px !important;
  background: var(--ast-global-color-1, #FFCE53) !important;
  border: none !important;
  border-radius: 20px !important;
  color: #111 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  opacity: 1 !important;
}

.cross-sells ul.products li.product .button:hover,
.cross-sells ul.products li.product a.add_to_cart_button:hover {
  background: #ffd977 !important;
  color: #111 !important;
}

/* ==========================================================================
   32. "VISUALIZZA CARRELLO" - visibile a riposo, oro al passaggio
   --------------------------------------------------------------------------
   Il link che compare dopo l'aggiunta al carrello era quasi invisibile
   (grigio scuro su fondo scuro): ora e' un antracite CHIARO, leggibile
   ma discreto. L'hover resta l'oro di sempre.
   ========================================================================== */
.woocommerce a.added_to_cart,
a.added_to_cart.wc-forward {
  color: #9aa2a6 !important;
}

.woocommerce a.added_to_cart:hover,
a.added_to_cart.wc-forward:hover {
  color: var(--ast-global-color-1, #FFCE53) !important;
}

/* ==========================================================================
   33. ICONE ON-CARD DEL CATALOGO - stessa famiglia del cuore wishlist
   --------------------------------------------------------------------------
   Astra impila carrello e vista-rapida in alto a destra, dove ora abita il
   cuore. Nuova disposizione: CUORE in alto a destra, CARRELLO e VISTA
   RAPIDA in basso a destra (a scomparsa, come sempre). Tutte e tre le
   pasticche parlano la stessa lingua: cerchio nero in trasparenza, icona
   chiara, oro con bagliore al passaggio.
   ========================================================================== */
.woocommerce ul.products li.product .ast-on-card-button {
  width: 34px !important;
  height: 34px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: rgba(10, 10, 10, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  border-radius: 50% !important;
  color: rgba(255, 255, 255, 0.92) !important;
  box-shadow: none !important;
  transition: color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.woocommerce ul.products li.product .ast-on-card-button svg,
.woocommerce ul.products li.product .ast-on-card-button svg path {
  fill: currentColor !important;
}

.woocommerce ul.products li.product .ast-on-card-button:hover {
  color: var(--ast-global-color-1, #FFCE53) !important;
  border-color: var(--ast-global-color-1, #FFCE53) !important;
  box-shadow: 0 0 14px rgba(255, 206, 83, 0.45) !important;
}

/* Posizioni: vista rapida nell'angolo basso, carrello subito sopra */
.woocommerce ul.products li.product .ast-on-card-button.ast-quick-view-trigger {
  top: auto !important;
  bottom: 10px !important;
  right: 10px !important;
}

.woocommerce ul.products li.product .ast-on-card-button:not(.ast-quick-view-trigger) {
  top: auto !important;
  bottom: 52px !important;
  right: 10px !important;
}

/* ==========================================================================
   34. PULSANTE "AGGIUNGI" SU OGNI CARD - posizioni
   --------------------------------------------------------------------------
   Griglie del catalogo: il pulsante e' l'ultimo elemento della card,
   IN BASSO E CENTRATO (le card di Astra sono flex: margin-top auto lo
   inchioda al fondo anche quando i titoli hanno altezze diverse).
   Cross-sells del carrello (righe compatte): IN BASSO A DESTRA, sotto
   il prezzo.
   ========================================================================== */
.woocommerce ul.products li.product .abm-xs-add {
  margin-top: auto !important;
  align-self: center;
}

/* Un filo d'aria sopra il pulsante quando la card e' corta */
.woocommerce ul.products li.product .abm-xs-add,
.woocommerce ul.products li.product a.abm-xs-add {
  margin-bottom: 4px;
}

/* --- Cross-sells del carrello: righe compatte --- */
.woocommerce-cart .cross-sells ul.products li.product {
  position: relative;
  padding-bottom: 54px !important;
}

.woocommerce-cart .cross-sells ul.products li.product .abm-xs-add {
  position: absolute;
  right: 14px;
  bottom: 12px;
  margin: 0 !important;
}

/* ==========================================================================
   35. MINIATURE PICCOLE: NIENTE ICONE SOVRAPPOSTE
   --------------------------------------------------------------------------
   Nelle righe compatte dei cross-sells del carrello la foto e' minuscola:
   cuore, carrellino e vista-rapida sopra l'immagine diventano solo
   rumore. Li' non devono MAI comparire (il pulsante "Aggiungi" basta e
   avanza).
   ========================================================================== */
.woocommerce-cart .cross-sells .ast-on-card-button,
.woocommerce-cart .cross-sells .abm-wl-heart,
.woocommerce-cart .cross-sells .ast-quick-view-trigger {
  display: none !important;
}

/* ==========================================================================
   36. PULSANTE "AGGIUNGI" - UNO STILE SOLO, OVUNQUE
   --------------------------------------------------------------------------
   La stessa pillola dorata compatta dei cross-sells, su ogni card del
   catalogo: qualunque cosa Astra pensi dei .button, qui vince questa.
   ========================================================================== */
a.abm-xs-add,
.woocommerce ul.products li.product a.abm-xs-add,
.woocommerce-page ul.products li.product a.abm-xs-add {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  margin: 10px auto 4px !important;
  padding: 7px 18px !important;
  background: var(--ast-global-color-1, #FFCE53) !important;
  border: none !important;
  border-radius: 20px !important;
  color: #111 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
  line-height: 1.4 !important;
  text-transform: uppercase;
  text-decoration: none !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

a.abm-xs-add:hover {
  background: #ffd977 !important;
  color: #111 !important;
}

/* Nelle griglie flex di Astra: inchiodato in fondo alla card, centrato */
.woocommerce ul.products li.product a.abm-xs-add {
  margin-top: auto !important;
  align-self: center;
}

/* ==========================================================================
   37. CARRELLO SLIDE-OUT SU MOBILE - le miniature si vedono
   --------------------------------------------------------------------------
   ModernCart su mobile nasconde le foto dei prodotti (display:none inline):
   tornano visibili come su desktop - immagine a sinistra, nome e prezzi
   alla sua destra. L'!important vince sullo stile inline del plugin.
   ========================================================================== */
@media (max-width: 921px) {
  .moderncart-cart-item-image {
    display: block !important;
    flex: 0 0 auto;
  }

  .moderncart-cart-item-image img {
    width: 62px !important;
    height: 62px !important;
    object-fit: contain;
    background: #fff;
    border-radius: 8px;
  }

  .moderncart-cart-item-container {
    display: flex !important;
    align-items: center;
    gap: 12px;
  }

  .moderncart-cart-item-product {
    flex: 1 1 auto;
    min-width: 0;
  }
}

/* Cross-sells del carrello: la pillola sta in basso a DESTRA della riga
   (questa regola vive dopo la 36 apposta: deve vincerci sul margin) */
.woocommerce-cart .cross-sells ul.products li.product a.abm-xs-add {
  position: absolute;
  right: 16px;
  bottom: 14px;
  margin: 0 !important;
}

/* ==========================================================================
   38. SLIDE-OUT: "PROCEDI" DORATO + QUANTITA' CON GERARCHIA
   --------------------------------------------------------------------------
   Il pulsante "Procedi" del carrello slide-out veste come ogni CTA di
   casa: fondo oro, scritta nera, bagliore al passaggio.
   Sui controlli quantita' il "+" invita (oro, grassetto), il "-" si fa
   da parte (bianco, peso normale).
   ========================================================================== */
[class*="moderncart"] .wc-proceed-to-checkout a.checkout-button,
[class*="moderncart"] .wc-proceed-to-checkout a.wc-forward,
.moderncart-slide-out-footer a.checkout-button {
  display: block;
  background: var(--ast-global-color-1, #FFCE53) !important;
  color: #111111 !important;
  border: none !important;
  border-radius: 10px !important;
  font-weight: 700 !important;
  text-align: center;
  text-decoration: none !important;
  transition: background-color 0.3s ease, box-shadow 0.3s ease !important;
}

[class*="moderncart"] .wc-proceed-to-checkout a.checkout-button:hover,
[class*="moderncart"] .wc-proceed-to-checkout a.wc-forward:hover,
.moderncart-slide-out-footer a.checkout-button:hover {
  background: #ffd977 !important;
  color: #111111 !important;
  box-shadow: 0 0 18px rgba(255, 206, 83, 0.45) !important;
}

/* Quantita' nello slide-out: "+" oro grassetto, "-" bianco normale */
[class*="moderncart"] button.quantity__button--up {
  color: var(--ast-global-color-1, #FFCE53) !important;
  font-weight: 700 !important;
}

[class*="moderncart"] button.quantity__button--up svg,
[class*="moderncart"] button.quantity__button--up svg path {
  fill: var(--ast-global-color-1, #FFCE53) !important;
  stroke: var(--ast-global-color-1, #FFCE53) !important;
}

[class*="moderncart"] button.quantity__button--down {
  color: #ffffff !important;
  font-weight: 400 !important;
}

[class*="moderncart"] button.quantity__button--down svg,
[class*="moderncart"] button.quantity__button--down svg path {
  fill: #ffffff !important;
  stroke: #ffffff !important;
}

/* Le icone +/- di ModernCart arrivano SENZA viewBox e il plugin le dimensiona
   a 10px con overflow:hidden: il path (coordinate ~0-18) veniva tagliato e il
   "+" si vedeva come un angolo ("cornetto") in alto a sinistra. Allarghiamo il
   viewport dell'SVG e lasciamo debordare: il glifo intero torna visibile.
   Il pulsante e' 30x25, un'icona da 18px ci sta centrata. */
[class*="moderncart"] button.quantity__button--up svg,
[class*="moderncart"] button.quantity__button--down svg {
  width: 18px !important;
  height: 18px !important;
  overflow: visible !important;
}

/* Titolo dello slide-out ("Rivedi il tuo carrello") reso cliccabile verso la
   pagina Carrello (comportamento in functions.php, delega su body). */
.moderncart-slide-out-header-title {
  cursor: pointer;
  transition: color 0.2s ease;
}

.moderncart-slide-out-header-title:hover {
  color: #FFCE53;
}

/* ==========================================================================
   39. AUTOFILL DI CHROME - SEMPRE SCURO, SU TUTTO IL SITO
   --------------------------------------------------------------------------
   Chrome dipinge di bianco i campi compilati/suggeriti automaticamente,
   ovunque: il box-shadow interno lo copre col nostro nero su QUALSIASI
   input del sito (checkout, account, registrazione, ricerca...).
   ========================================================================== */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
select:-webkit-autofill,
textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #0f0f0f inset !important;
  box-shadow: 0 0 0 1000px #0f0f0f inset !important;
  -webkit-text-fill-color: #ffffff !important;
  caret-color: #ffffff;
  transition: background-color 99999s ease-out 0s !important;
}

/* ==========================================================================
   40. BARRA DI RICERCA SOTTO-HEADER SU MOBILE - dentro lo schermo
   --------------------------------------------------------------------------
   Astra le da' margini negativi di -10px senza compensazione nel nostro
   layout: usciva dal bordo sinistro (misurato dal vivo sul checkout).
   Vale sitewide: quella barra sta su ogni pagina.
   ========================================================================== */
@media (max-width: 921px) {
  .ast-header-break-point .site-below-header-wrap.ast-below-header-bar,
  body .ast-below-header-bar.ast-below-header {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ==========================================================================
   41. TOAST "AGGIUNTO AL CARRELLO" - la pillola parla la nostra lingua
   --------------------------------------------------------------------------
   La notifica di ModernCart accanto al carrello flottante era una pillola
   BIANCA su sito nero: ora e' una card scura col filo d'oro e il bagliore
   di casa.
   ========================================================================== */
p.moderncart-floating-cart-button-notification,
.moderncart-add-to-cart-notification {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border: 1px solid #FFCE53 !important;
  border-radius: 20px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 14px rgba(255, 206, 83, 0.25) !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px;
}

/* ==========================================================================
   42. SLIDE-OUT: I PRODOTTI SONO I PROTAGONISTI (mobile)
   --------------------------------------------------------------------------
   Il blocco dei totali si spalmava su meta' schermo spingendo fuori i
   prodotti. Ora: la lista prodotti prende la scena (flex 1, mai sotto il
   40% dello schermo), il piede si compatta - righe totali strette, testi
   a misura - e se proprio non ci sta, scorre lui, non i prodotti.
   ========================================================================== */
@media (max-width: 921px) {
  .moderncart-panel {
    display: flex !important;
    flex-direction: column !important;
  }

  .moderncart-slide-out-cart {
    flex: 1 1 auto !important;
    min-height: 40vh !important;
    overflow-y: auto !important;
  }

  .moderncart-slide-out-footer {
    flex: 0 0 auto !important;
    max-height: 48vh;
    overflow-y: auto;
  }

  /* Righe dei totali: compatte, niente altezze gonfiate o spazi vuoti */
  .moderncart-cart-total,
  [class*="moderncart"][class*="order-summary"] {
    height: auto !important;
    min-height: 0 !important;
  }

  .moderncart-cart-total > div,
  .moderncart-cart-total tr,
  [class*="moderncart"][class*="order-summary"] > div {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    margin: 0 !important;
    min-height: 0 !important;
  }

  .moderncart-cart-total,
  .moderncart-cart-total * {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }
}

/* ==========================================================================
   43. FRECCE DELLO SLIDE-OUT - oro, mai blu
   ========================================================================== */
svg.moderncart-arrow-down-icon,
svg.moderncart-arrow-up-icon,
svg.moderncart-arrow-down-icon path,
svg.moderncart-arrow-up-icon path,
[class*="moderncart"] svg[class*="arrow"] path {
  stroke: #FFCE53 !important;
  color: #FFCE53 !important;
  fill: none !important;
}

/* ==========================================================================
   44. DOPPIO PREZZO - riga "IVA inclusa" discreta sotto il prezzo (IVA escl.)
   L'IVA esclusa resta prominente (B2B); l'inclusa e' grigia, piccola, sotto.
   Vedi inc/abm-prezzi-iva.php.
   ========================================================================== */
.abm-price-incl {
  display: block;
  margin-top: 2px;
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.3;
  color: #9aa2a6;
}

.abm-price-incl .woocommerce-Price-amount,
.abm-price-incl bdi {
  color: #9aa2a6 !important;
  font-weight: 400 !important;
}

.abm-price-incl__label {
  color: #7f868a;
}

/* Sulla scheda prodotto il prezzo e' piu' grande: la riga inclusa respira */
.single-product .abm-price-incl {
  font-size: 0.9rem;
  margin-top: 4px;
}

/* --- Doppio prezzo nel CARRELLO: 2 righe su mobile ---
   Su desktop la cella e' una tabella e la riga IVA incl. va gia' a capo (ok).
   Su mobile la cella e' flex e le due righe finivano affiancate: qui le
   impiliamo (escl. sopra, incl. sotto) e mostriamo la dicitura "IVA escl."
   solo su mobile (desktop resta com'era, senza etichetta). */
.abm-price-2l { display: block; }
.abm-price-excl__label { display: none; }

@media (max-width: 768px) {
  .abm-price-2l {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }
  .abm-price-excl__label {
    display: inline;
    color: #9aa2a6;
    font-size: 0.78rem;
    font-weight: 400;
  }
}
