/* ==========================================================================
   Eurosima Blue — flusso d'ordine (carrello / checkout / conferma)
   Scope: body.eu-co-flow. Token: var(--color-*) da style.css.
   Estensioni dove il DS tace (documentate nella nota di design):
   focus = bordo #0078E8 + ring rgba(0,120,232,0.18) · errore = #C2453A su #FBEFED
   ========================================================================== */

body.eu-co-flow {
  background: var(--color-surface-alt); /* #F1F5F8 — richiesta cliente, niente beige del mockup */
}

/* --- Step indicator ------------------------------------------------------ */
.eu-co-steps {
  background: var(--color-surface-alt);
  padding: 22px 32px 6px;
  display: flex;
  justify-content: center;
}
.eu-co-steps__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 14px;
}
.eu-co-steps__item { display: flex; align-items: center; gap: 14px; margin: 0; }
/* connettore tra pill: navy se superato, grigio linea altrimenti */
.eu-co-steps__item + .eu-co-steps__item::before {
  content: "";
  width: 48px;
  height: 2px;
  border-radius: 99px;
  background: var(--color-line);
}
.eu-co-steps__item.is-done + .eu-co-steps__item::before {
  background: var(--color-navy);
}
.eu-co-steps__pill {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  color: var(--color-muted);
  text-decoration: none;
}
.eu-co-steps__num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: var(--fw-medium);
  display: flex;
  align-items: center;
}
.eu-co-steps__label { font-size: 13px; font-weight: var(--fw-medium); }
.eu-co-steps__item.is-active .eu-co-steps__pill {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-navy);
}
.eu-co-steps__item.is-done .eu-co-steps__pill {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: #fff;
}
.eu-co-steps__item.is-active .eu-co-steps__label,
.eu-co-steps__item.is-done .eu-co-steps__label { font-weight: var(--fw-bold); }

@media (max-width: 768px) {
  .eu-co-steps { padding: 14px 16px; }
  .eu-co-steps__list, .eu-co-steps__item { gap: 8px; }
  .eu-co-steps__item + .eu-co-steps__item::before { width: 16px; }
  .eu-co-steps__pill { gap: 6px; padding: 6px 11px; }
  .eu-co-steps__num { font-size: 9.5px; }
  .eu-co-steps__label { font-size: 11px; }
}

/* --- Layout carrello: contenuto + aside ---------------------------------- */
/* il contenuto vive dentro un .container bootstrap del parent (page.php):
   sulle pagine flusso va a tutta larghezza (richiesta cliente 2026-06-10) */
body.eu-co-flow .container.mb-4 { max-width: 100%; background: transparent !important; }
body.eu-co-flow .product-container { border-radius: 0; background: transparent !important; box-shadow: none !important; padding: 0 !important; }
/* nessun wrapper intermedio porta bianco: le uniche superfici bianche sono le card */
body.eu-co-flow .product-container .row,
body.eu-co-flow .product-container [class*="col-"],
body.eu-co-flow .content-area,
body.eu-co-flow .site-main,
body.eu-co-flow article.page,
body.eu-co-flow .entry-content { background: transparent !important; }
/* sfondo full-width (richiesta cliente), CONTENUTO centrato con tetto:
   senza max-width su schermi larghi il flusso si stendeva a tutta pagina */
body.eu-co-flow .woocommerce { max-width: 1200px; margin: 0 auto; }
/* titolo pagina Fraunces, ritmo compatto come il mockup (titolo → contenuto) */
/* l'entry-header vive FUORI da .woocommerce: stesso tetto, o il titolo resta
   attaccato al bordo sinistro su schermi larghi */
body.eu-co-flow .entry-header { margin: 0 auto 4px; padding: 0; max-width: 1200px; }
/* anche le icone share (wp-socializer) vivono fuori da .woocommerce */
body.eu-co-flow .entry-content > .wp-socializer { max-width: 1200px; margin-left: auto; margin-right: auto; }
/* il parent a ≥768px mette padding-bottom ~6em su .entry-header full-width
   (cart/checkout): specificità più alta del nostro reset, va ribattuto */
@media (min-width: 768px) {
  body.eu-co-flow.storefront-full-width-content.woocommerce-cart .entry-header,
  body.eu-co-flow.storefront-full-width-content.woocommerce-checkout .entry-header {
    padding: 0;
    text-align: left;
  }
}
body.eu-co-flow .entry-content { margin-top: 0; }
/* sottotitolo "N articoli · N pezzi totali" (mockup) */
.eu-co-cart-sub { font-size: var(--fs-sm); color: var(--color-muted); margin: 0 0 22px; }
body.eu-co-flow .entry-header h1,
body.eu-co-flow h1.entry-title {
  text-align: left;
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  font-size: var(--fs-4xl);
  letter-spacing: -0.9px;
  color: var(--color-ink);
  margin: 0;
  padding: 0;
}
/* "Il tuo <em>carrello</em>": corsivo royal blue come nel mockup */
body.eu-co-flow .entry-header h1 em,
body.eu-co-flow h1.entry-title em {
  font-style: italic;
  color: var(--color-primary-ink);
}
@media (max-width: 768px) {
  body.eu-co-flow .entry-header h1,
  body.eu-co-flow h1.entry-title { font-size: 26px; letter-spacing: -0.6px; }
}

/* griglia 1fr 380px su desktop: contenuto (wrappato in .eu-co-cart-main via
   hook) + aside. Due soli figli per riga: niente distribuzione di altezza. */
/* scope al .container: il parent stampa un secondo div.woocommerce (notices)
   direttamente nel body, che NON deve ereditare la griglia del carrello */
@media (min-width: 993px) {
  body.eu-co-flow.woocommerce-cart .container .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    column-gap: var(--space-6);
    row-gap: 0; /* la riga notices (spesso vuota) non deve creare vuoto sopra il contenuto */
    align-items: start;
  }
  body.eu-co-flow.woocommerce-cart .container .woocommerce > * { grid-column: 1; }
  body.eu-co-flow.woocommerce-cart .container .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  body.eu-co-flow.woocommerce-cart .container .woocommerce > .eu-co-cart-main { grid-column: 1; grid-row: 2; }
  body.eu-co-flow.woocommerce-cart .container .woocommerce > .cart-collaterals {
    grid-column: 2;
    grid-row: 2;
    position: sticky;
    top: var(--space-4);
  }
}
/* wrapper notices a livello body (parent): allineato al contenuto pagina */
body.eu-co-flow > .woocommerce { padding: 0 36px; margin: 0 0 4px; }
@media (max-width: 768px) {
  body.eu-co-flow > .woocommerce { padding: 0 16px; }
}

/* --- Free shipping bar ---------------------------------------------------- */
.eu-co-freeship {
  background: var(--color-primary-soft);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  padding: 14px 18px;
  margin-bottom: var(--space-4);
}
.eu-co-freeship__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.eu-co-freeship__msg { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--color-navy); }
.eu-co-freeship__frac { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--color-primary-ink); }
.eu-co-freeship__pct { display: none; font-family: var(--font-mono); font-size: 9px; color: var(--color-primary-ink); flex-shrink: 0; }
.eu-co-freeship__track { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, 0.7); }
.eu-co-freeship__fill { height: 100%; border-radius: 99px; background: var(--color-primary); }

/* --- Tabella carrello → card con righe ------------------------------------ */
body.eu-co-flow .woocommerce-cart-form table.shop_table {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  border-collapse: separate;
  padding: 4px 22px;
  float: none; /* il parent flotta .shop_table_responsive e collassa ciò che segue */
  margin-bottom: 0;
}
body.eu-co-flow .woocommerce-cart-form table.shop_table thead { display: none; }
/* il parent stampa le label responsive "Prodotto:/Prezzo:…" a ogni larghezza:
   su desktop rubano spazio colonna, via */
