/* =========================================================================
   LORENZ MARINE — CARRELLO (refactor pulito, mobile-first, moderno)
   Scoped: body.woocommerce-cart
   Struttura DOM reale:
     .lm-cart-wrap
       .lm-cart-hero        (crumbs + h1 + lede)
       .lm-cart-main        (grid 2col)
         .lm-cart-main__form
           .woocommerce-notices-wrapper
           form.woocommerce-cart-form > table.shop_table.cart > thead/tbody
             tr.cart_item: product-remove, -thumbnail, -name, -price, -quantity, -subtotal
             tr > td.actions (coupon + update cart)
         .lm-cart-main__aside
           .cart-collaterals (display:contents)
             .cart_totals > h2 + table(subtotal/shipping/total) + .wc-proceed-to-checkout
   Token locali con fallback → robusti anche se i globali cambiano.
   ========================================================================= */

body.woocommerce-cart {
  --ck-bg:        var(--bg-surface, #ffffff);
  --ck-soft:      var(--color-white-100, #fafafa);
  --ck-soft-2:    var(--bg-surface-alt, #f1f1f1);
  --ck-line:      var(--border-default, #ddd8cd);
  --ck-line-soft: color-mix(in srgb, var(--border-default, #ddd8cd) 60%, #fff);
  --ck-text:      var(--fg-default, #1f1f1f);
  --ck-muted:     var(--fg-muted, #5c5c5c);
  --ck-brand:     var(--brand, #a61d1d);
  --ck-brand-dk:  var(--brand-hover, #6b0f0f);
  --ck-brand-tint: rgba(166, 29, 29, 0.07);
  --ck-r:         10px;
  --ck-r-sm:      6px;
  --ck-shadow:    0 1px 2px rgba(10, 10, 10, 0.04);
  --ck-shadow-md: 0 8px 24px rgba(10, 10, 10, 0.06), 0 2px 6px rgba(10, 10, 10, 0.04);
  --ck-f-disp:    var(--font-display, 'Hanken Grotesk', system-ui, sans-serif);
  --ck-f-body:    var(--font-body, 'Inter Tight', system-ui, sans-serif);
  --ck-f-serif:   var(--font-editorial, 'Fraunces', Georgia, serif);
  --ck-f-mono:    var(--font-mono, 'JetBrains Mono', ui-monospace, monospace);
  --ck-sticky-top: calc(var(--header-h, 76px) + var(--lm-b2b-banner-h, 0px) + 20px);
}

/* -------------------------------------------------------------------------
 * Wrapper + hero
 * ------------------------------------------------------------------------- */
body.woocommerce-cart .lm-cart-wrap {
  max-width: var(--container-max, 1320px);
  margin: 0 auto;
  padding: clamp(20px, 3vw, 40px) clamp(16px, 4vw, 40px) clamp(48px, 6vw, 96px);
  font-family: var(--ck-f-body);
  color: var(--ck-text);
}

body.woocommerce-cart .lm-cart-hero {
  margin-bottom: clamp(20px, 3vw, 36px);
}
body.woocommerce-cart .lm-cart-hero__crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ck-f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ck-muted);
  margin-bottom: 14px;
}
body.woocommerce-cart .lm-cart-hero__crumbs a {
  color: var(--ck-muted);
  text-decoration: none;
}
body.woocommerce-cart .lm-cart-hero__crumbs a:hover { color: var(--ck-brand); }
body.woocommerce-cart .lm-cart-hero__crumbs span[aria-current] { color: var(--ck-text); }

body.woocommerce-cart .lm-cart-hero__title {
  font-family: var(--ck-f-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.85rem, 3.4vw, 2.85rem);
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--ck-text);
}
body.woocommerce-cart .lm-cart-hero__lede {
  margin: 10px 0 0;
  font-size: clamp(0.95rem, 1.4vw, 1.05rem);
  color: var(--ck-muted);
  max-width: 52ch;
}

/* -------------------------------------------------------------------------
 * Layout 2 colonne
 * ------------------------------------------------------------------------- */
body.woocommerce-cart .lm-cart-main {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr);
  gap: clamp(20px, 2.4vw, 40px);
  align-items: start;
}
body.woocommerce-cart .lm-cart-main__form { min-width: 0; }

/* -------------------------------------------------------------------------
 * Notices
 * ------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 20px; }
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  background: var(--ck-bg);
  border: 1px solid var(--ck-line);
  border-left: 3px solid var(--ck-brand);
  border-radius: var(--ck-r-sm);
  padding: 14px 18px;
  margin: 0 0 18px;
  font-size: 0.92rem;
  color: var(--ck-text);
  list-style: none;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before { display: none; }
body.woocommerce-cart .woocommerce-message .button {
  margin-left: auto;
}

/* -------------------------------------------------------------------------
 * Lista articoli — la table diventa una lista di card-row
 * ------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce-cart-form {
  background: var(--ck-bg);
  border: 1px solid var(--ck-line);
  border-radius: var(--ck-r);
  overflow: hidden;
}
body.woocommerce-cart table.shop_table.cart {
  display: block;
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  background: transparent;
  border-radius: 0;
}
body.woocommerce-cart table.shop_table.cart thead { display: none; }       /* header tabellare nascosto, le card si spiegano da sole */
body.woocommerce-cart table.shop_table.cart tbody { display: block; }

/* riga prodotto */
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item {
  position: relative;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  grid-template-areas:
    "thumb name     subtotal"
    "thumb price    subtotal"
    "thumb quantity subtotal";
  align-items: center;
  column-gap: clamp(14px, 1.6vw, 22px);
  row-gap: 6px;
  padding: clamp(16px, 1.8vw, 22px);
  padding-right: clamp(40px, 4vw, 56px);   /* spazio per la × */
  border: 0;
  border-bottom: 1px solid var(--ck-line-soft);
}
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item:last-of-type { border-bottom: 0; }
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td {
  display: block;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  width: auto;
}
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td::before { display: none !important; }  /* niente label responsive WC */

/* thumbnail — WC-smallscreen lo nasconde su mobile: lo forziamo sempre visibile */
body.woocommerce-cart td.product-thumbnail,
body.woocommerce-cart table.shop_table_responsive td.product-thumbnail {
  grid-area: thumb;
  align-self: start;
  display: block !important;
}
body.woocommerce-cart td.product-thumbnail a,
body.woocommerce-cart td.product-thumbnail {
  display: block;
}
body.woocommerce-cart td.product-thumbnail img {
  width: 92px;
  height: 92px;
  object-fit: contain;
  padding: 8px;
  background: var(--ck-bg);
  border: 1px solid var(--ck-line);
  border-radius: var(--ck-r-sm);
}

/* nome */
body.woocommerce-cart td.product-name {
  grid-area: name;
  font-family: var(--ck-f-disp);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ck-text);
}
body.woocommerce-cart td.product-name a {
  color: inherit;
  text-decoration: none;
}
body.woocommerce-cart td.product-name a:hover { color: var(--ck-brand); }

/* prezzo unitario */
body.woocommerce-cart td.product-price {
  grid-area: price;
  font-family: var(--ck-f-body);
  font-size: 0.9rem;
  color: var(--ck-muted);
}
body.woocommerce-cart td.product-price::after {
  content: "cad.";
  font-family: var(--ck-f-mono);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ck-muted);
  margin-left: 6px;
  opacity: 0.7;
}
body.woocommerce-cart td.product-price .woocommerce-Price-amount { color: var(--ck-text); font-weight: 500; }

/* quantità stepper */
body.woocommerce-cart td.product-quantity { grid-area: quantity; }
body.woocommerce-cart td.product-quantity .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ck-line);
  border-radius: 999px;
  overflow: hidden;
  background: var(--ck-bg);
}
body.woocommerce-cart td.product-quantity .quantity input.qty {
  width: 46px;
  height: 38px;
  border: 0;
  background: transparent;
  text-align: center;
  font-family: var(--ck-f-disp);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ck-text);
  -moz-appearance: textfield;
}
body.woocommerce-cart td.product-quantity .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart td.product-quantity .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.woocommerce-cart .lm-qty-btn {
  width: 38px;
  height: 38px;
  border: 0;
  background: transparent;
  color: var(--ck-text);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, color 0.15s ease;
}
body.woocommerce-cart .lm-qty-btn:hover:not(:disabled) { background: var(--ck-brand-tint); color: var(--ck-brand); }
body.woocommerce-cart .lm-qty-btn:disabled { opacity: 0.3; cursor: not-allowed; }

/* subtotale riga */
body.woocommerce-cart td.product-subtotal {
  grid-area: subtotal;
  align-self: center;
  justify-self: end;
  text-align: right;
  font-family: var(--ck-f-disp);
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--ck-brand);
  white-space: nowrap;
}
body.woocommerce-cart td.product-subtotal .lm-b2b-price__regular,
body.woocommerce-cart td.product-subtotal del {
  display: block;
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--ck-muted);
  text-decoration: line-through;
}
body.woocommerce-cart td.product-subtotal .lm-b2b-price__net,
body.woocommerce-cart td.product-subtotal ins { text-decoration: none; color: var(--ck-brand); }

