/**
 * D. Store — WooCommerce CSS v3.1.0
 * Single product · Shop archive · Cart · Checkout
 *
 * NOTA TECNICA: woocommerce_content() su single product NON aggiunge
 * il wrapper .woocommerce. Tutti i selettori usano .ds3-woo-container
 * direttamente — mai .ds3-woo-container .woocommerce .
 */

/* ═══════════════════════════════════════════════════════════════════════
   LAYOUT WRAPPER
═══════════════════════════════════════════════════════════════════════ */
.ds3-woo-main {
  background: var(--ivory);
  min-height: 60vh;
  padding: 0 0 80px;
}
.ds3-woo-container {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 56px;
}

/* Breadcrumb */
.ds3-woo-container .woocommerce-breadcrumb {
  font-size: 11px;
  letter-spacing: 1.5px;
  color: var(--muted);
  padding: 20px 0 0;
  margin-bottom: 0;
  font-weight: 400;
}
.ds3-woo-container .woocommerce-breadcrumb a { color: var(--muted); transition: color .2s; }
.ds3-woo-container .woocommerce-breadcrumb a:hover { color: var(--gold); }

/* ═══════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — GRID 2 COLONNE
   Selettore diretto su div.product (senza .woocommerce in mezzo)
═══════════════════════════════════════════════════════════════════════ */
.ds3-woo-container div.product {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
  grid-template-rows: auto !important;
  gap: 0 64px !important;
  align-items: start !important;
  padding: 40px 0 0 !important;
  /* Isola il contesto di stacking — previene overlay su Chrome */
  isolation: isolate !important;
  position: relative !important;
  z-index: 0 !important;
}

/* ── Colonna 1: Galleria ── */
.ds3-woo-container div.product .woocommerce-product-gallery {
  grid-column: 1 !important;
  grid-row: 1 !important;
  /* sticky disabilitato: causava stacking context issues su Chrome */
  position: relative !important;
  top: auto !important;
  z-index: 1 !important;
  /* Contiene il flexslider all'interno della colonna */
  overflow: hidden !important;
  isolation: isolate !important;
}

/* Wrapper interno galleria: contiene flexslider */
.ds3-woo-container div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  overflow: hidden !important;
  width: 100% !important;
  display: block !important;
}

