/* ==========================================================================
   SCHEDA PRODOTTO – layout, titolo e prezzo in evidenza, pulsante, blocco "Acquista" finale.
   Caricato dopo mobile.css (vedi inc/enqueue.php): qui vincono le regole sulla scheda prodotto.
   ========================================================================== */

body.single-product {
  --ls-ink: #1a1a1a;
  --ls-pink: var(--color-primary, #fb9dd1);
  --ls-pink-hover: #f584c2;
  --ls-pink-tint: #fff1f8;
  --ls-pink-line: #f7d3e7;
  --ls-muted: #6b6b6b;
}

/* ---------- Colonne (desktop): foto a sinistra, acquisto a destra ---------- */
@media (min-width: 993px) {
  body.single-product div.product {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    column-gap: clamp(32px, 4vw, 64px);
    align-items: start;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: 16px;
  }
  body.single-product div.product > .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    float: none !important;           /* WooCommerce le mette al 48% con float: nella griglia devono riempire la colonna */
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
  body.single-product div.product > .summary.entry-summary {
    grid-column: 2;
    grid-row: 1;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
  body.single-product div.product > .product-tabs-wrapper {
    grid-column: 1 / -1;
    margin-top: 3.5rem;
    padding-top: 2.5rem;
    border-top: 1px solid #eee;
  }
}

/* ---------- Titolo (H1) ---------- */
body.single-product div.product .summary .product_title.entry-title {
  font-size: clamp(1.75rem, 1.25rem + 1.4vw, 2.5rem) !important;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ls-ink);
  margin: 0 0 0.6rem;
}

/* ---------- Prezzo ---------- */
body.single-product div.product .summary p.price {
  display: flex !important;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.7rem;
  margin: 0 0 1rem;
  font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem) !important;
  font-weight: 600;
  line-height: 1.1;
  color: var(--ls-ink) !important;
  text-align: left !important;
}
body.single-product div.product .summary .price ins {
  order: 1;
  background: none;
  font-weight: 700;
  text-decoration: none;
  color: var(--ls-ink);
}
body.single-product div.product .summary .price del {
  order: 2;
  font-size: 0.6em;
  font-weight: 400;
  color: #8a8a8a;
}

/* ---------- Disponibilità ---------- */
body.single-product div.product .summary p.stock {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #1f7a3d !important;
  order: 5;
}
body.single-product div.product .summary p.stock::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}
body.single-product div.product .summary p.stock.out-of-stock {
  color: #b42318 !important;
}

/* ---------- Caratteristiche (la descrizione breve, cioè i punti elenco) ---------- */
body.single-product div.product .summary .woocommerce-product-details__short-description {
  margin: 0 0 1.1rem;
  font-size: 1rem;
  color: #333;
}
body.single-product div.product .summary .woocommerce-product-details__short-description ul {
  list-style: none;
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  line-height: 1.45;
}
body.single-product div.product .summary .woocommerce-product-details__short-description li,
body.single-product div.product .summary .woocommerce-product-details__short-description li span {
  color: #333 !important;                 /* alcune schede hanno un nero forzato dentro i punti elenco */
}
body.single-product div.product .summary .woocommerce-product-details__short-description li {
  position: relative;
  padding-left: 1.75rem;
}
body.single-product div.product .summary .woocommerce-product-details__short-description li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: var(--ls-pink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.6 6.4l2.2 2.2 4.6-5' fill='none' stroke='%231a1a1a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 62% no-repeat;
}
/* su telefono/tablet mobile.css aggiunge l'etichetta "Descrizione" sopra i punti elenco: qui sono le caratteristiche */
@media (max-width: 992px) {
  body.single-product div.product .summary .woocommerce-product-details__short-description::before {
    content: "Caratteristiche";
    font-size: 1.1rem;
  }
}

/* ---------- Carrello e pulsante ---------- */
body.single-product div.product .summary form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;                                 /* niente gap: gli elementi nascosti del modulo creerebbero spazi vuoti */
  margin: 0 0 1.5rem;
  text-align: left;
}
body.single-product div.product .summary form.cart .quantity:not(.hidden) {
  flex: 0 0 auto;
  margin: 0 12px 0 0;
}
body.single-product div.product .summary form.cart .quantity:has(> input[type="hidden"]) {
  display: none;                          /* prodotto venduto a pezzo singolo: nessun selettore di quantità */
}
body.single-product div.product .summary form.cart .quantity .qty {
  width: 76px;
  height: 100%;
  min-height: 56px;
  border: 1.5px solid #d9d9d9;
  border-radius: 999px;
  text-align: center;
  font-weight: 500;
}

