/* APE 2026 — Cart + Checkout + Account: restyle DS sul markup WC STANDARD.
   SOLO CSS: zero template override, zero logica (vincolo assoluto checkout). */

/* ══ Layout comune ══ */
.woocommerce-cart .ape-wc-main,
.woocommerce-checkout .ape-wc-main { max-width: 1280px; }
.woocommerce-cart .ape-wc-main h1.entry-title,
.woocommerce-cart .ape-wc-main > h1,
.woocommerce-checkout .ape-wc-main > h1 { font-size: 28px; font-weight: 700; margin-bottom: var(--ape-s6); }

/* ══ Notices coerenti col DS ══ */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border: 1px solid var(--ape-line) !important; border-left: 4px solid var(--ape-ok) !important;
  background: var(--ape-surface) !important; color: var(--ape-ink) !important;
  border-radius: var(--ape-r-card) !important; padding: var(--ape-s3) var(--ape-s4) !important;
  box-shadow: var(--ape-shadow-1);
}
.woocommerce-info { border-left-color: var(--ape-ink-mute) !important; }
.woocommerce-error { border-left-color: var(--ape-danger) !important; }
/* L'icona del carattere WooCommerce e' posizionata in assoluto a left 1.5em
   (22,5px) perche' il suo CSS mette padding-left 3.5em. Noi il padding lo
   abbiamo portato a 16px per stare nel nostro design: risultato, l'icona
   finiva SOPRA le prime lettere e "Il numero della carta e' incompleto"
   si leggeva a fatica. Il tipo di avviso lo dice gia' il bordo colorato a
   sinistra (rosso/grigio/verde): l'icona e' di troppo. (utente 2026-08-20) */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { content: none !important; display: none !important; }

/* ══ CART — stesso linguaggio del checkout (2026-07-14) ══ */
/* NB: la pagina carrello è una pagina Elementor col shortcode dentro (.ape-content
   + .ape-prose), NON il wrapper WC → i selettori partono da .woocommerce.
   Larghezza: si usa lo schermo, non la colonna prose. */
.woocommerce-cart main.ape-content { max-width: 1240px; }
.woocommerce-cart .ape-prose { max-width: none; }
/* Il contenitore Elementor della pagina carrello cappa la larghezza a ~1140px
   (Content Width di Elementor) → strizzava la colonna prodotti lasciando un buco
   prima del riepilogo. Forziamo tutti i container/colonne Elementor a piena
   larghezza SOLO sul carrello (2026-07-14). Copre sia le sezioni classiche
   (.elementor-container) sia i nuovi flex-container (.e-con). */
.woocommerce-cart .elementor-container,
.woocommerce-cart .e-con-inner,
.woocommerce-cart .elementor-widget-container { max-width: 100% !important; width: 100%; }
.woocommerce-cart .elementor-column,
.woocommerce-cart .elementor-widget-woocommerce-cart { width: 100% !important; }

/* layout: prodotti a sinistra, riepilogo sticky a destra */
@media (min-width: 1024px) {
  .woocommerce-cart .woocommerce {
    display: grid; grid-template-columns: minmax(0, 1fr) 420px;
    gap: var(--ape-s4) var(--ape-s8); align-items: start;
  }
  .woocommerce-cart .woocommerce > *:not(.woocommerce-cart-form):not(.cart-collaterals) { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce-cart-form { grid-column: 1; grid-row: 2; }
  /* bump "Consigliato per te" sotto i prodotti (colonna 1), NON riga piena:
     da full-width spingeva il riepilogo in fondo a destra (fix 2026-07-21) */
  .woocommerce-cart .woocommerce > .ape-bump { grid-column: 1; }
  .woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 2 / span 6; position: sticky; top: 84px; }
}
/* le card informative legacy in fondo: sostituite dalla trust row nel riepilogo */
.woocommerce-cart .cart-info-section { display: none !important; }