/* remove × */
body.woocommerce-cart td.product-remove {
  position: absolute;
  top: 12px;
  right: 12px;
  grid-area: unset;
}
body.woocommerce-cart td.product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  color: var(--ck-muted);
  font-size: 17px;
  line-height: 1;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
body.woocommerce-cart td.product-remove a.remove:hover { background: var(--ck-brand-tint); color: var(--ck-brand); }

/* riga azioni (coupon nascosto + aggiorna carrello) */
body.woocommerce-cart table.shop_table.cart tbody tr:has(td.actions) { display: block; }
body.woocommerce-cart td.actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px clamp(16px, 1.8vw, 22px) !important;
  background: var(--ck-soft);
  border-top: 1px solid var(--ck-line);
}
/* coupon (se mai riattivato) */
body.woocommerce-cart td.actions .coupon { display: inline-flex; gap: 8px; align-items: center; margin-right: auto; }
body.woocommerce-cart td.actions .coupon label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.woocommerce-cart td.actions input#coupon_code {
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--ck-line);
  border-radius: var(--ck-r-sm);
  font-family: var(--ck-f-body);
  font-size: 0.9rem;
  background: var(--ck-bg);
}
/* "Aggiorna carrello": bottone ghost moderno, NIENTE underline/grigio */
body.woocommerce-cart td.actions button[name="update_cart"],
body.woocommerce-cart td.actions button.button {
  appearance: none;
  height: 40px;
  padding: 0 18px;
  border: 1px solid var(--ck-line);
  border-radius: 999px;
  background: var(--ck-bg);
  font-family: var(--ck-f-body);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  text-decoration: none !important;
  color: var(--ck-text);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}