body.single-product div.product .summary form.cart .single_add_to_cart_button,
.lesatis-bottom-cta .lbc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  flex: 1 1 220px;
  min-height: 56px;
  margin: 0 !important;
  padding: 0 32px;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--ls-pink) !important;
  color: var(--ls-ink) !important;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(251, 157, 209, 0.5);
  transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
}
body.single-product div.product .summary form.cart .single_add_to_cart_button::before {
  content: "\f290";                       /* icona borsa (Font Awesome) */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
body.single-product div.product .summary form.cart .single_add_to_cart_button:hover,
.lesatis-bottom-cta .lbc-btn:hover {
  background: var(--ls-pink-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(251, 157, 209, 0.6);
}
body.single-product div.product .summary form.cart .single_add_to_cart_button:active,
.lesatis-bottom-cta .lbc-btn:active {
  transform: scale(0.98);
}
body.single-product div.product .summary form.cart .single_add_to_cart_button:focus-visible,
.lesatis-bottom-cta .lbc-btn:focus-visible {
  outline: 3px solid var(--ls-ink);
  outline-offset: 3px;
}
body.single-product div.product .summary form.cart .single_add_to_cart_button.disabled,
body.single-product div.product .summary form.cart .single_add_to_cart_button:disabled {
  opacity: 0.45;
  box-shadow: none;
  cursor: not-allowed;
}
.lesatis-bottom-cta .lbc-btn.is-loading {
  opacity: 0.7;
  pointer-events: none;
}

/* prodotti con varianti (taglia/colore) */
body.single-product div.product .summary form.variations_form {
  display: block;
}
body.single-product div.product .summary form.variations_form table.variations,
body.single-product div.product .summary form.variations_form table.variations tbody,
body.single-product div.product .summary form.variations_form table.variations tr,
body.single-product div.product .summary form.variations_form table.variations th,
body.single-product div.product .summary form.variations_form table.variations td {
  display: block;
  padding: 0;
  text-align: left;
}
body.single-product div.product .summary form.variations_form table.variations {
  margin: 0 0 1rem;
}
body.single-product div.product .summary form.variations_form table.variations th.label {
  margin-bottom: 0.3rem;
  font-weight: 600;
}
body.single-product div.product .summary form.variations_form select {
  width: 100%;
  height: 52px;
  padding: 0 14px;
  border: 1.5px solid #d9d9d9;
  border-radius: 14px;
  background-color: #fff;
}
body.single-product div.product .summary form.variations_form .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

/* ---------- Dettagli (codice, categorie, tag): info collaterali, volutamente discrete ---------- */
body.single-product div.product .summary .product_meta {
  display: grid;
  gap: 0.2rem;
  margin: 0;
  padding-top: 0.9rem;
  border-top: 1px solid #f0f0f0;
  font-size: 0.78rem;
  font-style: italic;
  color: #767676;                         /* grigio più chiaro possibile che resta leggibile (contrasto 4.5:1) */
}
body.single-product div.product .summary .product_meta > span {
  display: block;
}
body.single-product div.product .summary .product_meta a {
  color: inherit;
  text-decoration: underline dotted;
  text-underline-offset: 2px;
}
body.single-product div.product .summary .product_meta a:hover {
  color: #1a1a1a;
}

/* ---------- Descrizione lunga (senza tab: vedi inc/product-cta.php) ---------- */
body.single-product .lesatis-description,
body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
  border: 0;
}
body.single-product .lesatis-description > h2,
body.single-product .woocommerce-tabs .woocommerce-Tabs-panel > h2 {
  margin: 0 0 1rem;
  font-size: 1.5rem;
  font-weight: 600;
}
body.single-product .lesatis-description p,
body.single-product .woocommerce-tabs .woocommerce-Tabs-panel p {
  margin: 0 0 1.1rem;
  font-size: 1.0625rem;
  line-height: 1.8;
  color: #333;
}

/* ---------- Blocco "Acquista" sotto la descrizione ---------- */
.lesatis-bottom-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px 28px;
  max-width: 760px;
  margin: 2.5rem auto 3rem;
  padding: clamp(20px, 3vw, 32px);
  background: var(--ls-pink-tint, #fff1f8);
  border: 1px solid var(--ls-pink-line, #f7d3e7);
  border-radius: 24px;
}
.lesatis-bottom-cta .lbc-info {
  flex: 1 1 260px;
  min-width: 0;
}
.lesatis-bottom-cta .lbc-kicker {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7a2f5c;
}
.lesatis-bottom-cta .lbc-title {
  margin: 0.2rem 0 0.4rem;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.25;
  color: #1a1a1a;
}
.lesatis-bottom-cta .lbc-price {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.1;
  color: #1a1a1a;
}
.lesatis-bottom-cta .lbc-price .price,
.lesatis-bottom-cta .lbc-price p {
  margin: 0;
  font-size: inherit;
  text-align: left;
  display: inline;
}
.lesatis-bottom-cta .lbc-price ins {
  text-decoration: none;
  font-weight: 700;
  background: none;
}
.lesatis-bottom-cta .lbc-price del {
  margin-right: 0.5rem;
  font-size: 0.65em;
  font-weight: 400;
  color: #8a8a8a;
}
.lesatis-bottom-cta .lbc-btn {
  flex: 0 1 240px;
}
.lesatis-bottom-cta .lbc-notes {
  flex: 1 0 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  font-size: 0.875rem;
  color: #444;
}
.lesatis-bottom-cta .lbc-notes p {
  margin: 0;
}
.lesatis-bottom-cta .lbc-notes [hidden] {
  display: none;
}
.lesatis-bottom-cta .lbc-help {
  color: #1a1a1a;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.lesatis-bottom-cta .lbc-help:hover {
  color: #7a2f5c;
}

/* ---------- Prodotti correlati ---------- */
body.single-product section.related.products > h2,
body.single-product section.up-sells > h2 {
  margin: 0 0 1.5rem;
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
}

/* ---------- Telefono ---------- */
@media (max-width: 600px) {
  .lesatis-bottom-cta {
    flex-direction: column;
    align-items: stretch;
    margin-inline: 0;
    text-align: center;
  }
  .lesatis-bottom-cta .lbc-info,
  .lesatis-bottom-cta .lbc-notes {
    flex: 0 0 auto;                       /* in colonna il flex-basis varrebbe come altezza */
  }
  .lesatis-bottom-cta .lbc-btn {
    flex: 0 0 auto;
    width: 100%;
  }
  .lesatis-bottom-cta .lbc-notes {
    justify-content: center;
  }
  body.single-product div.product .summary form.cart .quantity:not(.hidden) {
    flex: 1 0 100%;
    margin: 0 0 12px;
  }
  body.single-product div.product .summary form.cart .quantity .qty {
    width: 100%;
  }
}