@media (min-width: 769px) {
  body.eu-co-flow table.shop_table_responsive tr td[data-title]::before { display: none; }
}
/* la colonna nome prende tutto lo spazio residuo; prezzi non vanno a capo */
body.eu-co-flow .woocommerce-cart-form td.product-name { width: 99%; min-width: 240px; overflow-wrap: normal; word-break: normal; }
body.eu-co-flow .woocommerce-cart-form td.product-subtotal,
body.eu-co-flow .woocommerce-cart-form td.product-quantity { white-space: nowrap; }
/* colonna prezzo: blocco E-Club sopra, prezzo sotto (niente riga unica larga) */
body.eu-co-flow .woocommerce-cart-form td.product-price { white-space: normal; max-width: 150px; }
body.eu-co-flow .woocommerce-cart-form table.shop_table td { border: 0; background: transparent; }
body.eu-co-flow .woocommerce-cart-form tr.cart_item td { border-bottom: 1px solid var(--color-line); padding: 18px 8px; vertical-align: middle; }
body.eu-co-flow .woocommerce-cart-form tr.cart_item:last-of-type td { border-bottom: 0; }
body.eu-co-flow .woocommerce-cart-form td.product-thumbnail img {
  width: 96px;
  max-width: none; /* il parent la limita a 3.7em */
  border-radius: var(--radius-md);
  background: var(--color-primary-soft);
}
body.eu-co-flow .woocommerce-cart-form td.product-name { text-align: left; }
body.eu-co-flow .woocommerce-cart-form td.product-name a {
  font-size: 14.5px;
  font-weight: var(--fw-semibold);
  color: var(--color-ink);
  text-decoration: none;
  line-height: 1.3;
}
/* kicker marca + meta riga (SKU, disponibilità) come nel mockup */
.eu-co-item-brand {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-3xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  margin-bottom: 4px;
}
.eu-co-item-meta { display: flex; align-items: center; gap: 10px; margin-top: 3px; }
.eu-co-item-sku { font-family: var(--font-mono); font-size: 10.5px; color: var(--color-muted); }
.eu-co-item-stock {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--fs-2xs);
  color: var(--color-success);
  font-weight: var(--fw-semibold);
}
.eu-co-item-stock__dot {
  width: 6px;
  height: 6px;
  border-radius: 99px;
  background: var(--color-success);
  display: inline-block;
}
body.eu-co-flow .woocommerce-cart-form td.product-price { font-size: var(--fs-2xs); color: var(--color-muted); }
body.eu-co-flow .woocommerce-cart-form td.product-subtotal .amount {
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: var(--fw-medium);
  color: var(--color-ink);
}
/* il parent stila i <bdi> dei prezzi (#0000CC, dimensioni proprie): sul flusso
   ereditano tutto dal contesto */
body.eu-co-flow .woocommerce .amount bdi {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  font-family: inherit !important;
}
/* suffisso IVA di Woo, piccolo e muted come nel mockup */
body.eu-co-flow .woocommerce small.tax_label,
body.eu-co-flow .woocommerce .woocommerce-price-suffix {
  font-size: 9.5px;
  color: var(--color-muted);
  font-weight: var(--fw-regular);
}
/* cestino tondo */
body.eu-co-flow .woocommerce-cart-form td.product-remove a.remove {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-line);
  color: var(--color-muted) !important;
  background: var(--color-surface);
  font-size: 18px;
  line-height: 32px;
}
/* stepper quantità */
.eu-co-stepper {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  overflow: hidden;
}
.eu-co-stepper__btn {
  width: 38px;
  height: 42px;
  border: 0;
  background: transparent;
  color: var(--color-ink-2);
  font-size: 16px;
  cursor: pointer;
  padding: 0;
}
.eu-co-stepper .qty {
  width: 30px;
  height: 42px;
  border: 0;
  text-align: center;
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  color: var(--color-ink);
  background: transparent;
  /* il parent mette margin-bottom 20px + display block sull'input qty: spinge il numero in alto */
  margin: 0 !important;
  padding: 0 !important;
  display: inline-block !important;
  line-height: 42px;
  -moz-appearance: textfield;
}
.eu-co-stepper .qty::-webkit-outer-spin-button,
.eu-co-stepper .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* bottone update Woo: lo guida il JS, nascosto */
body.eu-co-flow .woocommerce-cart-form button[name="update_cart"] { display: none !important; }

/* --- Riga carrello come nel mockup (desktop): grid con cestino a destra ---
   thumb | nome | qty | unitario sopra + totale sotto | cestino */
@media (min-width: 769px) {
  body.eu-co-flow .woocommerce-cart-form table.shop_table,
  body.eu-co-flow .woocommerce-cart-form table.shop_table tbody { display: block; }
  body.eu-co-flow .woocommerce-cart-form tr.cart_item {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) auto minmax(110px, auto) 34px;
    grid-template-rows: auto auto;
    grid-template-areas:
      "thumb name qty price remove"
      "thumb name qty subtotal remove";
    column-gap: 20px;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid var(--color-line);
  }
  body.eu-co-flow .woocommerce-cart-form tr.cart_item:last-of-type { border-bottom: 0; }
  body.eu-co-flow .woocommerce-cart-form tr.cart_item td {
    display: block;
    border-bottom: 0;
    padding: 0;
    width: auto;
    min-width: 0;
  }
  body.eu-co-flow .woocommerce-cart-form td.product-thumbnail { grid-area: thumb; position: relative; }
  body.eu-co-flow .woocommerce-cart-form td.product-name { grid-area: name; }
  body.eu-co-flow .woocommerce-cart-form td.product-quantity { grid-area: qty; justify-self: end; }
  body.eu-co-flow .woocommerce-cart-form td.product-price { grid-area: price; align-self: end; text-align: right; }
  body.eu-co-flow .woocommerce-cart-form td.product-subtotal { grid-area: subtotal; align-self: start; text-align: right; }
  body.eu-co-flow .woocommerce-cart-form td.product-remove { grid-area: remove; justify-self: end; }
}
/* prezzo unitario "X € / pz" piccolo e muted sopra il totale */
.eu-co-item-unit { font-size: var(--fs-2xs); color: var(--color-muted); }
/* badge promo −N% sull'angolo della miniatura */
.eu-co-item-promo {
  position: absolute;
  top: -6px;
  left: -6px;
  z-index: 2;
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  color: #fff;
  font-size: 9.5px;
  font-weight: var(--fw-bold);
}
/* cestino: icona trash al posto della × di Woo */
body.eu-co-flow .woocommerce-cart-form td.product-remove a.remove {
  font-size: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7B85' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13M10 11v5M14 11v5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
}
/* blocco "E-Club da" del parent: non previsto dal mockup riga carrello */
body.eu-co-flow .woocommerce-cart-form td.product-price .eclub_item { display: none; }

/* riga sotto la lista */
.eu-co-cart-foot { display: flex; align-items: center; justify-content: space-between; margin-top: var(--space-4); flex-wrap: wrap; gap: 8px; }
.eu-co-cart-foot__back { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--color-primary-ink); text-decoration: none; }
.eu-co-cart-foot__note { font-size: var(--fs-xs); color: var(--color-muted); }

/* --- Aside riepilogo ------------------------------------------------------ */
body.eu-co-flow .cart_totals {
  width: 100% !important;
  float: none !important;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 20px 22px;
}
body.eu-co-flow .cart_totals > h2 {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  margin: 0 0 14px;
}
body.eu-co-flow .cart_totals table.shop_table {
  border: 0;
  padding: 0;
  margin: 0 0 8px;
  background: transparent;
  float: none; /* il parent flotta .shop_table_responsive: azzererebbe la larghezza della CTA */
}
body.eu-co-flow .cart_totals th,
body.eu-co-flow .cart_totals td { border: 0; padding: 8px 0; font-size: 13.5px; color: var(--color-ink-2); background: transparent; }
body.eu-co-flow .cart_totals td { text-align: right; font-weight: var(--fw-semibold); color: var(--color-ink); }
body.eu-co-flow .cart_totals td .amount {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: var(--fw-semibold);
  color: var(--color-ink) !important; /* il parent forza il royal sugli amount */
}
body.eu-co-flow .cart_totals .order-total th { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--color-ink); padding-top: 14px; }
body.eu-co-flow .cart_totals .order-total strong .amount {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl) !important;
  font-weight: var(--fw-medium);
  letter-spacing: -0.6px;
  color: var(--color-ink) !important;
}
body.eu-co-flow .cart_totals .order-total small.includes_tax {
  display: block;
  font-size: 10.5px;
  font-weight: var(--fw-regular);
  color: var(--color-muted);
}
body.eu-co-flow .cart_totals .order-total small.includes_tax .amount { font-size: 10.5px; font-weight: var(--fw-regular); color: var(--color-muted); font-family: var(--font-sans); }
/* riga spedizione: metodi a destra, link royal */
body.eu-co-flow .cart_totals .woocommerce-shipping-methods { margin: 0; list-style: none; }
body.eu-co-flow .cart_totals .woocommerce-shipping-destination { font-size: var(--fs-xs); color: var(--color-muted); }
body.eu-co-flow .cart_totals .shipping-calculator-button { color: var(--color-primary-ink); font-weight: var(--fw-semibold); }
/* coupon nell'aside (mockup): input + Applica outline navy */
.eu-co-coupon { display: flex; gap: 8px; margin: 16px 0 14px; }
.eu-co-coupon__input {
  flex: 1;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
  background: var(--color-surface-alt);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  color: var(--color-ink);
}
.eu-co-coupon__input:focus {
  outline: none;
  border-color: var(--color-primary-ink);
  box-shadow: 0 0 0 3px rgba(0, 120, 232, 0.18);
}
/* il parent ha `a.button, button[type="submit"] { background: var(--primary-color) !important }`
   (0,1,1) e sul checkout regole con ID: serve specificità con ID nostro */