body.woocommerce-cart td.actions button[name="update_cart"]:hover:not([disabled]),
body.woocommerce-cart td.actions button.button:hover {
  border-color: var(--ck-text);
  background: var(--ck-text);
  color: #fff;
}
body.woocommerce-cart td.actions button[name="update_cart"][disabled] { opacity: 0.45; cursor: default; }
body.woocommerce-cart td.actions button[name="apply_coupon"] {
  background: transparent;
  border-color: var(--ck-brand);
  color: var(--ck-brand);
}
body.woocommerce-cart td.actions button[name="apply_coupon"]:hover { background: var(--ck-brand); color: #fff; }

/* -------------------------------------------------------------------------
 * Riepilogo ordine (aside sticky)
 * ------------------------------------------------------------------------- */
body.woocommerce-cart .lm-cart-main__aside {
  position: sticky;
  top: var(--ck-sticky-top);
}
body.woocommerce-cart .cart-collaterals { display: contents; }
body.woocommerce-cart .cart-collaterals .cross-sells { display: none; }   /* niente cross-sell nel B2B */

/* batte la specificità (0,3,0) di WC `.woocommerce .cart-collaterals .cart_totals{width:48%}` */
body.woocommerce-cart .cart-collaterals .cart_totals {
  width: 100%;
  float: none;
  margin: 0;
  background: var(--ck-bg);
  border: 1px solid var(--ck-line);
  border-radius: var(--ck-r);
  box-shadow: var(--ck-shadow);
  padding: clamp(20px, 2vw, 28px);
}
body.woocommerce-cart .cart_totals h2 {
  margin: 0 0 18px;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--ck-line);
  font-family: var(--ck-f-disp);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ck-text);
}
body.woocommerce-cart .cart_totals table {
  display: block;
  width: 100%;
  margin: 0;
  border: 0;
  background: transparent;
}
body.woocommerce-cart .cart_totals table tbody { display: block; width: 100%; }
/* niente label responsive WC (`::before` con "Subtotale:") nel riepilogo:
   l'etichetta è già nel <th>. */
