/* =========================================================================
   SINGLE PRODUCT — faithful to design/pages/v1-prodotto.html
   Structure comes from woocommerce/content-single-product.php + the
   single-product overrides. No glow, no left-border accents, no serif.
   ========================================================================= */

/* ---------- Breadcrumb (Home / Categoria / Prodotto) ---------- */
.woocommerce-breadcrumb {
  font-family:var(--font-label); font-size:0.75rem; letter-spacing:.03em; color:var(--muted);
  margin:0 0 0.375rem; padding:0.375rem 0 0.625rem;
}
.woocommerce-breadcrumb a { color:var(--muted); text-decoration:none; transition:color .2s; }
.woocommerce-breadcrumb a:hover { color:var(--red); }
:root[data-theme="dark"] .woocommerce-breadcrumb a:hover { color:var(--red-on-dark); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .woocommerce-breadcrumb a:hover { color:var(--red-on-dark); } }

/* ---------- Product top: two-column gallery | summary ---------- */
.woocommerce div.product .product-top,
.product-top { display:grid; grid-template-columns:1.05fr 1fr; gap:2.75rem; align-items:start; padding:0.5rem 0 clamp(2.125rem,5vw,3.5rem); margin:0; }

/* ---------- Gallery (left) ---------- */
.product-top .gallery { position:sticky; top:var(--sticky-top); margin:0; float:none; width:auto; }
.woocommerce div.product .product-top .woocommerce-product-gallery { width:100%; margin:0; float:none; opacity:1; }
.woocommerce div.product .product-top .woocommerce-product-gallery__wrapper { margin:0; }
/* The frame sits on the outer container: inside .flex-viewport (overflow:hidden)
   the slide's shadow would be cut square at the corners. */
.woocommerce div.product .product-top .woocommerce-product-gallery__image,
.woocommerce div.product .product-top .woocommerce-product-gallery__image--placeholder,
.woocommerce div.product .product-top .flex-viewport {
  border:1px solid var(--line); border-radius:var(--radius-l); box-shadow:var(--shadow-1);
  overflow:hidden; background:var(--surface);
}
.woocommerce div.product .product-top .flex-viewport .woocommerce-product-gallery__image {
  border:0; border-radius:0; box-shadow:none; background:transparent;
}
.woocommerce div.product .product-top .woocommerce-product-gallery__image a,
.woocommerce div.product .product-top .woocommerce-product-gallery__image img {
  display:block; width:100%; margin:0; border:0; border-radius:0; box-shadow:none;
}
.woocommerce div.product .product-top .woocommerce-product-gallery__image a { padding:0.875rem; cursor:zoom-in; }
/* zoom / lightbox trigger — styled like the mockup zoom badge */
.woocommerce div.product .product-top .woocommerce-product-gallery__trigger {
  top:0.75rem; right:0.75rem; width:2.25rem; height:2.25rem; border-radius:0.625rem;
  background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-1);
  display:flex; align-items:center; justify-content:center; opacity:.95;
}
.woocommerce div.product .product-top .woocommerce-product-gallery__trigger:hover { transform:scale(1.05); }
/* thumbnail row below the main image — the grid beats WooCommerce's width:25%+float */
.woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs {
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0.625rem;
  margin:0.75rem 0 0; padding:0; list-style:none; overflow:visible;
}
.woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs li {
  width:auto; float:none; margin:0; padding:0; list-style:none;
}
.woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs li img {
  width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; padding:0.4375rem; margin:0;
  background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-m);
  opacity:1; cursor:pointer; transition:border-color .2s, transform .18s, box-shadow .2s;
}
.woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
  border-color:var(--red); opacity:1; transform:translateY(-0.125rem); box-shadow:var(--shadow-1);
}
:root[data-theme="dark"] .woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs li img:hover,
:root[data-theme="dark"] .woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs li img.flex-active { border-color:var(--red-on-dark); }
@media (max-width:560px){
  .woocommerce div.product .product-top .woocommerce-product-gallery .flex-control-thumbs { grid-template-columns:repeat(4, minmax(0,1fr)); gap:0.5rem; }
}