body.eu-co-flow .eu-co-coupon button.eu-co-coupon__btn,
body.eu-co-flow #order_review .eu-co-coupon button.eu-co-coupon__btn {
  height: 44px;
  padding: 0 18px !important;
  border-radius: var(--radius-md) !important;
  border: 1.5px solid var(--color-navy) !important;
  background: transparent !important;
  color: var(--color-navy) !important;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  cursor: pointer;
  box-shadow: none !important;
}
/* "iva incl." accanto al totale */
.eu-co-vat-note { font-size: 10.5px; font-weight: var(--fw-regular); color: var(--color-muted); font-family: var(--font-sans); }
/* form "Modifica indirizzo" (shipping calculator): input DS dentro l'aside */
body.eu-co-flow .shipping-calculator-form { text-align: left; margin-top: 10px; }
body.eu-co-flow .shipping-calculator-form .form-row { margin: 0 0 10px; padding: 0; }
body.eu-co-flow .shipping-calculator-form label {
  display: block;
  text-align: left;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--color-ink);
  margin: 0 0 6px;
}
body.eu-co-flow .shipping-calculator-form input.input-text,
body.eu-co-flow .shipping-calculator-form select {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
  background: var(--color-surface);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--color-ink);
  box-shadow: none;
}
body.eu-co-flow .shipping-calculator-form input.input-text:focus,
body.eu-co-flow .shipping-calculator-form select:focus {
  outline: none;
  border-color: var(--color-primary-ink);
  box-shadow: 0 0 0 3px rgba(0, 120, 232, 0.18);
}
/* select2 di Woo per Paese/Provincia: stessa pelle degli input */
body.eu-co-flow .shipping-calculator-form .select2-container .select2-selection--single {
  height: 44px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
  background: var(--color-surface);
}
body.eu-co-flow .shipping-calculator-form .select2-selection__rendered { line-height: 42px; padding-left: 14px; font-size: var(--fs-sm); color: var(--color-ink); }
body.eu-co-flow .shipping-calculator-form .select2-selection__arrow { height: 42px; right: 8px; }
body.eu-co-flow .shipping-calculator-form button,
body.eu-co-flow .shipping-calculator-form button[type="submit"] {
  width: 100%;
  height: 44px;
  padding: 0 16px !important; /* !important + specificità: il parent ha button[type=submit] !important */
  border-radius: var(--radius-md) !important;
  border: 1.5px solid var(--color-navy) !important;
  background: transparent !important;
  color: var(--color-navy) !important;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  cursor: pointer;
  box-shadow: none !important;
}
/* coupon originale sotto la tabella: vive ora nell'aside */
body.eu-co-flow .woocommerce-cart-form td.actions .coupon { display: none; }
body.eu-co-flow .woocommerce-cart-form td.actions { padding: 0; }
/* riga IVA: filo di separazione prima del totale (mockup) */
body.eu-co-flow .cart_totals tr.tax-total th,
body.eu-co-flow .cart_totals tr.tax-total td,
body.eu-co-flow .cart_totals tr[class*="tax-rate"] th,
body.eu-co-flow .cart_totals tr[class*="tax-rate"] td { border-bottom: 1px solid var(--color-line); }
/* CTA pill cyan */
body.eu-co-flow .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 52px;
  border-radius: var(--radius-pill);
  background: var(--color-primary) !important;
  color: var(--color-navy) !important;
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
  padding: 0;
}
.eu-co-trust { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 12px; font-size: 11.5px; color: var(--color-muted); }
/* E-Club card */
.eu-co-eclub {
  margin-top: 14px;
  background: var(--color-navy);
  color: #fff;
  border-radius: var(--radius-lg);
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: var(--fs-xs);
  line-height: 1.45;
}
.eu-co-eclub b { color: var(--color-primary); }
.eu-co-eclub__icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
/* riga coupon nella tabella totali del carrello (dopo il Totale) */
body.eu-co-flow .cart_totals .eu-co-coupon-row td {
  border: 0 !important;
  padding: 14px 0 2px !important;
}
body.eu-co-flow .cart_totals .eu-co-coupon-row .eu-co-coupon { margin: 0; }

/* coupon: campo + bottone outline navy */
body.eu-co-flow .coupon { display: flex; gap: 8px; }
body.eu-co-flow .coupon .input-text {
  flex: 1;
  height: 44px;
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
  background: var(--color-surface-alt);
  font-size: var(--fs-sm);
}
body.eu-co-flow .coupon .input-text:focus {
  outline: none;
  border-color: #0078E8;
  box-shadow: 0 0 0 3px rgba(0, 120, 232, 0.18);
}
body.eu-co-flow .coupon button {
  height: 44px;
  padding: 0 18px !important;
  border-radius: var(--radius-md) !important;
  border: 1.5px solid var(--color-navy) !important;
  color: var(--color-navy) !important;
  background: transparent !important; /* il parent lo forza blu pieno */
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
}

/* --- Mobile: CTA sticky su vetro + carrello a card (mockup mobile) --------- */
@media (max-width: 768px) {
  body.eu-co-flow.woocommerce-cart .wc-proceed-to-checkout {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 40;
    background: rgba(255, 255, 255, 0.94);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--color-line);
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    margin: 0;
  }
  body.eu-co-flow.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { height: 50px; font-size: var(--fs-base); margin: 0; }
  body.eu-co-flow.woocommerce-cart .eu-co-trust { display: none; }
  body.eu-co-flow.woocommerce-cart .site-content { padding-bottom: 130px; }
  body.eu-co-flow .woocommerce-cart-form table.shop_table { padding: 2px 14px; border-radius: var(--radius-lg); }

  /* freeship compatta: testo 11px su una riga, percentuale al posto della
     frazione (il flex spezzava il messaggio in tre tronconi) */
  .eu-co-freeship { border-radius: var(--radius-md); padding: 11px 14px; margin-bottom: 12px; }
  .eu-co-freeship__head { margin-bottom: 7px; gap: 8px; }
  .eu-co-freeship__msg { font-size: 11px; gap: 6px; flex-wrap: wrap; row-gap: 2px; }
  .eu-co-freeship__msg svg { width: 16px; height: 16px; flex-shrink: 0; }
  .eu-co-freeship__frac { display: none; }
  .eu-co-freeship__pct { display: block; }
  .eu-co-freeship__track { height: 5px; }

  /* righe carrello → griglia mockup: thumb 72 | nome | cestino, sotto stepper+prezzo */
  body.eu-co-flow .woocommerce-cart-form table.shop_table,
  body.eu-co-flow .woocommerce-cart-form table.shop_table tbody { display: block; width: 100%; }
  body.eu-co-flow .woocommerce-cart-form td[data-title]::before { display: none !important; }
  body.eu-co-flow .woocommerce-cart-form tr.cart_item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    grid-template-areas:
      "thumb name remove"
      "thumb foot foot";
    column-gap: 12px;
    row-gap: 8px;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-line);
    background: transparent !important;
  }
  body.eu-co-flow .woocommerce-cart-form tr.cart_item:last-of-type { border-bottom: 0; }
  body.eu-co-flow .woocommerce-cart-form tr.cart_item td {
    display: block;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    text-align: left;
    width: auto;
    min-width: 0;
    max-width: none;
  }
  body.eu-co-flow .woocommerce-cart-form td.product-thumbnail { grid-area: thumb; align-self: start; }
  /* badge promo: senza ancestor posizionato l'absolute scappa nell'header */
  body.eu-co-flow .woocommerce-cart-form .eu-co-item-promo { display: none; }
  body.eu-co-flow .woocommerce-cart-form td.product-thumbnail img { width: 72px !important; max-width: none !important; border-radius: 10px; }
  body.eu-co-flow .woocommerce-cart-form td.product-name { grid-area: name; }
  body.eu-co-flow .woocommerce-cart-form td.product-name a { font-size: 12.5px; }
  body.eu-co-flow .woocommerce-cart-form .eu-co-item-brand { font-size: 9px; letter-spacing: 0.8px; margin-bottom: 3px; }
  body.eu-co-flow .woocommerce-cart-form .eu-co-item-sku { font-size: 9.5px; }
  body.eu-co-flow .woocommerce-cart-form .eu-co-item-stock { display: none; }
  /* prezzo unitario: il mockup mobile non lo mostra (specificità ≥ della
     regola tr.cart_item td { display:block } qui sopra) */
  body.eu-co-flow .woocommerce-cart-form tr.cart_item td.product-price { display: none; }
  body.eu-co-flow .woocommerce-cart-form td.product-quantity { grid-area: foot; align-self: center; justify-self: start; }
  body.eu-co-flow .woocommerce-cart-form td.product-subtotal {
    grid-area: foot;
    align-self: center;
    justify-self: end;
    text-align: right;
    white-space: nowrap;
  }
  body.eu-co-flow .woocommerce-cart-form td.product-subtotal .amount { font-family: var(--font-serif); font-size: 17px; font-weight: var(--fw-medium); color: var(--color-ink) !important; }
  body.eu-co-flow .woocommerce-cart-form td.product-subtotal .tax_label { font-size: 8.5px; color: var(--color-muted); }
  body.eu-co-flow .woocommerce-cart-form td.product-remove { grid-area: remove; justify-self: end; }
  body.eu-co-flow .woocommerce-cart-form td.product-remove a.remove {
    position: static !important; /* il parent lo mette in absolute: il td collassa a 0 */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    line-height: 1;
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-line);
    color: var(--color-muted) !important;
    background: var(--color-surface) !important;
    font-size: 16px;
    font-weight: var(--fw-regular);
  }
  /* stepper compatto */
  body.eu-co-flow .eu-co-stepper .eu-co-stepper__btn { width: 30px; height: 32px; }
  body.eu-co-flow .woocommerce-cart-form .quantity .qty { width: 24px; font-size: 12.5px; }

  /* totali: righe 6px / 12.5px, totale serif 24 (mockup mobile) */
  body.eu-co-flow .cart_totals th,
  body.eu-co-flow .cart_totals td { font-size: 12.5px; padding-top: 6px; padding-bottom: 6px; }
  body.eu-co-flow .cart_totals .order-total .amount { font-size: 24px; letter-spacing: -0.5px; }
  /* label responsive del parent senza i due punti ("Subtotale", non "Subtotale: ") */
  body.eu-co-flow .cart_totals td[data-title]::before { content: attr(data-title); }
}