body.woocommerce-cart .cart_totals table td::before,
body.woocommerce-cart .cart_totals table th::before { display: none !important; content: none !important; }
body.woocommerce-cart .cart_totals table tr {
  display: flex;
  width: 100%;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid var(--ck-line-soft);
}
body.woocommerce-cart .cart_totals table tr:last-child { border-bottom: 0; }
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.98rem;
}
body.woocommerce-cart .cart_totals table th {
  flex: 0 0 auto;
  text-align: left;
  font-family: var(--ck-f-body);
  font-weight: 500;
  color: var(--ck-muted);
  white-space: nowrap;
}
body.woocommerce-cart .cart_totals table td {
  margin-left: auto;
  text-align: right;
  font-family: var(--ck-f-disp);
  font-weight: 600;
  color: var(--ck-text);
}
/* riga spedizione: indirizzo + link cambia */
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td { font-weight: 600; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
  display: block;
  margin-top: 6px;
  font-family: var(--ck-f-body);
  font-weight: 400;
  font-size: 0.82rem;
  color: var(--ck-muted);
}
body.woocommerce-cart .cart_totals .shipping-calculator-button {
  display: inline-block;
  margin-top: 4px;
  font-family: var(--ck-f-body);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ck-brand);
  text-decoration: none;
}
body.woocommerce-cart .cart_totals .shipping-calculator-button:hover { color: var(--ck-brand-dk); text-decoration: underline; }
/* riga totale */
body.woocommerce-cart .cart_totals tr.order-total { padding-top: 16px; }
body.woocommerce-cart .cart_totals tr.order-total th { font-family: var(--ck-f-disp); font-weight: 700; font-size: 1.05rem; color: var(--ck-text); }
body.woocommerce-cart .cart_totals tr.order-total td { font-size: 1.65rem; font-weight: 700; color: var(--ck-brand); }
body.woocommerce-cart .cart_totals tr.order-total td small { font-weight: 400; font-size: 0.7rem; color: var(--ck-muted); }
/* riga sconto */
body.woocommerce-cart .cart_totals tr.cart-discount th,
body.woocommerce-cart .cart_totals tr.cart-discount td { color: var(--ck-brand); }

/* CTA */
body.woocommerce-cart .wc-proceed-to-checkout { margin-top: 22px; padding: 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 0 20px;
  background: var(--ck-brand);
  border: 0;
  border-radius: var(--ck-r-sm);
  font-family: var(--ck-f-body);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #fff;
  text-decoration: none;
  text-transform: none;
  cursor: pointer;
  transition: background 0.18s ease, box-shadow 0.18s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--ck-brand-dk);
  box-shadow: var(--ck-shadow-md);
}
body.woocommerce-cart .lm-cart-continue {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
  font-family: var(--ck-f-body);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--ck-muted);
  text-decoration: none;
  transition: color 0.15s ease, gap 0.15s ease;
}
body.woocommerce-cart .lm-cart-continue:hover { color: var(--ck-brand); gap: 11px; }

/* trust signals */
body.woocommerce-cart .lm-cart-trust { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ck-line-soft); }
body.woocommerce-cart .lm-cart-trust ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
body.woocommerce-cart .lm-cart-trust li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ck-f-body);
  font-size: 0.86rem;
  color: var(--ck-muted);
}
body.woocommerce-cart .lm-cart-trust__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--ck-brand-tint);
  color: var(--ck-brand);
  font-size: 11px;
}

/* -------------------------------------------------------------------------
 * Carrello vuoto
 * ------------------------------------------------------------------------- */
body.woocommerce-cart.lm-cart-is-empty .lm-cart-main { grid-template-columns: 1fr; }
body.woocommerce-cart .lm-cart-empty {
  text-align: center;
  padding: clamp(40px, 6vw, 72px) 24px;
  background: var(--ck-bg);
  border: 1px solid var(--ck-line);
  border-radius: var(--ck-r);
}
body.woocommerce-cart .lm-cart-empty__icon { color: var(--ck-line); }
body.woocommerce-cart .lm-cart-empty__title { font-family: var(--ck-f-serif); font-style: italic; font-size: 1.6rem; margin: 14px 0 6px; }
body.woocommerce-cart .lm-cart-empty__lede { color: var(--ck-muted); margin: 0 0 22px; }
body.woocommerce-cart .cart-empty.woocommerce-info { justify-content: center; border-left: 0; }
body.woocommerce-cart .return-to-shop { text-align: center; }
body.woocommerce-cart .return-to-shop .button {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 26px;
  background: var(--ck-brand);
  border-radius: var(--ck-r-sm);
  color: #fff;
  font-family: var(--ck-f-body);
  font-weight: 600;
  text-decoration: none;
}
body.woocommerce-cart .return-to-shop .button:hover { background: var(--ck-brand-dk); }

/* -------------------------------------------------------------------------
 * Responsive
 * ------------------------------------------------------------------------- */
@media (max-width: 980px) {
  body.woocommerce-cart .lm-cart-main {
    grid-template-columns: 1fr;
  }
  body.woocommerce-cart .lm-cart-main__aside { position: static; }
}

@media (max-width: 560px) {
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item {
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-areas:
      "thumb name"
      "thumb price"
      "thumb quantity"
      "subtotal subtotal";
    padding-right: 40px;
  }
  body.woocommerce-cart td.product-thumbnail img { width: 72px; height: 72px; }
  body.woocommerce-cart td.product-subtotal {
    justify-self: start;
    text-align: left;
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid var(--ck-line-soft);
    width: 100%;
  }
  body.woocommerce-cart td.actions { justify-content: stretch; }
  body.woocommerce-cart td.actions button[name="update_cart"],
  body.woocommerce-cart td.actions button.button { width: 100%; }
}