/* Immagine principale: proporzione 4:5 contenuta */
.ds3-woo-container div.product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  overflow: hidden !important;
  border-radius: 2px !important;
  background: var(--ivory-dark) !important;
  line-height: 0 !important;
  display: block !important;
  width: 100% !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery .woocommerce-product-gallery__image a {
  display: block !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  width: 100% !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  transition: transform .6s var(--ease) !important;
  /* Blocca overflow dell'immagine stessa */
  max-width: 100% !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery .woocommerce-product-gallery__image:hover img {
  transform: scale(1.03) !important;
}

/* Immagini extra della galleria: nascoste — visibili solo come thumbnails */
.ds3-woo-container div.product .woocommerce-product-gallery .woocommerce-product-gallery__image ~ .woocommerce-product-gallery__image {
  display: none !important;
}

/* Thumbnails orizzontali sotto l'immagine principale */
.ds3-woo-container div.product .woocommerce-product-gallery .flex-control-nav {
  display: flex !important;
  gap: 4px !important;
  margin-top: 4px !important;
  list-style: none !important;
  padding: 0 !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery .flex-control-nav li {
  flex: 1 !important;
  overflow: hidden !important;
  opacity: 0.55 !important;
  transition: opacity .2s !important;
  cursor: pointer !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery .flex-control-nav li:hover,
.ds3-woo-container div.product .woocommerce-product-gallery .flex-control-nav li.flex-active {
  opacity: 1 !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery .flex-control-nav img {
  width: 100% !important;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
}

/* Bottone zoom — elegante */
.ds3-woo-container div.product .woocommerce-product-gallery__trigger {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  width: 36px !important;
  height: 36px !important;
  background: rgba(253,250,246,.85) !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 10 !important;
  backdrop-filter: blur(4px) !important;
  transition: background .2s !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery__trigger:hover {
  background: var(--gold) !important;
}
.ds3-woo-container div.product .woocommerce-product-gallery__trigger img {
  width: 16px !important;
  height: 16px !important;
  aspect-ratio: unset !important;
  object-fit: contain !important;
}

/* ── Colonna 2: Info prodotto ── */
.ds3-woo-container div.product .summary.entry-summary {
  grid-column: 2 !important;
  grid-row: 1 !important;
  padding-top: 4px !important;
}

/* Categoria breadcrumb */
.ds3-woo-container div.product .posted_in {
  font-size: 9.5px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  font-weight: 500 !important;
  display: block !important;
  margin-bottom: 14px !important;
}
.ds3-woo-container div.product .posted_in a { color: var(--gold) !important; }

/* Titolo */
.ds3-woo-container div.product h1.product_title {
  font-family: var(--serif) !important;
  font-size: clamp(26px, 2.8vw, 42px) !important;
  font-weight: 300 !important;
  font-style: italic !important;
  color: var(--noir) !important;
  line-height: 1.15 !important;
  margin-bottom: 16px !important;
  letter-spacing: -.2px !important;
}

/* Rating */
.ds3-woo-container div.product .woocommerce-product-rating {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 20px !important;
}
.ds3-woo-container div.product .star-rating { color: var(--gold) !important; }
.ds3-woo-container div.product .woocommerce-review-link { font-size: 11px !important; color: var(--muted) !important; }

/* Prezzo */
.ds3-woo-container div.product .price {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  margin-bottom: 24px !important;
  flex-wrap: wrap !important;
}
.ds3-woo-container div.product .price .woocommerce-Price-amount {
  font-family: var(--serif) !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  color: var(--noir) !important;
  letter-spacing: -.5px !important;
}
.ds3-woo-container div.product .price del .woocommerce-Price-amount {
  font-size: 20px !important;
  color: var(--muted-lt) !important;
}
.ds3-woo-container div.product .price ins {
  text-decoration: none !important;
}
.ds3-woo-container div.product .price ins .woocommerce-Price-amount {
  color: var(--blush) !important;
}

/* Short description */
.ds3-woo-container div.product .woocommerce-product-details__short-description {
  border-top: 1px solid var(--ivory-dark) !important;
  border-bottom: 1px solid var(--ivory-dark) !important;
  padding: 20px 0 !important;
  margin-bottom: 28px !important;
}
.ds3-woo-container div.product .woocommerce-product-details__short-description p {
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--muted) !important;
  line-height: 1.85 !important;
  margin: 0 !important;
}

/* Form carrello */
.ds3-woo-container div.product form.cart {
  display: flex !important;
  gap: 10px !important;
  align-items: stretch !important;
  margin-bottom: 16px !important;
  flex-wrap: wrap !important;
}
.ds3-woo-container div.product form.cart .quantity {
  display: flex !important;
  align-items: center !important;
  border: 1px solid var(--ivory-dark) !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  min-width: 80px !important;
  height: 52px !important;
}
.ds3-woo-container div.product form.cart .quantity input.qty {
  width: 64px !important;
  height: 100% !important;
  text-align: center !important;
  font-family: var(--sans) !important;
  font-size: 15px !important;
  color: var(--noir) !important;
  border: none !important;
  background: transparent !important;
  -moz-appearance: textfield !important;
}
.ds3-woo-container div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
.ds3-woo-container div.product form.cart .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
}

/* Bottone Aggiungi al Carrello */
.ds3-woo-container div.product .single_add_to_cart_button,
.ds3-woo-container div.product button.single_add_to_cart_button {
  flex: 1 !important;
  min-width: 200px !important;
  height: 52px !important;
  background: var(--noir) !important;
  color: var(--ivory) !important;
  font-family: var(--sans) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 2px !important;
  cursor: pointer !important;
  transition: background .3s var(--ease) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 28px !important;
}
.ds3-woo-container div.product .single_add_to_cart_button:hover {
  background: var(--gold) !important;
  color: var(--noir) !important;
}

/* Trust micro-strip */
.ds3-woo-container div.product .cart + .product_meta::before {
  content: '🚚  Spedizione gratuita sopra €79   ·   🔄  Reso 30 giorni gratuito';
  display: block !important;
  font-size: 11.5px !important;
  color: var(--muted) !important;
  padding: 14px 0 20px !important;
  letter-spacing: .3px !important;
  border-top: 1px solid var(--ivory-dark) !important;
}

/* SKU / Meta */
.ds3-woo-container div.product .product_meta {
  font-size: 11px !important;
  color: var(--muted) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  padding-top: 6px !important;
  border-top: 1px solid var(--ivory-dark) !important;
}
.ds3-woo-container div.product .product_meta span { display: block !important; }
.ds3-woo-container div.product .product_meta a { color: var(--muted) !important; }
.ds3-woo-container div.product .product_meta a:hover { color: var(--noir) !important; opacity: 1; }

/* ── Tabs — full width ── */
.ds3-woo-container div.product .woocommerce-tabs {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  margin-top: 60px !important;
  border-top: 1px solid var(--ivory-dark) !important;
}
.ds3-woo-container div.product .woocommerce-tabs ul.tabs {
  display: flex !important;
  gap: 0 !important;
  border-bottom: 1px solid var(--ivory-dark) !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 40px !important;
}
.ds3-woo-container div.product .woocommerce-tabs ul.tabs::before { display: none !important; }
.ds3-woo-container div.product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  border: none !important;
  background: none !important;
  border-radius: 0 !important;
}
.ds3-woo-container div.product .woocommerce-tabs ul.tabs li a {
  display: block !important;
  padding: 16px 28px !important;
  font-family: var(--sans) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -1px !important;
  transition: color .2s, border-color .2s !important;
}
.ds3-woo-container div.product .woocommerce-tabs ul.tabs li.active a,
.ds3-woo-container div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--noir) !important;
  border-bottom-color: var(--gold) !important;
  opacity: 1 !important;
}
.ds3-woo-container div.product .woocommerce-tabs .panel { background: none !important; border: none !important; padding: 0 !important; }
.ds3-woo-container div.product .woocommerce-tabs .panel h2 {
  font-family: var(--serif) !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  margin-bottom: 20px !important;
  color: var(--noir) !important;
}
.ds3-woo-container div.product .woocommerce-tabs .panel p {
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--muted) !important;
  line-height: 1.85 !important;
  max-width: 720px !important;
}