/* ── Carrello vuoto: stato caldo con icona + CTA (2026-07-14) ── */
.ape-cart-empty {
  text-align: center; max-width: 460px; margin: var(--ape-s8) auto;
  padding: var(--ape-s8) var(--ape-s4);
}
.ape-cart-empty__ico {
  display: inline-grid; place-items: center; width: 84px; height: 84px;
  border-radius: 50%; background: var(--ape-surface-2); color: var(--ape-ink-mute);
  margin-bottom: var(--ape-s4);
}
.ape-cart-empty__ico .ape-icon { width: 40px; height: 40px; }
.ape-cart-empty__title { font-size: 20px; font-weight: 750; margin: 0 0 var(--ape-s2); color: var(--ape-ink); }
.ape-cart-empty__sub { font-size: 14.5px; line-height: 1.6; color: var(--ape-ink-soft); margin: 0 0 var(--ape-s5, 20px); }
.ape-cart-empty__cta { display: inline-flex; height: 50px; padding-inline: var(--ape-s8); font-size: 15px; }

/* tabella prodotti come card */
.woocommerce-cart table.shop_table {
  border: 1px solid var(--ape-line) !important; border-radius: var(--ape-r-card);
  overflow: hidden; border-collapse: separate; border-spacing: 0;
  box-shadow: var(--ape-shadow-1);
}
.woocommerce-cart table.cart thead { display: none; } /* le colonne si spiegano da sole */
.woocommerce-cart table.shop_table th {
  background: var(--ape-surface-2); font-size: 12px; text-transform: uppercase;
  letter-spacing: .04em; color: var(--ape-ink-soft); padding: var(--ape-s3) var(--ape-s4);
  border: 0 !important;
}
.woocommerce-cart table.shop_table td {
  padding: var(--ape-s3) var(--ape-s4); border: 0 !important;
  border-top: 1px solid var(--ape-line) !important; vertical-align: middle;
}
.woocommerce-cart table.shop_table td.product-name a { font-weight: 600; color: var(--ape-ink); }
.woocommerce-cart table.shop_table img {
  width: 88px; height: 88px; object-fit: contain; background: #fff;
  border: 1px solid var(--ape-line); border-radius: 10px;
}
.woocommerce-cart .product-remove a {
  width: 32px; height: 32px; line-height: 30px; border-radius: 50%;
  color: var(--ape-ink-mute) !important; background: var(--ape-surface-2);
  font-size: 18px; display: inline-block; text-align: center;
}
.woocommerce-cart .product-remove a:hover { background: var(--ape-danger); color: #fff !important; }
/* quantità: stepper − 1 + (bottoni aggiunti dal JS, aggiornamento automatico) */
.woocommerce-cart .quantity { display: inline-flex; align-items: center; gap: 6px; }
.woocommerce-cart .quantity .qty {
  height: 36px; width: 46px; border: 1px solid var(--ape-line);
  border-radius: 10px; text-align: center; font-size: 15px; font-weight: 700;
  -moz-appearance: textfield;
}
.woocommerce-cart .quantity .qty::-webkit-inner-spin-button,
.woocommerce-cart .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart .ape-qty-btn {
  width: 32px; height: 32px; border-radius: 10px; border: 1px solid var(--ape-line);
  background: var(--ape-surface); font-size: 16px; line-height: 1; cursor: pointer;
  color: var(--ape-ink-soft); display: grid; place-items: center; flex: 0 0 auto;
}
.woocommerce-cart .ape-qty-btn:hover { border-color: var(--ape-ink); color: var(--ape-ink); }
.woocommerce-cart button[name="update_cart"].ape-auto { display: none; } /* aggiornamento automatico via JS */
/* La miniatura era 88px di regola, ma `max-width: 100%` la schiacciava alla
   larghezza della cella (45px) lasciando l'altezza a 88: immagine piccola e
   sbilenca dentro un riquadro vuoto. Serve dare una larghezza alla CELLA. */
.woocommerce-cart table.cart td.product-thumbnail,
.woocommerce-cart table.cart th.product-thumbnail { width: 96px; }
.woocommerce-cart table.cart td.product-thumbnail img {
  width: 80px; height: 80px; max-width: none; object-fit: contain;
  background: #fff; border: 1px solid var(--ape-line); border-radius: 10px;
}
.woocommerce-cart td.product-subtotal { font-weight: 700; }
.woocommerce-cart td.product-name a { font-size: 14px; line-height: 1.4; }
.woocommerce-cart td.product-price { color: var(--ape-ink-soft); }

/* Mobile: il smallscreen.css di Woo nasconde la miniatura nel cart — noi la vogliamo,
   grande e centrata in testa alla card prodotto. Il ::before va spento perché il td
   non ha data-title e stamperebbe ": " orfano. */
@media (max-width: 768px) {
  .woocommerce table.cart .product-thumbnail,
  .woocommerce-page table.cart .product-thumbnail {
    display: block !important; text-align: center !important; padding-bottom: 0 !important;
  }
  .woocommerce table.shop_table_responsive tr td.product-thumbnail::before,
  .woocommerce-page table.shop_table_responsive tr td.product-thumbnail::before { display: none; }
  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 120px; height: 120px; margin: 0 auto;
  }
  /* La tabella restava `display: table` anche a celle impilate: con la larghezza
     fissa di 96px sulla cella miniatura si dimensionava a 433px dentro un
     contenitore da 358, e il corpo ha `overflow-x: clip` — quindi il prodotto
     veniva tagliato a destra senza nemmeno poter scorrere. Trattarla come blocco
     la fa stare nel contenitore. (segnalato dall'utente 2026-08-15) */
  .woocommerce-cart table.shop_table.cart,
  .woocommerce-cart table.shop_table.cart tbody { display: block; width: 100%; max-width: 100%; }
  .woocommerce-cart table.cart td.product-thumbnail,
  .woocommerce-cart table.cart th.product-thumbnail { width: auto; }

  /* elimina: allineato a destra, tap target pieno */
  .woocommerce-cart table.cart td.product-remove { text-align: right !important; padding-bottom: 0 !important; }
}