/* --- Checkout: layout 2 colonne ------------------------------------------- */
@media (min-width: 993px) {
  body.eu-co-flow.woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: var(--space-6);
    align-items: start;
  }
  body.eu-co-flow.woocommerce-checkout form.checkout > * { grid-column: 1; }
  /* niente sticky né scroll interno (richiesta cliente): l'aside è più alta
     del viewport e con lo sticky il blocco pagamento diventava irraggiungibile */
  body.eu-co-flow.woocommerce-checkout form.checkout > #order_review {
    grid-column: 2;
    grid-row: 1 / span 4;
  }
  body.eu-co-flow.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; display: none; }
  body.eu-co-flow .eu-co-sumtoggle { display: none; }
  /* wrapper express-pay WCPay (alto 0) + separatore "OR": da vuoti occupano
     comunque una grid row → doppio gap sopra la card fatturazione */
  body.eu-co-flow.woocommerce-checkout form.checkout > .wcpay-payment-request-wrapper,
  body.eu-co-flow.woocommerce-checkout form.checkout > #wcpay-payment-request-button-separator { display: none; }
}

/* il parent flotta #customer_details a metà larghezza: occupa tutta la colonna */
body.eu-co-flow #customer_details {
  width: 100% !important;
  float: none !important;
}
/* heading extra del parent nel form (es. "Fattura") → kicker mono */
body.eu-co-flow form.checkout h2 {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  margin: 18px 0 10px;
}
/* card bianche per le sezioni form — !important: il reset bootstrap
   [class*="col-"] qui sopra azzera il background con !important */
body.eu-co-flow #customer_details .col-1,
body.eu-co-flow #customer_details .col-2,
body.eu-co-flow.woocommerce-checkout #order_review {
  width: 100% !important;
  float: none !important;
  background: var(--color-surface) !important;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 22px 24px;
  margin-bottom: var(--space-4);
}
/* col-2 = contenitore trasparente: card separate per spedizione e
   fattura/note come nel mockup (3 card nella colonna form) */
body.eu-co-flow #customer_details .col-2 {
  background: transparent !important;
  border: 0;
  padding: 0;
  margin-bottom: 0;
}
body.eu-co-flow .col-2 .woocommerce-shipping-fields,
body.eu-co-flow .col-2 .woocommerce-additional-fields {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 22px 24px;
  margin-bottom: var(--space-4);
}
/* heading sezioni → kicker mono */
body.eu-co-flow #customer_details h3,
body.eu-co-flow #order_review_heading,
body.eu-co-flow #ship-to-different-address {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
}

/* "Creare un account?" spostata via JS in cima al form, sotto il login hint
   (su desktop il gap lo dà la grid; il margine serve solo nel flex mobile) */
body.eu-co-flow form.checkout > .woocommerce-account-fields { margin: 0; }
body.eu-co-flow form.checkout > .woocommerce-account-fields .create-account { margin: 0; }

/* "Spedisci a un indirizzo diverso": label checkbox come nel mockup,
   non kicker mono (batte "#customer_details h3" del selettore kicker) */
body.eu-co-flow #customer_details h3#ship-to-different-address {
  font-family: var(--font-sans);
  font-size: 13.5px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--color-ink);
  font-weight: var(--fw-semibold);
  margin: 0;
}
body.eu-co-flow #ship-to-different-address label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
body.eu-co-flow #ship-to-different-address input[type="checkbox"] {
  width: 19px;
  height: 19px;
  margin: 0;
  accent-color: var(--color-navy);
  flex-shrink: 0;
  float: none; /* il parent lo flotta a destra; nel mockup sta prima del testo */
  position: static;
  order: -1;
}

/* griglia campi 2 colonne (mockup: gap 14/16, span pieno per i campi lunghi).
   I .form-row di Woo sono tutti form-row-wide qui: gli span vanno per id. */
/* NB: P.IVA/CF/SDI/PEC del parent sono figli diretti di
   .woocommerce-additional-fields (hook before_order_notes), non del
   __field-wrapper: la griglia va sul contenitore esterno */
body.eu-co-flow .woocommerce-billing-fields__field-wrapper,
body.eu-co-flow .woocommerce-shipping-fields__field-wrapper,
body.eu-co-flow .woocommerce-additional-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
}
body.eu-co-flow .woocommerce-additional-fields #my_custom_checkout_field,
body.eu-co-flow .woocommerce-additional-fields .woocommerce-additional-fields__field-wrapper {
  grid-column: 1 / -1;
}
body.eu-co-flow .woocommerce-billing-fields__field-wrapper .form-row,
body.eu-co-flow .woocommerce-shipping-fields__field-wrapper .form-row,
body.eu-co-flow .woocommerce-additional-fields .form-row {
  width: auto !important;
  float: none !important;
  margin: 0;
  padding: 0;
}
/* campi a tutta riga (l'ordine dei campi resta quello del sito) */
body.eu-co-flow #billing_email_field,
body.eu-co-flow #billing_company_field,
body.eu-co-flow #billing_country_field,
body.eu-co-flow #billing_address_1_field,
body.eu-co-flow #billing_address_2_field,
body.eu-co-flow #shipping_company_field,
body.eu-co-flow #shipping_country_field,
body.eu-co-flow #shipping_address_1_field,
body.eu-co-flow #shipping_address_2_field,
body.eu-co-flow #my_field_name_field,
body.eu-co-flow #order_comments_field,
body.eu-co-flow #ce4wp_checkout_consent_checkbox_field {
  grid-column: 1 / -1;
}
@media (max-width: 768px) {
  /* mockup mobile: coppie mantenute (Nome|Cognome, CAP|Città…), gap 10 */
  body.eu-co-flow .woocommerce-billing-fields__field-wrapper,
  body.eu-co-flow .woocommerce-shipping-fields__field-wrapper,
  body.eu-co-flow .woocommerce-additional-fields { gap: 10px; }
  body.eu-co-flow form.checkout .form-row label { font-size: 11px; margin-bottom: 5px; }
}