/* ---------- Summary (right) ---------- */
.woocommerce div.product .product-top .summary { margin:0; float:none; width:auto; padding:0; }
.summary .pc-eyebrow {
  font-family:var(--font-label); font-size:0.6875rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--red); text-decoration:none; font-weight:500; display:inline-block; margin:0 0 0.75rem;
}
.summary .pc-eyebrow:hover { text-decoration:underline; }
:root[data-theme="dark"] .summary .pc-eyebrow { color:var(--red-on-dark); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .summary .pc-eyebrow { color:var(--red-on-dark); } }
.woocommerce div.product .product-top .summary .product_title {
  font-family:var(--font-display); font-weight:800; font-size:clamp(1.75rem,3.6vw,2.5rem);
  line-height:1.06; letter-spacing:-.02em; margin:0 0 1.125rem; padding:0; text-wrap:balance;
}
.woocommerce div.product .product-top .summary .price,
.woocommerce div.product .product-top .summary p.price {
  font-family:var(--font-display); font-weight:800; font-size:2.125rem; letter-spacing:-.02em;
  line-height:1; color:var(--ink); margin:0;
}
.woocommerce div.product .product-top .summary .price del { font-size:1.375rem; color:var(--muted); font-weight:600; }
.woocommerce div.product .product-top .summary .price ins { text-decoration:none; }
.woocommerce div.product .product-top .summary .woocommerce-product-details__short-description {
  color:var(--muted); max-width:56ch; margin:1.375rem 0 0;
}
.woocommerce div.product .product-top .summary .woocommerce-product-details__short-description p { margin:0 0 0.625rem; }
.woocommerce div.product .product-top .summary .woocommerce-product-details__short-description p:last-child { margin-bottom:0; }

/* stepper + buy actions */
.woocommerce div.product .product-top .summary form.cart { margin:1.625rem 0 0; padding:1.625rem 0 0; border-top:1px solid var(--line); }
.woocommerce div.product .product-top .summary .buy-row { display:flex; flex-wrap:wrap; align-items:center; gap:0.875rem; margin:0; }
.sar-qty { display:inline-flex; align-items:center; border:1.5px solid var(--line-strong); border-radius:0.625rem; overflow:hidden; height:3rem; }
.sar-qty__btn { width:2.75rem; height:100%; border:0; background:var(--surface); color:var(--ink); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; transition:background .18s, color .18s; }
.sar-qty__btn svg { width:1rem; height:1rem; }
.sar-qty__btn:hover { background:var(--surface-2); color:var(--red); }
.sar-qty__btn:focus-visible { outline:none; box-shadow:inset 0 0 0 2px var(--focus); }
:root[data-theme="dark"] .sar-qty__btn:hover { color:var(--red-on-dark); }
.sar-qty { background:var(--surface); }
.woocommerce .sar-qty .quantity { margin:0; height:100%; display:flex; }
/* WooCommerce leaves a right margin on .quantity and on the input: inside the
   stepper it shows as a slit of background between the field and the "+". */
.woocommerce div.product form.cart .sar-qty div.quantity { margin:0; float:none; }
.woocommerce div.product form.cart .sar-qty div.quantity .qty { margin:0; }
.woocommerce .sar-qty input.qty {
  width:3.5rem; height:3rem; border:0; border-left:1.5px solid var(--line-strong); border-right:1.5px solid var(--line-strong);
  border-radius:0; background:var(--surface); color:var(--ink); text-align:center;
  font-family:var(--font-label); font-size:0.9375rem; font-weight:500; padding:0; -moz-appearance:textfield;
}
.woocommerce .sar-qty input.qty::-webkit-outer-spin-button,
.woocommerce .sar-qty input.qty::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.woocommerce .sar-qty input.qty:focus-visible { outline:none; box-shadow:inset 0 0 0 2px var(--focus); }

.woocommerce div.product .product-top .summary .buy-actions { display:flex; flex-wrap:wrap; gap:0.75rem; margin:1rem 0 0; }
.woocommerce div.product .product-top .summary .buy-actions .button,
.woocommerce div.product .product-top .summary .buy-actions .btn { height:3rem; float:none; margin:0; }
.woocommerce div.product .product-top .summary .single_add_to_cart_button { min-width:13.125rem; }