/* Elimina prodotto: deve leggersi come "rimuovi", non come chiusura generica */
.woocommerce-cart .product-remove a {
  background: #fdeeee; color: var(--ape-danger, #c0392b) !important;
}

/* coupon + update: riga pulita, input mai tagliato */
.woocommerce-cart td.actions { padding: var(--ape-s3) var(--ape-s4); }
.woocommerce-cart td.actions .coupon { display: flex; gap: var(--ape-s2); align-items: center; float: none; }
/* woocommerce-layout.css impone `width: 80px` con selettore piu' forte del nostro
   (usa #content): il campo usciva largo 80px e il testo "Codice promozionale"
   risultava tagliato in "Codice pr". Fix 2026-08-04. */
.woocommerce-cart .coupon .input-text,
.woocommerce-cart table.cart td.actions .coupon .input-text {
  height: 44px; border: 1px solid var(--ape-line); border-radius: 10px;
  padding-inline: var(--ape-s3);
  font-size: 16px;                 /* sotto i 16px iOS zooma da solo al focus */
  width: 240px !important; max-width: 100%; flex: 0 1 240px; min-width: 150px;
}
.woocommerce-cart .coupon .button { flex: 0 0 auto; }
.woocommerce-cart .coupon .button, .woocommerce-cart button[name="update_cart"] {
  height: 44px; border-radius: 10px; border: 1.5px solid var(--ape-ink);
  background: transparent; color: var(--ape-ink); font-weight: 600; padding-inline: var(--ape-s4);
}
.woocommerce-cart .coupon .button:hover, .woocommerce-cart button[name="update_cart"]:hover { background: var(--ape-surface-2); }

/* totali come card — specchio della sidebar checkout */
.woocommerce-cart .cart_totals {
  border: 1px solid var(--ape-line); border-radius: var(--ape-r-card);
  padding: var(--ape-s4); background: var(--ape-surface);
  box-shadow: var(--ape-shadow-1); width: 100% !important; float: none !important;
}
.woocommerce-cart .cart_totals h2 { font-size: 16px; font-weight: 700; margin-bottom: var(--ape-s3); }
.woocommerce-cart .cart_totals table.shop_table { border: 0 !important; box-shadow: none; }
.woocommerce-cart .cart_totals th { background: none; text-transform: none; font-size: 14px; color: var(--ape-ink-soft); font-weight: 500; padding-inline: 0; }
.woocommerce-cart .cart_totals td { padding-inline: 0; text-align: right; }
.woocommerce-cart .cart_totals .order-total th { color: var(--ape-ink); font-weight: 700; font-size: 15px; }
.woocommerce-cart .cart_totals .order-total .amount { font-size: 24px; font-weight: 800; }
/* CTA identica al checkout */
.woocommerce-cart .wc-proceed-to-checkout { padding: 0; margin-top: var(--ape-s3); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  height: 56px !important; font-size: 17px !important; font-weight: 750 !important;
  box-shadow: 0 4px 14px rgb(255 221 0 / 35%);
}
/* consegna + trust + privacy (markup condiviso col checkout) */
/* Riga consegna: icona a sinistra, etichetta sopra e data sotto. Stessa forma
   della carta d'acquisto della scheda prodotto. */
