/* ===== archive ===== */
/* =========================================================================
   MonteSoprano — "Allevatori Editoriale"  ·  COMPITO A: Catalogo (shop) + card
   Stile applicato al MARKUP REALE di WooCommerce (ul.products / li.product).
   I token (--red, --ink, --cream, --serif, --sans, ...) sono gia' globali nel
   child theme. Solo CSS: nessun hook funzionale toccato.
   ========================================================================= */

/* ---- Fallback token (nel caso il CSS carichi prima delle var globali) ---- */
.woocommerce ul.products,
.woocommerce-page ul.products{
  --_red:var(--red,#D41119);
  --_red-hover:var(--red-hover,#B00E15);
  --_ink:var(--ink,#23211D);
  --_paper:var(--paper,#fff);
  --_border:var(--border,#E5DFD4);
  --_muted:var(--muted,#6B6459);
  --_olive:var(--olive,#6E7250);
  --_charcoal-2:var(--charcoal-2,#12100E);
  --_serif:var(--serif,'Fraunces',Georgia,serif);
  --_sans:var(--sans,'Inter',system-ui,sans-serif);
  --_ease:var(--ease,cubic-bezier(.22,1,.36,1));
  --_shadow:0 8px 26px rgba(35,33,29,.10);
}

/* =========================================================================
   1) HEADER / TITOLO ARCHIVIO  —  nasconde il page-title Woo di default
   ========================================================================= */
.woocommerce-products-header{ display:none; }
.woocommerce .woocommerce-products-header__title,
.woocommerce-page .woocommerce-products-header__title,
.woocommerce h1.page-title,
.woocommerce-page h1.page-title,
.term-description{ display:none; }

/* Result-count Woo: discreto, allineato al design */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count{
  font-family:var(--_sans);
  font-size:.78rem; letter-spacing:.04em; color:var(--_muted);
  margin:0; float:none;
}

/* =========================================================================
   2) SUB-HERO iniettato via hook (woocommerce_before_main_content /
      woocommerce_archive_description). Sezione <header class="ms-shop-hero">.
   ========================================================================= */
.ms-shop-hero{
  position:relative; overflow:hidden;
  min-height:52vh; display:flex; align-items:flex-end;
  background:var(--charcoal-2,#12100E); color:var(--cream,#F5F0E8);
  margin-bottom:clamp(28px,4vw,48px);
}
.ms-shop-hero__bg{ position:absolute; inset:0; z-index:0; }
.ms-shop-hero__bg img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:brightness(.5) contrast(1.04) saturate(.92);
}
.ms-shop-hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(18,16,14,.5) 0%,rgba(18,16,14,.25) 40%,rgba(18,16,14,.92) 100%);
}
.ms-shop-hero__inner{
  position:relative; z-index:2; width:100%;
  max-width:var(--container,1280px); margin:0 auto;
  padding:clamp(48px,8vw,110px) clamp(20px,5vw,64px) clamp(32px,5vw,56px);
}
.ms-shop-hero__eyebrow{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:#c9c2b6; display:inline-flex; align-items:center; gap:.6em;
}
.ms-shop-hero__eyebrow::before{ content:""; width:26px; height:1px; background:var(--red,#D41119); }
.ms-shop-hero h1{
  font-family:var(--serif,'Fraunces',serif); font-weight:500;
  font-size:clamp(2.4rem,6.5vw,5rem); line-height:1.02; letter-spacing:-.03em;
  margin:clamp(14px,2vw,22px) 0 0; color:var(--cream,#F5F0E8);
}
.ms-shop-hero h1 em{ font-style:italic; font-weight:400; }
.ms-shop-hero__sub{
  font-family:var(--sans,'Inter',sans-serif);
  max-width:52ch; margin:clamp(14px,2vw,22px) 0 0;
  font-size:clamp(.98rem,1.2vw,1.12rem); line-height:1.6; color:#d9d2c6;
}
.ms-shop-hero__sub b{ color:var(--cream,#F5F0E8); font-weight:600; }

/* =========================================================================
   3) ORDINAMENTO Woo  (.woocommerce-ordering select)  — pill del prototipo
   ========================================================================= */
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering{ float:none; margin:0 0 clamp(20px,3vw,32px); }

.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select{
  font-family:var(--sans,'Inter',sans-serif);
  font-size:.82rem; font-weight:600; color:var(--ink,#23211D);
  background-color:var(--paper,#fff);
  border:1px solid var(--border,#E5DFD4); border-radius:2px;
  padding:.6em 2.2em .6em .9em; cursor:pointer; line-height:1.2;
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2323211D' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .7em center;
  transition:border-color .25s var(--ease,ease), box-shadow .25s;
}
.woocommerce .woocommerce-ordering select:hover{ border-color:var(--ink,#23211D); }
.woocommerce .woocommerce-ordering select:focus{
  outline:none; border-color:var(--ink,#23211D);
  box-shadow:0 0 0 2px rgba(35,33,29,.08);
}

/* Toolbar: result-count a sx, ordering a dx */
.woocommerce .woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce .woocommerce-result-count{ display:inline-block; vertical-align:middle; }

/* =========================================================================
   4) GRIGLIA  —  ul.products  (4 / 3 / 2 / 1 col, gap, niente float Woo)
   ========================================================================= */
.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce ul.products.columns-1,
.woocommerce ul.products.columns-2,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-4,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-6{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  list-style:none; margin:0 0 clamp(40px,6vw,72px); padding:0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content:none !important; display:none !important; } /* clearfix Woo off */

@media (max-width:1024px){
  .woocommerce ul.products,.woocommerce-page ul.products,
  .woocommerce ul.products[class*="columns-"]{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:820px){
  .woocommerce ul.products,.woocommerce-page ul.products,
  .woocommerce ul.products[class*="columns-"]{ grid-template-columns:repeat(2,1fr); gap:14px; }
}
@media (max-width:420px){
  .woocommerce ul.products,.woocommerce-page ul.products,
  .woocommerce ul.products[class*="columns-"]{ grid-template-columns:1fr; }
}

/* =========================================================================
   5) CARD  —  li.product (== .ms-card)
   ========================================================================= */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  float:none !important; width:auto !important; margin:0 !important; padding:0;
  clear:none !important; text-align:left;
  position:relative;
  display:flex; flex-direction:column;
  background:var(--paper,#fff);
  border:1px solid var(--border,#E5DFD4);
  border-radius:2px; overflow:hidden;
  transition:transform .6s var(--ease,cubic-bezier(.22,1,.36,1)),
             box-shadow .6s var(--ease,cubic-bezier(.22,1,.36,1));
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-6px);
  box-shadow:var(--_shadow,0 8px 26px rgba(35,33,29,.10));
}

/* --- Immagine 1:1 cover --- */
.woocommerce ul.products li.product a.ms-card__img{
  position:relative; display:block;
  aspect-ratio:1/1; overflow:hidden;
}
.woocommerce ul.products li.product a.ms-card__img img{
  width:100%; height:100%; object-fit:cover; display:block; margin:0;
  transition:transform 1s var(--ease,cubic-bezier(.22,1,.36,1));
}
.woocommerce ul.products li.product:hover a.ms-card__img img{ transform:scale(1.07); }

/* --- Badge angolo --- */
.woocommerce ul.products li.product .ms-card__tag{
  position:absolute; top:12px; left:12px; z-index:2;
  font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--cream,#F5F0E8); background:rgba(18,16,14,.72);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  padding:.42em .7em; border-radius:2px;
}

/* --- Corpo card --- */
.woocommerce ul.products li.product .ms-card__b{
  display:flex; flex-direction:column; flex:1; padding:18px;
}

/* --- Categoria (uppercase olive) --- */
.woocommerce ul.products li.product .ms-card__cat{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--olive,#6E7250);
}

/* --- Nome (Fraunces) --- */
.woocommerce ul.products li.product h3.ms-card__t,
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--serif,'Fraunces',serif); font-weight:600;
  font-size:1.14rem; line-height:1.12; letter-spacing:-.01em;
  color:var(--ink,#23211D);
  margin:.4em 0 .5em; padding:0;
}
.woocommerce ul.products li.product h3.ms-card__t a{
  color:inherit; text-decoration:none;
  transition:color .25s var(--ease,ease);
}
.woocommerce ul.products li.product h3.ms-card__t a:hover{ color:inherit; text-decoration:underline; text-underline-offset:3px; }

/* --- Riga meta peso/kg --- */
.woocommerce ul.products li.product .ms-card__meta{
  font-family:var(--sans,'Inter',sans-serif);
  font-size:.76rem; line-height:1.45; color:var(--muted,#6B6459);
  margin-top:auto;
}
.woocommerce ul.products li.product .ms-card__meta .amount,
.woocommerce ul.products li.product .ms-card__meta .woocommerce-Price-amount{
  color:inherit; font-family:inherit; font-weight:600; /* prezzo al kg NON rosso, e' riferimento */
}

/* =========================================================================
   6) FOOTER card: prezzo (rosso) + bottone add-to-cart (btn primario)
   ========================================================================= */
.woocommerce ul.products li.product .ms-card__f{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-top:14px;
}

/* --- PREZZO in --red (Woo: .price / .amount) --- */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .ms-card__f .price{
  margin:0; padding:0;
  font-family:var(--serif,'Fraunces',serif); font-weight:600;
  font-size:1.32rem; line-height:1; color:var(--red,#D41119);
}
.woocommerce ul.products li.product .price .amount,
.woocommerce ul.products li.product .price .woocommerce-Price-amount{
  color:var(--red,#D41119); font-family:inherit; font-weight:600;
}
/* prezzo barrato (sale): tenue */
.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price del .amount{
  color:var(--muted,#6B6459); font-size:.72em; font-weight:400; opacity:.85;
}
.woocommerce ul.products li.product .price ins{ text-decoration:none; }

/* --- BOTTONE aggiungi = btn primario rosso (.add_to_cart_button / .button) --- */
.woocommerce ul.products li.product a.button.add_to_cart_button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product a.added_to_cart{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.82rem;
  letter-spacing:.01em; line-height:1;
  padding:.85em 1.25em; margin:0;
  background:var(--red,#D41119); color:#fff;
  border:1px solid transparent; border-radius:2px; cursor:pointer;
  transition:transform .5s var(--ease,cubic-bezier(.22,1,.36,1)),
             background .3s ease;
  will-change:transform; white-space:nowrap;
}
.woocommerce ul.products li.product a.button.add_to_cart_button:hover,
.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product a.added_to_cart:hover{
  background:var(--red-hover,#B00E15); color:#fff; transform:translateY(-2px);
}
/* stato loading/added Woo */
.woocommerce ul.products li.product a.button.loading{ opacity:.75; }
.woocommerce ul.products li.product a.button.loading::after{
  font-family:WooCommerce; content:"\e01c";
  display:inline-block; margin-left:.4em; animation:ms-spin 1s linear infinite;
}
.woocommerce ul.products li.product a.button.added::after{
  font-family:WooCommerce; content:"\e017"; margin-left:.4em;
}
@keyframes ms-spin{ to{ transform:rotate(360deg); } }

/* link "Visualizza carrello" che Woo appende dopo l'add: discreto, non rosso pieno */
.woocommerce ul.products li.product a.added_to_cart.wc-forward{
  background:transparent; color:var(--ink,#23211D);
  border-color:var(--border,#E5DFD4);
}
.woocommerce ul.products li.product a.added_to_cart.wc-forward:hover{
  background:var(--ink,#23211D); color:var(--cream,#F5F0E8);
}

/* prodotti a varianti / "Seleziona opzioni": stesso look, apre la PDP */
.woocommerce ul.products li.product a.button.product_type_variable{ background:var(--ink,#23211D); }
.woocommerce ul.products li.product a.button.product_type_variable:hover{ background:var(--charcoal-2,#12100E); }

/* Sale flash Woo, se presente, riusa il badge look */
.woocommerce ul.products li.product .onsale{
  position:absolute; top:12px; right:12px; left:auto; z-index:2; min-height:0; min-width:0;
  margin:0; padding:.42em .7em; border-radius:2px;
  font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; line-height:1;
  background:var(--red,#D41119); color:#fff;
}

/* =========================================================================
   7) PAGINAZIONE Woo — coerente col design
   ========================================================================= */
.woocommerce nav.woocommerce-pagination ul{ border:none; margin-top:8px; }
.woocommerce nav.woocommerce-pagination ul li{ border:none; margin:0 3px; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.85rem;
  min-width:40px; padding:.55em .7em; border-radius:2px;
  border:1px solid var(--border,#E5DFD4); background:var(--paper,#fff);
  color:var(--ink,#23211D); transition:background .25s,border-color .25s,color .25s;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{ border-color:var(--ink,#23211D); }
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--ink,#23211D); color:var(--cream,#F5F0E8); border-color:var(--ink,#23211D);
}

/* =========================================================================
   8) Responsive fine
   ========================================================================= */
@media (max-width:820px){
  .woocommerce ul.products li.product .ms-card__b{ padding:14px; }
  .woocommerce ul.products li.product h3.ms-card__t{ font-size:1rem; }
  .woocommerce ul.products li.product .price{ font-size:1.18rem; }
  .woocommerce ul.products li.product .ms-card__f{ flex-wrap:wrap; }
  .woocommerce ul.products li.product a.button.add_to_cart_button{ padding:.75em 1em; }
}
@media (prefers-reduced-motion:reduce){
  .woocommerce ul.products li.product,
  .woocommerce ul.products li.product a.ms-card__img img,
  .woocommerce ul.products li.product a.button{ transition-duration:.01ms !important; }
}

/* ===== single ===== */
/* =========================================================================
   MonteSoprano — COMPITO B · SINGLE PRODUCT (PDP)
   "Allevatori Editoriale" su markup WooCommerce default. SOLO CSS.
   Nessun override di template: si stilano le classi reali di Woo.
   Token (--red, --ink, --cream, --cream-card, --paper, --border, --muted,
   --charcoal-2, --olive, --ochre) sono gia' globali nel child theme.
   ========================================================================= */

:root{
  --ms-serif:'Fraunces',Georgia,serif;
  --ms-sans:'Inter',system-ui,-apple-system,sans-serif;
  --ms-ease:cubic-bezier(.22,1,.36,1);
  --ms-shadow:0 8px 26px rgba(35,33,29,.10);
  --ms-red-hover:#B00E15;
}

/* ---------- shell pagina ---------- */
.single-product.woocommerce div.product,
.single-product .woocommerce div.product{
  font-family:var(--ms-sans);
  color:var(--ink);
  max-width:1280px;
  margin:0 auto;
  padding:clamp(24px,4vw,48px) clamp(20px,5vw,64px) 0;
}

/* ---------- breadcrumb discreto ---------- */
.woocommerce-breadcrumb{
  max-width:1280px;
  margin:clamp(18px,3vw,32px) auto clamp(20px,3vw,34px);
  padding:0 clamp(20px,5vw,64px);
  font-family:var(--ms-sans);
  font-size:.78rem;
  letter-spacing:.02em;
  color:var(--muted);
}
.woocommerce-breadcrumb a{
  color:var(--muted);
  text-decoration:none;
  transition:color .3s var(--ms-ease);
}
.woocommerce-breadcrumb a:hover{ color:var(--ink,#23211D); }
.woocommerce-breadcrumb .breadcrumb-separator,
.woocommerce-breadcrumb > *:not(a){ opacity:.9; }

/* =========================================================================
   LAYOUT 2 COLONNE — gallery sx ~55% / .summary dx
   Woo di default mette gallery e summary come figli diretti di div.product.
   ========================================================================= */
.single-product div.product{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  grid-template-areas:"gallery summary";
  column-gap:clamp(32px,5vw,76px);
  row-gap:clamp(28px,4vw,44px);
  align-items:start;
}
.single-product div.product .woocommerce-product-gallery{
  grid-area:gallery;
  float:none;
  width:100%!important;
  margin:0;
  position:sticky;
  top:100px;
}
.single-product div.product .summary,
.single-product div.product .entry-summary{
  grid-area:summary;
  float:none;
  width:100%!important;
  margin:0;
}
/* onsale badge, tabs, related, upsells: a tutta larghezza sotto la griglia */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .woocommerce-product-gallery + .woocommerce-tabs,
.single-product div.product .up-sells,
.single-product div.product .related.products{
  grid-column:1 / -1;
}

/* =========================================================================
   GALLERIA
   ========================================================================= */
.woocommerce-product-gallery{ position:relative; }
.woocommerce-product-gallery__wrapper{ margin:0; }
.woocommerce-product-gallery .woocommerce-product-gallery__image,
.woocommerce-product-gallery__image{
  border:1px solid var(--border);
  border-radius:2px;
  overflow:hidden;
  background:var(--cream-card);
}
.woocommerce-product-gallery .woocommerce-product-gallery__image a,
.woocommerce-product-gallery__image a{ display:block; }
.woocommerce-product-gallery img{
  display:block;
  width:100%;
  height:auto;
  border-radius:0;
}
/* thumbnails squadrate */
.woocommerce-product-gallery .flex-control-thumbs{
  display:flex;
  gap:12px;
  margin:12px 0 0;
  padding:0;
  list-style:none;
}
.woocommerce-product-gallery .flex-control-thumbs li{
  flex:1;
  margin:0;
  list-style:none;
}
.woocommerce-product-gallery .flex-control-thumbs img{
  border:1px solid var(--border);
  border-radius:2px;
  aspect-ratio:1;
  object-fit:cover;
  opacity:.6;
  cursor:pointer;
  transition:opacity .35s var(--ms-ease),border-color .35s var(--ms-ease),transform .5s var(--ms-ease);
}
.woocommerce-product-gallery .flex-control-thumbs img:hover{
  opacity:.85;
  transform:translateY(-2px);
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs .flex-active img{
  opacity:1;
  border-color:var(--ink);
}
/* onsale badge editoriale */
.single-product .woocommerce-product-gallery span.onsale,
.single-product div.product span.onsale{
  position:absolute;
  top:16px;
  left:16px;
  z-index:2;
  min-height:0;
  min-width:0;
  margin:0;
  padding:8px 14px;
  border-radius:2px;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--ms-serif);
  font-weight:600;
  font-size:.76rem;
  letter-spacing:.01em;
  line-height:1;
}
/* zoom lightbox trigger discreto */
.woocommerce-product-gallery__trigger{
  top:16px;
  right:16px;
}

/* =========================================================================
   SUMMARY (colonna destra)
   ========================================================================= */
.single-product div.product .summary .product_title,
.single-product div.product .summary h1.product_title{
  font-family:var(--ms-serif);
  font-weight:600;
  font-size:clamp(2.2rem,5.2vw,3.6rem);
  line-height:1.03;
  letter-spacing:-.025em;
  color:var(--ink);
  margin:0 0 .35em;
}

/* prezzo grande in rosso, Fraunces */
.single-product div.product .summary .price,
.single-product div.product .summary p.price{
  font-family:var(--ms-serif);
  font-weight:600;
  font-size:clamp(2.3rem,4.6vw,3.1rem);
  line-height:1;
  color:var(--red);
  margin:.1em 0 .2em;
}
.single-product div.product .summary .price .amount,
.single-product div.product .summary .price ins,
.single-product div.product .summary .price ins .amount{
  color:var(--red);
  font-weight:600;
  text-decoration:none;
}
/* prezzo barrato (offerta) sobrio */
.single-product div.product .summary .price del,
.single-product div.product .summary .price del .amount{
  color:var(--muted);
  font-size:.5em;
  font-weight:500;
  opacity:.75;
}
.single-product div.product .summary .price ins{
  background:none;
}
/* suffisso "/kg" ecc. piccolo e muted */
.single-product div.product .summary .price small,
.single-product div.product .summary .price .woocommerce-price-suffix{
  font-family:var(--ms-sans);
  font-weight:500;
  font-size:.9rem;
  color:var(--muted);
  margin-left:.35em;
}

/* short description muted */
.single-product div.product .summary .woocommerce-product-details__short-description{
  color:var(--muted);
  font-family:var(--ms-sans);
  font-size:1rem;
  line-height:1.7;
  max-width:50ch;
  margin:1.4em 0 .4em;
}
.single-product div.product .summary .woocommerce-product-details__short-description p{
  margin:0 0 .8em;
}

/* rating discreto */
.single-product div.product .summary .woocommerce-product-rating{
  margin:.2em 0 1em;
  font-size:.85rem;
  color:var(--muted);
}
.single-product div.product .summary .woocommerce-product-rating .star-rating span{
  color:var(--ochre);
}

/* meta prodotto (SKU, categorie, tag) editoriale */
.single-product div.product .summary .product_meta{
  margin-top:1.6em;
  padding-top:1.2em;
  border-top:1px solid var(--border);
  font-size:.8rem;
  color:var(--muted);
  line-height:1.9;
}
.single-product div.product .summary .product_meta a{
  color:var(--ink);
  text-decoration:none;
  transition:color .3s var(--ms-ease);
}
.single-product div.product .summary .product_meta a:hover{ color:var(--ink,#23211D); }
.single-product div.product .summary .product_meta > span{
  display:block;
}

/* =========================================================================
   FORM CART — quantity + add to cart
   ========================================================================= */
.single-product div.product form.cart{
  display:flex;
  align-items:stretch;
  gap:14px;
  flex-wrap:wrap;
  margin:2em 0 1.4em;
}
.single-product div.product form.cart::before,
.single-product div.product form.cart::after{ content:none; }

/* quantity box squadrato */
.single-product div.product form.cart .quantity{
  display:flex;
  align-items:stretch;
  margin:0;
  border:1px solid var(--border);
  border-radius:2px;
  background:var(--paper);
  overflow:hidden;
}
.single-product div.product form.cart .quantity .qty{
  width:64px;
  height:auto;
  min-height:58px;
  text-align:center;
  border:none;
  background:transparent;
  font-family:var(--ms-sans);
  font-weight:600;
  font-size:1rem;
  color:var(--ink);
  padding:0 6px;
  -moz-appearance:textfield;
}
.single-product div.product form.cart .quantity .qty:focus{ outline:none; }
.single-product div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity .qty::-webkit-inner-spin-button{
  -webkit-appearance:none; margin:0;
}
/* eventuali bottoni +/- di plugin quantita' */
.single-product div.product form.cart .quantity .plus,
.single-product div.product form.cart .quantity .minus{
  width:52px;
  border:none;
  background:transparent;
  color:var(--ink);
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  transition:background .3s var(--ms-ease);
}
.single-product div.product form.cart .quantity .plus:hover,
.single-product div.product form.cart .quantity .minus:hover{
  background:var(--cream);
}

/* bottone add-to-cart: rosso, grande, a tutta larghezza restante */
.single-product div.product form.cart .single_add_to_cart_button,
.single-product div.product form.cart button.single_add_to_cart_button{
  flex:1;
  min-width:230px;
  min-height:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6em;
  padding:0 1.6em;
  border:none;
  border-radius:2px;
  background:var(--red);
  color:#fff;
  font-family:var(--ms-sans);
  font-weight:600;
  font-size:1rem;
  letter-spacing:.01em;
  text-transform:none;
  cursor:pointer;
  transition:transform .5s var(--ms-ease),background .3s var(--ms-ease);
  will-change:transform;
}
.single-product div.product form.cart .single_add_to_cart_button:hover{
  background:var(--ms-red-hover);
  transform:translateY(-2px);
}
.single-product div.product form.cart .single_add_to_cart_button:disabled,
.single-product div.product form.cart .single_add_to_cart_button.disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}

/* prodotti variabili: select attributi puliti */
.single-product div.product form.cart .variations{
  width:100%;
  margin:0 0 1.2em;
  border-collapse:collapse;
}
.single-product div.product form.cart .variations th,
.single-product div.product form.cart .variations td{
  padding:.5em 0;
  vertical-align:middle;
  text-align:left;
}
.single-product div.product form.cart .variations th.label{
  font-family:var(--ms-sans);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  padding-right:16px;
}
.single-product div.product form.cart .variations select{
  font:inherit;
  font-weight:500;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--border);
  border-radius:2px;
  padding:.7em 2.2em .7em .9em;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2323211D' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .8em center;
}
.single-product div.product form.cart .single_variation .price{
  font-family:var(--ms-serif);
  font-weight:600;
  color:var(--red);
}
.single-product div.product .woocommerce-variation-add-to-cart{
  display:flex;
  gap:14px;
  align-items:stretch;
  flex-wrap:wrap;
  width:100%;
}
.single-product div.product .reset_variations{
  align-self:center;
  font-size:.8rem;
  color:var(--muted);
}

@media(max-width:640px){
  .single-product div.product form.cart{ flex-direction:column; }
  .single-product div.product form.cart .quantity{ justify-content:space-between; }
  .single-product div.product form.cart .quantity .qty{ flex:1; width:auto; }
  .single-product div.product form.cart .single_add_to_cart_button{ width:100%; }
}

/* =========================================================================
   TABS come sezioni/accordion pulite
   ========================================================================= */
.single-product div.product .woocommerce-tabs{
  margin-top:clamp(48px,7vw,88px);
  padding-top:clamp(32px,4vw,48px);
  border-top:1px solid var(--border);
}
.woocommerce-tabs ul.tabs.wc-tabs{
  margin:0 0 clamp(24px,3vw,36px);
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.woocommerce-tabs ul.tabs.wc-tabs::before,
.woocommerce-tabs ul.tabs.wc-tabs::after{ content:none; }
.woocommerce-tabs ul.tabs.wc-tabs li{
  margin:0;
  padding:0;
  border:1px solid var(--border);
  border-radius:2px;
  background:var(--paper);
  overflow:visible;
}
.woocommerce-tabs ul.tabs.wc-tabs li::before,
.woocommerce-tabs ul.tabs.wc-tabs li::after{ content:none; display:none; }
.woocommerce-tabs ul.tabs.wc-tabs li a{
  display:block;
  padding:.7em 1.2em;
  font-family:var(--ms-sans);
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.04em;
  color:var(--ink);
  text-decoration:none;
  transition:color .25s var(--ms-ease),background .25s var(--ms-ease);
}
.woocommerce-tabs ul.tabs.wc-tabs li.active{
  background:var(--ink);
  border-color:var(--ink);
}
.woocommerce-tabs ul.tabs.wc-tabs li.active a{ color:var(--cream); }
.woocommerce-tabs .woocommerce-Tabs-panel{
  color:var(--muted);
  font-family:var(--ms-sans);
  font-size:.95rem;
  line-height:1.7;
  max-width:70ch;
}
.woocommerce-tabs .woocommerce-Tabs-panel h2,
.woocommerce-tabs .woocommerce-Tabs-panel h3{
  font-family:var(--ms-serif);
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--ink);
  margin:0 0 .6em;
}
/* tabella attributi (Informazioni aggiuntive) */
.woocommerce-tabs table.shop_attributes{
  border:1px solid var(--border);
  border-radius:2px;
  border-collapse:collapse;
  overflow:hidden;
  margin:0;
}
.woocommerce-tabs table.shop_attributes th,
.woocommerce-tabs table.shop_attributes td{
  border-bottom:1px solid var(--border);
  padding:.85em 1.1em;
  font-size:.9rem;
}
.woocommerce-tabs table.shop_attributes th{
  font-family:var(--ms-sans);
  font-weight:600;
  color:var(--ink);
  background:var(--cream-card);
  text-align:left;
  letter-spacing:.02em;
}
.woocommerce-tabs table.shop_attributes td{
  color:var(--muted);
  font-style:normal;
}
.woocommerce-tabs table.shop_attributes tr:last-child th,
.woocommerce-tabs table.shop_attributes tr:last-child td{ border-bottom:none; }

/* =========================================================================
   RELATED / UPSELLS — titolo Fraunces + griglia card coerente
   ========================================================================= */
.single-product .related.products,
.single-product .up-sells.upsells{
  margin-top:clamp(56px,8vw,104px);
  padding-top:clamp(40px,5vw,64px);
  border-top:1px solid var(--border);
}
.single-product .related.products > h2,
.single-product .up-sells.upsells > h2{
  font-family:var(--ms-serif);
  font-weight:600;
  font-size:clamp(1.8rem,4vw,2.8rem);
  letter-spacing:-.02em;
  color:var(--ink);
  margin:0 0 clamp(28px,4vw,44px);
}
.single-product .related.products ul.products,
.single-product .up-sells.upsells ul.products{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,248px));
  justify-content:center;
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}
.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after,
.single-product .up-sells.upsells ul.products::before,
.single-product .up-sells.upsells ul.products::after{ content:none; }

.single-product ul.products li.product{
  width:auto!important;
  margin:0!important;
  padding:0;
  float:none;
  background:var(--paper);
  border:1px solid var(--border);
  border-radius:2px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:none;
  transition:transform .6s var(--ms-ease),box-shadow .6s var(--ms-ease);
}
.single-product ul.products li.product:hover{
  transform:translateY(-6px);
  box-shadow:var(--ms-shadow);
}
.single-product ul.products li.product > a img,
.single-product ul.products li.product img{
  margin:0;
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:0;
}
.single-product ul.products li.product .woocommerce-loop-product__link{
  display:block;
}
.single-product ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--ms-serif);
  font-weight:600;
  font-size:1.14rem;
  line-height:1.12;
  color:var(--ink);
  padding:16px 18px 0;
  margin:0;
}
.single-product ul.products li.product .price{
  font-family:var(--ms-serif);
  font-weight:600;
  font-size:1.3rem;
  color:var(--red)!important;
  padding:0 18px;
  margin:.35em 0 0;
}
.single-product ul.products li.product .price del,
.single-product ul.products li.product .price del .amount{
  color:var(--muted);
  font-size:.7em;
  font-weight:500;
}
.single-product ul.products li.product .price ins{ background:none; text-decoration:none; }
.single-product ul.products li.product span.onsale{
  position:absolute;
  top:12px;
  left:12px;
  min-height:0;
  min-width:0;
  margin:0;
  padding:.42em .7em;
  border-radius:2px;
  background:rgba(18,16,14,.72);
  color:var(--cream);
  font-family:var(--ms-sans);
  font-weight:600;
  font-size:.6rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  line-height:1;
}
.single-product ul.products li.product{ position:relative; }

/* bottone card = quadratino rosso "+" */
.single-product ul.products li.product .button,
.single-product ul.products li.product a.add_to_cart_button,
.single-product ul.products li.product a.added_to_cart{
  margin:14px 18px 18px;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 1.1em;
  border:none;
  border-radius:2px;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--ms-sans);
  font-weight:600;
  font-size:.85rem;
  letter-spacing:.02em;
  text-transform:none;
  cursor:pointer;
  transition:background .3s var(--ms-ease),transform .4s var(--ms-ease);
}
.single-product ul.products li.product .button:hover,
.single-product ul.products li.product a.add_to_cart_button:hover{
  background:var(--red);
  transform:translateY(-2px);
}
.single-product ul.products li.product a.added_to_cart{
  background:var(--red);
  margin-top:0;
}

@media(max-width:820px){
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products{ grid-template-columns:1fr 1fr; }
}
@media(max-width:420px){
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products{ grid-template-columns:1fr; }
}

/* =========================================================================
   NOTICES woo — sobri e coerenti (non li rimuoviamo, li stiliamo)
   ========================================================================= */
.single-product .woocommerce-message,
.single-product .woocommerce-info,
.single-product .woocommerce-error{
  border-radius:2px;
  border-top:3px solid var(--red);
  background:var(--cream-card);
  color:var(--ink);
  font-family:var(--ms-sans);
  font-size:.9rem;
}
.single-product .woocommerce-message .button,
.single-product .woocommerce-info .button{
  background:var(--red);
  color:#fff;
  border-radius:2px;
}

/* =========================================================================
   RESPONSIVE — stack colonne su mobile/tablet
   ========================================================================= */
@media(max-width:820px){
  .single-product div.product{
    grid-template-columns:1fr;
    grid-template-areas:
      "gallery"
      "summary";
    row-gap:clamp(24px,6vw,40px);
  }
  .single-product div.product .woocommerce-product-gallery{
    position:static;
    top:auto;
  }
}
@media(max-width:640px){
  .single-product div.product .summary .woocommerce-product-details__short-description{
    max-width:none;
  }
}

/* ===== cartcheckout ===== */
/* ==========================================================================
   MonteSoprano — COMPITO C · CART + CHECKOUT (solo CSS)
   Stila il markup Woo di default per avvicinarlo ai prototipi
   carrello.html / checkout.html. Token gia' globali nel child theme.
   NON tocca hook/markup: solo presentazione.
   ========================================================================== */

/* fallback token (nel caso il file venga caricato isolato) */
:root{
  --red:#D41119; --red-ink:#9A0B10; --red-hover:#B00E15;
  --ink:#23211D; --cream:#F5F0E8; --cream-card:#FBF8F2; --paper:#fff;
  --border:#E5DFD4; --muted:#6B6459;
  --charcoal-2:#12100E; --ochre:#C8873A; --olive:#6E7250;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
  --shadow:0 8px 26px rgba(35,33,29,.10);
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ==========================================================================
   0 · BASE COMUNE CART/CHECKOUT
   ========================================================================== */
.woocommerce-cart,
.woocommerce-checkout{ background:var(--cream); color:var(--ink); }

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content{
  max-width:1280px; margin-left:auto; margin-right:auto;
  padding-left:clamp(20px,5vw,64px); padding-right:clamp(20px,5vw,64px);
}

/* titoli pagina in Fraunces */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-cart h1, .woocommerce-checkout h1{
  font-family:var(--serif); font-weight:600; letter-spacing:-.02em;
  color:var(--ink); line-height:1.05;
}

/* PREZZI sempre rossi in serif (regola brand) */
.woocommerce-cart .woocommerce .amount,
.woocommerce-checkout .woocommerce .amount,
.woocommerce-cart .price,
.woocommerce-checkout .price{
  font-family:var(--serif); font-weight:600; color:var(--red);
}
/* ma NON l'ammontare dentro select/label spedizione (resta leggibile) */
.woocommerce-shipping-methods .amount{ color:var(--red); }

/* ---- notices on-brand (message / info / error) ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.wc-block-components-notice-banner{
  font-family:var(--sans); font-size:.9rem; line-height:1.5;
  border:1px solid var(--border); border-left:3px solid var(--olive);
  border-radius:2px; background:var(--cream-card); color:var(--ink);
  padding:15px 18px; box-shadow:none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{
  color:var(--olive); top:1em;
}
.woocommerce-error{ border-left-color:var(--red); }
.woocommerce-error::before{ color:var(--red); }
.woocommerce-message .button,
.woocommerce-info .button{
  background:var(--ink); color:var(--paper); border-radius:2px;
  font-family:var(--sans); font-weight:600; box-shadow:none;
}

/* ==========================================================================
   1 · BOTTONI (base condivisa .btn-primary style)
   ========================================================================== */
.woocommerce-cart .button,
.woocommerce-checkout .button,
.woocommerce-cart button.button,
.woocommerce-checkout button.button,
.woocommerce-cart input.button,
.woocommerce-checkout input.button{
  font-family:var(--sans); font-weight:600; font-size:.92rem;
  border-radius:2px; border:1px solid transparent; cursor:pointer;
  padding:.95em 1.6em; line-height:1.2; letter-spacing:.01em;
  transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s;
  box-shadow:none;
}
.woocommerce-cart .button:hover,
.woocommerce-checkout .button:hover{ transform:translateY(-2px); }

/* CTA primarie rosse: checkout, place order, applica coupon */
.wc-proceed-to-checkout .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.button,
#place_order,
.woocommerce-checkout #payment #place_order{
  background:var(--red); color:#fff; border-color:var(--red);
}
.wc-proceed-to-checkout .checkout-button:hover,
#place_order:hover{ background:var(--red-hover); border-color:var(--red-hover); color:#fff; }

/* bottoni secondari (aggiorna carrello, applica coupon) = scuri */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .coupon .button,
.woocommerce-checkout .coupon .button,
.woocommerce-cart button[name="apply_coupon"]{
  background:var(--ink); color:var(--paper); border-color:var(--ink);
}
.woocommerce-cart button[name="update_cart"]:hover,
.woocommerce-cart .coupon .button:hover{ background:var(--charcoal-2); color:var(--paper); }
/* update_cart disabilitato (nessuna modifica) */
.woocommerce-cart button[name="update_cart"][disabled],
.woocommerce-cart button[name="update_cart"]:disabled{
  opacity:.4; cursor:not-allowed;
}

/* ==========================================================================
   2 · CARRELLO — layout 2 colonne (tabella | totali)
   ========================================================================== */
.woocommerce-cart .woocommerce{
  display:grid;
  grid-template-columns:1.6fr .9fr;
  gap:clamp(28px,4vw,56px);
  align-items:start;
}
/* form tabella occupa la colonna sx; i totali la dx */
.woocommerce-cart form.woocommerce-cart-form{ grid-column:1; min-width:0; }
.woocommerce-cart .cart-collaterals{ grid-column:2; }
/* notices a tutta larghezza sopra la griglia */
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper{ grid-column:1 / -1; }

/* ---- tabella carrello pulita ---- */
.woocommerce-cart table.cart{
  width:100%; border:none; border-collapse:collapse;
  margin:0; background:transparent;
}
.woocommerce-cart table.cart thead{
  border-bottom:1px solid var(--border);
}
.woocommerce-cart table.cart thead th{
  font-family:var(--sans); font-weight:600; font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  text-align:left; padding:0 0 16px; border:none; background:transparent;
}
.woocommerce-cart table.cart tbody td{
  padding:24px 14px 24px 0; border:none;
  border-bottom:1px solid var(--border);
  vertical-align:middle; background:transparent;
}
.woocommerce-cart table.cart tbody tr:last-child td{ border-bottom:1px solid var(--border); }

/* thumbnail squadrata */
.woocommerce-cart table.cart td.product-thumbnail{ width:110px; padding-left:0; }
.woocommerce-cart table.cart td.product-thumbnail img{
  width:96px; height:96px; object-fit:cover;
  border-radius:2px; border:1px solid var(--border); background:var(--cream-card);
  display:block;
}

/* nome prodotto Fraunces */
.woocommerce-cart table.cart td.product-name{ font-size:1rem; }
.woocommerce-cart table.cart td.product-name a{
  font-family:var(--serif); font-weight:600; font-size:1.18rem;
  color:var(--ink); line-height:1.15; text-decoration:none;
}
.woocommerce-cart table.cart td.product-name a:hover{ color:var(--ink,#23211D); }
/* variazioni / meta riga */
.woocommerce-cart table.cart td.product-name .variation,
.woocommerce-cart table.cart td.product-name dl.variation{
  font-size:.82rem; color:var(--muted); margin-top:.35em;
}

/* prezzo unitario + subtotale riga in rosso serif */
.woocommerce-cart table.cart td.product-price .amount,
.woocommerce-cart table.cart td.product-subtotal .amount{
  font-family:var(--serif); font-weight:600; color:var(--red); font-size:1.1rem;
}
.woocommerce-cart table.cart td.product-subtotal{ font-size:1.05rem; white-space:nowrap; }

/* intestazioni colonne allineate a dx per prezzi/subtotale */
.woocommerce-cart table.cart th.product-price,
.woocommerce-cart table.cart th.product-subtotal,
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal{ text-align:right; }

/* ---- stepper quantita' ---- */
.woocommerce-cart table.cart td.product-quantity{ width:130px; }
.woocommerce-cart .quantity{
  display:inline-flex; align-items:center;
  border:1px solid var(--border); border-radius:2px;
  background:var(--paper); overflow:hidden;
}
.woocommerce-cart .quantity input.qty{
  width:56px; height:40px; border:none; text-align:center;
  font-family:var(--sans); font-weight:600; font-size:.95rem; color:var(--ink);
  background:var(--paper); -moz-appearance:textfield; padding:0;
}
.woocommerce-cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart .quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.woocommerce-cart .quantity input.qty:focus{ outline:none; }

/* ---- rimuovi (x) ---- */
.woocommerce-cart table.cart td.product-remove{ width:44px; padding-right:0; }
.woocommerce-cart table.cart td.product-remove a.remove{
  display:grid; place-items:center; width:34px; height:34px; margin:0;
  border:1px solid var(--border); border-radius:2px;
  color:var(--muted)!important; font-size:1.1rem; font-weight:400; line-height:1;
  background:var(--paper)!important;
  transition:background .3s,color .3s,border-color .3s;
}
.woocommerce-cart table.cart td.product-remove a.remove:hover{
  background:var(--red)!important; border-color:var(--red); color:#fff!important;
}

/* ---- riga azioni (coupon + aggiorna) ---- */
.woocommerce-cart table.cart td.actions{
  padding:22px 0 0; border-bottom:none; text-align:right;
}
.woocommerce-cart table.cart td.actions .coupon{ float:left; display:flex; gap:8px; }
.woocommerce-cart table.cart td.actions .coupon label{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
}
.woocommerce-cart table.cart td.actions .coupon input#coupon_code{
  height:48px; padding:0 1em; font:inherit; font-size:.9rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--border); border-radius:2px;
  min-width:180px;
}
.woocommerce-cart table.cart td.actions .coupon input#coupon_code:focus{
  outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(35,33,29,.07);
}

/* ==========================================================================
   3 · CARRELLO — pannello riepilogo (.cart_totals)
   ========================================================================== */
.woocommerce-cart .cart-collaterals{ width:100%!important; float:none; }
.woocommerce-cart .cart-collaterals .cart_totals{
  width:100%!important; float:none; margin:0;
  position:sticky; top:96px;
}
.woocommerce-cart .cart_totals h2{
  font-family:var(--serif); font-weight:600; font-size:1.5rem;
  letter-spacing:-.02em; color:var(--ink); margin:0 0 4px;
}

/* box riepilogo cream-card + border + shadow */
.woocommerce-cart .cart_totals table.shop_table{
  background:var(--cream-card); border:1px solid var(--border); border-radius:2px;
  box-shadow:var(--shadow); border-collapse:separate;
  padding:clamp(22px,2.4vw,30px); width:100%; margin:12px 0 0;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  border:none; padding:12px 0; font-family:var(--sans); font-size:.95rem;
  vertical-align:top; background:transparent;
}
.woocommerce-cart .cart_totals table.shop_table th{
  font-weight:500; color:var(--muted); text-align:left; width:42%;
}
.woocommerce-cart .cart_totals table.shop_table td{ text-align:right; }
.woocommerce-cart .cart_totals table.shop_table td .amount{
  font-family:var(--serif); font-weight:600; color:var(--ink);
}
/* righe separate da hairline */
.woocommerce-cart .cart_totals .cart-subtotal th,
.woocommerce-cart .cart_totals .cart-subtotal td,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals th,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td{
  border-bottom:1px solid var(--border);
}
/* riga TOTALE evidenziata, valore rosso grande */
.woocommerce-cart .cart_totals .order-total th{
  font-family:var(--serif); font-weight:600; font-size:1.15rem; color:var(--ink);
  padding-top:20px;
}
.woocommerce-cart .cart_totals .order-total td{ padding-top:20px; }
.woocommerce-cart .cart_totals .order-total td strong .amount,
.woocommerce-cart .cart_totals .order-total .amount{
  font-family:var(--serif); font-weight:600; font-size:1.7rem; color:var(--red);
  line-height:1;
}

/* metodi di spedizione dentro totali */
.woocommerce-cart .cart_totals .woocommerce-shipping-methods{ list-style:none; margin:0; padding:0; }
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li{
  margin:0 0 8px; display:flex; align-items:baseline; gap:8px; text-align:left;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li:last-child{ margin-bottom:0; }
.woocommerce-cart .cart_totals .woocommerce-shipping-methods label{
  font-size:.9rem; color:var(--ink); cursor:pointer;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods input[type="radio"]{ accent-color:var(--red); }
.woocommerce-cart .cart_totals .shipping-calculator-button{
  color:var(--muted); text-decoration:underline; text-underline-offset:2px; font-size:.85rem;
}
.woocommerce-cart .cart_totals .shipping-calculator-button:hover{ color:var(--ink); }

/* messaggio spedizione gratis (barra) se presente come free-shipping notice */
.woocommerce-cart .woocommerce-shipping-totals .free-shipping,
.woocommerce-cart .cart_totals .woocommerce-shipping-methods .free-shipping{
  color:var(--olive); font-weight:600;
}

/* bottone Procedi al checkout: full width rosso */
.woocommerce-cart .wc-proceed-to-checkout{ padding:18px 0 0; margin:0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  display:block; width:100%; text-align:center;
  font-size:.98rem; padding:1.05em 1.6em;
}

/* ==========================================================================
   4 · CHECKOUT — layout 2 colonne (dati | riepilogo sticky)
   ========================================================================== */
.woocommerce-checkout form.checkout.woocommerce-checkout{
  display:grid;
  grid-template-columns:1.35fr .9fr;
  gap:clamp(24px,3.4vw,54px);
  align-items:start;
}
.woocommerce-checkout form.checkout #customer_details{ grid-column:1; min-width:0; }
.woocommerce-checkout form.checkout #order_review,
.woocommerce-checkout form.checkout h3#order_review_heading{ grid-column:2; }
.woocommerce-checkout form.checkout #order_review{ position:sticky; top:78px; }
.woocommerce-checkout form.checkout h3#order_review_heading{ margin:0; }
/* coupon toggle + login notice a tutta larghezza sopra */
.woocommerce-checkout form.checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-checkout form.checkout .woocommerce-form-login,
.woocommerce-checkout form.checkout .woocommerce-form-coupon{ grid-column:1 / -1; }

/* #customer_details colonne interne: annulla il 2-col nativo di Woo */
.woocommerce-checkout #customer_details.col2-set{ width:100%; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{
  width:100%; float:none; padding:0;
}

/* ---- card sezioni (billing / shipping / additional) ---- */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields{
  background:var(--paper); border:1px solid var(--border); border-radius:2px;
  box-shadow:var(--shadow);
  padding:clamp(20px,2.6vw,32px); margin:0 0 16px;
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading{
  font-family:var(--serif); font-weight:600; font-size:1.28rem;
  letter-spacing:-.02em; color:var(--ink); margin:0 0 20px; line-height:1.1;
}

/* ---- campi input/label puliti 48px ---- */
.woocommerce-checkout .form-row{
  padding:0; margin:0 0 14px; display:flex; flex-direction:column;
}
.woocommerce-checkout .form-row label{
  font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.02em; color:var(--ink); margin:0 0 7px;
}
.woocommerce-checkout .form-row label .required{ color:var(--red); border:none; text-decoration:none; }
.woocommerce-checkout .form-row label .optional{ color:var(--muted); font-weight:400; }

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row .select2-selection,
.woocommerce-checkout .form-row select,
.woocommerce-checkout #order_comments{
  width:100%; min-height:48px; font-family:var(--sans); font-size:.95rem;
  color:var(--ink); background:var(--cream-card);
  border:1px solid var(--border); border-radius:2px; padding:.85em 1em;
  transition:border-color .25s,box-shadow .25s; box-shadow:none;
}
.woocommerce-checkout .form-row textarea{ min-height:96px; line-height:1.5; }
.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder{ color:#a8a196; }
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout #order_comments:focus{
  outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(35,33,29,.07);
}
/* validazione */
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection{ border-color:var(--red); }
.woocommerce-checkout .form-row.woocommerce-validated input.input-text{ border-color:var(--olive); }

/* select2 (paese/provincia) allineato ai campi */
.woocommerce-checkout .select2-container .select2-selection--single{
  height:48px; display:flex; align-items:center; border-radius:2px;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{ height:46px; }
.woocommerce-checkout .select2-dropdown{
  border:1px solid var(--border); border-radius:2px;
}
.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:var(--ink); color:var(--paper);
}

/* checkbox "spedisci a indirizzo diverso" / crea account */
.woocommerce-checkout .woocommerce-shipping-fields h3 label,
.woocommerce-checkout .form-row.create-account label{
  display:flex; align-items:center; gap:10px; font-family:var(--serif);
  font-size:1.28rem; font-weight:600; cursor:pointer;
}
.woocommerce-checkout input[type="checkbox"]{ accent-color:var(--ink); width:18px; height:18px; }

/* ---- guest-friendly: login/coupon discreti ---- */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle{ margin:0 0 16px; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  background:var(--cream-card); border-left-color:var(--muted); color:var(--muted);
  font-size:.85rem;
}
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .woocommerce-form-coupon{
  background:var(--paper); border:1px solid var(--border); border-radius:2px;
  padding:clamp(18px,2.4vw,26px); margin:0 0 16px;
}

/* ==========================================================================
   5 · CHECKOUT — #order_review (riepilogo dx sticky)
   ========================================================================== */
.woocommerce-checkout #order_review{
  background:var(--cream-card); border:1px solid var(--border); border-radius:2px;
  box-shadow:var(--shadow); padding:clamp(22px,2.4vw,30px);
}
/* tabella riepilogo prodotti */
.woocommerce-checkout #order_review table.shop_table{
  border:none; border-collapse:collapse; width:100%; margin:0;
  background:transparent;
}
.woocommerce-checkout #order_review table.shop_table thead th{
  font-family:var(--sans); font-weight:600; font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  text-align:left; padding:0 0 12px; border:none; border-bottom:1px solid var(--border);
}
.woocommerce-checkout #order_review table.shop_table thead th.product-total{ text-align:right; }
.woocommerce-checkout #order_review table.shop_table tbody td{
  padding:14px 0; border:none; border-top:1px solid var(--border);
  vertical-align:top; font-size:.9rem;
}
.woocommerce-checkout #order_review table.shop_table tbody tr:first-child td{ border-top:none; }
.woocommerce-checkout #order_review .product-name{
  font-family:var(--serif); font-weight:600; font-size:1rem; color:var(--ink); line-height:1.2;
}
.woocommerce-checkout #order_review .product-name .product-quantity{
  font-family:var(--sans); font-weight:600; font-size:.78rem; color:var(--muted);
}
.woocommerce-checkout #order_review td.product-total{ text-align:right; white-space:nowrap; }
.woocommerce-checkout #order_review td.product-total .amount{
  font-family:var(--serif); font-weight:600; color:var(--red);
}

/* piede totali (subtotale / spedizione / totale) */
.woocommerce-checkout #order_review table.shop_table tfoot th,
.woocommerce-checkout #order_review table.shop_table tfoot td{
  border:none; border-top:1px solid var(--border); padding:11px 0;
  font-family:var(--sans); font-size:.9rem; background:transparent;
}
.woocommerce-checkout #order_review table.shop_table tfoot th{
  font-weight:500; color:var(--muted); text-align:left;
}
.woocommerce-checkout #order_review table.shop_table tfoot td{ text-align:right; }
.woocommerce-checkout #order_review tfoot .cart-subtotal .amount,
.woocommerce-checkout #order_review tfoot .shipping .amount{
  font-family:var(--serif); font-weight:600; color:var(--ink);
}
/* riga totale finale: valore rosso grande */
.woocommerce-checkout #order_review tfoot .order-total th{
  font-family:var(--serif); font-weight:600; font-size:1.15rem; color:var(--ink);
  padding-top:16px;
}
.woocommerce-checkout #order_review tfoot .order-total td{ padding-top:16px; }
.woocommerce-checkout #order_review tfoot .order-total .amount{
  font-family:var(--serif); font-weight:600; font-size:1.6rem; color:var(--red); line-height:1;
}
.woocommerce-checkout #order_review tfoot .order-total small.includes_tax{
  display:block; font-family:var(--sans); font-weight:400; font-size:.68rem; color:var(--muted);
}
/* metodi spedizione nel riepilogo */
.woocommerce-checkout #order_review #shipping_method{ list-style:none; margin:0; padding:0; }
.woocommerce-checkout #order_review #shipping_method li{ margin:0 0 6px; }
.woocommerce-checkout #order_review #shipping_method label{ font-size:.88rem; color:var(--ink); cursor:pointer; }
.woocommerce-checkout #order_review #shipping_method input[type="radio"]{ accent-color:var(--red); }

/* ---- #payment metodi stilizzati (radio) ---- */
.woocommerce-checkout #payment{
  background:transparent; border-radius:0; margin-top:20px;
}
.woocommerce-checkout #payment ul.payment_methods{
  border:none; padding:0; margin:0; list-style:none;
  display:flex; flex-direction:column; gap:12px;
}
.woocommerce-checkout #payment ul.payment_methods li{
  border:1px solid var(--border); border-radius:2px; background:var(--paper);
  padding:15px 16px; transition:border-color .25s,background .25s;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){
  border-color:var(--ink); background:var(--cream-card); box-shadow:inset 0 0 0 1px var(--ink);
}
.woocommerce-checkout #payment ul.payment_methods li label{
  font-family:var(--sans); font-weight:600; font-size:.92rem; color:var(--ink);
  cursor:pointer; display:inline-flex; align-items:center; gap:8px;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]{ accent-color:var(--red); }
.woocommerce-checkout #payment ul.payment_methods li img{
  display:inline-block; max-height:24px; width:auto; margin-left:6px;
}
.woocommerce-checkout #payment div.payment_box{
  background:var(--cream-card); border:1px solid var(--border); border-radius:2px;
  color:var(--muted); font-size:.84rem; line-height:1.5; padding:14px 16px; margin:12px 0 0;
}
.woocommerce-checkout #payment div.payment_box::before{
  border-bottom-color:var(--border);
}

/* privacy + terms */
.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{
  font-size:.82rem; color:var(--muted); margin:16px 0;
}
.woocommerce-checkout #payment .woocommerce-privacy-policy-text a,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a{
  color:var(--ink); text-decoration:underline; text-underline-offset:2px;
}

/* ---- #place_order rosso grande ---- */
.woocommerce-checkout #payment #place_order{
  display:block; width:100%; text-align:center; margin-top:8px;
  font-size:1rem; padding:1.1em 1.6em;
}

/* ==========================================================================
   6 · RESPONSIVE — stack colonne, riepilogo compatto
   ========================================================================== */
@media(max-width:960px){
  .woocommerce-cart .woocommerce{ grid-template-columns:1fr; gap:8px; }
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals{ grid-column:1; }
  .woocommerce-cart .cart-collaterals .cart_totals{ position:static; margin-top:32px; }
}
@media(max-width:920px){
  .woocommerce-checkout form.checkout.woocommerce-checkout{ grid-template-columns:1fr; }
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-checkout form.checkout h3#order_review_heading{ grid-column:1; }
  .woocommerce-checkout form.checkout #order_review{ position:static; }
}
@media(max-width:640px){
  /* tabella carrello -> righe a blocchi impilati */
  .woocommerce-cart table.cart thead{ display:none; }
  .woocommerce-cart table.cart tbody tr{
    display:grid; grid-template-columns:76px 1fr auto;
    grid-template-areas:
      "thumb name remove"
      "thumb price price"
      "thumb qty subtotal";
    gap:6px 14px; align-items:center;
    padding:20px 0; border-bottom:1px solid var(--border);
  }
  .woocommerce-cart table.cart tbody td{
    padding:0; border:none!important; display:block;
  }
  .woocommerce-cart table.cart td.product-remove{ grid-area:remove; justify-self:end; }
  .woocommerce-cart table.cart td.product-thumbnail{ grid-area:thumb; width:auto; }
  .woocommerce-cart table.cart td.product-thumbnail img{ width:76px; height:76px; }
  .woocommerce-cart table.cart td.product-name{ grid-area:name; }
  .woocommerce-cart table.cart td.product-price{ grid-area:price; text-align:left; }
  .woocommerce-cart table.cart td.product-price::before{
    content:"Prezzo "; font-family:var(--sans); font-size:.72rem; color:var(--muted); font-weight:400;
  }
  .woocommerce-cart table.cart td.product-quantity{ grid-area:qty; width:auto; }
  .woocommerce-cart table.cart td.product-subtotal{ grid-area:subtotal; text-align:right; align-self:center; }
  .woocommerce-cart table.cart td.actions{
    display:block; grid-template-columns:none; padding-top:18px;
  }
  .woocommerce-cart table.cart td.actions .coupon{ float:none; margin-bottom:12px; }
  .woocommerce-cart table.cart td.actions .coupon input#coupon_code{ flex:1; min-width:0; }

  /* checkout: input full, riepilogo compatto */
  .woocommerce-checkout .woocommerce-billing-fields,
  .woocommerce-checkout .woocommerce-shipping-fields,
  .woocommerce-checkout .woocommerce-additional-fields,
  .woocommerce-checkout #order_review{ padding:20px; }
}

/* ============ QA FIXES WooCommerce — 2026-07-18 ============ */
/* 2.25 mantieni 2 colonne catalogo fino a 380px (coerente col prototipo) */
@media(min-width:381px) and (max-width:520px){
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:1fr 1fr!important}
}
/* 2.26 correlati/upsell a 3 col su tablet + badge onsale uniforme */
@media(max-width:1024px){
  .woocommerce .related.products ul.products,.woocommerce .up-sells ul.products{grid-template-columns:repeat(3,1fr)}
}
.woocommerce span.onsale,.ms-card .onsale{background:rgba(18,16,14,.72);color:#fff;box-shadow:none}
/* 2.29 label "Totale" sul subtotale riga carrello su mobile (due prezzi rossi vicini) */
@media(max-width:640px){
  .woocommerce-cart table.cart td.product-subtotal::before{content:"Totale ";font-size:.72rem;color:var(--muted,#6B6459);font-weight:400}
}


/* ---- Barra filtri categoria (pill) — coerente desktop/mobile ---- */
.ms-shopfilters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px;padding:0;list-style:none}
.ms-fpill{font-family:var(--sans,'Inter',sans-serif);font-size:.82rem;font-weight:600;letter-spacing:.02em;
  padding:.62em 1.15em;border:1px solid var(--border,#E5DFD4);border-radius:999px;color:var(--ink,#23211D);
  background:var(--paper,#fff);text-decoration:none;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.ms-fpill:hover{border-color:var(--ink,#23211D);background:var(--cream,#F5F0E8);color:var(--ink,#23211D)}
.ms-fpill.is-active{background:var(--ink,#23211D);color:var(--cream,#F5F0E8);border-color:var(--ink,#23211D)}
@media(max-width:640px){
  .ms-shopfilters{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px;
    scrollbar-width:none;-ms-overflow-style:none;margin-left:-4px;padding-left:4px}
  .ms-shopfilters::-webkit-scrollbar{display:none}
  .ms-fpill{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center}
}


/* ======= DESIGN COHERENCE WooCommerce — 2026-07-18 ======= */
/* Bottone "Aggiungi al carrello" del catalogo = icona quadrata ink "+"
   (era una pill rossa piena accanto al prezzo rosso = doppia macchia rossa). */
.woocommerce ul.products li.product .button.add_to_cart_button{
  min-width:44px;width:44px;height:44px;padding:0;border:none;border-radius:2px;
  background:var(--ink,#23211D);color:transparent!important;font-size:0;line-height:0;
  display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
  transition:background .3s,transform .4s cubic-bezier(.22,1,.36,1)}
.woocommerce ul.products li.product .button.add_to_cart_button::before{
  content:"+";color:var(--cream,#F5F0E8);font-size:1.35rem;line-height:1}
.woocommerce ul.products li.product .button.add_to_cart_button:hover{
  background:var(--red,#D41119);transform:rotate(90deg)}
/* stato "aggiunto": il link Visualizza carrello resta leggibile (non quadrato) */
.woocommerce ul.products li.product .added_to_cart{
  font-family:var(--sans);font-size:.72rem;font-weight:600;color:var(--red,#D41119);
  text-decoration:underline;margin-left:6px;width:auto;height:auto;background:none}



/* ============================================================
   CONTENUTO SEMPRE VISIBILE (2026-07-18) — il reveal lasciava
   il contenuto nascosto durante lo scroll = spazi vuoti su desktop.
   Ora tutto visibile subito (hover/transizioni restano).
   ============================================================ */
[data-reveal]{opacity:1!important;transform:none!important}
.mask>span{transform:none!important}
[data-reveal],.mask>span{transition:none!important}

/* ===== FIX bottone aggiungi: quadrato INK con "+" (forzato) ===== */
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.button.add_to_cart_button{
  width:46px!important;height:46px!important;min-width:46px!important;padding:0!important;
  background:#23211D!important;border:none!important;border-radius:2px!important;
  font-size:0!important;color:transparent!important;position:relative!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;overflow:hidden;
  box-shadow:none!important;transition:background .3s,transform .4s cubic-bezier(.22,1,.36,1)}
.woocommerce ul.products li.product a.add_to_cart_button::after{
  content:"+"!important;color:#F5F0E8!important;font-family:'Inter',system-ui,sans-serif!important;
  font-size:1.5rem!important;font-weight:400!important;line-height:1;
  position:absolute;inset:0;display:grid;place-items:center}
.woocommerce ul.products li.product a.add_to_cart_button:hover{background:#D41119!important;transform:rotate(90deg)}
.woocommerce ul.products li.product a.add_to_cart_button.loading::after{opacity:.4}
.woocommerce ul.products li.product a.added_to_cart{
  width:auto!important;height:auto!important;background:none!important;color:#D41119!important;
  font-size:.72rem!important;font-weight:600;text-decoration:underline;margin-left:8px;border-radius:0!important}


/* ====== WOOCOMMERCE CONSISTENCY LAYER (finale) ====== */
/* ==========================================================================
   MonteSoprano — woocommerce-consistency.css
   "Allevatori Editoriale" · foglio UNICO di coerenza WooCommerce.
   Consolida Compito A (card unica) + Compito B (single product) +
   Compito C (carrello/checkout). Solo CSS, nessun cambio markup.
   Caricare DOPO woocommerce.css cosi' da vincere per ordine sorgente.
   Ordine: variabili/utility -> card unica -> archivio/shop -> single
           -> carrello -> checkout. Selettori Woo reali, alta specificita'.

   ------------------------------------------------------------------------
   5 DECISIONI-CHIAVE DI COERENZA
   ------------------------------------------------------------------------
   1. UNA sola ricetta card, applicata ai 3 markup (home `.card`, shop
      `.ms-card`, loop Woo nativo `li.product`) via selettori ad alta
      specificita' e misure prese da variabili `--ms-card-*` uniche:
      le card sono visivamente IDENTICHE e responsive allo stesso modo.
   2. GERARCHIA PREZZO unica: ogni prezzo e' serif Fraunces in `--red`;
      la meta "prezzo/kg" resta `--muted` (riferimento, non call-to-action).
   3. CONTROLLI FORM normalizzati su un modulo unico: 46px per stepper
      quantita' (PDP + carrello) e bottone add-to-cart PDP; 48px per i
      campi del checkout (font 16px = niente zoom iOS).
   4. BREAKPOINT a 3 fasce coerenti: mobile <=600, tablet 601-1024,
      desktop >=1025. I layout a 2 colonne (PDP, carrello, checkout) sono
      desktop-only e IMPILANO <=1024; le griglie di card scalano 4/3/2/1;
      la tabella carrello diventa "carte" solo <=600.
   5. SEMANTICA BOTTONI unica: azione primaria/acquisto = rosso pieno
      (`--red` -> `--red-hover`, lift); azioni secondarie/utility
      (aggiungi-da-card, aggiorna, coupon) = scuro `--ink` -> rosso in
      hover. Tutto raggio 2px, easing `cubic-bezier(.22,1,.36,1)`.
   ========================================================================== */


/* ==========================================================================
   0 · VARIABILI / UTILITY
   Fallback dei token globali (gia' definiti in ms-tokens.css): il file resta
   auto-sufficiente anche se caricato da solo.
   ========================================================================== */
:root{
  --red:#D41119;
  --red-hover:#B00E15;
  --red-ink:#9A0B10;
  --ink:#23211D;
  --cream:#F5F0E8;
  --cream-card:#FBF8F2;
  --paper:#ffffff;
  --border:#E5DFD4;
  --muted:#6B6459;
  --olive:#6E7250;
  --ochre:#C8873A;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow:0 8px 26px rgba(35,33,29,.10);
  --shadow-hover:0 18px 40px rgba(35,33,29,.13);
}


/* ==========================================================================
   1 · CARD PRODOTTO UNICA (Compito A)
   Ricetta unica per: HOME `.card` / SHOP `.ms-card` / loop Woo `li.product`.
   img 1:1 cover r2px · cat .68rem uppercase olive · nome Fraunces 1.14rem ·
   meta .76rem muted · prezzo Fraunces 1.32rem --red · footer flex-end gap10 ·
   btn quadrato 46px ink "+" (hover rosso + rotate90) · border 1 --border ·
   bg --paper · hover lift + ombra.
   ========================================================================== */

/* ---- misure della ricetta: una sola sorgente ---- */
.card,
.ms-card,
.woocommerce ul.products li.product{
  --ms-card-radius:2px;
  --ms-card-pad:18px;
  --ms-card-btn:46px;
  --ms-card-shadow-hover:var(--shadow-hover,0 18px 40px rgba(35,33,29,.13));
  --ms-card-ease:var(--ease,cubic-bezier(.22,1,.36,1));
}

/* 1.1 · Contenitore card */
.card,
.ms-card,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  position:relative;
  display:flex; flex-direction:column;
  float:none !important; width:auto !important; margin:0 !important; clear:none !important;
  text-align:left;
  background:var(--paper,#fff);
  border:1px solid var(--border,#E5DFD4);
  border-radius:var(--ms-card-radius);
  overflow:hidden;
  box-shadow:none;
  transition:transform .6s var(--ms-card-ease),
             box-shadow .6s var(--ms-card-ease);
}
.card:hover,
.ms-card:hover,
.woocommerce ul.products li.product:hover{
  transform:translateY(-6px);
  box-shadow:var(--ms-card-shadow-hover);
}

/* 1.2 · Immagine 1:1 cover, zoom su hover */
.card__img,
.ms-card__img,
.woocommerce ul.products li.product a.ms-card__img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a.woocommerce-loop-product__link{
  position:relative; display:block;
  aspect-ratio:1/1; overflow:hidden;
  border-radius:0;
  background:var(--cream-card,#FBF8F2);
}
.card__img img,
.ms-card__img img,
.woocommerce ul.products li.product a.ms-card__img img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img,
.woocommerce ul.products li.product > a img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail{
  width:100%; height:100%; object-fit:cover; display:block; margin:0;
  border-radius:0;
  transition:transform 1s var(--ms-card-ease);
}
.card:hover .card__img img,
.ms-card:hover .ms-card__img img,
.woocommerce ul.products li.product:hover a.ms-card__img img,
.woocommerce ul.products li.product:hover a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product:hover a.woocommerce-loop-product__link img,
.woocommerce ul.products li.product:hover > a img{
  transform:scale(1.07);
}

/* 1.3 · Badge angolo (tag categoria / onsale) */
.card__tag,
.ms-card__tag,
.woocommerce ul.products li.product .ms-card__tag,
.woocommerce ul.products li.product .onsale{
  position:absolute; top:12px; left:12px; right:auto; z-index:2;
  min-height:0; min-width:0; margin:0;
  font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; line-height:1;
  color:var(--cream,#F5F0E8); background:rgba(18,16,14,.72);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  padding:.42em .7em; border-radius:2px;
}
.woocommerce ul.products li.product .onsale{
  left:auto; right:12px; background:var(--red,#D41119);
  -webkit-backdrop-filter:none; backdrop-filter:none;
}

/* 1.4 · Corpo card */
.card__b,
.ms-card__b,
.woocommerce ul.products li.product .ms-card__b{
  display:flex; flex-direction:column; flex:1 1 auto;
  padding:var(--ms-card-pad);
}
/* fallback loop Woo NATIVO (senza .ms-card__b) */
.woocommerce ul.products li.product:not(:has(.ms-card__b)) > a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product:not(:has(.ms-card__b)) > a.woocommerce-loop-product__link{
  padding:0;
}
.woocommerce ul.products li.product:not(:has(.ms-card__b)){
  padding-bottom:0;
}
.woocommerce ul.products li.product:not(:has(.ms-card__b)) .woocommerce-loop-product__title,
.woocommerce ul.products li.product:not(:has(.ms-card__b)) > .price,
.woocommerce ul.products li.product:not(:has(.ms-card__b)) > .button{
  margin-left:var(--ms-card-pad); margin-right:var(--ms-card-pad);
}

/* 1.5 · Categoria */
.card__cat,
.ms-card__cat,
.woocommerce ul.products li.product .ms-card__cat{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--olive,#6E7250);
  margin:0;
}

/* 1.6 · Nome prodotto */
.card__t,
.ms-card__t,
.woocommerce ul.products li.product h3.ms-card__t,
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--serif,'Fraunces',Georgia,serif); font-weight:600;
  font-size:1.14rem; line-height:1.12; letter-spacing:-.01em;
  color:var(--ink,#23211D);
  margin:.4em 0 .5em; padding:0;
}
.card__t a,
.ms-card__t a,
.woocommerce ul.products li.product h3.ms-card__t a,
.woocommerce ul.products li.product .woocommerce-loop-product__title a{
  color:inherit; text-decoration:none;
  transition:color .25s var(--ms-card-ease);
}
.card__t a:hover,
.ms-card__t a:hover,
.woocommerce ul.products li.product h3.ms-card__t a:hover{
  color:inherit; text-decoration:underline; text-underline-offset:3px;
}

/* 1.7 · Meta (peso / prezzo al kg) — muted, spinge il footer in basso */
.card__meta,
.ms-card__meta,
.woocommerce ul.products li.product .ms-card__meta{
  font-family:var(--sans,'Inter',sans-serif);
  font-size:.76rem; line-height:1.45; color:var(--muted,#6B6459);
  margin:0 0 auto;
  min-height:2.6em;
}
.card__meta .amount,
.ms-card__meta .amount,
.woocommerce ul.products li.product .ms-card__meta .amount,
.woocommerce ul.products li.product .ms-card__meta .woocommerce-Price-amount{
  color:inherit; font-family:inherit; font-weight:600;
}

/* 1.8 · Footer riga: prezzo + bottone */
.card__f,
.ms-card__f,
.woocommerce ul.products li.product .ms-card__f{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:10px; margin-top:14px;
}
.woocommerce ul.products li.product:not(:has(.ms-card__f)) > .price{
  display:inline-block;
}

/* 1.8a · Prezzo card — Fraunces 1.32rem --red */
.card__price,
.ms-card__price,
.woocommerce ul.products li.product .ms-card__f .price,
.woocommerce ul.products li.product > .price,
.woocommerce ul.products li.product .price{
  margin:0; padding:0;
  font-family:var(--serif,'Fraunces',Georgia,serif); font-weight:600;
  font-size:1.32rem; line-height:1; color:var(--red,#D41119);
}
.woocommerce ul.products li.product .price .amount,
.woocommerce ul.products li.product .price .woocommerce-Price-amount,
.woocommerce ul.products li.product .price ins,
.woocommerce ul.products li.product .price ins .amount{
  color:var(--red,#D41119); font-family:inherit; font-weight:600; text-decoration:none;
}
.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price del .amount{
  color:var(--muted,#6B6459); font-size:.62em; font-weight:400; opacity:.85;
}
.woocommerce ul.products li.product .price .woocommerce-price-suffix{
  font-family:var(--sans,'Inter',sans-serif); font-weight:500;
  font-size:.6rem; color:var(--muted,#6B6459); margin-left:.3em;
}

/* 1.9 · Bottone aggiungi — quadrato 46px ink "+", hover rosso + rotate90 */
.card__add,
.ms-card__add,
.woocommerce ul.products li.product .ms-card__f a.button,
.woocommerce ul.products li.product a.button.add_to_cart_button,
.woocommerce ul.products li.product a.button.product_type_simple,
.woocommerce ul.products li.product a.button.product_type_variable,
.woocommerce ul.products li.product a.button:not(.added_to_cart){
  flex:0 0 var(--ms-card-btn);
  width:var(--ms-card-btn); height:var(--ms-card-btn);
  min-width:var(--ms-card-btn); min-height:var(--ms-card-btn);
  padding:0; margin:0;
  display:grid; place-items:center;
  background:var(--ink,#23211D); color:var(--cream,#F5F0E8);
  border:none; border-radius:2px; cursor:pointer;
  font-size:0;
  line-height:1; letter-spacing:0; white-space:nowrap;
  text-decoration:none;
  transition:background .3s var(--ms-card-ease),
             transform .4s var(--ms-card-ease);
  will-change:transform;
}
.card__add,
.ms-card__add{ font-size:1.35rem; }
.woocommerce ul.products li.product a.button::before{
  content:"+"; display:block;
  font-family:var(--sans,'Inter',sans-serif);
  font-size:1.5rem; font-weight:400; line-height:1; color:inherit;
}
.card__add:hover,
.ms-card__add:hover,
.woocommerce ul.products li.product a.button.add_to_cart_button:hover,
.woocommerce ul.products li.product a.button:not(.added_to_cart):hover{
  background:var(--red,#D41119); color:#fff;
  transform:rotate(90deg);
}
.woocommerce ul.products li.product a.button.loading{ opacity:.7; pointer-events:none; }
.woocommerce ul.products li.product a.button.loading::before{ content:"+"; opacity:.5; }
.woocommerce ul.products li.product a.button.added::before{ content:"\2713"; }
/* link "Visualizza carrello" appeso da Woo: fuori dalla riga card */
.woocommerce ul.products li.product a.added_to_cart.wc-forward{
  display:block; flex:1 1 100%; margin:10px var(--ms-card-pad) var(--ms-card-pad);
  width:auto; height:auto; min-height:0;
  font-family:var(--sans,'Inter',sans-serif); font-size:.72rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; text-align:center;
  color:var(--ink,#23211D); background:transparent;
  border:1px solid var(--border,#E5DFD4); border-radius:2px; padding:.7em 1em;
  transition:background .25s,color .25s;
}
.woocommerce ul.products li.product a.added_to_cart.wc-forward::before{ content:none; }
.woocommerce ul.products li.product a.added_to_cart.wc-forward:hover{
  background:var(--ink,#23211D); color:var(--cream,#F5F0E8);
}


/* ==========================================================================
   2 · ARCHIVIO / SHOP — griglia prodotti 4/3/2/1
   ========================================================================== */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  gap:18px; margin:0; padding:0; list-style:none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content:none !important; display:none !important; }


/* ==========================================================================
   3 · SINGLE PRODUCT (Compito B)
   2 colonne desktop (>=1025) / stack <=1024. Controlli 46px. Card .related
   identiche alla ricetta unica. Classi reali Woo.
   ========================================================================== */
.single-product{
  --msb-serif:var(--serif,'Fraunces',Georgia,serif);
  --msb-sans:var(--sans,'Inter',system-ui,-apple-system,sans-serif);
  --msb-ease:var(--ease,cubic-bezier(.22,1,.36,1));
  --msb-shadow:var(--shadow,0 8px 26px rgba(35,33,29,.10));
  --msb-shadow-hover:var(--shadow-hover,0 18px 40px rgba(35,33,29,.13));
  --msb-red-hover:var(--red-hover,#B00E15);
  --msb-control:46px;
  --msb-container:1280px;
}

/* 3.1 · Shell pagina + breadcrumb */
.single-product.woocommerce div.product,
.single-product .woocommerce div.product{
  font-family:var(--msb-sans);
  color:var(--ink,#23211D);
  max-width:var(--msb-container);
  margin:0 auto;
  padding:clamp(20px,4vw,44px) clamp(20px,5vw,64px) 0;
}
.single-product .woocommerce-breadcrumb{
  max-width:var(--msb-container);
  margin:clamp(16px,3vw,30px) auto clamp(18px,3vw,32px);
  padding:0 clamp(20px,5vw,64px);
  font-family:var(--msb-sans);
  font-size:.78rem; letter-spacing:.02em; line-height:1.5;
  color:var(--muted,#6B6459);
}
.single-product .woocommerce-breadcrumb a{
  color:var(--muted,#6B6459); text-decoration:none;
  transition:color .3s var(--msb-ease);
}
.single-product .woocommerce-breadcrumb a:hover{ color:var(--ink,#23211D); }

/* 3.2 · Layout 2 colonne (>=1025) / stack <=1024 */
.single-product.woocommerce div.product,
.single-product .woocommerce div.product{
  display:grid;
  grid-template-columns:minmax(0,54%) minmax(0,46%);
  grid-template-areas:"gallery summary";
  column-gap:clamp(32px,5vw,72px);
  row-gap:clamp(28px,4vw,44px);
  align-items:start;
}
.single-product div.product .woocommerce-product-gallery{
  grid-area:gallery;
  float:none;
  width:100%!important;
  margin:0;
  position:sticky;
  top:96px;
}
.single-product div.product .summary,
.single-product div.product .entry-summary{
  grid-area:summary;
  float:none;
  width:100%!important;
  margin:0;
}
.single-product div.product > .woocommerce-tabs,
.single-product div.product .up-sells,
.single-product div.product .related.products{
  grid-column:1 / -1;
}

/* 3.3 · Galleria */
.single-product .woocommerce-product-gallery{ position:relative; margin:0; }
.single-product .woocommerce-product-gallery__wrapper{ margin:0; }
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image{
  border:1px solid var(--border,#E5DFD4);
  border-radius:2px; overflow:hidden;
  background:var(--cream-card,#FBF8F2);
}
.single-product .woocommerce-product-gallery img{
  display:block; width:100%; height:auto; border-radius:0; margin:0;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs{
  display:flex; gap:12px; margin:12px 0 0; padding:0; list-style:none;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li{
  flex:1; margin:0; list-style:none;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img{
  border:1px solid var(--border,#E5DFD4); border-radius:2px;
  aspect-ratio:1; object-fit:cover; opacity:.6; cursor:pointer;
  transition:opacity .35s var(--msb-ease),border-color .35s var(--msb-ease),transform .5s var(--msb-ease);
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover{
  opacity:.85; transform:translateY(-2px);
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs .flex-active img{
  opacity:1; border-color:var(--ink,#23211D);
}
.single-product div.product span.onsale{
  position:absolute; top:16px; left:16px; z-index:2;
  min-height:0; min-width:0; margin:0; padding:8px 14px; border-radius:2px;
  background:var(--ink,#23211D); color:var(--cream,#F5F0E8);
  font-family:var(--msb-serif); font-weight:600; font-size:.76rem; line-height:1;
}
.single-product .woocommerce-product-gallery__trigger{ top:16px; right:16px; }

/* 3.4 · Summary — titolo / prezzo / short-desc / rating / meta */
.single-product div.product .summary .product_title,
.single-product div.product .summary h1.product_title{
  font-family:var(--msb-serif); font-weight:600;
  font-size:clamp(2.2rem,5.2vw,3.6rem); line-height:1.03; letter-spacing:-.025em;
  color:var(--ink,#23211D); margin:0 0 .35em;
}
.single-product div.product .summary .price,
.single-product div.product .summary p.price{
  font-family:var(--msb-serif); font-weight:600;
  font-size:clamp(2.1rem,4.4vw,3rem); line-height:1;
  color:var(--red,#D41119); margin:.1em 0 .25em;
}
.single-product div.product .summary .price .amount,
.single-product div.product .summary .price .woocommerce-Price-amount,
.single-product div.product .summary .price ins,
.single-product div.product .summary .price ins .amount{
  color:var(--red,#D41119); font-weight:600; text-decoration:none;
}
.single-product div.product .summary .price ins{ background:none; }
.single-product div.product .summary .price del,
.single-product div.product .summary .price del .amount{
  color:var(--muted,#6B6459); font-size:.5em; font-weight:500; opacity:.75;
}
.single-product div.product .summary .price small,
.single-product div.product .summary .price .woocommerce-price-suffix{
  font-family:var(--msb-sans); font-weight:500; font-size:.9rem;
  color:var(--muted,#6B6459); margin-left:.35em;
}
.single-product div.product .summary .woocommerce-product-details__short-description{
  color:var(--muted,#6B6459); font-family:var(--msb-sans);
  font-size:1rem; line-height:1.7; max-width:52ch; margin:1.3em 0 .4em;
}
.single-product div.product .summary .woocommerce-product-details__short-description p{
  margin:0 0 .8em;
}
.single-product div.product .summary .woocommerce-product-rating{
  margin:.2em 0 1em; font-size:.85rem; color:var(--muted,#6B6459);
}
.single-product div.product .summary .woocommerce-product-rating .star-rating span{
  color:var(--ochre,#C8873A);
}
.single-product div.product .summary .product_meta{
  margin-top:1.6em; padding-top:1.2em; border-top:1px solid var(--border,#E5DFD4);
  font-size:.8rem; color:var(--muted,#6B6459); line-height:1.9;
}
.single-product div.product .summary .product_meta a{
  color:var(--ink,#23211D); text-decoration:none; transition:color .3s var(--msb-ease);
}
.single-product div.product .summary .product_meta a:hover{ color:var(--ink,#23211D); }
.single-product div.product .summary .product_meta > span{ display:block; }

/* 3.5 · Form cart — quantity (.qty 46px) + single_add_to_cart_button */
.single-product div.product form.cart{
  display:flex; align-items:stretch; gap:14px; flex-wrap:wrap;
  margin:2em 0 1.4em;
}
.single-product div.product form.cart::before,
.single-product div.product form.cart::after{ content:none; }

.single-product div.product form.cart .quantity{
  display:flex; align-items:stretch; margin:0;
  border:1px solid var(--border,#E5DFD4); border-radius:2px;
  background:var(--paper,#fff); overflow:hidden;
}
.single-product div.product form.cart .quantity input.qty{
  width:var(--msb-control);
  height:var(--msb-control);
  min-height:var(--msb-control);
  text-align:center; border:none; background:transparent;
  font-family:var(--msb-sans); font-weight:600; font-size:1rem;
  color:var(--ink,#23211D); padding:0 6px;
  -moz-appearance:textfield;
}
.single-product div.product form.cart .quantity input.qty:focus{ outline:none; }
.single-product div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none; margin:0;
}
.single-product div.product form.cart .quantity .plus,
.single-product div.product form.cart .quantity .minus{
  width:44px; height:var(--msb-control); border:none; background:transparent;
  color:var(--ink,#23211D); font-size:1.3rem; line-height:1; cursor:pointer;
  transition:background .3s var(--msb-ease);
}
.single-product div.product form.cart .quantity .plus:hover,
.single-product div.product form.cart .quantity .minus:hover{
  background:var(--cream,#F5F0E8);
}

.single-product div.product form.cart .single_add_to_cart_button,
.single-product div.product form.cart button.single_add_to_cart_button{
  flex:1 1 auto; min-width:220px;
  height:var(--msb-control); min-height:var(--msb-control);
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:0 1.6em; border:none; border-radius:2px;
  background:var(--red,#D41119); color:#fff;
  font-family:var(--msb-sans); font-weight:600; font-size:1rem;
  letter-spacing:.01em; text-transform:none; line-height:1; cursor:pointer;
  transition:transform .5s var(--msb-ease),background .3s var(--msb-ease);
  will-change:transform;
}
.single-product div.product form.cart .single_add_to_cart_button:hover{
  background:var(--msb-red-hover); transform:translateY(-2px);
}
.single-product div.product form.cart .single_add_to_cart_button:disabled,
.single-product div.product form.cart .single_add_to_cart_button.disabled{
  opacity:.55; cursor:not-allowed; transform:none;
}

/* prodotti variabili */
.single-product div.product form.cart .variations{
  width:100%; margin:0 0 1.2em; border-collapse:collapse;
}
.single-product div.product form.cart .variations th,
.single-product div.product form.cart .variations td{
  padding:.5em 0; vertical-align:middle; text-align:left;
}
.single-product div.product form.cart .variations th.label{
  font-family:var(--msb-sans); font-weight:600; font-size:.8rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted,#6B6459);
  padding-right:16px;
}
.single-product div.product form.cart .variations select{
  font:inherit; font-weight:500; color:var(--ink,#23211D);
  background:var(--paper,#fff); border:1px solid var(--border,#E5DFD4);
  border-radius:2px; padding:.7em 2.2em .7em .9em; cursor:pointer;
  -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2323211D' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .8em center;
}
.single-product div.product form.cart .single_variation .price{
  font-family:var(--msb-serif); font-weight:600; color:var(--red,#D41119);
}
.single-product div.product .woocommerce-variation-add-to-cart{
  display:flex; gap:14px; align-items:stretch; flex-wrap:wrap; width:100%;
}
.single-product div.product .reset_variations{
  align-self:center; font-size:.8rem; color:var(--muted,#6B6459);
}

/* 3.6 · Tabs */
.single-product div.product .woocommerce-tabs{
  margin-top:clamp(48px,7vw,88px);
  padding-top:clamp(32px,4vw,48px);
  border-top:1px solid var(--border,#E5DFD4);
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs{
  margin:0 0 clamp(24px,3vw,36px); padding:0;
  display:flex; flex-wrap:wrap; gap:10px;
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs::before,
.single-product .woocommerce-tabs ul.tabs.wc-tabs::after{ content:none; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li{
  margin:0; padding:0; border:1px solid var(--border,#E5DFD4);
  border-radius:2px; background:var(--paper,#fff); overflow:visible;
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs li::before,
.single-product .woocommerce-tabs ul.tabs.wc-tabs li::after{ content:none; display:none; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li a{
  display:block; padding:.7em 1.2em; font-family:var(--msb-sans);
  font-weight:600; font-size:.82rem; letter-spacing:.04em;
  color:var(--ink,#23211D); text-decoration:none;
  transition:color .25s var(--msb-ease),background .25s var(--msb-ease);
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs li.active{
  background:var(--ink,#23211D); border-color:var(--ink,#23211D);
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs li.active a{ color:var(--cream,#F5F0E8); }
.single-product .woocommerce-tabs .woocommerce-Tabs-panel{
  color:var(--muted,#6B6459); font-family:var(--msb-sans);
  font-size:.95rem; line-height:1.7; max-width:70ch;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel h2,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel h3{
  font-family:var(--msb-serif); font-weight:600; letter-spacing:-.01em;
  color:var(--ink,#23211D); margin:0 0 .6em;
}
.single-product .woocommerce-tabs table.shop_attributes{
  border:1px solid var(--border,#E5DFD4); border-radius:2px;
  border-collapse:collapse; overflow:hidden; margin:0; width:100%;
}
.single-product .woocommerce-tabs table.shop_attributes th,
.single-product .woocommerce-tabs table.shop_attributes td{
  border-bottom:1px solid var(--border,#E5DFD4); padding:.85em 1.1em; font-size:.9rem;
}
.single-product .woocommerce-tabs table.shop_attributes th{
  font-family:var(--msb-sans); font-weight:600; color:var(--ink,#23211D);
  background:var(--cream-card,#FBF8F2); text-align:left; letter-spacing:.02em;
}
.single-product .woocommerce-tabs table.shop_attributes td{ color:var(--muted,#6B6459); font-style:normal; }
.single-product .woocommerce-tabs table.shop_attributes tr:last-child th,
.single-product .woocommerce-tabs table.shop_attributes tr:last-child td{ border-bottom:none; }

/* 3.7 · Related / upsells — titolo Fraunces + card ricetta unica */
.single-product .related.products,
.single-product .up-sells.upsells{
  margin-top:clamp(56px,8vw,104px);
  padding-top:clamp(40px,5vw,64px);
  border-top:1px solid var(--border,#E5DFD4);
}
.single-product .related.products > h2,
.single-product .up-sells.upsells > h2{
  font-family:var(--msb-serif); font-weight:600;
  font-size:clamp(1.8rem,4vw,2.8rem); letter-spacing:-.02em;
  color:var(--ink,#23211D); margin:0 0 clamp(28px,4vw,44px);
}
.single-product .related.products ul.products,
.single-product .up-sells.upsells ul.products{
  display:grid !important; grid-template-columns:repeat(4,1fr);
  gap:18px; margin:0; padding:0; list-style:none;
}
.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after,
.single-product .up-sells.upsells ul.products::before,
.single-product .up-sells.upsells ul.products::after{ content:none !important; display:none !important; }

.single-product ul.products li.product{
  position:relative; width:auto!important; margin:0!important; padding:0;
  float:none!important; text-align:left;
  background:var(--paper,#fff); border:1px solid var(--border,#E5DFD4);
  border-radius:2px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:none;
  transition:transform .6s var(--msb-ease),box-shadow .6s var(--msb-ease);
}
.single-product ul.products li.product:hover{
  transform:translateY(-6px); box-shadow:var(--msb-shadow);
}
.single-product ul.products li.product > a img,
.single-product ul.products li.product img{
  margin:0; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:0;
}
.single-product ul.products li.product .woocommerce-loop-product__link{ display:block; }
.single-product ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--msb-serif); font-weight:600; font-size:1.14rem;
  line-height:1.12; color:var(--ink,#23211D); padding:16px 18px 0; margin:0;
}
.single-product ul.products li.product .price{
  font-family:var(--msb-serif); font-weight:600; font-size:1.3rem;
  color:var(--red,#D41119)!important; padding:0 18px; margin:.35em 0 0;
}
.single-product ul.products li.product .price del,
.single-product ul.products li.product .price del .amount{
  color:var(--muted,#6B6459); font-size:.7em; font-weight:500;
}
.single-product ul.products li.product .price ins{ background:none; text-decoration:none; }
.single-product ul.products li.product span.onsale{
  position:absolute; top:12px; left:12px; min-height:0; min-width:0;
  margin:0; padding:.42em .7em; border-radius:2px;
  background:rgba(18,16,14,.72); color:var(--cream,#F5F0E8);
  font-family:var(--msb-sans); font-weight:600; font-size:.6rem;
  letter-spacing:.14em; text-transform:uppercase; line-height:1;
}
.single-product ul.products li.product .button,
.single-product ul.products li.product a.add_to_cart_button,
.single-product ul.products li.product a.added_to_cart{
  margin:14px 18px 18px; align-self:flex-start;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:42px; padding:0 1.1em; border:none; border-radius:2px;
  background:var(--ink,#23211D); color:var(--cream,#F5F0E8);
  font-family:var(--msb-sans); font-weight:600; font-size:.85rem;
  letter-spacing:.02em; text-transform:none; cursor:pointer;
  transition:background .3s var(--msb-ease),transform .4s var(--msb-ease);
}
.single-product ul.products li.product .button:hover,
.single-product ul.products li.product a.add_to_cart_button:hover{
  background:var(--red,#D41119); transform:translateY(-2px);
}
.single-product ul.products li.product a.added_to_cart{ background:var(--red,#D41119); margin-top:0; }

/* 3.8 · Notices */
.single-product .woocommerce-message,
.single-product .woocommerce-info,
.single-product .woocommerce-error{
  border-radius:2px; border-top:3px solid var(--red,#D41119);
  background:var(--cream-card,#FBF8F2); color:var(--ink,#23211D);
  font-family:var(--msb-sans); font-size:.9rem;
}
.single-product .woocommerce-message .button,
.single-product .woocommerce-info .button{
  background:var(--red,#D41119); color:#fff; border-radius:2px;
}


/* ==========================================================================
   4 · CARRELLO (Compito C)
   Layout 2 col desktop (>=1025): tabella (sx) + pannello totali (dx).
   Impila <=1024; tabella -> "carte" <=600.
   ========================================================================== */
body.woocommerce-cart .woocommerce{
  max-width:1280px; margin-inline:auto;
  padding-inline:clamp(20px,5vw,64px);
  color:var(--ink,#23211D);
  display:grid; grid-template-columns:1.6fr .9fr;
  gap:clamp(28px,4vw,56px); align-items:start;
}
body.woocommerce-cart .entry-title{
  font-family:var(--serif,'Fraunces',serif); font-weight:600;
  letter-spacing:-.02em; color:var(--ink,#23211D); line-height:1.05;
  margin:0 0 clamp(20px,3vw,34px);
}
body.woocommerce-cart .woocommerce .amount{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; color:var(--red,#D41119);
}
body.woocommerce-cart form.woocommerce-cart-form{ grid-column:1; min-width:0; }
body.woocommerce-cart .cart-collaterals{ grid-column:2; width:100%!important; float:none; }
body.woocommerce-cart .woocommerce>.woocommerce-notices-wrapper{ grid-column:1 / -1; }

/* 4.1 · Notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error{
  font-family:var(--sans,'Inter',sans-serif); font-size:.9rem; line-height:1.5;
  background:var(--cream-card,#FBF8F2); color:var(--ink,#23211D);
  border:1px solid var(--border,#E5DFD4); border-left:3px solid var(--olive,#6E7250);
  border-radius:2px; padding:15px 18px; box-shadow:none;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before{ color:var(--olive,#6E7250); top:1em; }
body.woocommerce-cart .woocommerce-error{ border-left-color:var(--red,#D41119); }
body.woocommerce-cart .woocommerce-error::before{ color:var(--red,#D41119); }

/* 4.2 · Tabella righe */
body.woocommerce-cart table.cart,
body.woocommerce-cart table.shop_table.cart{
  width:100%; margin:0; border:none; border-collapse:collapse; background:transparent;
}
body.woocommerce-cart table.cart thead{ border-bottom:1px solid var(--border,#E5DFD4); }
body.woocommerce-cart table.cart thead th{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted,#6B6459);
  text-align:left; padding:0 0 16px; border:none; background:transparent;
}
body.woocommerce-cart table.cart tbody td{
  padding:22px 14px 22px 0; border:none;
  border-bottom:1px solid var(--border,#E5DFD4);
  vertical-align:middle; background:transparent;
}
body.woocommerce-cart table.cart td.product-thumbnail{ width:96px; padding-left:0; }
body.woocommerce-cart table.cart td.product-thumbnail img{
  width:76px; height:76px; object-fit:cover; display:block;
  border-radius:2px; border:1px solid var(--border,#E5DFD4); background:var(--cream-card,#FBF8F2);
}
body.woocommerce-cart table.cart td.product-name a{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.18rem;
  color:var(--ink,#23211D); line-height:1.15; text-decoration:none;
}
body.woocommerce-cart table.cart td.product-name a:hover{ color:var(--ink,#23211D); }
body.woocommerce-cart table.cart td.product-name dl.variation,
body.woocommerce-cart table.cart td.product-name .variation{
  font-size:.82rem; color:var(--muted,#6B6459); margin-top:.35em;
}
body.woocommerce-cart table.cart th.product-price,
body.woocommerce-cart table.cart th.product-subtotal,
body.woocommerce-cart table.cart td.product-price,
body.woocommerce-cart table.cart td.product-subtotal{ text-align:right; }
body.woocommerce-cart table.cart td.product-price .amount,
body.woocommerce-cart table.cart td.product-subtotal .amount{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; color:var(--red,#D41119); font-size:1.1rem;
}
body.woocommerce-cart table.cart td.product-subtotal{ white-space:nowrap; }

/* stepper quantita' 46px */
body.woocommerce-cart table.cart td.product-quantity{ width:130px; }
body.woocommerce-cart .quantity{
  display:inline-flex; align-items:center; overflow:hidden;
  border:1px solid var(--border,#E5DFD4); border-radius:2px; background:var(--paper,#fff);
}
body.woocommerce-cart .quantity input.qty{
  width:58px; height:46px; padding:0; border:none; text-align:center;
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:16px;
  color:var(--ink,#23211D); background:var(--paper,#fff); -moz-appearance:textfield;
}
body.woocommerce-cart .quantity input.qty:focus{ outline:none; }
body.woocommerce-cart .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart .quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
body.woocommerce-cart .quantity .plus,
body.woocommerce-cart .quantity .minus{
  width:42px; height:46px; border:none; background:var(--cream-card,#FBF8F2);
  color:var(--ink,#23211D); font-size:1.1rem; cursor:pointer;
}
body.woocommerce-cart .quantity .plus:hover,
body.woocommerce-cart .quantity .minus:hover{ background:var(--ink,#23211D); color:var(--paper,#fff); }

/* rimuovi (x) */
body.woocommerce-cart table.cart td.product-remove{ width:46px; padding-right:0; }
body.woocommerce-cart table.cart td.product-remove a.remove{
  display:grid; place-items:center; width:34px; height:34px; margin:0;
  border:1px solid var(--border,#E5DFD4); border-radius:2px;
  color:var(--muted,#6B6459)!important; font-size:1.1rem; font-weight:400; line-height:1;
  background:var(--paper,#fff)!important; transition:background .3s,color .3s,border-color .3s;
}
body.woocommerce-cart table.cart td.product-remove a.remove:hover{
  background:var(--red,#D41119)!important; border-color:var(--red,#D41119); color:#fff!important;
}

/* riga azioni (coupon + aggiorna) */
body.woocommerce-cart table.cart td.actions{
  padding:22px 0 0; border-bottom:none; text-align:right;
}
body.woocommerce-cart table.cart td.actions .coupon{ float:left; display:flex; gap:8px; }
body.woocommerce-cart table.cart td.actions .coupon label{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
}
body.woocommerce-cart table.cart td.actions .coupon input#coupon_code{
  height:46px; min-width:180px; padding:0 1em; font:inherit; font-size:16px;
  color:var(--ink,#23211D); background:var(--paper,#fff);
  border:1px solid var(--border,#E5DFD4); border-radius:2px;
}
body.woocommerce-cart table.cart td.actions .coupon input#coupon_code:focus{
  outline:none; border-color:var(--ink,#23211D); box-shadow:0 0 0 3px rgba(35,33,29,.07);
}

/* bottoni carrello: aggiorna/coupon scuri, checkout rosso */
body.woocommerce-cart .button,
body.woocommerce-cart button.button,
body.woocommerce-cart input.button{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.92rem;
  border-radius:2px; border:1px solid transparent; cursor:pointer;
  padding:.9em 1.5em; line-height:1.2; box-shadow:none;
  transition:transform .4s var(--ease,cubic-bezier(.22,1,.36,1)),background .3s,color .3s,border-color .3s;
}
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart .coupon .button,
body.woocommerce-cart button[name="apply_coupon"]{
  background:var(--ink,#23211D); color:var(--paper,#fff); border-color:var(--ink,#23211D);
}
body.woocommerce-cart button[name="update_cart"]:hover,
body.woocommerce-cart .coupon .button:hover{ background:#12100E; color:var(--paper,#fff); }
body.woocommerce-cart button[name="update_cart"]:disabled{ opacity:.4; cursor:not-allowed; }

/* 4.3 · Pannello riepilogo (.cart_totals) */
body.woocommerce-cart .cart-collaterals .cart_totals{
  width:100%!important; float:none; margin:0; position:sticky; top:96px;
}
body.woocommerce-cart .cart_totals h2{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.5rem;
  letter-spacing:-.02em; color:var(--ink,#23211D); margin:0 0 4px;
}
body.woocommerce-cart .cart_totals table.shop_table{
  width:100%; margin:12px 0 0; border-collapse:separate;
  background:var(--cream-card,#FBF8F2); border:1px solid var(--border,#E5DFD4);
  border-radius:2px; box-shadow:var(--shadow,0 8px 26px rgba(35,33,29,.10));
  padding:clamp(22px,2.4vw,30px);
}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td{
  border:none; padding:12px 0; font-family:var(--sans,'Inter',sans-serif);
  font-size:.95rem; vertical-align:top; background:transparent;
}
body.woocommerce-cart .cart_totals table.shop_table th{
  font-weight:500; color:var(--muted,#6B6459); text-align:left; width:42%;
}
body.woocommerce-cart .cart_totals table.shop_table td{ text-align:right; }
body.woocommerce-cart .cart_totals table.shop_table td .amount{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; color:var(--ink,#23211D);
}
body.woocommerce-cart .cart_totals .cart-subtotal th,
body.woocommerce-cart .cart_totals .cart-subtotal td,
body.woocommerce-cart .cart_totals .woocommerce-shipping-totals th,
body.woocommerce-cart .cart_totals .woocommerce-shipping-totals td{
  border-bottom:1px solid var(--border,#E5DFD4);
}
body.woocommerce-cart .cart_totals .order-total th{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.15rem;
  color:var(--ink,#23211D); padding-top:20px;
}
body.woocommerce-cart .cart_totals .order-total td{ padding-top:20px; }
body.woocommerce-cart .cart_totals .order-total .amount{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.7rem;
  color:var(--red,#D41119); line-height:1;
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods{ list-style:none; margin:0; padding:0; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods li{
  margin:0 0 8px; display:flex; align-items:baseline; gap:8px; text-align:left;
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-methods label{ font-size:.9rem; color:var(--ink,#23211D); cursor:pointer; }
body.woocommerce-cart .cart_totals input[type="radio"]{ accent-color:var(--red,#D41119); }

/* Procedi al checkout: rosso pieno full width */
body.woocommerce-cart .wc-proceed-to-checkout{ padding:18px 0 0; margin:0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  display:block; width:100%; text-align:center;
  background:var(--red,#D41119); color:#fff; border:1px solid var(--red,#D41119);
  border-radius:2px; font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:.98rem; padding:1.05em 1.6em; box-shadow:none;
  transition:transform .4s var(--ease,cubic-bezier(.22,1,.36,1)),background .3s;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{
  background:var(--red-hover,#B00E15); border-color:var(--red-hover,#B00E15); color:#fff; transform:translateY(-2px);
}


/* ==========================================================================
   5 · CHECKOUT (Compito C)
   Layout 2 col desktop (>=1025): dati (sx) + riepilogo sticky (dx).
   Impila <=1024.
   ========================================================================== */
body.woocommerce-checkout .woocommerce{
  max-width:1280px; margin-inline:auto;
  padding-inline:clamp(20px,5vw,64px);
  color:var(--ink,#23211D);
}
body.woocommerce-checkout .entry-title{
  font-family:var(--serif,'Fraunces',serif); font-weight:600;
  letter-spacing:-.02em; color:var(--ink,#23211D); line-height:1.05;
  margin:0 0 clamp(20px,3vw,34px);
}
body.woocommerce-checkout .woocommerce .amount{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; color:var(--red,#D41119);
}

/* 5.1 · Notices */
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error{
  font-family:var(--sans,'Inter',sans-serif); font-size:.9rem; line-height:1.5;
  background:var(--cream-card,#FBF8F2); color:var(--ink,#23211D);
  border:1px solid var(--border,#E5DFD4); border-left:3px solid var(--olive,#6E7250);
  border-radius:2px; padding:15px 18px; box-shadow:none;
}
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before{ color:var(--olive,#6E7250); top:1em; }
body.woocommerce-checkout .woocommerce-error{ border-left-color:var(--red,#D41119); }
body.woocommerce-checkout .woocommerce-error::before{ color:var(--red,#D41119); }

/* 5.2 · Layout griglia checkout */
body.woocommerce-checkout form.checkout.woocommerce-checkout{
  display:grid; grid-template-columns:1.35fr .9fr;
  gap:clamp(24px,3.4vw,54px); align-items:start;
}
body.woocommerce-checkout form.checkout #customer_details{ grid-column:1; min-width:0; }
body.woocommerce-checkout form.checkout #order_review,
body.woocommerce-checkout form.checkout h3#order_review_heading{ grid-column:2; }
body.woocommerce-checkout form.checkout #order_review{ position:sticky; top:78px; }
body.woocommerce-checkout form.checkout h3#order_review_heading{ margin:0; }
body.woocommerce-checkout form.checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout form.checkout .woocommerce-form-login,
body.woocommerce-checkout form.checkout .woocommerce-form-coupon,
body.woocommerce-checkout .woocommerce-notices-wrapper{ grid-column:1 / -1; }
body.woocommerce-checkout #customer_details.col2-set{ width:100%; }
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{ width:100%; float:none; padding:0; }

/* 5.3 · Card sezioni dati */
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields{
  background:var(--paper,#fff); border:1px solid var(--border,#E5DFD4); border-radius:2px;
  box-shadow:var(--shadow,0 8px 26px rgba(35,33,29,.10));
  padding:clamp(20px,2.6vw,32px); margin:0 0 16px;
}
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.28rem;
  letter-spacing:-.02em; color:var(--ink,#23211D); margin:0 0 20px; line-height:1.1;
}

/* 5.4 · Campi 48px, font 16px */
body.woocommerce-checkout .form-row{ padding:0; margin:0 0 14px; display:flex; flex-direction:column; }
body.woocommerce-checkout .form-row label{
  font-family:var(--sans,'Inter',sans-serif); font-size:.78rem; font-weight:600;
  letter-spacing:.02em; color:var(--ink,#23211D); margin:0 0 7px;
}
body.woocommerce-checkout .form-row label .required{ color:var(--red,#D41119); border:none; text-decoration:none; }
body.woocommerce-checkout .form-row label .optional{ color:var(--muted,#6B6459); font-weight:400; }
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .form-row .select2-selection,
body.woocommerce-checkout #order_comments{
  width:100%; min-height:48px; font-family:var(--sans,'Inter',sans-serif); font-size:16px;
  color:var(--ink,#23211D); background:var(--cream-card,#FBF8F2);
  border:1px solid var(--border,#E5DFD4); border-radius:2px; padding:.75em 1em;
  transition:border-color .25s,box-shadow .25s; box-shadow:none;
}
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout #order_comments{ min-height:96px; line-height:1.5; }
body.woocommerce-checkout .form-row input.input-text::placeholder,
body.woocommerce-checkout .form-row textarea::placeholder{ color:#a8a196; }
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus,
body.woocommerce-checkout #order_comments:focus{
  outline:none; border-color:var(--ink,#23211D); box-shadow:0 0 0 3px rgba(35,33,29,.07);
}
body.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection{ border-color:var(--red,#D41119); }
body.woocommerce-checkout .form-row.woocommerce-validated input.input-text{ border-color:var(--olive,#6E7250); }
body.woocommerce-checkout .select2-container .select2-selection--single{ height:48px; display:flex; align-items:center; border-radius:2px; }
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{ height:46px; }
body.woocommerce-checkout .select2-dropdown{ border:1px solid var(--border,#E5DFD4); border-radius:2px; }
body.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected]{ background:var(--ink,#23211D); color:var(--paper,#fff); }
body.woocommerce-checkout input[type="checkbox"]{ accent-color:var(--ink,#23211D); width:18px; height:18px; }

/* 5.5 · #order_review (riepilogo) */
body.woocommerce-checkout #order_review{
  background:var(--cream-card,#FBF8F2); border:1px solid var(--border,#E5DFD4); border-radius:2px;
  box-shadow:var(--shadow,0 8px 26px rgba(35,33,29,.10)); padding:clamp(22px,2.4vw,30px);
}
body.woocommerce-checkout #order_review table.shop_table{ width:100%; margin:0; border:none; border-collapse:collapse; background:transparent; }
body.woocommerce-checkout #order_review table.shop_table thead th{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted,#6B6459);
  text-align:left; padding:0 0 12px; border:none; border-bottom:1px solid var(--border,#E5DFD4);
}
body.woocommerce-checkout #order_review table.shop_table thead th.product-total{ text-align:right; }
body.woocommerce-checkout #order_review table.shop_table tbody td{
  padding:14px 0; border:none; border-top:1px solid var(--border,#E5DFD4); vertical-align:top; font-size:.9rem;
}
body.woocommerce-checkout #order_review table.shop_table tbody tr:first-child td{ border-top:none; }
body.woocommerce-checkout #order_review .product-name{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1rem; color:var(--ink,#23211D); line-height:1.2;
}
body.woocommerce-checkout #order_review .product-name .product-quantity{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.78rem; color:var(--muted,#6B6459);
}
body.woocommerce-checkout #order_review td.product-total{ text-align:right; white-space:nowrap; }
body.woocommerce-checkout #order_review td.product-total .amount{ font-family:var(--serif,'Fraunces',serif); font-weight:600; color:var(--red,#D41119); }
body.woocommerce-checkout #order_review table.shop_table tfoot th,
body.woocommerce-checkout #order_review table.shop_table tfoot td{
  border:none; border-top:1px solid var(--border,#E5DFD4); padding:11px 0;
  font-family:var(--sans,'Inter',sans-serif); font-size:.9rem; background:transparent;
}
body.woocommerce-checkout #order_review table.shop_table tfoot th{ font-weight:500; color:var(--muted,#6B6459); text-align:left; }
body.woocommerce-checkout #order_review table.shop_table tfoot td{ text-align:right; }
body.woocommerce-checkout #order_review tfoot .cart-subtotal .amount,
body.woocommerce-checkout #order_review tfoot .shipping .amount{ font-family:var(--serif,'Fraunces',serif); font-weight:600; color:var(--ink,#23211D); }
body.woocommerce-checkout #order_review tfoot .order-total th{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.15rem; color:var(--ink,#23211D); padding-top:16px;
}
body.woocommerce-checkout #order_review tfoot .order-total td{ padding-top:16px; }
body.woocommerce-checkout #order_review tfoot .order-total .amount{
  font-family:var(--serif,'Fraunces',serif); font-weight:600; font-size:1.6rem; color:var(--red,#D41119); line-height:1;
}
body.woocommerce-checkout #order_review tfoot .order-total small.includes_tax{
  display:block; font-family:var(--sans,'Inter',sans-serif); font-weight:400; font-size:.68rem; color:var(--muted,#6B6459);
}
body.woocommerce-checkout #order_review #shipping_method{ list-style:none; margin:0; padding:0; }
body.woocommerce-checkout #order_review #shipping_method li{ margin:0 0 6px; }
body.woocommerce-checkout #order_review #shipping_method label{ font-size:.88rem; color:var(--ink,#23211D); cursor:pointer; }
body.woocommerce-checkout #order_review #shipping_method input[type="radio"]{ accent-color:var(--red,#D41119); }

/* 5.6 · Metodi pagamento */
body.woocommerce-checkout #payment{ background:transparent; border-radius:0; margin-top:20px; }
body.woocommerce-checkout #payment ul.payment_methods{ border:none; padding:0; margin:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
body.woocommerce-checkout #payment ul.payment_methods li{
  border:1px solid var(--border,#E5DFD4); border-radius:2px; background:var(--paper,#fff);
  padding:15px 16px; transition:border-color .25s,background .25s;
}
body.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){
  border-color:var(--ink,#23211D); background:var(--cream-card,#FBF8F2); box-shadow:inset 0 0 0 1px var(--ink,#23211D);
}
body.woocommerce-checkout #payment ul.payment_methods li label{
  font-family:var(--sans,'Inter',sans-serif); font-weight:600; font-size:.92rem; color:var(--ink,#23211D);
  cursor:pointer; display:inline-flex; align-items:center; gap:8px;
}
body.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]{ accent-color:var(--red,#D41119); }
body.woocommerce-checkout #payment div.payment_box{
  background:var(--cream-card,#FBF8F2); border:1px solid var(--border,#E5DFD4); border-radius:2px;
  color:var(--muted,#6B6459); font-size:.84rem; line-height:1.5; padding:14px 16px; margin:12px 0 0;
}
body.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:var(--border,#E5DFD4); }
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{ font-size:.82rem; color:var(--muted,#6B6459); margin:16px 0; }
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text a,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a{ color:var(--ink,#23211D); text-decoration:underline; text-underline-offset:2px; }

/* #place_order: rosso pieno full width */
body.woocommerce-checkout #payment #place_order,
body.woocommerce-checkout #place_order{
  display:block; width:100%; text-align:center; margin-top:8px;
  background:var(--red,#D41119); color:#fff; border:1px solid var(--red,#D41119);
  border-radius:2px; font-family:var(--sans,'Inter',sans-serif); font-weight:600;
  font-size:1rem; padding:1.1em 1.6em; box-shadow:none; cursor:pointer;
  transition:transform .4s var(--ease,cubic-bezier(.22,1,.36,1)),background .3s;
}
body.woocommerce-checkout #payment #place_order:hover,
body.woocommerce-checkout #place_order:hover{
  background:var(--red-hover,#B00E15); border-color:var(--red-hover,#B00E15); color:#fff; transform:translateY(-2px);
}
body.woocommerce-checkout .woocommerce-form-login,
body.woocommerce-checkout .woocommerce-form-coupon{
  background:var(--paper,#fff); border:1px solid var(--border,#E5DFD4); border-radius:2px;
  padding:clamp(18px,2.4vw,26px); margin:0 0 16px;
}


/* ==========================================================================
   6 · RESPONSIVE — 3 fasce coerenti
   mobile <=600 · tablet 601-1024 · desktop >=1025
   ========================================================================== */

/* -------------------------------------------------------------------------
   6.1 · TABLET (<=1024)
   ------------------------------------------------------------------------- */
@media (max-width:1024px){

  /* CARD — padding ridotto */
  .card__b,
  .ms-card__b,
  .woocommerce ul.products li.product .ms-card__b{ padding:16px; }

  /* SHOP + related — griglia 3 col */
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products{
    grid-template-columns:repeat(3,1fr);
  }

  /* SINGLE — stack: gallery sopra, summary sotto, niente sticky */
  .single-product.woocommerce div.product,
  .single-product .woocommerce div.product{
    grid-template-columns:1fr;
    grid-template-areas:"gallery" "summary";
    column-gap:0;
    row-gap:clamp(24px,5vw,40px);
  }
  .single-product div.product .woocommerce-product-gallery{
    position:static; top:auto;
  }

  /* CARRELLO — impila: totali sotto, tabella full-width, niente sticky */
  body.woocommerce-cart .woocommerce{ grid-template-columns:1fr; gap:8px; }
  body.woocommerce-cart form.woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals{ grid-column:1; }
  body.woocommerce-cart .cart-collaterals .cart_totals{ position:static; margin-top:32px; width:100%!important; }

  /* CHECKOUT — impila: riepilogo sotto i dati, niente sticky */
  body.woocommerce-checkout form.checkout.woocommerce-checkout{ grid-template-columns:1fr; gap:20px; }
  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout #order_review,
  body.woocommerce-checkout form.checkout h3#order_review_heading{ grid-column:1; }
  body.woocommerce-checkout form.checkout #order_review{ position:static; }
}

/* -------------------------------------------------------------------------
   6.2 · MOBILE (<=600)
   ------------------------------------------------------------------------- */
@media (max-width:600px){

  /* CARD — misure compatte */
  .card,
  .ms-card,
  .woocommerce ul.products li.product{ --ms-card-pad:14px; --ms-card-btn:44px; }
  .card__t,
  .ms-card__t,
  .woocommerce ul.products li.product h3.ms-card__t,
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:1.02rem; }
  .card__price,
  .ms-card__price,
  .woocommerce ul.products li.product .price{ font-size:1.18rem; }
  .card__meta,
  .ms-card__meta,
  .woocommerce ul.products li.product .ms-card__meta{ min-height:0; }
  .card__f,
  .ms-card__f,
  .woocommerce ul.products li.product .ms-card__f{ align-items:flex-end; }

  /* SHOP + related — griglia 2 col */
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products{
    grid-template-columns:repeat(2,1fr); gap:14px;
  }

  /* SINGLE — form add-to-cart a tutta larghezza, qty a riga piena */
  .single-product div.product form.cart{ flex-direction:column; align-items:stretch; }
  .single-product div.product form.cart .quantity{ width:100%; justify-content:space-between; }
  .single-product div.product form.cart .quantity input.qty{ flex:1; width:auto; }
  .single-product div.product form.cart .single_add_to_cart_button{ width:100%; min-width:0; }
  .single-product div.product .summary .woocommerce-product-details__short-description{ max-width:none; }

  /* CARRELLO — la tabella diventa "carte" impilate */
  body.woocommerce-cart table.cart thead{ display:none; }
  body.woocommerce-cart table.cart tbody tr{
    display:grid;
    grid-template-columns:76px 1fr auto;
    grid-template-areas:
      "thumb name   remove"
      "thumb price  price"
      "thumb qty    subtotal";
    column-gap:14px; row-gap:8px; align-items:center;
    padding:20px 0; border-bottom:1px solid var(--border,#E5DFD4);
  }
  body.woocommerce-cart table.cart tbody td{ padding:0!important; border:none!important; display:block; }
  body.woocommerce-cart table.cart td.product-thumbnail{ grid-area:thumb; width:auto; }
  body.woocommerce-cart table.cart td.product-thumbnail img{ width:76px; height:76px; }
  body.woocommerce-cart table.cart td.product-name{ grid-area:name; align-self:start; }
  body.woocommerce-cart table.cart td.product-remove{ grid-area:remove; justify-self:end; align-self:start; width:auto; }
  body.woocommerce-cart table.cart td.product-price{ grid-area:price; text-align:left; }
  body.woocommerce-cart table.cart td.product-price::before{
    content:"Prezzo "; font-family:var(--sans,'Inter',sans-serif); font-size:.72rem;
    font-weight:400; color:var(--muted,#6B6459);
  }
  body.woocommerce-cart table.cart td.product-quantity{ grid-area:qty; width:auto; }
  body.woocommerce-cart table.cart td.product-subtotal{ grid-area:subtotal; text-align:right; align-self:center; }
  body.woocommerce-cart table.cart td.product-subtotal::before{
    content:"Totale "; font-family:var(--sans,'Inter',sans-serif); font-size:.72rem;
    font-weight:400; color:var(--muted,#6B6459);
  }
  body.woocommerce-cart table.cart td.actions{ display:block; padding-top:18px; text-align:left; }
  body.woocommerce-cart table.cart td.actions .coupon{ float:none; margin-bottom:12px; }
  body.woocommerce-cart table.cart td.actions .coupon input#coupon_code{ flex:1; min-width:0; }
  body.woocommerce-cart table.cart td.actions .button{ width:100%; }

  /* CHECKOUT — padding card ridotto */
  body.woocommerce-checkout .woocommerce-billing-fields,
  body.woocommerce-checkout .woocommerce-shipping-fields,
  body.woocommerce-checkout .woocommerce-additional-fields,
  body.woocommerce-checkout #order_review{ padding:20px; }
}

/* -------------------------------------------------------------------------
   6.3 · MOBILE STRETTO (<=420) — griglie a 1 colonna + thumb carrello ridotto
   ------------------------------------------------------------------------- */
@media (max-width:420px){
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products{ grid-template-columns:1fr; }

  body.woocommerce-cart table.cart tbody tr{ grid-template-columns:64px 1fr auto; }
  body.woocommerce-cart table.cart td.product-thumbnail img{ width:64px; height:64px; }
}

/* -------------------------------------------------------------------------
   6.4 · ACCESSIBILITA' — prefers-reduced-motion
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .card,.ms-card,.woocommerce ul.products li.product,
  .card__img img,.ms-card__img img,
  .woocommerce ul.products li.product a.ms-card__img img,
  .woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
  .woocommerce ul.products li.product a.woocommerce-loop-product__link img,
  .card__add,.ms-card__add,
  .woocommerce ul.products li.product a.button,
  .single-product ul.products li.product,
  .single-product ul.products li.product .button,
  .single-product div.product form.cart .single_add_to_cart_button,
  body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
  body.woocommerce-checkout #place_order{
    transition-duration:.01ms !important;
  }
}


/* Preloader RIMOSSO: copriva le tessere e bloccava i click sui link */
.pre{display:none!important}


/* ===== PDP prototipo (content-single-product) ===== */
.nav__menu a:hover::after,.nav__menu a.active::after{transform:scaleX(1); transform-origin:left}
/* on light PDP pages the nav starts on cream, so make it readable from the top */
body.light-top .nav__menu{color:var(--ink)}
body.light-top .nav__burger span{background:var(--ink)}
/* ============================ MOBILE POLISH ============================ */
@media(max-width:640px){
  .section__head p{font-size:1rem}
  .prods{grid-template-columns:1fr 1fr; gap:12px}
  .card__b{padding:14px}
  .card__t{font-size:1.05rem}
  .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
}
/* ==========================================================================
   COMPONENTI NUOVI — SCHEDA PRODOTTO (PDP)
   ========================================================================== */
.pdp{padding-top:clamp(104px,13vw,150px)}
.crumb{display:flex; align-items:center; gap:.55em; font-size:.78rem; letter-spacing:.02em; color:var(--muted); margin-bottom:clamp(26px,4vw,44px); flex-wrap:wrap}
.crumb a{transition:color .3s}
.crumb a:hover{color:var(--ink,#23211D)}
.crumb .sep{opacity:.45; font-size:.9em}
.crumb .cur{color:var(--ink); font-weight:500}
.pdp__grid{display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(32px,5vw,76px); align-items:flex-start}
/* galleria */
.gal{position:sticky; top:100px}
.gal__main{position:relative; border:1px solid var(--border); border-radius:3px; overflow:hidden; aspect-ratio:4/5; background:var(--cream-card)}
.gal__main img{width:100%; height:100%; object-fit:cover; transition:opacity .45s var(--ease),transform .6s var(--ease)}
.gal__main:hover img{transform:scale(1.04)}
.gal__tag{position:absolute; left:16px; top:16px; z-index:2; background:var(--ink); color:var(--cream); font-family:var(--serif); font-size:.76rem; letter-spacing:.01em; padding:8px 14px; border-radius:2px}
.gal__note{position:absolute; left:16px; bottom:16px; z-index:2; background:rgba(245,240,232,.92); backdrop-filter:blur(6px); color:var(--ink); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; padding:7px 12px; border-radius:2px}
.gal__thumbs{display:flex; gap:12px; margin-top:12px}
.gal__thumb{flex:1; aspect-ratio:1; border:1px solid var(--border); border-radius:3px; overflow:hidden; cursor:pointer; opacity:.6; transition:opacity .35s,border-color .35s,transform .5s var(--ease); background:var(--cream-card)}
.gal__thumb img{width:100%; height:100%; object-fit:cover}
.gal__thumb:hover{opacity:.85; transform:translateY(-2px)}
.gal__thumb.active{opacity:1; border-color:var(--ink)}
/* dettagli */
.pdp__cat{margin-bottom:1.1em}
.pdp__title{font-size:clamp(2.2rem,5.2vw,3.6rem); font-weight:600; letter-spacing:-.025em}
.pdp__price{font-family:var(--serif); font-weight:600; font-size:clamp(2.3rem,4.6vw,3.1rem); color:var(--red); line-height:1; margin-top:.5em; display:flex; align-items:baseline; gap:.4em}
.pdp__price small{font-family:var(--sans); font-weight:500; font-size:.9rem; color:var(--muted)}
.pdp__kg{display:flex; align-items:center; gap:.7em; flex-wrap:wrap; margin-top:.9em; font-size:.92rem; color:var(--muted)}
.pdp__kg b{color:var(--ink); font-weight:600}
.pdp__kg .d{width:4px; height:4px; border-radius:50%; background:var(--ochre)}
.pdp__desc{color:var(--muted); margin:1.7em 0 .4em; max-width:50ch; line-height:1.7}
.pdp__badges{display:flex; flex-wrap:wrap; gap:10px; margin:1.7em 0}
.badge{display:inline-flex; align-items:center; gap:.55em; border:1px solid var(--border); background:var(--cream-card); border-radius:999px; padding:.5em 1em; font-size:.78rem; font-weight:500; color:var(--ink)}
.badge .bd{width:6px; height:6px; border-radius:50%; background:var(--olive); flex-shrink:0}
.badge.badge--nero .bd{background:var(--charcoal)}
.badge.badge--all .bd{background:var(--ochre)}
.buybar{display:flex; gap:14px; align-items:stretch; margin:2em 0 1.4em; flex-wrap:wrap}
.qty{display:flex; align-items:center; border:1px solid var(--border); border-radius:2px; background:var(--paper); overflow:hidden}
.qty button{width:52px; align-self:stretch; background:transparent; border:none; font-size:1.35rem; line-height:1; color:var(--ink); cursor:pointer; transition:background .3s}
.qty button:hover{background:var(--cream)}
.qty input{width:44px; text-align:center; border:none; background:transparent; font:inherit; font-weight:600; font-size:1rem; color:var(--ink); -moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.btn-cart{flex:1; min-width:230px; min-height:58px; background:var(--red); color:#fff; border:none; border-radius:2px; font-family:var(--sans); font-weight:600; font-size:1rem; padding:0 1.6em; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:.7em; transition:transform .5s var(--ease),background .3s; will-change:transform}
.btn-cart:hover{background:var(--red-hover); transform:translateY(-2px)}
.btn-cart .tot{opacity:.8; font-weight:500}
.ship{display:grid; gap:14px; margin:1.6em 0; padding:20px 22px; border:1px solid var(--border); border-radius:3px; background:var(--cream-card)}
.ship__row{display:flex; gap:.85em; align-items:flex-start; font-size:.88rem; color:var(--muted); line-height:1.5}
.ship__row b{color:var(--ink); font-weight:600}
.ship__ic{flex-shrink:0; width:20px; height:20px; margin-top:1px; color:var(--olive)}
/* accordion */
.acc{margin-top:1.8em; border-top:1px solid var(--border)}
.acc__item{border-bottom:1px solid var(--border)}
.acc__h{width:100%; display:flex; align-items:center; justify-content:space-between; gap:1em; padding:20px 0; background:none; border:none; cursor:pointer; text-align:left; font-family:var(--serif); font-size:1.1rem; font-weight:600; color:var(--ink); letter-spacing:-.01em}
.acc__ic{flex-shrink:0; font-size:1.5rem; line-height:1; color:var(--muted); transition:transform .45s var(--ease)}
.acc__item.open .acc__ic{transform:rotate(45deg); color:var(--red)}
.acc__c{max-height:0; overflow:hidden; transition:max-height .5s var(--ease)}
.acc__c p{margin:0; padding:0 0 22px; color:var(--muted); font-size:.92rem; line-height:1.7; max-width:54ch}
@media(max-width:820px){
  .pdp__grid{grid-template-columns:1fr; gap:clamp(24px,6vw,40px)}
  .gal{position:static}
  .gal__main{aspect-ratio:1}
}
@media(max-width:640px){
  .buybar{flex-direction:column}
  .qty{justify-content:space-between}
  .qty input{flex:1}
  .btn-cart{width:100%}
  .pdp__desc{max-width:none}
}

/* ===== PDP: bottone Aggiungi al carrello ROSSO (era viola default) ===== */
.single-product .buybar form.cart{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;margin:0}
.single-product .buybar form.cart .quantity{flex:0 0 auto}
.single-product .buybar .single_add_to_cart_button,
.woocommerce div.product form.cart .button.single_add_to_cart_button{
  flex:1 1 auto;background:var(--red,#D41119)!important;color:#fff!important;border:none!important;
  border-radius:2px!important;font-family:var(--sans,'Inter',sans-serif)!important;font-weight:600!important;
  font-size:1rem!important;letter-spacing:.02em;padding:0 2em!important;min-height:56px;
  display:inline-flex;align-items:center;justify-content:center;box-shadow:none!important;
  transition:background .3s,transform .4s cubic-bezier(.22,1,.36,1)!important;text-transform:none!important}
.single-product .buybar .single_add_to_cart_button:hover{background:var(--red-hover,#B00E15)!important;transform:translateY(-2px)}
.single-product .buybar form.cart .quantity .qty{min-height:56px;width:72px;text-align:center;border:1px solid var(--border);border-radius:2px;font-family:var(--sans);font-size:1rem;background:var(--paper)}


/* ===== Carrello prototipo (cart.php) ===== */
/* buttons */
.btn{display:inline-flex; align-items:center; gap:.6em; font-weight:600; font-size:.92rem; padding:.95em 1.6em; border-radius:2px; border:1px solid transparent; transition:transform .5s var(--ease),background .3s,color .3s,border-color .3s; will-change:transform; cursor:pointer}
.nav__menu a.active::after{transform:scaleX(1)}
.nav__menu a.active{color:var(--red)}
.mnav a.active{color:var(--red)}
/* ============================ PRODOTTI ============================ */
.card{background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
/* ==========================================================================
   NUOVI COMPONENTI — pagina CARRELLO
   ========================================================================== */

/* --- sub-hero minimale (scuro, così la nav in cream resta leggibile) --- */
.subhero{position:relative; background:var(--charcoal-2); color:var(--cream); overflow:hidden;
  padding:clamp(120px,17vw,180px) 0 clamp(38px,6vw,64px)}
.subhero::after{content:""; position:absolute; inset:0; z-index:0; opacity:.16; pointer-events:none;
  background:radial-gradient(120% 90% at 85% -10%, rgba(212,17,25,.5), transparent 55%)}
.subhero__inner{position:relative; z-index:1}
.crumbs{font-size:.76rem; letter-spacing:.06em; color:#9a9284; display:flex; gap:.55em; align-items:center; flex-wrap:wrap; margin-bottom:clamp(18px,3vw,26px)}
.crumbs a{color:#c9c2b6; transition:color .3s}
.crumbs a:hover{color:var(--cream)}
.crumbs .sep{opacity:.5}
.crumbs .cur{color:var(--cream)}
.subhero h1{font-size:clamp(2.6rem,7vw,5rem); font-weight:500; letter-spacing:-.03em}
.subhero h1 em{font-style:italic; font-weight:400}
.subhero__sub{margin-top:clamp(14px,2vw,20px); color:#cfc8bc; font-size:clamp(.98rem,1.2vw,1.1rem); max-width:52ch; display:flex; align-items:center; gap:.7em; flex-wrap:wrap}
.subhero__count{display:inline-flex; align-items:center; gap:.5em; font-weight:600; color:var(--cream)}
.subhero__count .dot{width:5px; height:5px; border-radius:50%; background:var(--red); display:inline-block}
/* --- shell carrello --- */
.cart{padding:clamp(48px,7vw,84px) 0 clamp(120px,14vw,140px)}
.cart__grid{display:grid; grid-template-columns:1.6fr .9fr; gap:clamp(28px,4vw,56px); align-items:start}
/* --- lista righe --- */
.cart__head{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding-bottom:18px; margin-bottom:6px; border-bottom:1px solid var(--border)}
.cart__head h2{font-size:1.4rem}
.cart__clear{font-size:.8rem; color:var(--muted); background:none; border:none; cursor:pointer; padding:4px 0; transition:color .3s; letter-spacing:.02em}
.cart__clear:hover{color:var(--red)}
.crow{display:grid; grid-template-columns:96px 1fr auto auto 34px; gap:22px; align-items:center;
  padding:26px 0; border-bottom:1px solid var(--border); position:relative;
  transition:opacity .5s var(--ease),transform .5s var(--ease)}
.crow.removing{opacity:0; transform:translateX(24px)}
.crow__thumb{width:96px; height:96px; border-radius:3px; overflow:hidden; background:var(--cream-card); border:1px solid var(--border)}
.crow__thumb img{width:100%; height:100%; object-fit:cover}
.crow__info{min-width:0}
.crow__cat{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
.crow__name{font-family:var(--serif); font-size:1.22rem; font-weight:600; margin:.28em 0 .34em; line-height:1.15}
.crow__meta{font-size:.82rem; color:var(--muted)}
.crow__meta b{color:var(--ink); font-weight:600}
.crow__unit{font-size:.82rem; color:var(--muted); margin-top:.35em}
.crow__unit b{font-family:var(--serif); color:var(--red); font-weight:600; font-size:.95rem}
/* stepper quantità */
.qty{display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:2px; background:var(--paper); overflow:hidden}
.qty button{width:38px; height:38px; border:none; background:var(--paper); color:var(--ink); font-size:1.15rem; line-height:1; cursor:pointer; display:grid; place-items:center; transition:background .25s,color .25s}
.qty button:hover{background:var(--ink); color:var(--cream)}
.qty button:disabled{opacity:.32; cursor:not-allowed; background:var(--paper); color:var(--ink)}
.qty input{width:42px; height:38px; border:none; border-left:1px solid var(--border); border-right:1px solid var(--border); text-align:center; font:inherit; font-weight:600; font-size:.95rem; color:var(--ink); background:var(--paper); -moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.crow__sub{font-family:var(--serif); font-size:1.28rem; font-weight:600; color:var(--red); text-align:right; min-width:88px; white-space:nowrap}
.crow__rm{width:34px; height:34px; border-radius:2px; border:1px solid var(--border); background:var(--paper); color:var(--muted); cursor:pointer; display:grid; place-items:center; transition:background .3s,color .3s,border-color .3s}
.crow__rm:hover{background:var(--red); border-color:var(--red); color:#fff}
.crow__rm svg{width:15px; height:15px}
.cart__continue{display:inline-flex; align-items:center; gap:.6em; margin-top:30px; font-size:.9rem; font-weight:600; color:var(--ink); transition:gap .4s var(--ease)}
.cart__continue:hover{gap:1em}
.cart__continue .ar{color:var(--red); transition:transform .5s var(--ease)}
.cart__continue:hover .ar{transform:translateX(-4px)}
/* stato vuoto */
.cart__empty{display:none; text-align:center; padding:clamp(48px,8vw,84px) 0}
.cart__empty svg{width:56px; height:56px; color:var(--border); margin:0 auto 22px}
.cart__empty h3{font-family:var(--serif); font-size:1.6rem; margin-bottom:.5em}
.cart__empty p{color:var(--muted); margin-bottom:1.8em}
body.cart-empty .cart__list,body.cart-empty .cart__head,body.cart-empty .cart__continue{display:none}
body.cart-empty .cart__empty{display:block}
body.cart-empty .cart__aside{display:none}
body.cart-empty .mbar{display:none!important}
/* --- colonna riepilogo --- */
.cart__aside{position:sticky; top:96px}
.summary{background:var(--cream-card); border:1px solid var(--border); border-radius:3px; padding:clamp(24px,2.4vw,32px)}
.summary h3{font-size:1.5rem; margin-bottom:22px}
.sumrow{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:11px 0; font-size:.95rem; color:var(--muted)}
.sumrow b{color:var(--ink); font-weight:600; font-family:var(--serif); font-size:1.05rem}
.sumrow.free b{color:var(--olive)}
/* barra spedizione gratis */
.shipbar{margin:20px 0 6px; padding:18px; background:var(--paper); border:1px solid var(--border); border-radius:3px}
.shipbar__msg{font-size:.86rem; line-height:1.5; margin-bottom:12px; color:var(--ink)}
.shipbar__msg b{color:var(--red); font-family:var(--serif); font-weight:600}
.shipbar__msg.unlocked{color:var(--olive)}
.shipbar__msg.unlocked b{color:var(--olive)}
.shipbar__track{position:relative; height:8px; border-radius:999px; background:var(--border); overflow:hidden}
.shipbar__fill{position:absolute; inset:0 auto 0 0; width:0; border-radius:999px; background:linear-gradient(90deg,var(--red-ink),var(--red)); transition:width .7s var(--ease)}
.shipbar.unlocked .shipbar__fill{background:linear-gradient(90deg,var(--olive),#8a8f63)}
.shipbar__scale{display:flex; justify-content:space-between; margin-top:8px; font-size:.7rem; letter-spacing:.04em; color:var(--muted)}
/* scelta consegna / ritiro */
.deliv{margin:24px 0 6px; display:flex; flex-direction:column; gap:10px}
.deliv__lbl{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:2px}
.opt{position:relative; display:block; cursor:pointer}
.opt input{position:absolute; opacity:0; pointer-events:none}
.opt__box{display:flex; align-items:flex-start; gap:12px; padding:15px 16px; border:1px solid var(--border); border-radius:3px; background:var(--paper); transition:border-color .3s,box-shadow .3s}
.opt input:checked + .opt__box{border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink)}
.opt__radio{flex:0 0 auto; width:18px; height:18px; border-radius:50%; border:1.5px solid var(--border); margin-top:2px; position:relative; transition:border-color .3s}
.opt input:checked + .opt__box .opt__radio{border-color:var(--red)}
.opt__radio::after{content:""; position:absolute; inset:3px; border-radius:50%; background:var(--red); transform:scale(0); transition:transform .3s var(--ease)}
.opt input:checked + .opt__box .opt__radio::after{transform:scale(1)}
.opt__txt{min-width:0}
.opt__t{font-weight:600; font-size:.94rem; display:flex; align-items:center; gap:.5em; flex-wrap:wrap}
.opt__t .tag{font-size:.68rem; letter-spacing:.04em; font-weight:600; padding:.15em .6em; border-radius:999px; background:rgba(110,114,80,.14); color:var(--olive)}
.opt__d{font-size:.8rem; color:var(--muted); margin-top:.3em}
.opt__price{margin-left:auto; font-family:var(--serif); font-weight:600; color:var(--ink); white-space:nowrap; padding-left:10px}
.opt__price.free{color:var(--olive)}
.pickup-sedi{max-height:0; overflow:hidden; opacity:0; transition:max-height .45s var(--ease),opacity .35s,margin .45s}
.pickup-sedi.show{max-height:120px; opacity:1; margin-top:10px}
.pickup-sedi select{width:100%; padding:.8em 1em; font:inherit; font-size:.9rem; color:var(--ink); background:var(--paper); border:1px solid var(--border); border-radius:2px; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6459' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center}
.summary__total{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin:22px 0 4px; padding-top:20px; border-top:1px solid var(--border)}
.summary__total .lbl{font-family:var(--serif); font-size:1.15rem; font-weight:600}
.summary__total .val{font-family:var(--serif); font-size:1.85rem; font-weight:600; color:var(--red); line-height:1}
.summary__vat{font-size:.74rem; color:var(--muted); text-align:right; margin-bottom:20px}
.summary .btn{width:100%; justify-content:center; padding:1.05em 1.6em; font-size:.98rem}
.summary__pay{display:flex; align-items:center; justify-content:center; gap:.6em; margin-top:16px; font-size:.74rem; color:var(--muted); letter-spacing:.02em}
.summary__pay svg{width:14px; height:14px; color:var(--olive)}
.summary__badges{display:flex; gap:8px; justify-content:center; margin-top:12px; flex-wrap:wrap}
.paychip{font-size:.66rem; font-weight:600; letter-spacing:.05em; color:var(--muted); border:1px solid var(--border); border-radius:3px; padding:.3em .7em; background:var(--paper)}
/* --- barra sticky mobile --- */
.mbar{position:fixed; left:0; right:0; bottom:0; z-index:80; display:none;
  background:rgba(251,248,242,.94); backdrop-filter:blur(14px); border-top:1px solid var(--border);
  padding:12px clamp(16px,5vw,22px) calc(12px + env(safe-area-inset-bottom));
  align-items:center; gap:14px; box-shadow:0 -6px 24px rgba(35,33,29,.08)}
.mbar__info{line-height:1.15}
.mbar__lbl{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:600}
.mbar__val{font-family:var(--serif); font-size:1.35rem; font-weight:600; color:var(--red)}
.mbar .btn{margin-left:auto; padding:.9em 1.5em; font-size:.92rem; white-space:nowrap}
/* ============================ RESPONSIVE ============================ */
@media(max-width:960px){
  .cart__grid{grid-template-columns:1fr; gap:8px}
  .cart__aside{position:static; margin-top:38px}
}
@media(max-width:640px){
  .cart__list{display:flex; flex-direction:column; gap:14px; margin-top:4px}
  .crow{grid-template-columns:72px 1fr;
    grid-template-areas:"thumb info" "qty sub";
    gap:12px 14px; padding:16px; align-items:start;
    background:var(--cream-card,#FBF8F2); border:1px solid var(--border,#E3DBCE); border-radius:3px}
  .crow__thumb{grid-area:thumb; width:72px; height:72px}
  .crow__info{grid-area:info; padding-right:32px; min-width:0}
  .crow__name{font-size:1.12rem; margin:.18em 0 .3em}
  .crow__meta,.crow__unit{font-size:.8rem}
  .crow .quantity{grid-area:qty; align-self:center; justify-self:start; margin:0}
  .crow__sub{grid-area:sub; align-self:center; text-align:right; font-size:1.16rem}
  .crow__rm{position:absolute; top:12px; right:12px}
  .cart__actions{flex-direction:column; align-items:stretch; gap:12px}
  .cart__coupon{display:flex; gap:8px}
  .cart__coupon .input-text{flex:1; min-width:0}
  .cart__actions .btn{width:100%; justify-content:center}
  .cart__continue{margin-top:22px}
  .cart{padding-bottom:104px}
  .mbar{display:flex}
  .subhero__sub{font-size:.95rem}
  .summary{padding:22px}
  .foot__grid{grid-template-columns:1fr 1fr; gap:28px}
}
@media(max-width:390px){
  .crow{grid-template-columns:60px 1fr; padding:14px}
  .crow__thumb{width:60px; height:60px}
  .crow__info{padding-right:28px}
  .crow__name{font-size:1.05rem}
  .summary__total .val{font-size:1.6rem}
}
@media(max-width:420px){
  .foot__grid{grid-template-columns:1fr}
}


/* ===================== CHECKOUT PROTO — 2026-07-18 ===================== */
.nav__menu a.active::after{transform:scaleX(1)}
.conav{position:sticky; top:0; z-index:100; display:flex; align-items:center; justify-content:space-between;
  padding:14px clamp(20px,5vw,64px); background:rgba(245,240,232,.92); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--border)}
.conav__logo{height:32px; width:auto}
.conav__secure{display:inline-flex; align-items:center; gap:.55em; font-size:.8rem; font-weight:600; letter-spacing:.03em; color:var(--ink)}
.conav__secure svg{width:16px; height:16px; color:var(--olive)}
.conav__back{display:inline-flex; align-items:center; gap:.5em; font-size:.84rem; font-weight:500; color:var(--muted)}
.conav__back:hover{color:var(--ink)}
.conav__back .ar{transition:transform .4s var(--ease)}
.conav__back:hover .ar{transform:translateX(-3px)}
.co{padding:clamp(28px,5vw,56px) 0 clamp(90px,12vw,120px)}
.co__head{max-width:var(--container); margin:0 auto clamp(26px,4vw,44px); padding:0 clamp(20px,5vw,64px)}
.co__head .eyebrow{margin-bottom:14px}
.co__head h1{font-size:clamp(2.1rem,5vw,3.4rem)}
.co__grid{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px);
  display:grid; grid-template-columns:1.35fr .9fr; gap:clamp(24px,3.4vw,54px); align-items:start}
@media(max-width:920px){ .co__grid{grid-template-columns:1fr} }
.step{background:var(--paper); border:1px solid var(--border); border-radius:3px; padding:clamp(20px,2.6vw,32px); margin-bottom:16px}
.step__h{display:flex; align-items:center; gap:14px; margin-bottom:22px}
.step__n{flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:var(--ink); color:var(--cream); font-family:var(--serif); font-weight:600; font-size:.95rem; display:grid; place-items:center}
.step__t{font-family:var(--serif); font-size:1.28rem; font-weight:600; line-height:1.1}
.step__t small{display:block; font-family:var(--sans); font-weight:400; font-size:.78rem; color:var(--muted); letter-spacing:0; margin-top:3px}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.frow--3{grid-template-columns:.8fr 1.6fr .9fr}
.field{display:flex; flex-direction:column; gap:7px; margin-bottom:14px}
.field:last-child{margin-bottom:0}
.field label{font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--ink)}
.field label .opt{color:var(--muted); font-weight:400}
.field input,.field select{width:100%; font:inherit; font-size:.95rem; color:var(--ink); background:var(--cream-card);
  border:1px solid var(--border); border-radius:2px; padding:.85em 1em; transition:border-color .25s,box-shadow .25s}
.field input::placeholder{color:#a8a196}
.field input:focus,.field select:focus{outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(35,33,29,.07)}
.field select{appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2323211D' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1em center; padding-right:2.6em}
.rcards{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.rcard{position:relative; border:1px solid var(--border); border-radius:3px; padding:16px 16px 16px 46px; cursor:pointer; transition:border-color .25s,background .25s}
.rcard:hover{border-color:#cdc5b7}
.rcard input{position:absolute; opacity:0; pointer-events:none}
.rcard::before{content:""; position:absolute; left:16px; top:18px; width:18px; height:18px; border-radius:50%; border:1.5px solid #bdb5a7; transition:border-color .25s}
.rcard::after{content:""; position:absolute; left:21px; top:23px; width:8px; height:8px; border-radius:50%; background:var(--ink); transform:scale(0); transition:transform .25s var(--ease)}
.rcard:has(input:checked){border-color:var(--ink); background:var(--cream-card)}
.rcard:has(input:checked)::before{border-color:var(--ink)}
.rcard:has(input:checked)::after{transform:scale(1)}
.rcard__t{font-weight:600; font-size:.92rem; display:flex; align-items:center; justify-content:space-between; gap:8px}
.rcard__t .tag{font-family:var(--serif); font-size:.9rem; color:var(--red)}
.rcard__d{font-size:.78rem; color:var(--muted); margin-top:4px}
.subblock{display:none; margin-top:20px; padding-top:20px; border-top:1px dashed var(--border)}
.subblock.on{display:block}
.pickup{display:flex; flex-direction:column; gap:10px}
.pickup__i{position:relative; border:1px solid var(--border); border-radius:3px; padding:14px 16px 14px 44px; cursor:pointer; transition:border-color .25s,background .25s}
.pickup__i input{position:absolute; opacity:0; pointer-events:none}
.pickup__i::before{content:""; position:absolute; left:16px; top:16px; width:16px; height:16px; border-radius:50%; border:1.5px solid #bdb5a7}
.pickup__i::after{content:""; position:absolute; left:20.5px; top:20.5px; width:7px; height:7px; border-radius:50%; background:var(--ink); transform:scale(0); transition:transform .25s var(--ease)}
.pickup__i:has(input:checked){border-color:var(--ink); background:var(--cream-card)}
.pickup__i:has(input:checked)::after{transform:scale(1)}
.pickup__i b{font-size:.92rem}
.pickup__i span{display:block; font-size:.78rem; color:var(--muted); margin-top:2px}
.paybody{display:none; margin-top:16px; padding-top:16px; border-top:1px dashed var(--border)}
.paybody.on{display:block}
.paypal-note{font-size:.86rem; color:var(--muted); display:flex; align-items:center; gap:.6em}
.checkline{display:flex; align-items:flex-start; gap:12px; cursor:pointer; font-size:.9rem}
.checkline input{flex:0 0 auto; width:20px; height:20px; margin-top:1px; accent-color:var(--ink)}
.checkline span b{font-weight:600}
.checkline span small{display:block; color:var(--muted); font-size:.8rem; margin-top:2px}
.consent{margin:20px 0 4px}
.consent a{color:var(--ink); text-decoration:underline; text-underline-offset:2px}
.summary{position:sticky; top:78px; background:var(--cream-card); border:1px solid var(--border); border-radius:3px; padding:clamp(22px,2.4vw,30px)}
.summary__h{font-family:var(--serif); font-size:1.28rem; font-weight:600; margin-bottom:6px}
.summary__sub{font-size:.8rem; color:var(--muted); margin-bottom:22px}
.sitem{display:flex; gap:14px; padding:14px 0; border-top:1px solid var(--border)}
.sitem:first-of-type{border-top:none; padding-top:4px}
.sitem__img{flex:0 0 auto; width:62px; height:62px; border-radius:2px; overflow:hidden; position:relative; background:var(--border)}
.sitem__img img{width:100%; height:100%; object-fit:cover}
.sitem__q{position:absolute; top:-7px; right:-7px; width:22px; height:22px; border-radius:50%; background:var(--ink); color:var(--cream); font-size:.72rem; font-weight:600; display:grid; place-items:center; border:2px solid var(--cream-card)}
.sitem__b{flex:1; min-width:0}
.sitem__cat{font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); font-weight:600}
.sitem__t{font-family:var(--serif); font-size:1rem; line-height:1.2; margin:2px 0 3px}
.sitem__meta{font-size:.74rem; color:var(--muted)}
.sitem__price{flex:0 0 auto; align-self:center; font-family:var(--serif); font-weight:600; color:var(--red); white-space:nowrap}
.promo{display:flex; gap:8px; margin:18px 0 4px}
.promo input{flex:1; font:inherit; font-size:.86rem; background:var(--paper); border:1px solid var(--border); border-radius:2px; padding:.7em .9em}
.promo input:focus{outline:none; border-color:var(--ink)}
.promo button{flex:0 0 auto; background:var(--ink); color:var(--cream); border:none; border-radius:2px; padding:0 1.1em; font-weight:600; font-size:.82rem; cursor:pointer; transition:background .3s}
.promo button:hover{background:var(--charcoal-2)}
.nudge{margin:18px 0; font-size:.78rem; color:var(--muted)}
.nudge b{color:var(--ink); font-weight:600}
.nudge.free b{color:var(--olive)}
.nudge__bar{height:5px; border-radius:99px; background:var(--border); margin-top:8px; overflow:hidden}
.nudge__bar i{display:block; height:100%; background:var(--olive); border-radius:99px; transition:width .5s var(--ease)}
.totals{border-top:1px solid var(--border); margin-top:18px; padding-top:16px}
.trow{display:flex; justify-content:space-between; align-items:baseline; font-size:.9rem; padding:5px 0; color:var(--muted)}
.trow b{color:var(--ink); font-weight:500}
.trow .free{color:var(--olive); font-weight:600}
.trow--grand{margin-top:8px; padding-top:14px; border-top:1px solid var(--border); font-size:1rem; color:var(--ink)}
.trow--grand .t{font-family:var(--serif); font-weight:600; font-size:1.15rem}
.trow--grand .v{font-family:var(--serif); font-weight:600; font-size:1.6rem; color:var(--red)}
.trow--grand small{display:block; text-align:right; font-family:var(--sans); font-size:.68rem; color:var(--muted); font-weight:400}
.paybtn{width:100%; justify-content:center; margin-top:20px; padding:1.1em 1.6em; font-size:1rem}
.summary__trust{display:flex; flex-wrap:wrap; gap:10px 16px; margin-top:18px; font-size:.72rem; color:var(--muted)}
.summary__trust span{display:inline-flex; align-items:center; gap:.4em}
.summary__trust svg{width:14px; height:14px; color:var(--olive)}
@media(max-width:920px){
  .summary{position:static}
  .summary .paybtn{display:none} 
}
.mobar{display:none}
@media(max-width:920px){
  .mobar{display:flex; align-items:center; justify-content:space-between; gap:14px;
    position:fixed; left:0; right:0; bottom:0; z-index:90; padding:12px clamp(16px,5vw,24px);
    background:rgba(245,240,232,.96); backdrop-filter:blur(14px); box-shadow:0 -1px 0 var(--border)}
  .mobar__tot{line-height:1.1}
  .mobar__tot small{display:block; font-size:.68rem; color:var(--muted)}
  .mobar__tot b{font-family:var(--serif); font-size:1.4rem; color:var(--red)}
  .mobar .btn{flex:1; max-width:60%; justify-content:center; padding:1em 1.4em}
}
.cofoot{background:var(--charcoal-2); color:#7d766a; padding:26px 0}
.cofoot__row{max-width:var(--container); margin:0 auto; padding:0 clamp(20px,5vw,64px);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; font-size:.76rem}
.cofoot__row a:hover{color:var(--cream)}
.cofoot__pay{display:flex; align-items:center; gap:10px; color:#5f594f}
.cofoot__pay b{color:#cfc8bc; font-weight:600; letter-spacing:.04em}
@media(max-width:920px){ .cofoot{padding-bottom:calc(26px + 76px)} }
.subblock{display:block!important}
.paybody{display:block!important}

/* ===================== CONFERMA/THANKYOU PROTO — 2026-07-18 ===================== */
.nav__menu a.active::after{transform:scaleX(1); transform-origin:left; background:var(--red)}
.mnav a.active .ar{transform:translateX(4px)}
.confirm{position:relative; background:var(--charcoal-2); color:var(--cream); overflow:hidden;
  padding:clamp(130px,20vw,190px) 0 clamp(64px,9vw,110px); text-align:center}
.confirm::before{content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(130% 78% at 50% -6%,rgba(212,17,25,.20),transparent 58%)}
.confirm::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:rgba(255,255,255,.08)}
.confirm__inner{position:relative; z-index:2; max-width:660px; margin:0 auto; padding:0 clamp(20px,5vw,64px)}
.confirm__check{width:clamp(78px,12vw,96px); aspect-ratio:1; margin:0 auto clamp(24px,3.4vw,36px);
  border-radius:50%; background:var(--red); display:grid; place-items:center;
  box-shadow:0 14px 40px rgba(212,17,25,.42); animation:pulseRing 2.6s var(--ease) infinite}
@keyframes pulseRing{0%{box-shadow:0 14px 40px rgba(212,17,25,.42),0 0 0 0 rgba(212,17,25,.45)}
  70%{box-shadow:0 14px 40px rgba(212,17,25,.42),0 0 0 22px rgba(212,17,25,0)}
  100%{box-shadow:0 14px 40px rgba(212,17,25,.42),0 0 0 0 rgba(212,17,25,0)}}
.confirm__check svg{width:46%; height:46%}
.confirm__check path{fill:none; stroke:#fff; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:32; stroke-dashoffset:32; animation:drawCheck .75s var(--ease) .55s forwards}
@keyframes drawCheck{to{stroke-dashoffset:0}}
.confirm h1{font-size:clamp(2.5rem,7vw,4.6rem); font-weight:500; letter-spacing:-.035em}
.confirm h1 em{font-style:italic; font-weight:400; color:var(--ochre)}
.confirm__num{margin-top:clamp(16px,2.4vw,26px); font-family:var(--serif); font-size:clamp(1.05rem,2.1vw,1.45rem); color:#e6e0d5}
.confirm__num b{color:var(--cream)}
.confirm__mail{display:inline-flex; align-items:center; gap:.6em; margin-top:1.5em;
  padding:.7em 1.2em; border:1px solid rgba(255,255,255,.16); border-radius:999px;
  font-size:.9rem; color:#cfc8bc; background:rgba(255,255,255,.04)}
.confirm__mail svg{width:16px; height:16px; flex:none; stroke:var(--ochre)}
.confirm__mail b{color:var(--cream); font-weight:600}
.recap{padding:clamp(56px,8vw,110px) 0}
.recap__grid{display:grid; grid-template-columns:1.35fr .9fr; gap:clamp(22px,3vw,40px); align-items:start}
.panel{background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden}
.panel__h{display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:22px clamp(20px,3vw,30px);
  border-bottom:1px solid var(--border)}
.panel__h h2{font-size:clamp(1.3rem,2.4vw,1.7rem)}
.panel__h span{font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
.oitem{display:flex; gap:16px; align-items:center; padding:18px clamp(20px,3vw,30px); border-bottom:1px solid var(--border)}
.oitem:last-child{border-bottom:none}
.oitem__img{width:74px; height:74px; flex:none; border-radius:2px; overflow:hidden; background:var(--cream-card)}
.oitem__img img{width:100%; height:100%; object-fit:cover}
.oitem__b{flex:1; min-width:0}
.oitem__cat{font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600}
.oitem__t{font-family:var(--serif); font-size:1.08rem; margin:.2em 0 .15em; line-height:1.15}
.oitem__meta{font-size:.78rem; color:var(--muted)}
.oitem__qty{flex:none; font-size:.82rem; color:var(--muted); text-align:center; min-width:34px}
.oitem__price{flex:none; font-family:var(--serif); font-size:1.12rem; font-weight:600; color:var(--red); text-align:right; min-width:74px}
.totals{padding:20px clamp(20px,3vw,30px) 26px; background:var(--cream-card)}
.totals__row{display:flex; justify-content:space-between; align-items:baseline; padding:7px 0; font-size:.94rem; color:var(--muted)}
.totals__row b{color:var(--ink); font-weight:600}
.totals__row .free{color:var(--olive); font-weight:600}
.totals__grand{margin-top:12px; padding-top:16px; border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:baseline}
.totals__grand span{font-family:var(--serif); font-size:1.15rem; font-weight:600; color:var(--ink)}
.totals__grand b{font-family:var(--serif); font-size:clamp(1.7rem,3vw,2.1rem); font-weight:600; color:var(--red); line-height:1}
.aside{display:flex; flex-direction:column; gap:clamp(22px,3vw,40px)}
.dcard{padding:clamp(22px,3vw,30px)}
.dcard h3{font-family:var(--serif); font-size:1.2rem; margin-bottom:2px}
.dcard .lead{display:flex; align-items:center; gap:.6em; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); font-weight:600; margin-bottom:14px}
.dcard .lead svg{width:16px; height:16px; stroke:var(--red); flex:none}
.dline{font-size:.95rem; line-height:1.7; color:var(--muted)}
.dline b{color:var(--ink); font-weight:600}
.ship{margin-top:18px; padding-top:16px; border-top:1px dashed var(--border)}
.ship__when{display:flex; align-items:center; gap:12px; margin-top:6px}
.ship__day{font-family:var(--serif); font-size:1.5rem; font-weight:600; color:var(--red); line-height:1}
.ship__day small{display:block; font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:4px}
.note{font-size:.82rem; color:var(--muted); margin-top:14px; padding-left:14px; border-left:2px solid var(--ochre)}
@media(max-width:860px){ .recap__grid{grid-template-columns:1fr} }
.steps{background:var(--cream-card); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
.steps__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,3vw,34px); margin-top:clamp(34px,5vw,56px)}
.step{position:relative; padding-top:26px}
.step__n{font-family:var(--serif); font-size:1rem; font-weight:600; color:var(--red); width:40px; height:40px; border:1px solid var(--border); background:var(--paper); border-radius:50%; display:grid; place-items:center; margin-bottom:18px}
.step h3{font-family:var(--serif); font-size:1.25rem; margin-bottom:.4em}
.step p{font-size:.94rem; color:var(--muted); max-width:32ch}
.step::before{content:""; position:absolute; top:0; left:0; width:40px; height:2px; background:var(--red)}
.cta-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:clamp(38px,5vw,58px)}
@media(max-width:720px){ .steps__grid{grid-template-columns:1fr} .cta-row .btn{width:100%; justify-content:center} }
/* ============================================================
   SHOP CARD = HOME CARD — coerenza card prodotto (2026-07-18)
   Allinea .ms-card (catalogo Woo) alla .card della home.
   ============================================================ */
.woocommerce ul.products li.product.ms-card{
  background:var(--paper); border:1px solid var(--border); border-radius:3px; overflow:hidden;
  transition:transform .6s var(--ease), box-shadow .6s var(--ease);
  margin:0 0 0 0; padding:0; display:flex; flex-direction:column; box-shadow:none;
}
.woocommerce ul.products li.product.ms-card .ms-card__img{
  display:block; aspect-ratio:1; overflow:hidden; position:relative; margin:0; border:none; border-radius:0;
}
.woocommerce ul.products li.product.ms-card .ms-card__img img{
  width:100%; height:100%; object-fit:cover; display:block; transition:transform 1s var(--ease); border-radius:0;
}
.woocommerce ul.products li.product.ms-card:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(35,33,29,.13)}
.woocommerce ul.products li.product.ms-card:hover .ms-card__img img{transform:scale(1.07)}
.woocommerce ul.products li.product.ms-card .ms-card__b{padding:18px; display:flex; flex-direction:column; flex:1 1 auto; gap:0}
.woocommerce ul.products li.product.ms-card .ms-card__cat{font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); font-weight:600; margin:0}
.woocommerce ul.products li.product.ms-card .ms-card__t{font-family:var(--serif); font-size:1.18rem; font-weight:600; margin:.35em 0 .1em; line-height:1.2; min-height:auto}
.woocommerce ul.products li.product.ms-card .ms-card__t a{color:var(--ink); text-decoration:none}
.woocommerce ul.products li.product.ms-card .ms-card__meta{font-size:.78rem; color:var(--muted); line-height:1.4; margin:0; min-height:auto}
.woocommerce ul.products li.product.ms-card .ms-card__f{display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:14px; gap:10px}
.woocommerce ul.products li.product.ms-card .price{font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--red); margin:0}
.woocommerce ul.products li.product.ms-card .price del,
.woocommerce ul.products li.product.ms-card .price ins{font-size:1.3rem}
.woocommerce ul.products li.product.ms-card .ms-card__tag,
.woocommerce ul.products li.product.ms-card .onsale{
  position:absolute; top:10px; left:10px; right:auto; margin:0; background:rgba(18,16,14,.72); color:#fff;
  font-family:var(--sans); font-size:.6rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  padding:.4em .65em; border-radius:2px; z-index:2; min-height:0; line-height:1; box-shadow:none;
}
/* add-to-cart = quadratino ink "+" identico a .card__add della home */
.woocommerce ul.products li.product.ms-card .button.add_to_cart_button{
  width:38px; height:38px; min-width:38px; padding:0; border:none; border-radius:2px; margin:0;
  background:var(--ink); color:transparent!important; font-size:0; line-height:0; position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .3s, transform .4s var(--ease);
}
.woocommerce ul.products li.product.ms-card .button.add_to_cart_button::before{content:"+"; color:var(--cream); font-size:1.25rem; line-height:1}
.woocommerce ul.products li.product.ms-card .button.add_to_cart_button:hover{background:var(--red); transform:rotate(90deg)}
.woocommerce ul.products li.product.ms-card .added_to_cart{font-family:var(--sans); font-size:.68rem; font-weight:600; color:var(--red); text-decoration:underline; margin-left:8px; width:auto; height:auto; background:none}
@media(pointer:coarse){
  .woocommerce ul.products li.product.ms-card .button.add_to_cart_button{width:44px; height:44px; min-width:44px}
}

/* prezzo al kg suffix + descrizione clamp (listino al kg) */
.woocommerce ul.products li.product.ms-card .price .amount::after{content:""; font-family:var(--sans); font-size:.58em; font-weight:500; color:var(--muted); letter-spacing:.02em}
.woocommerce ul.products li.product.ms-card .ms-card__meta{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.2em}

/* ===== PDP al kg: prezzo "/kg", nascondi meta pezzo/peso ormai inutili ===== */
.single-product .pdp__price .amount::after{content:""; font-family:var(--sans); font-size:.5em; font-weight:500; color:var(--muted); letter-spacing:.02em; vertical-align:baseline}
.single-product .pdp__price small{display:none}
.single-product .pdp__kg{display:none}

/* ===== PDP varianti Formato (prodotti variabili) ===== */
.single-product .buybar .variations_form{margin:0}
.single-product .buybar table.variations{width:100%; margin:0 0 14px; border:0; background:none}
.single-product .buybar table.variations tr{display:block}
.single-product .buybar table.variations td,.single-product .buybar table.variations th{border:0; padding:0 0 6px; display:block; text-align:left; background:none}
.single-product .buybar table.variations .label label{font-family:var(--sans); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:6px; display:block}
.single-product .buybar .variations select{width:100%; font-family:var(--sans); font-size:1rem; padding:.85em 1em; border:1px solid var(--border,#E3DBCE); border-radius:2px; background:var(--paper,#fff); color:var(--ink); appearance:none; -webkit-appearance:none; cursor:pointer}
.single-product .buybar .variations select:focus{outline:none; border-color:var(--ink)}
.single-product .buybar .reset_variations{font-size:.78rem; color:var(--muted,#6B6459); text-decoration:underline; text-underline-offset:2px; margin-left:8px; display:inline-block}
.single-product .buybar .woocommerce-variation-price .price{font-family:var(--serif); font-size:1.7rem; font-weight:600; color:var(--red); display:block; margin:4px 0 12px}
.single-product .buybar .woocommerce-variation-availability{display:none}
.single-product .buybar .single_variation_wrap{margin-top:4px}


/* ===== FIX HOVER LINK — neutralizza viola/fucsia (Hello reset.css a:hover #336 + Woo) ===== */
:where(.site-main) a:hover,
:where(.site-main) a:focus{ color:var(--ink,#23211D); }
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus{ color:var(--ink,#23211D); }

/* ===== FIX menu laterale mobile (pagine WooCommerce) ===== */
.mnav a:not(.btn),
.mnav a:not(.btn):link,
.mnav a:not(.btn):visited{ color:var(--cream,#F5F0E8); }
.mnav a.active,
.mnav a.active:visited{ color:var(--red,#D41119); }
.mnav a .ar{ color:var(--red,#D41119); }
.mnav a.btn-primary,
.mnav a.btn-primary:visited{ color:#fff; }

/* ===== QTY carrello: markup reale WooCommerce (.quantity > input.qty) ===== */
.crow .quantity{display:inline-flex; align-items:center; border:1px solid var(--border,#E3DBCE); border-radius:2px; background:var(--paper,#fff); overflow:hidden}
.crow .quantity .qty{width:58px; height:40px; border:none; text-align:center; font:inherit; font-weight:600; font-size:.95rem; color:var(--ink); background:transparent; -moz-appearance:textfield}
.crow .quantity .qty:focus{outline:none}
.crow .quantity .qty::-webkit-outer-spin-button,
.crow .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.crow .quantity .plus,.crow .quantity .minus{width:38px; height:40px; border:none; background:var(--paper); color:var(--ink); font-size:1.1rem; line-height:1; cursor:pointer; display:grid; place-items:center; transition:background .25s,color .25s}
.crow .quantity .minus{border-right:1px solid var(--border)}
.crow .quantity .plus{border-left:1px solid var(--border)}
.crow .quantity .plus:hover,.crow .quantity .minus:hover{background:var(--ink); color:var(--cream)}

/* nascondi titolo pagina del tema (h1.entry-title in .page-header) su carrello/checkout:
   il sub-hero del template ha gia' il titolo editoriale ("Il tuo carrello.") */
.woocommerce-cart .page-header, .woocommerce-checkout .page-header{display:none}