/* meta line (Categoria: …) */
.woocommerce div.product .product-top .summary .product_meta,
.summary .meta-line { font-family:var(--font-body); font-size:0.84375rem; color:var(--muted); margin:1.5rem 0 0; border:0; padding:0; }
.summary .meta-line a, .summary .product_meta a { color:var(--red); text-decoration:none; font-weight:600; }
.summary .meta-line a:hover, .summary .product_meta a:hover { text-decoration:underline; }
:root[data-theme="dark"] .summary .meta-line a, :root[data-theme="dark"] .summary .product_meta a { color:var(--red-on-dark); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .summary .meta-line a, :root:not([data-theme="light"]) .summary .product_meta a { color:var(--red-on-dark); } }

/* onsale flash */
.woocommerce span.onsale {
  background:var(--gold); color:var(--gold-ink); font-family:var(--font-label); font-size:0.6875rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; padding:0.3125rem 0.625rem; border-radius:0.375rem; min-height:auto; line-height:1;
}

/* ---------- Tabs (Descrizione / Dati tecnici) ---------- */
.woocommerce div.product .sar-tabs { margin:clamp(2.5rem,6vw,4rem) 0 0; padding:0; }
.woocommerce div.product .sar-tabs ul.tabs {
  list-style:none; margin:0; padding:0; display:flex; gap:0.25rem; border-bottom:1px solid var(--line); flex-wrap:wrap;
}
.woocommerce div.product .sar-tabs ul.tabs::before,
.woocommerce div.product .sar-tabs ul.tabs::after { content:none; display:none; border:0; }
.woocommerce div.product .sar-tabs ul.tabs li,
.woocommerce div.product .sar-tabs ul.tabs li.active {
  margin:0; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none;
}
.woocommerce div.product .sar-tabs ul.tabs li::before,
.woocommerce div.product .sar-tabs ul.tabs li::after { content:none; display:none; border:0; }
.woocommerce div.product .sar-tabs ul.tabs li a {
  display:block; font-family:var(--font-display); font-weight:600; font-size:0.9375rem; color:var(--muted);
  padding:0.875rem 1rem; margin-bottom:-0.0625rem; border-bottom:2px solid transparent; text-decoration:none;
  transition:color .2s, border-color .2s;
}
.woocommerce div.product .sar-tabs ul.tabs li a:hover { color:var(--ink); }
.woocommerce div.product .sar-tabs ul.tabs li.active a { color:var(--red); border-bottom-color:var(--red); }
:root[data-theme="dark"] .woocommerce div.product .sar-tabs ul.tabs li.active a { color:var(--red-on-dark); border-bottom-color:var(--red-on-dark); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .woocommerce div.product .sar-tabs ul.tabs li.active a { color:var(--red-on-dark); border-bottom-color:var(--red-on-dark); } }
.woocommerce div.product .sar-tabs .wc-tab { padding:1.75rem 0 0; color:var(--muted); }
.woocommerce div.product .sar-tabs .woocommerce-Tabs-panel--description { max-width:64ch; }
.woocommerce div.product .sar-tabs .wc-tab p { margin:0 0 0.75rem; }
.woocommerce div.product .sar-tabs .wc-tab p:last-child { margin-bottom:0; }
.woocommerce div.product .sar-tabs .wc-tab > h2 { margin:0 0 0.875rem; font-family:var(--font-display); font-weight:800; font-size:1.25rem; color:var(--ink); }