/* ── Prodotti correlati — full width ── */
.ds3-woo-container div.product .related.products,
.ds3-woo-container div.product .upsells.products {
  grid-column: 1 / -1 !important;
  grid-row: 3 !important;
  margin-top: 72px !important;
  padding-top: 40px !important;
  border-top: 1px solid var(--ivory-dark) !important;
}
.ds3-woo-container div.product .related > h2,
.ds3-woo-container div.product .upsells > h2 {
  font-family: var(--serif) !important;
  font-size: clamp(22px, 2.5vw, 36px) !important;
  font-weight: 300 !important;
  font-style: italic !important;
  color: var(--noir) !important;
  margin-bottom: 32px !important;
}
/* Grid prodotti correlati */
.ds3-woo-container div.product .related ul.products,
.ds3-woo-container div.product .upsells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px 16px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ds3-woo-container div.product .related li.product,
.ds3-woo-container div.product .upsells li.product {
  background: var(--ivory) !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease) !important;
}
.ds3-woo-container div.product .related li.product:hover,
.ds3-woo-container div.product .upsells li.product:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 18px 44px rgba(8,8,8,.09) !important;
}
.ds3-woo-container div.product .related li.product .woocommerce-loop-product__link img,
.ds3-woo-container div.product .upsells li.product .woocommerce-loop-product__link img {
  width: 100% !important;
  aspect-ratio: 3/4 !important;
  object-fit: cover !important;
  background: var(--ivory-dark) !important;
  transition: transform .5s var(--ease) !important;
  display: block !important;
}
.ds3-woo-container div.product .related li.product:hover img,
.ds3-woo-container div.product .upsells li.product:hover img { transform: scale(1.04) !important; }
.ds3-woo-container div.product .related .woocommerce-loop-product__title,
.ds3-woo-container div.product .upsells .woocommerce-loop-product__title {
  font-family: var(--serif) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  font-style: italic !important;
  color: var(--noir) !important;
  padding: 14px 16px 4px !important;
  line-height: 1.3 !important;
}
.ds3-woo-container div.product .related .price,
.ds3-woo-container div.product .upsells .price {
  font-size: 13px !important;
  color: var(--muted) !important;
  padding: 0 16px 10px !important;
  display: block !important;
}
.ds3-woo-container div.product .related a.button,
.ds3-woo-container div.product .upsells a.button {
  display: block !important;
  margin: 0 !important;
  padding: 11px 16px !important;
  background: var(--ivory-warm) !important;
  border-top: 1px solid var(--ivory-dark) !important;
  border-radius: 0 !important;
  color: var(--charcoal) !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
  letter-spacing: 2.5px !important;
  text-align: center !important;
  text-transform: uppercase !important;
  transition: background .3s, color .3s !important;
}
.ds3-woo-container div.product .related a.button:hover,
.ds3-woo-container div.product .upsells a.button:hover {
  background: var(--noir) !important;
  color: var(--ivory) !important;
}
.ds3-woo-container div.product .related .onsale,
.ds3-woo-container div.product .upsells .onsale {
  background: var(--blush) !important;
  color: white !important;
  font-size: 8.5px !important;
  letter-spacing: 2px !important;
  font-weight: 700 !important;
  border-radius: 1px !important;
  padding: 5px 10px !important;
  top: 12px !important;
  left: 12px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   SHOP / ARCHIVE — .woocommerce esiste qui (shortcode wraps it)
═══════════════════════════════════════════════════════════════════════ */
.ds3-woo-container .woocommerce-products-header {
  padding: 40px 0 28px;
  border-bottom: 1px solid var(--ivory-dark);
  margin-bottom: 36px;
}
.ds3-woo-container .woocommerce-products-header__title,
.ds3-woo-container h1.woocommerce-products-header__title {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 46px);
  font-weight: 300;
  font-style: italic;
  color: var(--noir);
}
.ds3-woo-container .woocommerce-result-count {
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .5px;
  display: block;
  margin-bottom: 12px;
}
.ds3-woo-container .woocommerce-ordering select {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  color: var(--charcoal);
  border: 1px solid var(--ivory-dark);
  border-radius: 2px;
  padding: 8px 32px 8px 14px;
  background: var(--ivory);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A756E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

/* Grid prodotti archivio */
.ds3-woo-container ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 32px 20px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ds3-woo-container ul.products li.product {
  background: var(--ivory) !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease) !important;
}
.ds3-woo-container ul.products li.product:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 18px 44px rgba(8,8,8,.09) !important;
}
.ds3-woo-container ul.products li.product .woocommerce-loop-product__link img,
.ds3-woo-container ul.products li.product > a img {
  width: 100% !important;
  aspect-ratio: 3/4 !important;
  object-fit: cover !important;
  background: var(--ivory-dark) !important;
  transition: transform .5s var(--ease) !important;
  display: block !important;
}
.ds3-woo-container ul.products li.product:hover img { transform: scale(1.04) !important; }
.ds3-woo-container ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--serif) !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  font-style: italic !important;
  color: var(--noir) !important;
  padding: 16px 18px 4px !important;
  line-height: 1.3 !important;
}
.ds3-woo-container ul.products li.product .price {
  font-size: 13px !important;
  color: var(--muted) !important;
  padding: 0 18px 12px !important;
  display: block !important;
}
.ds3-woo-container ul.products li.product .price ins {
  text-decoration: none !important;
  color: var(--blush) !important;
  font-weight: 500 !important;
}
.ds3-woo-container ul.products li.product a.button,
.ds3-woo-container ul.products li.product a.add_to_cart_button {
  display: block !important;
  margin: 0 !important;
  padding: 12px 18px !important;
  background: var(--ivory-warm) !important;
  border-top: 1px solid var(--ivory-dark) !important;
  border-radius: 0 !important;
  color: var(--charcoal) !important;
  font-family: var(--sans) !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
  letter-spacing: 2.5px !important;
  text-align: center !important;
  text-transform: uppercase !important;
  transition: background .3s, color .3s !important;
  box-shadow: none !important;
}
.ds3-woo-container ul.products li.product a.button:hover,
.ds3-woo-container ul.products li.product a.add_to_cart_button:hover {
  background: var(--noir) !important;
  color: var(--ivory) !important;
  opacity: 1 !important;
}
.ds3-woo-container ul.products li.product .onsale {
  background: var(--blush) !important;
  color: white !important;
  font-size: 8.5px !important;
  letter-spacing: 2px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  border-radius: 1px !important;
  padding: 5px 10px !important;
  top: 12px !important;
  left: 12px !important;
}