/* hint login sotto il titolo: testo semplice, non notice boxata (mockup) */
body.eu-co-flow .woocommerce-form-login-toggle .woocommerce-info {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none;
  padding: 0;
  margin: 0 0 18px;
  font-size: var(--fs-sm);
  color: var(--color-muted);
}
body.eu-co-flow .woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
body.eu-co-flow .woocommerce-form-login-toggle .showlogin {
  color: var(--color-primary-ink);
  font-weight: var(--fw-bold);
  text-decoration: none;
}
/* form login (apre da "Accedi per compilare…") → card in stile flusso */
body.eu-co-flow form.woocommerce-form-login {
  background: var(--color-surface);
  border: 1px solid var(--color-line) !important;
  border-radius: var(--radius-lg-d);
  padding: 22px 24px !important;
  margin: 0 0 var(--space-4) !important;
}
body.eu-co-flow form.woocommerce-form-login > p:first-child {
  font-size: var(--fs-sm);
  color: var(--color-ink-2);
  margin: 0 0 16px;
}
body.eu-co-flow form.woocommerce-form-login label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--color-ink);
  margin-bottom: 6px;
}
body.eu-co-flow form.woocommerce-form-login .input-text {
  height: 46px;
  width: 100%;
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
  background: var(--color-surface);
  font-size: 13.5px;
  color: var(--color-ink);
  box-shadow: none;
}
body.eu-co-flow form.woocommerce-form-login .input-text:focus {
  outline: none;
  border-color: #0078E8;
  box-shadow: 0 0 0 3px rgba(0, 120, 232, 0.18);
}
body.eu-co-flow form.woocommerce-form-login .password-input { width: 100%; position: relative; }
/* occhio mostra/nascondi password: dentro il campo, niente box grigio */
body.eu-co-flow form.woocommerce-form-login .show-password-input {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
}
body.eu-co-flow form.woocommerce-form-login .woocommerce-form-login__submit {
  height: 44px;
  padding: 0 26px !important;
  border-radius: var(--radius-pill) !important;
  background: var(--color-navy) !important;
  color: #fff !important;
  border: 0 !important;
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  box-shadow: none !important;
}
body.eu-co-flow form.woocommerce-form-login .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-size: var(--fs-sm);
  cursor: pointer;
}
body.eu-co-flow form.woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--color-navy);
}
body.eu-co-flow form.woocommerce-form-login .lost_password {
  margin: 14px 0 0;
  font-size: var(--fs-sm);
}
body.eu-co-flow form.woocommerce-form-login .lost_password a {
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  text-decoration: none;
}
/* desktop: tutto su una riga — username | password | ricordami + accedi */
@media (min-width: 993px) {
  body.eu-co-flow form.woocommerce-form-login {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    column-gap: 16px;
    row-gap: 0;
    align-items: end;
  }
  body.eu-co-flow form.woocommerce-form-login > p:first-child,
  body.eu-co-flow form.woocommerce-form-login .lost_password { grid-column: 1 / -1; }
  body.eu-co-flow form.woocommerce-form-login .form-row-first,
  body.eu-co-flow form.woocommerce-form-login .form-row-last {
    width: 100%;
    float: none;
    margin: 0;
  }
  body.eu-co-flow form.woocommerce-form-login .clear { display: none; }
  /* la p che contiene Ricordami + Accedi: in linea, alta come gli input */
  body.eu-co-flow form.woocommerce-form-login > p.form-row:not(.form-row-first):not(.form-row-last) {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    height: 46px;
  }
  body.eu-co-flow form.woocommerce-form-login .woocommerce-form-login__rememberme { margin: 0; white-space: nowrap; }
}

/* input */
body.eu-co-flow form.checkout .form-row label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--color-ink);
  margin-bottom: 6px;
  display: block;
}
body.eu-co-flow form.checkout .form-row .required { color: #C2453A; text-decoration: none; }
body.eu-co-flow form.checkout .input-text,
body.eu-co-flow form.checkout select,
body.eu-co-flow form.checkout .select2-container .select2-selection--single {
  height: 46px;
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-line);
  background: var(--color-surface);
  font-size: 13.5px;
  color: var(--color-ink);
  box-shadow: none;
}
body.eu-co-flow form.checkout .select2-selection__rendered { line-height: 44px; }
body.eu-co-flow form.checkout .select2-selection__arrow { height: 44px; }
body.eu-co-flow form.checkout textarea.input-text { min-height: 84px; padding: 12px 14px; height: auto; }
/* FOCUS (estensione DS): bordo royal + ring */
body.eu-co-flow form.checkout .input-text:focus,
body.eu-co-flow form.checkout select:focus {
  outline: none;
  border-color: #0078E8;
  box-shadow: 0 0 0 3px rgba(0, 120, 232, 0.18);
}
/* ERRORE (estensione DS) */
body.eu-co-flow form.checkout .woocommerce-invalid .input-text,
body.eu-co-flow form.checkout .woocommerce-invalid select {
  border-color: #C2453A;
  background: #FBEFED;
}

/* riepilogo: due card come il mockup — l'#order_review diventa contenitore
   trasparente, card 1 = tabella ordine, card 2 = #payment */