/* Dati tecnici — attributes table */
.woocommerce div.product .sar-tabs .shop_attributes {
  width:100%; max-width:47.5rem; border-collapse:separate; border-spacing:0; border:1px solid var(--line);
  border-radius:var(--radius-m); overflow:hidden; margin:0; background:var(--surface);
}
.woocommerce div.product .sar-tabs .shop_attributes th,
.woocommerce div.product .sar-tabs .shop_attributes td {
  text-align:left; padding:0.8125rem 1.125rem; font-size:0.90625rem; border-bottom:1px solid var(--line); vertical-align:top;
  line-height:1.5; font-style:normal;
}
.woocommerce div.product .sar-tabs .shop_attributes tr:last-child th,
.woocommerce div.product .sar-tabs .shop_attributes tr:last-child td { border-bottom:0; }
.woocommerce div.product .sar-tabs .shop_attributes th {
  font-family:var(--font-display); font-weight:600; color:var(--ink); width:14.375rem; background:var(--surface-2);
  border-right:1px solid var(--line);
}
.woocommerce div.product .sar-tabs .shop_attributes td {
  color:var(--ink); background:transparent; font-family:var(--font-label); font-size:0.84375rem; letter-spacing:.01em;
  overflow-wrap:anywhere;
}
.woocommerce div.product .sar-tabs .shop_attributes td p { margin:0; padding:0; }
.woocommerce div.product .sar-tabs .shop_attributes td p + p { margin-top:0.375rem; }
/* Below 768px WooCommerce stacks th/td: label above, value below. */
@media (max-width:768px){
  .woocommerce div.product .sar-tabs .shop_attributes tr {
    display:block; padding:0.75rem 0.9375rem; border-bottom:1px solid var(--line);
  }
  .woocommerce div.product .sar-tabs .shop_attributes tr:last-child { border-bottom:0; }
  .woocommerce div.product .sar-tabs .shop_attributes th,
  .woocommerce div.product .sar-tabs .shop_attributes td {
    display:block; width:auto; max-width:100%; padding:0; border:0; background:transparent;
  }
  .woocommerce div.product .sar-tabs .shop_attributes th {
    font-size:0.78125rem; font-weight:600; color:var(--muted); margin-bottom:0.25rem;
  }
  .woocommerce div.product .sar-tabs .shop_attributes td { font-size:0.875rem; color:var(--ink); }
}

/* ---------- Recensioni ---------- */
.woocommerce div.product .sar-tabs #reviews { max-width:47.5rem; }
.woocommerce div.product .sar-tabs #reviews .woocommerce-Reviews-title {
  font-family:var(--font-display); font-weight:700; font-size:1.125rem; letter-spacing:-.01em;
  color:var(--ink); margin:0 0 1.125rem;
}
.woocommerce div.product .sar-tabs #reviews .woocommerce-Reviews-title:empty { display:none; }
.woocommerce div.product .sar-tabs #reviews .woocommerce-noreviews,
.woocommerce div.product .sar-tabs #reviews .woocommerce-verification-required {
  margin:0; padding:0.9375rem 1.125rem; border:1px solid var(--line); border-radius:var(--radius-m);
  background:var(--surface); color:var(--muted); font-size:0.90625rem; line-height:1.55;
}
.woocommerce div.product .sar-tabs #reviews .woocommerce-verification-required { margin-top:1rem; }

.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist {
  margin:0 0 1.5rem; padding:0; list-style:none; display:flex; flex-direction:column; gap:0.875rem;
}
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist::before,
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist::after { content:none; display:none; }
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist li { margin:0; padding:0; }
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist li .comment_container {
  display:grid; grid-template-columns:2.75rem minmax(0,1fr); gap:0.9375rem; align-items:start;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:1.125rem;
}
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist li img.avatar {
  position:static; float:none; width:2.75rem; height:2.75rem; padding:0; margin:0;
  border:1px solid var(--line); border-radius:50%; background:var(--surface-2);
}
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist li .comment-text {
  margin:0; padding:0; border:0; border-radius:0;
}
.woocommerce div.product .sar-tabs #reviews #comments ol.commentlist li .comment-text p.meta {
  margin:0 0 0.5625rem; font-size:0.8125rem; color:var(--muted);
}
.woocommerce div.product .sar-tabs #reviews .woocommerce-review__author {
  font-family:var(--font-display); font-weight:600; font-size:0.90625rem; color:var(--ink);
}
.woocommerce div.product .sar-tabs #reviews .woocommerce-review__dash { margin:0 0.4375rem; color:var(--line-strong); }
.woocommerce div.product .sar-tabs #reviews .woocommerce-review__published-date {
  font-family:var(--font-label); font-size:0.78125rem;
}
.woocommerce div.product .sar-tabs #reviews .comment-text .description { color:var(--muted); line-height:1.6; }
.woocommerce div.product .sar-tabs #reviews .comment-text .description p:last-child { margin-bottom:0; }
.woocommerce div.product .sar-tabs #reviews .star-rating {
  float:none; margin:0 0 0.5rem; font-size:0.9375rem; color:var(--gold);
}
.woocommerce div.product .sar-tabs #reviews .star-rating::before { color:var(--line-strong); }