/* Paginazione */
.ds3-woo-container .woocommerce-pagination {
  margin-top: 56px;
  text-align: center;
}
.ds3-woo-container .woocommerce-pagination ul {
  display: inline-flex;
  gap: 4px;
  list-style: none;
  padding: 0;
}
.ds3-woo-container .woocommerce-pagination ul li a,
.ds3-woo-container .woocommerce-pagination ul li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--ivory-dark);
  border-radius: 2px;
  font-size: 13px;
  color: var(--muted);
  transition: all .2s;
}
.ds3-woo-container .woocommerce-pagination ul li a:hover { border-color: var(--gold); color: var(--gold); opacity: 1; }
.ds3-woo-container .woocommerce-pagination ul li span.current {
  background: var(--noir);
  border-color: var(--noir);
  color: var(--ivory);
}

/* ═══════════════════════════════════════════════════════════════════════
   NOTICES
═══════════════════════════════════════════════════════════════════════ */
.ds3-woo-container .woocommerce-notices-wrapper .woocommerce-message,
.ds3-woo-container .woocommerce-notices-wrapper .woocommerce-error,
.ds3-woo-container .woocommerce-notices-wrapper .woocommerce-info,
.ds3-woo-container .woocommerce-message,
.ds3-woo-container .woocommerce-error,
.ds3-woo-container .woocommerce-info {
  border-top: 3px solid var(--gold) !important;
  background: var(--ivory-warm) !important;
  padding: 14px 20px !important;
  margin-bottom: 24px !important;
  font-size: 13px !important;
  color: var(--charcoal) !important;
  border-radius: 0 0 2px 2px !important;
  list-style: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .ds3-woo-container { padding: 0 32px; }
  .ds3-woo-container div.product {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .ds3-woo-container div.product .woocommerce-product-gallery { position: static !important; }
  .ds3-woo-container div.product .summary.entry-summary { grid-column: 1 !important; grid-row: 2 !important; }
  .ds3-woo-container div.product .woocommerce-tabs { grid-row: 3 !important; }
  .ds3-woo-container div.product .related.products,
  .ds3-woo-container div.product .upsells.products { grid-row: 4 !important; }
  .ds3-woo-container ul.products { grid-template-columns: repeat(3,1fr) !important; }
  .ds3-woo-container div.product .related ul.products,
  .ds3-woo-container div.product .upsells ul.products { grid-template-columns: repeat(3,1fr) !important; }
}
@media (max-width: 768px) {
  .ds3-woo-container { padding: 0 20px; }
  .ds3-woo-container ul.products { grid-template-columns: repeat(2,1fr) !important; gap: 16px 12px !important; }
  .ds3-woo-container div.product .related ul.products,
  .ds3-woo-container div.product .upsells ul.products { grid-template-columns: repeat(2,1fr) !important; }
  .ds3-woo-container div.product form.cart { flex-direction: column !important; }
}