body.eu-co-flow.woocommerce-checkout #order_review {
  background: transparent !important; /* la regola card sopra ora è !important */
  border: 0;
  padding: 0;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 20px 22px;
  margin-bottom: var(--space-4);
}
body.eu-co-flow #payment {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 20px 22px;
}
/* kicker "Pagamento" in testa alla card 2 */
body.eu-co-flow #payment::before {
  content: "Pagamento";
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  margin-bottom: 14px;
}
/* kicker "Il tuo ordine" (riga PHP) + thead Prodotto/Subtotale via */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table thead { display: none; }
body.eu-co-flow .eu-co-rev-kick td {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs) !important;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink) !important;
  font-weight: var(--fw-semibold);
  border-bottom: 0 !important;
  padding: 0 0 10px !important;
}
/* mini-item: thumb 48 + badge qty + nome + sku */
.eu-co-mini { display: flex; align-items: center; gap: 12px; }
.eu-co-mini__thumb {
  position: relative;
  width: 48px;
  flex-shrink: 0;
  border-radius: 9px;
  background: var(--color-primary-soft);
  padding: 5px;
}
.eu-co-mini__thumb img { display: block; width: 100%; height: auto; border-radius: 6px; }
.eu-co-mini__qty {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: var(--radius-pill);
  background: var(--color-navy);
  color: #fff;
  font-size: 9.5px;
  font-weight: var(--fw-bold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.eu-co-mini__body { min-width: 0; }
.eu-co-mini__name { display: block; font-size: 12.5px; font-weight: var(--fw-semibold); color: var(--color-ink); line-height: 1.25; }
.eu-co-mini__sku { display: block; font-family: var(--font-mono); font-size: 10px; color: var(--color-muted); margin-top: 2px; }
/* toggle coupon Woo in testa pagina: il coupon vive nell'aside */
body.eu-co-flow .woocommerce-form-coupon-toggle,
body.eu-co-flow form.checkout_coupon { display: none !important; }
/* tabella → righe flex come il mockup (MiniItem + TotalRows): il layout
   table del parent allargava le celle e il totale nowrap usciva dalla card */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table { display: block; border-spacing: 0; float: none; margin-bottom: 8px; width: 100%; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tbody,
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot { display: block; width: 100%; }
/* mockup: div paddingTop 10 tra items e righe totali */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot { padding-top: 10px; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr,
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr:nth-child(even),
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr:nth-child(odd) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: transparent !important;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table th,
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table td {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important; /* il parent pittura i td #FBFBFB */
  color: var(--color-ink);
}
/* kicker "Il tuo ordine" */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.eu-co-rev-kick { padding: 0 0 6px; }
/* mini-item: riga prodotto */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tbody tr.cart_item {
  padding: 10px 0;
  border-bottom: 1px solid var(--color-line);
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .product-name {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  font-size: 12.5px;
  font-weight: var(--fw-semibold);
  line-height: 1.25;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .product-total { flex: 0 0 auto; text-align: right; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .product-total .amount {
  font-family: var(--font-serif) !important;
  font-size: 15.5px !important;
  font-weight: var(--fw-medium);
  color: var(--color-ink) !important;
}
/* righe totali: label muted a sinistra, valore semibold a destra */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot tr { padding: 8px 0; align-items: baseline; line-height: 1.45; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot th {
  flex-shrink: 0;
  font-size: 13.5px;
  color: var(--color-ink-2);
  font-weight: var(--fw-medium);
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
  font-size: 13.5px;
  font-weight: var(--fw-semibold);
  min-width: 0;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot td .amount {
  color: var(--color-ink) !important;
  font-size: 13.5px;
  font-family: var(--font-sans);
  font-weight: var(--fw-semibold);
}
/* spedizione come il mockup ("Spedizione · Corriere GLS   9,90 €"):
   nome metodo a sinistra accanto al th, muted; prezzo a destra semibold.
   I due span vengono dal filtro woocommerce_cart_shipping_method_full_label. */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.shipping td { flex: 1 1 auto; min-width: 0; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.shipping ul.woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; width: 100%; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.shipping ul.woocommerce-shipping-methods li { margin: 0; width: 100%; }
/* layout a due lati solo con metodo unico: con più metodi restano i radio */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.shipping li:only-child label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  width: 100%;
  margin: 0;
}
body.eu-co-flow .eu-co-ship-name {
  font-size: 13.5px;
  font-weight: var(--fw-medium);
  color: var(--color-ink-2);
  text-align: left;
  min-width: 0;
}
body.eu-co-flow .eu-co-ship-name::before { content: "· "; }
body.eu-co-flow .eu-co-ship-price { flex-shrink: 0; }
body.eu-co-flow .eu-co-ship-price .amount {
  font-size: 13.5px;
  font-weight: var(--fw-semibold);
  color: var(--color-ink) !important;
  font-family: var(--font-sans);
}
/* stesso pattern nell'aside del carrello (il filtro label è condiviso) */
body.eu-co-flow.woocommerce-cart .cart_totals tr.shipping li:only-child label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  width: 100%;
  margin: 0;
}
/* con più metodi (radio list) il nome non porta il "·" e resta inline */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.shipping li:not(:only-child) .eu-co-ship-name::before { content: ""; }
body.eu-co-flow.woocommerce-cart .cart_totals tr.shipping li:not(:only-child) .eu-co-ship-name::before { content: ""; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tr.shipping li:not(:only-child) label {
  font-size: 12.5px;
  font-weight: var(--fw-medium);
  color: var(--color-ink-2);
  margin: 0;
}
/* hairline solo sopra il totale (mockup: bordo sotto la riga IVA) */
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table tfoot tr.order-total {
  border-top: 1px solid var(--color-line);
  margin-top: 4px;
  padding: 14px 0 4px;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total th { font-size: 14px; font-weight: var(--fw-bold); color: var(--color-ink); }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total td {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 6px;
  white-space: normal;
  flex-wrap: wrap; /* "iva incl." scende sotto invece di uscire dalla card */
  min-width: 0;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total strong { display: contents; }
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total strong .amount {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl) !important;
  font-weight: var(--fw-medium);
  letter-spacing: -0.6px;
}
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total .eu-co-vat-note,
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total small.includes_tax,
body.eu-co-flow #order_review .woocommerce-checkout-review-order-table .order-total small.includes_tax .amount {
  display: inline;
  font-size: 10.5px !important;
  font-weight: var(--fw-regular);
  color: var(--color-muted) !important;
  font-family: var(--font-sans);
  letter-spacing: 0;
}

/* --- Pagamento: radio list ristilizzata ------------------------------------ */
/* #payment resta la card bianca definita sopra (mockup: una card con kicker,
   metodi, termini e CTA). Woo/parent pitturano place-order: si neutralizza lì. */
body.eu-co-flow #payment div.place-order {
  background: transparent !important;
  padding: 0;
  margin: 0;
}
body.eu-co-flow #payment ul.wc_payment_methods {
  border: 0;
  padding: 0;
  margin: 0 0 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
}
body.eu-co-flow #payment li.wc_payment_method {
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: 0;
  overflow: hidden;
  margin: 0;
}
body.eu-co-flow #payment li.wc_payment_method:has(input:checked) {
  border: 1.5px solid var(--color-navy);
}
body.eu-co-flow #payment li.wc_payment_method > label {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  font-size: 13.5px;
  font-weight: var(--fw-bold);
  color: var(--color-ink);
  cursor: pointer;
  width: auto;
  margin: 0;
}
/* radio custom: il parent nasconde l'input (1px) e disegna il pallino su
   label::before — ridisegnato lì come nel mockup */
body.eu-co-flow #payment li.wc_payment_method > label::before {
  content: "" !important;
  width: 19px !important;
  height: 19px !important;
  border-radius: var(--radius-pill) !important;
  border: 1.5px solid var(--color-line) !important;
  background: #fff !important;
  box-sizing: border-box;
  flex-shrink: 0;
  margin: 0 !important;
  display: block;
  position: static !important;
}
body.eu-co-flow #payment li.wc_payment_method input[type="radio"]:checked + label::before {
  border: 6px solid var(--color-navy) !important;
}
body.eu-co-flow #payment div.payment_box {
  background: var(--color-surface) !important;
  padding: 4px 16px 16px 47px;
  font-size: var(--fs-xs);
  color: var(--color-ink-2);
  margin: 0;
}
body.eu-co-flow #payment div.payment_box::before { display: none; }
/* brand mono a destra (mockup): dalla classe del li, niente icone img */
body.eu-co-flow #payment li.wc_payment_method > label img { display: none; }
body.eu-co-flow #payment li.wc_payment_method > label::after {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.8px;
  color: var(--color-muted);
  font-weight: var(--fw-regular);
}
body.eu-co-flow #payment li[class*="woocommerce_payments"] > label::after { content: "WOOPAYMENTS"; }
/* titolo + sottoriga circuiti (filtro woocommerce_gateway_title) */
body.eu-co-flow #payment li.wc_payment_method > label .eu-co-pay-name { flex: 1; min-width: 0; }
body.eu-co-flow #payment li.wc_payment_method > label .eu-co-pay-sub {
  display: block;
  font-size: 11px;
  font-weight: var(--fw-medium);
  color: var(--color-muted);
  margin-top: 1px;
}
body.eu-co-flow #payment li[class*="paypal"] > label::after,
body.eu-co-flow #payment li[class*="ppcp"] > label::after { content: "PAYPAL"; }
body.eu-co-flow #payment li[class*="stripe"] > label::after { content: "STRIPE"; }
/* il fieldset WCPay porta un grigio proprio: trasparente, contano i campi */
body.eu-co-flow #payment div.payment_box fieldset {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* campi carta nativi dentro il box (input non-iframe) */
body.eu-co-flow #payment div.payment_box input[type="text"],
body.eu-co-flow #payment div.payment_box input[type="tel"],
body.eu-co-flow #payment div.payment_box .input-text,
body.eu-co-flow #payment div.payment_box .wc-payment-form .wc-card-form input {
  background: var(--color-surface-alt) !important;
  border: 1px solid var(--color-line) !important;
  border-radius: 10px !important;
  min-height: 44px;
  padding: 12px 14px !important;
  box-shadow: none !important;
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  color: var(--color-ink);
}
/* .wcpay-upe-element NON è un campo: è il wrapper dell'intero iframe Stripe
   (numero carta + scadenza + CVC vivono dentro). Trasparente qui; i campi
   interni si stilano via filtro wcpay_upe_appearance in inc/checkout.php. */
body.eu-co-flow #payment div.payment_box .wcpay-upe-element,
body.eu-co-flow #payment div.payment_box .wcpay-upe-element.StripeElement {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  padding: 0 !important;
  min-height: 0;
}
/* checkbox termini navy */
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
  accent-color: var(--color-navy);
  width: 18px;
  height: 18px;
}

/* termini + privacy (mockup: riga checkbox 12px ink-2, margini 16/14) */
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text,
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper { font-size: var(--fs-xs); color: var(--color-ink-2); }
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper a { color: var(--color-primary-ink); font-weight: var(--fw-bold); text-decoration: none; }
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin: 0 0 10px; }
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper .form-row { margin: 16px 0 14px; padding: 0; width: 100%; float: none; }
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.5;
  margin: 0;
  cursor: pointer;
}
body.eu-co-flow .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { flex-shrink: 0; margin: 1px 0 0; float: none; position: static; }