.woocommerce div.product .sar-tabs #reviews #respond {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m);
  padding:clamp(1.125rem,3vw,1.5rem); margin:0;
}
.woocommerce div.product .sar-tabs #reviews #respond .comment-reply-title {
  display:block; font-family:var(--font-display); font-weight:700; font-size:1.0625rem; color:var(--ink); margin:0 0 0.375rem;
}
.woocommerce div.product .sar-tabs #reviews #respond .comment-notes { font-size:0.8125rem; color:var(--muted); margin:0 0 1.125rem; }
.woocommerce div.product .sar-tabs #reviews #respond .comment-form p { margin:0 0 0.9375rem; }
.woocommerce div.product .sar-tabs #reviews #respond .comment-form label {
  display:block; font-family:var(--font-display); font-weight:600; font-size:0.8125rem; color:var(--ink); margin:0 0 0.375rem;
}
.woocommerce div.product .sar-tabs #reviews #respond .comment-form-rating { margin-bottom:0.9375rem; }
.woocommerce div.product .sar-tabs #reviews #respond p.stars { margin:0; }
.woocommerce div.product .sar-tabs #reviews #respond p.stars a { color:var(--gold); }
.woocommerce div.product .sar-tabs #reviews #respond .comment-form-cookies-consent {
  display:flex; align-items:flex-start; gap:0.5625rem;
}
.woocommerce div.product .sar-tabs #reviews #respond .comment-form-cookies-consent label {
  margin:0; font-family:var(--font-body); font-weight:400; font-size:0.8125rem; color:var(--muted);
}
.woocommerce div.product .sar-tabs #reviews #respond .comment-form-cookies-consent input { width:auto; margin-top:0.125rem; }
.woocommerce div.product .sar-tabs #reviews #respond .form-submit { margin:0.25rem 0 0; }
.woocommerce div.product .sar-tabs #reviews #respond .form-submit input[type="submit"] {
  width:auto; font-family:var(--font-display); font-weight:600; font-size:0.9375rem; letter-spacing:.01em;
  background:var(--red); color:#fff; border:1.5px solid transparent; border-radius:0.625rem;
  padding:0.75rem 1.375rem; cursor:pointer; box-shadow:var(--shadow-red);
  transition:transform .18s cubic-bezier(.4,0,.2,1), box-shadow .22s ease, background .2s ease;
}
.woocommerce div.product .sar-tabs #reviews #respond .form-submit input[type="submit"]:hover {
  background:var(--red-strong); transform:translateY(-0.0625rem); box-shadow:var(--shadow-2);
}
.woocommerce div.product .sar-tabs #reviews #respond .form-submit input[type="submit"]:focus-visible {
  outline:none; box-shadow:0 0 0 4px var(--focus);
}

/* ---------- Related products ---------- */
.woocommerce div.product section.related,
.woocommerce div.product section.up-sells {
  margin:clamp(2.125rem,5vw,3.5rem) 0 0; padding:clamp(2.125rem,5vw,3.5rem) 0 0; border-top:1px solid var(--line); clear:both;
}
.woocommerce div.product section.related > h2,
.woocommerce div.product section.up-sells > h2 {
  font-family:var(--font-display); font-weight:800; font-size:clamp(1.25rem,3vw,1.75rem);
  letter-spacing:-.02em; line-height:1.1; margin:0 0 1.5rem;
}
.woocommerce div.product section.related ul.products,
.woocommerce div.product section.up-sells ul.products {
  grid-template-columns:repeat(4,1fr);
}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .woocommerce div.product .product-top, .product-top { grid-template-columns:1fr; gap:1.75rem; }
  .product-top .gallery { position:static; }
}
@media (max-width:560px){
  .woocommerce div.product .product-top .summary .buy-actions .button,
  .woocommerce div.product .product-top .summary .buy-actions .btn { flex:1 1 auto; }
}

/* Cart & shared order tables */
.woocommerce table.shop_table, .wc-block-cart-items, .wc-block-components-panel {
  border:1px solid var(--line); border-radius:var(--radius-l); background:var(--surface); box-shadow:var(--shadow-1);
}
.woocommerce table.shop_table th { font-family:var(--font-display); font-weight:700; }