.ape-co-delivery {
  display: flex; align-items: center; gap: 10px; text-align: left;
  font-size: 13px; background: var(--ape-ok-soft); color: var(--ape-ok);
  border-radius: var(--ape-r-input); padding: 11px 13px; margin: var(--ape-s3) 0 0;
}
.ape-co-delivery__ico { flex: 0 0 auto; display: flex; }
.ape-co-delivery__ico .ape-icon { width: 18px; height: 18px; }
.ape-co-delivery__txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ape-co-delivery__lbl {
  font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
  font-weight: 650; opacity: .85;
}
.ape-co-delivery__date { font-size: 14px; font-weight: 700; line-height: 1.25; }
.woocommerce-cart .ape-co-trust {
  list-style: none; margin: var(--ape-s3) 0 0; padding: var(--ape-s3);
  background: var(--ape-surface-2); border-radius: var(--ape-r-input);
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px;
}
.woocommerce-cart .ape-co-trust li { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--ape-ink-soft); }
.woocommerce-cart .ape-co-trust .ape-icon { color: var(--ape-ok); flex: 0 0 auto; }
.woocommerce-cart .ape-co-trust__stars { color: #F5A623; letter-spacing: 1px; font-size: 11px; }
.woocommerce-cart .ape-co-privacy { text-align: center; font-size: 12px; color: var(--ape-ink-mute); margin-top: var(--ape-s3); }

/* CTA checkout: gialla brand, grande */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce a.checkout-button.button.alt {
  display: flex; align-items: center; justify-content: center;
  background: var(--ape-accent) !important; color: var(--ape-on-accent) !important;
  border-radius: 10px; font-weight: 700; font-size: 16px;
  height: 52px; padding-inline: var(--ape-s6); border: none;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: var(--ape-accent-hover) !important; }

/* cross-sells: titolo coerente (le card sono già ProductCard) */
.woocommerce-cart .cross-sells > h2 { font-size: 21px; font-weight: 650; margin: var(--ape-s8) 0 var(--ape-s4); }

/* ══ CHECKOUT (solo estetica: markup, campi e logica INVARIATI) ══ */
.woocommerce-checkout form.checkout { display: block; }
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading {
  font-size: 18px; font-weight: 700; margin: var(--ape-s4) 0 var(--ape-s3);
}
.woocommerce-checkout .form-row label { font-size: 13px; font-weight: 600; color: var(--ape-ink-soft); margin-bottom: 4px; }
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.select2-container--default .select2-selection--single {
  min-height: 46px; border: 1px solid var(--ape-line) !important; border-radius: 10px !important;
  padding: 10px 14px !important; font-size: 16px !important; background: var(--ape-surface) !important; /* sotto 16px l'iPhone ingrandisce al tocco (07/10/2026) */
  box-shadow: none !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 26px !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px !important; }
.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row select:focus { border-color: var(--ape-accent) !important; }

/* riepilogo ordine come card */
.woocommerce-checkout #order_review {
  border: 1px solid var(--ape-line); border-radius: var(--ape-r-card);
  padding: var(--ape-s4) var(--ape-s6); background: var(--ape-surface-2);
}
.woocommerce-checkout #order_review table.shop_table { border: 0 !important; background: transparent; }
.woocommerce-checkout #order_review .order-total .amount { font-size: 20px; font-weight: 800; }

/* metodi di pagamento */
.woocommerce-checkout #payment { background: transparent !important; border-radius: var(--ape-r-card); }
.woocommerce-checkout #payment ul.payment_methods {
  border: 1px solid var(--ape-line) !important; border-radius: var(--ape-r-card);
  background: var(--ape-surface); padding: var(--ape-s2) !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
  border-radius: 10px; padding: var(--ape-s2) var(--ape-s3); list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { background: var(--ape-accent-soft); }