/* bottone Effettua l'ordine: pill cyan con lucchetto (mockup) */
body.eu-co-flow #place_order {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 52px;
  border-radius: var(--radius-pill);
  background: var(--color-primary) !important;
  color: var(--color-navy) !important;
  font-weight: var(--fw-bold);
  /* il parent spara font-size em + pre-wrap con !important sui submit */
  font-size: 14.5px !important;
  white-space: nowrap !important;
  border: 0;
}
body.eu-co-flow #place_order::before {
  content: "";
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='5' y='10' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='5' y='10' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* --- Checkout mobile -------------------------------------------------------- */
@media (max-width: 768px) {
  /* toggle riepilogo */
  .eu-co-sumtoggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    padding: 13px 15px;
    margin-bottom: 14px;
    font-family: var(--font-sans);
    cursor: pointer;
    text-align: left;
  }
  .eu-co-sumtoggle > svg:first-child { color: var(--color-primary-ink); flex-shrink: 0; }
  .eu-co-sumtoggle__label { flex: 1; font-size: 12.5px; font-weight: var(--fw-semibold); color: var(--color-ink); }
  .eu-co-sumtoggle__count { color: var(--color-muted); font-weight: var(--fw-medium); }
  .eu-co-sumtoggle__total { font-family: var(--font-serif); font-size: 17px; font-weight: var(--fw-medium); color: var(--color-ink); }
  .eu-co-sumtoggle__total .amount { color: var(--color-ink) !important; }
  .eu-co-sumtoggle__chev { color: var(--color-muted); transition: transform 0.2s; flex-shrink: 0; }
  body.eu-co-summary-open .eu-co-sumtoggle__chev { transform: rotate(180deg); }
  /* riepilogo chiuso di default su mobile, pagamento sempre visibile
     (#order_review nel selettore: deve battere la regola display:block
     della tabella, che porta lo stesso ID) */
  body.eu-co-flow.woocommerce-checkout:not(.eu-co-summary-open) #order_review_heading,
  body.eu-co-flow.woocommerce-checkout:not(.eu-co-summary-open) #order_review .woocommerce-checkout-review-order-table { display: none; }
  /* nel DOM #order_review sta in FONDO al form: il riepilogo si apriva 1800px
     più in basso, fuori vista. display:contents promuove tabella/coupon/payment
     a flex item del form e la tabella sale sotto il toggle (order -1) */
  body.eu-co-flow.woocommerce-checkout form.checkout { display: flex; flex-direction: column; }
  /* "Creare un account?" subito sotto il login hint, prima del toggle riepilogo */
  body.eu-co-flow.woocommerce-checkout form.checkout > .woocommerce-account-fields { order: -3; margin: 0 0 14px; }
  body.eu-co-flow.woocommerce-checkout form.checkout > .eu-co-sumtoggle { order: -2; }
  /* heading sempre nascosto su mobile: la tabella ha già il suo kicker */
  body.eu-co-flow.woocommerce-checkout form.checkout > #order_review_heading { display: none; }
  body.eu-co-flow.woocommerce-checkout form.checkout > #order_review { display: contents; }
  body.eu-co-flow.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table { order: -1; }
  /* input mobile */
  body.eu-co-flow form.checkout .input-text,
  body.eu-co-flow form.checkout select { height: 44px; border-radius: 11px; font-size: var(--fs-sm); }
  body.eu-co-flow #customer_details .col-1,
  body.eu-co-flow .col-2 .woocommerce-shipping-fields,
  body.eu-co-flow .col-2 .woocommerce-additional-fields,
  body.eu-co-flow.woocommerce-checkout #order_review { padding: 16px 15px; border-radius: var(--radius-lg); }
  body.eu-co-flow #customer_details .col-2 { padding: 0; }
  /* CTA sticky su vetro: il VERO bottone submit resta nel form, solo posizionato */
  body.eu-co-flow.woocommerce-checkout:not(.woocommerce-order-received) .place-order {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 40;
    background: rgba(255, 255, 255, 0.94);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--color-line);
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    margin: 0;
  }
  /* il neutralizzatore #payment div.place-order { padding:0; background:
     transparent !important } (ID) batte la regola fixed sopra: ripristina
     px e bianco della barra con pari ID + !important */
  body.eu-co-flow.woocommerce-checkout #payment div.place-order {
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: #fff !important;
  }
  body.eu-co-flow #place_order { height: 50px; font-size: var(--fs-base); }
  body.eu-co-flow.woocommerce-checkout .site-content,
  body.eu-co-flow.woocommerce-checkout .content-area { padding-bottom: 130px; }
  /* nella barra sticky: niente testo privacy lungo, resta checkbox termini + CTA */
  body.eu-co-flow.woocommerce-checkout .place-order .woocommerce-privacy-policy-text { display: none; }

  /* pagamento compatto (mockup mobile): card metodo 11/13, radio 17, brand 9 */
  body.eu-co-flow #payment li.wc_payment_method { border-radius: 11px; }
  body.eu-co-flow #payment li.wc_payment_method > label { padding: 11px 13px; font-size: 12.5px; gap: 10px; }
  body.eu-co-flow #payment li.wc_payment_method > label::before { width: 17px !important; height: 17px !important; }
  body.eu-co-flow #payment li.wc_payment_method input[type="radio"]:checked + label::before { border-width: 5px !important; }
  body.eu-co-flow #payment li.wc_payment_method > label::after { font-size: 9px; letter-spacing: 0.6px; }
  body.eu-co-flow #payment div.payment_box { padding: 2px 13px 13px 40px; }
  body.eu-co-flow #payment div.payment_box input[type="text"],
  body.eu-co-flow #payment div.payment_box input[type="tel"],
  body.eu-co-flow #payment div.payment_box .input-text { min-height: 40px; border-radius: 9px !important; font-size: 12px; }
}

/* notice Woo (login/coupon/aggiunto al carrello) → card discrete in stile flusso */
body.eu-co-flow .woocommerce-info,
body.eu-co-flow .woocommerce-message {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-line) !important;
  border-radius: var(--radius-md);
  color: var(--color-ink-2) !important;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  padding: 14px 18px;
  box-shadow: none;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: var(--container-max);
  margin: 0 auto 14px;
}
/* l'icona ::before del parent è un glifo icon-font che non carica (tofu):
   sostituita con un check verde SVG */
body.eu-co-flow .woocommerce-info::before,
body.eu-co-flow .woocommerce-message::before {
  content: "" !important;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin: 0;
  position: static;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233F7A4B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8.5 12.5 2.5 2.5 5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* il bottone Woo viene PRIMA del testo nel markup: spostato a destra */
body.eu-co-flow .woocommerce-message a.button,
body.eu-co-flow .woocommerce-info a.button {
  order: 2;
  margin-left: auto;
  white-space: nowrap;
}
body.eu-co-flow .woocommerce-info a,
body.eu-co-flow .woocommerce-message a { color: var(--color-primary-ink); font-weight: var(--fw-semibold); }
/* il bottone dentro la notice ("Continua con gli acquisti") = link royal, niente box blu */
body.eu-co-flow .woocommerce-message a.button,
body.eu-co-flow .woocommerce-info a.button {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  color: var(--color-primary-ink) !important;
  font-weight: var(--fw-bold);
  text-decoration: none;
  box-shadow: none !important;
}

/* errori Woo (ul rossa del core) → card soft sui colori errore del DS
   (#C2453A su #FBEFED, nota di design in testa al file) */
body.eu-co-flow ul.woocommerce-error {
  background: #FBEFED !important;
  border: 1px solid rgba(194, 69, 58, 0.25) !important;
  border-radius: var(--radius-md);
  box-shadow: none;
  list-style: none;
  margin: 0 0 14px;
  padding: 0 18px;
  color: var(--color-ink-2);
}
body.eu-co-flow ul.woocommerce-error::before,
body.eu-co-flow ul.woocommerce-error::after { content: none !important; display: none !important; }
body.eu-co-flow ul.woocommerce-error li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  margin: 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-ink-2);
}
body.eu-co-flow ul.woocommerce-error li + li { border-top: 1px solid rgba(194, 69, 58, 0.18); }
body.eu-co-flow ul.woocommerce-error li::before {
  content: "";
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C2453A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v4.5'/%3E%3Cpath d='M12 15.8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* il bottone Woo ("Visualizza carrello") viene PRIMA del testo: a destra, link royal */
body.eu-co-flow ul.woocommerce-error li a.button {
  order: 2;
  margin-left: auto;
  white-space: nowrap;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  color: var(--color-primary-ink) !important;
  font-weight: var(--fw-bold);
  text-decoration: none;
  box-shadow: none !important;
}

/* riga spedizione nel totale carrello: niente blocco grigio del parent */
body.eu-co-flow .cart_totals th,
body.eu-co-flow .cart_totals td { background: transparent !important; }
body.eu-co-flow .cart_totals .woocommerce-shipping-totals td {
  font-size: var(--fs-xs);
  color: var(--color-ink-2);
  line-height: 1.5;
}
body.eu-co-flow .cart_totals .woocommerce-shipping-totals label { font-weight: var(--fw-semibold); color: var(--color-ink); }

/* --- Conferma ordine -------------------------------------------------------- */
.eu-co-thanks { max-width: 880px; margin: 0 auto; }
.eu-co-thanks__hero { text-align: center; margin: 28px 0; }
.eu-co-thanks__badge {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-pill);
  background: var(--color-success-soft);
  color: var(--color-success);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-4);
}
.eu-co-thanks__kicker {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  margin-bottom: 8px;
}
.eu-co-thanks__title {
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  font-size: 40px;
  letter-spacing: -1px;
  line-height: 1.05;
  margin: 0 0 10px;
  color: var(--color-ink);
}
.eu-co-thanks__title em { font-style: italic; color: var(--color-primary-ink); }
.eu-co-thanks__sub { font-size: var(--fs-base); color: var(--color-ink-2); margin: 0; }
.eu-co-thanks__meta {
  list-style: none;
  margin: 0 0 var(--space-4);
  padding: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.eu-co-thanks__metacell { padding: 14px 20px; margin: 0 !important; border: 0 !important; font-size: inherit !important; }
.eu-co-thanks__metak {
  display: block;
  font-size: 10.5px;
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: var(--fw-semibold);
  margin-bottom: 4px;
}
.eu-co-thanks__metav { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--color-ink); }
.eu-co-thanks__metav.is-serif,
.eu-co-thanks__metav.is-serif .amount { font-family: var(--font-serif); font-size: 17px; color: var(--color-ink) !important; }
/* dettagli ordine (output Woo) in card */
.eu-co-thanks .woocommerce-order-details,
.eu-co-thanks .woocommerce-customer-details {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 20px 24px;
  margin-bottom: var(--space-4);
}
.eu-co-thanks .woocommerce-order-details__title,
.eu-co-thanks .woocommerce-customer-details h2,
.eu-co-thanks .woocommerce-column__title {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
}
.eu-co-thanks .woocommerce-customer-details address { border: 0; padding: 0; font-size: var(--fs-sm); color: var(--color-ink-2); line-height: 1.7; }
.eu-co-thanks table.order_details { float: none; }
.eu-co-thanks table.order_details th,
.eu-co-thanks table.order_details td { border: 0; border-bottom: 1px solid var(--color-line); font-size: 12.5px; background: transparent; }
.eu-co-thanks table.order_details .amount { color: var(--color-ink) !important; }
/* indirizzi affiancati senza float (il float farebbe risalire le azioni) */
.eu-co-thanks .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); width: 100%; }
.eu-co-thanks .col2-set .col-1,
.eu-co-thanks .col2-set .col-2 { width: 100%; float: none; margin: 0; }
@media (max-width: 768px) {
  .eu-co-thanks .col2-set { grid-template-columns: 1fr; }
}
.eu-co-thanks__actions { display: flex; justify-content: center; gap: 12px; padding: 16px 0 8px; flex-wrap: wrap; clear: both; }
.eu-co-thanks__cta,
.eu-co-thanks__pdf {
  height: 50px;
  padding: 0 26px;
  border-radius: var(--radius-pill);
  font-weight: var(--fw-bold);
  font-size: var(--fs-base);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.eu-co-thanks__cta { background: var(--color-primary); color: var(--color-navy) !important; }
.eu-co-thanks__pdf { border: 1.5px solid var(--color-navy); color: var(--color-navy) !important; }

@media (max-width: 768px) {
  .eu-co-thanks__title { font-size: 27px; letter-spacing: -0.6px; }
  .eu-co-thanks__meta { grid-template-columns: 1fr 1fr; }
  .eu-co-thanks__metacell:nth-child(n+3) { border-top: 1px solid var(--color-line) !important; }
  .eu-co-thanks__metacell:nth-child(even) { border-left: 1px solid var(--color-line) !important; }
}

/* --- Contenuti originali del carrello, ristilizzati ------------------------ */
/* form iscrizione E-Club del parent (sopra la lista carrello) */
body.eu-co-flow.woocommerce-cart .eu-co-cart-main .container,
body.eu-co-flow.woocommerce-cart .woocommerce > .container {
  background: var(--color-navy);
  border-radius: var(--radius-lg-d);
  padding: 22px 24px;
  margin-bottom: var(--space-4);
  color: #fff;
  max-width: none;
}
body.eu-co-flow.woocommerce-cart .eu-co-cart-main .container h2,
body.eu-co-flow.woocommerce-cart .woocommerce > .container h2 {
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  font-size: var(--fs-xl);
  letter-spacing: -0.4px;
  color: #fff;
  margin: 0 0 6px;
}
body.eu-co-flow.woocommerce-cart .woocommerce > .container p { font-size: var(--fs-sm); color: rgba(255, 255, 255, 0.75); }
body.eu-co-flow.woocommerce-cart .eu-co-cart-main .container .form-control,
body.eu-co-flow.woocommerce-cart .woocommerce > .container .form-control {
  height: 46px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.95);
  font-size: var(--fs-sm);
}
body.eu-co-flow.woocommerce-cart .eu-co-cart-main .container .btn-primary,
body.eu-co-flow.woocommerce-cart .woocommerce > .container .btn-primary {
  height: 46px;
  border-radius: var(--radius-pill);
  background: var(--color-primary) !important; /* il parent forza il blu #0000CC */
  border: 0 !important;
  color: var(--color-navy) !important;
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
}
/* blocco prezzo "E-Club da" per riga (parent cart.php) — il parent gli dà
   dimensioni grandi: qui torna compatto su una riga */
body.eu-co-flow .woocommerce-cart-form .eclub_item {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-bottom: 2px;
  white-space: nowrap;
}
body.eu-co-flow .woocommerce-cart-form .eclub_item .ico_eclub {
  font-size: var(--fs-xs) !important;
  color: var(--color-primary-ink) !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  text-decoration: none;
  line-height: 1;
}
body.eu-co-flow .woocommerce-cart-form .eclub_item .ico_eclub .info_text,
body.eu-co-flow .woocommerce-cart-form .eclub_item .ico_eclub i {
  background: transparent !important;
  color: var(--color-primary-ink) !important;
  font-size: var(--fs-2xs) !important;
}
body.eu-co-flow .woocommerce-cart-form .eclub_item .ico_eclub .info_text i { font-style: italic; }
body.eu-co-flow .woocommerce-cart-form .eclub_item .club_price {
  font-family: var(--font-mono) !important;
  font-size: var(--fs-2xs) !important;
  color: var(--color-primary-ink) !important;
  font-weight: var(--fw-semibold) !important;
  white-space: nowrap;
  line-height: 1.2;
}
/* cross-sell senza prodotti (capita: i _crosssell_ids puntano a variazioni):
   niente card vuota col solo titolo */
body.eu-co-flow.woocommerce-cart .cart-collaterals .cross-sells:not(:has(ul.products li)) { display: none; }
/* cross-sell nell'aside: card compatta a 2 colonne */
body.eu-co-flow.woocommerce-cart .cart-collaterals .cross-sells {
  width: 100%;
  float: none;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg-d);
  padding: 18px 20px;
  margin-bottom: 14px;
}
body.eu-co-flow.woocommerce-cart .cross-sells > h2,
body.eu-co-flow.woocommerce-cart .cross-sells > h4 {
  font-family: var(--font-mono);
  font-size: var(--fs-2xs);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--color-primary-ink);
  font-weight: var(--fw-semibold);
  margin: 0 0 12px;
}
body.eu-co-flow.woocommerce-cart .cross-sells ul.products {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 0;
}
body.eu-co-flow.woocommerce-cart .cross-sells ul.products li.product {
  width: 100% !important;
  float: none;
  margin: 0;
  font-size: var(--fs-xs);
}

/* --- Notice Woo su mobile: icona | testo, link sotto ----------------------- */
/* in coda al file: la regola base dei notice sta più in alto e a parità di
   specificità vincerebbe. Grid 2 colonne: l'icona ::before in col 1, il testo
   (nodo anonimo) in col 2, il link a capo sempre in col 2 */
@media (max-width: 768px) {
  body.eu-co-flow .woocommerce-info,
  body.eu-co-flow .woocommerce-message {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 10px;
    align-items: start;
  }
  body.eu-co-flow .woocommerce-info a.button,
  body.eu-co-flow .woocommerce-message a.button {
    grid-column: 2;
    justify-self: end;
  }
  body.eu-co-flow ul.woocommerce-error li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 10px;
    align-items: start;
  }
  body.eu-co-flow ul.woocommerce-error li a.button {
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
  /* login hint checkout: niente grid (l'icona è nascosta e il grid spezza
     testo e link su 2 colonne) — testo fluido su una colonna */
  body.eu-co-flow .woocommerce-form-login-toggle .woocommerce-info { display: block; }
}