.woocommerce-checkout #payment div.payment_box {
  background: var(--ape-surface-2) !important; border-radius: 10px; font-size: 13px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* PLACE ORDER: la CTA più importante del sito */
.woocommerce-checkout #place_order {
  width: 100%; height: 56px; border: none; border-radius: 10px;
  background: var(--ape-accent) !important; color: var(--ape-on-accent) !important;
  font-size: 17px; font-weight: 800; letter-spacing: .01em;
  box-shadow: 0 4px 14px rgb(255 221 0 / 35%);
  transition: background var(--ape-t-fast) var(--ape-ease);
}
.woocommerce-checkout #place_order:hover { background: var(--ape-accent-hover) !important; }

/* ══ ACCOUNT: tocco leggero coerente ══ */
.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: var(--ape-s2); list-style: none; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: inline-block; padding: 8px 14px; border-radius: 999px;
  border: 1px solid var(--ape-line); font-size: 13px; font-weight: 600; color: var(--ape-ink-soft);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ape-ink); color: #fff; border-color: var(--ape-ink); }

/* Consegna stimata sotto il singolo prodotto (quando le date differiscono) */
.ape-item-delivery {
  display: block; margin-top: 4px; font-size: 12px; line-height: 1.35;
  color: var(--ape-ink-soft, #5D6570); font-weight: 400;
}
.ape-item-delivery strong { color: var(--ape-ink, #111); font-weight: 600; }
.ape-co-delivery-row td { padding-top: 0 !important; border-top: 0 !important; }
.ape-co-delivery-row .ape-co-delivery { margin: 0; }

@media (max-width: 768px) {
  /* Il modulo coupon stava su una riga sola: il pulsante restava a 156px e
     "Applica codice promozionale" andava a capo uscendo dal bordo. A tutta
     larghezza il testo ci sta su una riga. */
  .woocommerce-cart .coupon { flex-wrap: wrap; }
  .woocommerce-cart .coupon .input-text,
  .woocommerce-cart .coupon button[name="apply_coupon"] { flex: 1 1 100%; width: 100%; }
  .woocommerce-cart .coupon button[name="apply_coupon"] {
    height: auto; min-height: 46px; line-height: 1.25; white-space: normal;
  }
}

/* Due punti orfani: il CSS responsive di WooCommerce stampa "attr(data-title): "
   davanti a ogni cella. Le celle che un'etichetta non ce l'hanno (elimina,
   miniatura, azioni, riga consegna, nota spedizione) stampavano un ": " solo,
   a sinistra. Si spegne dove il data-title non c'e'. Le nostre righe vanno
   anche allineate a sinistra: ereditavano il text-align: right della tabella.
   (utente 2026-08-15) */
.woocommerce-cart table.shop_table td:not([data-title])::before,
.woocommerce-checkout table.shop_table td:not([data-title])::before { content: none !important; }
.ape-co-delivery-row td,
.woocommerce-cart tr.ape-shipnote td,
.woocommerce-checkout tr.ape-shipnote td { text-align: left !important; }

/* ══ CARRELLO SU TELEFONO, compatto (Federico 07/10/2026) ══
   Prima ogni prodotto era una pila di righe "Prodotto: / Prezzo: / Quantità: / Subtotale:"
   con la foto grande sopra, piu' il modulo coupon aperto: un prodotto occupava uno schermo
   intero. Ora una riga sola: foto piccola a sinistra, nome + elimina, sotto quantità e totale.
   Il coupon si apre da "Hai un codice sconto?" e una barra fissa porta subito al checkout. */
.woocommerce-cart button[name="update_cart"].ape-auto { display: none !important; } /* smallscreen.css di Woo lo rimetteva display:block */
.ape-coupon-toggle { display: none; }
.ape-cart-bar { display: none; }
@media (max-width: 768px) {
  .woocommerce-cart table.cart tr.cart_item {
    display: grid !important; grid-template-columns: 72px 1fr auto;
    grid-template-areas: "img name del" "img qty sub";
    column-gap: 12px; row-gap: 8px; align-items: center; padding: 12px 14px;
  }
  .woocommerce-cart table.cart tr.cart_item + tr.cart_item { border-top: 1px solid var(--ape-line); }
  .woocommerce-cart table.cart tr.cart_item td {
    display: block !important; padding: 0 !important; border: 0 !important;
    background: none !important; text-align: left !important; min-width: 0;
  }
  .woocommerce-cart table.cart tr.cart_item td::before { content: none !important; display: none !important; }
  .woocommerce-cart table.cart tr.cart_item td.product-thumbnail { grid-area: img; align-self: start; }
  .woocommerce-cart table.cart tr.cart_item td.product-thumbnail img { width: 72px; height: 72px; margin: 0; }
  .woocommerce-cart table.cart tr.cart_item td.product-name { grid-area: name; align-self: start; }
  .woocommerce-cart table.cart tr.cart_item td.product-name a {
    font-size: 13.5px; line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  .woocommerce-cart table.cart tr.cart_item td.product-remove { grid-area: del; align-self: start; }
  .woocommerce-cart table.cart tr.cart_item td.product-remove a { width: 28px; height: 28px; line-height: 26px; font-size: 16px; }
  .woocommerce-cart table.cart tr.cart_item td.product-price { display: none !important; }
  .woocommerce-cart table.cart tr.cart_item td.product-quantity { grid-area: qty; }
  .woocommerce-cart table.cart tr.cart_item td.product-subtotal { grid-area: sub; text-align: right !important; font-size: 16px; white-space: nowrap; }
  .woocommerce-cart .quantity .qty { height: 32px; width: 40px; }
  .woocommerce-cart table.cart td.actions { display: block; padding: 8px 14px !important; text-align: left !important; }
  /* coupon chiuso finche' non lo si chiede */
  .ape-coupon-toggle {
    display: inline-block; background: none; border: 0; padding: 6px 0; cursor: pointer;
    font-size: 13.5px; font-weight: 600; color: var(--ape-ink); text-decoration: underline; text-underline-offset: 3px;
  }
  .ape-coupon-toggle[hidden] { display: none; }
  .ape-coupon-chiuso .coupon { display: none !important; }
  /* campo e "Applica" sulla stessa riga */
  .woocommerce-cart .coupon { margin-top: 6px; flex-wrap: nowrap !important; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1 1 auto !important; width: auto !important; min-width: 0; }
  .woocommerce-cart .coupon button[name="apply_coupon"] { flex: 0 0 auto !important; width: auto !important; min-height: 44px; }
  /* nel carrello il pulsante WhatsApp copriva "Procedi con l'ordine" */
  body.woocommerce-cart .ape-bottomnav { display: none; }
  .woocommerce-cart .ape-co-delivery-row td { display: block; padding: 0 14px 12px !important; }
  /* la barra "Hai la spedizione gratuita!" in testa ripete la nota dei totali */
  .woocommerce-cart .klbth-free-shipping.success { display: none; }
  .woocommerce-cart .cart-collaterals { margin-top: var(--ape-s4); }
  .woocommerce-cart .cart_totals { padding: var(--ape-s3) var(--ape-s4); }
  .woocommerce-cart .cart_totals h2 { display: none; }
  .woocommerce-cart .cart_totals th, .woocommerce-cart .cart_totals td { padding-block: 6px; }
  /* barra fissa: totale + Procedi, finche' il pulsante vero non e' in vista */
  .ape-cart-bar {
    display: flex; align-items: center; gap: 12px; position: fixed; z-index: 96;
    left: 0; right: 0; bottom: 0; padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    background: var(--ape-surface, #fff); border-top: 1px solid var(--ape-line);
    box-shadow: 0 -6px 18px rgb(13 17 23 / 10%);
    transform: translateY(110%); transition: transform .2s ease;
  }
  .ape-cart-bar.is-on { transform: none; }
  .ape-cart-bar__tot { display: flex; flex-direction: column; line-height: 1.15; flex: 0 0 auto; }
  .ape-cart-bar__tot small { font-size: 11.5px; color: var(--ape-ink-soft); }
  .ape-cart-bar__tot strong { font-size: 18px; font-weight: 800; color: var(--ape-ink); }
  .ape-cart-bar__go {
    flex: 1 1 auto; display: flex; align-items: center; justify-content: center; height: 48px;
    border-radius: 10px; background: var(--ape-accent); color: var(--ape-on-accent) !important;
    font-size: 16px; font-weight: 750; text-decoration: none;
  }
  body.ape-cart-bar-on .ape-bottomnav { transform: translateY(150%); }
}
