/* =========================================================================
   Cart (Carrello) — override in woocommerce/cart/*.php
   ========================================================================= */
.woocommerce-cart main .woocommerce,
.woocommerce-checkout main .woocommerce,
.woocommerce-account main .woocommerce { max-width:none; }

.woocommerce-cart .sar-cart-count {
  font-family:var(--font-label); font-size:0.8125rem; letter-spacing:.04em; color:var(--muted);
  margin:0 0 clamp(1.25rem,2.6vw,1.875rem); font-variant-numeric:tabular-nums;
}
.woocommerce-cart .sar-cart-count b { color:var(--ink); font-weight:600; }

.woocommerce-cart .sar-cart-layout {
  display:grid; grid-template-columns:minmax(0,1fr) 22.5rem; gap:1.625rem; align-items:start;
}
.woocommerce-cart .sar-cart-layout > .sar-cart-panel,
.woocommerce-cart .sar-cart-layout > .sar-cart-aside { min-width:0; }
.woocommerce-cart .sar-cart-panel { margin:0; }

.woocommerce-cart .sar-cart-items {
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.875rem;
}
.woocommerce-cart .sar-cart-card {
  display:grid; grid-template-columns:6rem minmax(0,1fr) auto;
  grid-template-areas:"media info total" "media qty remove";
  column-gap:1.25rem; row-gap:0.875rem; align-items:start; margin:0;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l);
  box-shadow:var(--shadow-1); padding:1.125rem 1.25rem;
}
.woocommerce-cart .cart-card__media { grid-area:media; display:block; width:6rem; }
.woocommerce-cart .cart-card__media img {
  width:100% !important; height:auto !important; max-width:none !important; aspect-ratio:1/1;
  object-fit:contain; display:block; margin:0; padding:0.375rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m);
}
.woocommerce-cart .cart-card__info { grid-area:info; min-width:0; }
.woocommerce-cart .cart-card__cat {
  font-family:var(--font-label); font-size:0.65625rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--red); font-weight:500; margin-bottom:0.375rem;
}
:root[data-theme="dark"] .woocommerce-cart .cart-card__cat { color:var(--red-on-dark); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .woocommerce-cart .cart-card__cat { color:var(--red-on-dark); } }
.woocommerce-cart .cart-card__name {
  font-family:var(--font-display); font-weight:700; font-size:1rem; letter-spacing:-.01em;
  line-height:1.3; overflow-wrap:break-word;
}
.woocommerce-cart .cart-card__name a { color:var(--ink); text-decoration:none; }
.woocommerce-cart .cart-card__name a:hover { text-decoration:underline; }
.woocommerce-cart .cart-card__name .variation,
.woocommerce-cart .cart-card__name .backorder_notification {
  font-family:var(--font-body); font-weight:400; font-size:0.8125rem; color:var(--muted); margin:0.25rem 0 0;
}
.woocommerce-cart .cart-card__price {
  margin-top:0.4375rem; font-family:var(--font-label); font-size:0.8125rem; color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.woocommerce-cart .cart-card__price .amount, .woocommerce-cart .cart-card__price .price { color:inherit; font-weight:inherit; }
.woocommerce-cart .cart-card__each { margin-left:0.3125rem; }

.woocommerce-cart .cart-card__qty { grid-area:qty; align-self:center; }
.woocommerce-cart .cart-card__qty .sar-qty { height:2.625rem; }
.woocommerce-cart .cart-card__qty .sar-qty__btn { width:2.5rem; }
.woocommerce-cart .cart-card__qty .sar-qty .quantity { margin:0; }
.woocommerce-cart .cart-card__qty .sar-qty input.qty { width:3rem; height:2.625rem; }

.woocommerce-cart .cart-card__total {
  grid-area:total; justify-self:end; text-align:right; white-space:nowrap;
  font-family:var(--font-display); font-weight:800; font-size:1.1875rem; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.woocommerce-cart .cart-card__total .amount { color:inherit; font-weight:inherit; }

.woocommerce-cart .cart-card__remove { grid-area:remove; justify-self:end; align-self:center; }
.woocommerce-cart .cart-card__remove a.remove {
  display:inline-flex; align-items:center; justify-content:center; width:2.125rem; height:2.125rem;
  border-radius:0.5625rem; border:1px solid var(--line); background:var(--surface);
  color:var(--muted) !important; font-size:1.25rem; line-height:1; text-decoration:none; font-weight:400;
  transition:border-color .18s, color .18s, background .18s;
}
.woocommerce-cart .cart-card__remove a.remove:hover {
  border-color:var(--red); background:var(--red); color:#fff !important;
}

.woocommerce-cart .sar-cart-actions {
  display:flex; align-items:center; justify-content:space-between; gap:1.125rem; flex-wrap:wrap;
  margin-top:0.875rem; padding:1rem 1.125rem; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-l); box-shadow:var(--shadow-1);
}
.woocommerce-cart .sar-cart-actions .coupon { display:flex; align-items:stretch; gap:0; margin:0; }
.woocommerce-cart .sar-cart-actions .coupon input.input-text {
  height:2.75rem; width:13.75rem; max-width:52vw; min-width:0; font-family:var(--font-body); font-size:0.875rem;
  color:var(--ink); background:var(--surface); border:1.5px solid var(--line-strong); border-right:0;
  border-radius:0.625rem 0 0 0.625rem; padding:0 0.875rem; margin:0; box-shadow:none;
  transition:border-color .2s, box-shadow .2s;
}
.woocommerce-cart .sar-cart-actions .coupon input.input-text:focus {
  outline:none; border-color:var(--red); box-shadow:0 0 0 3px var(--focus); position:relative; z-index:1;
}
:root[data-theme="dark"] .woocommerce-cart .sar-cart-actions .coupon input.input-text:focus { border-color:var(--red-on-dark); }
.woocommerce-page .woocommerce-cart-form #coupon_code { margin-right:0 !important; }
.woocommerce-cart .sar-cart-actions .coupon button[name="apply_coupon"] {
  border-radius:0 0.625rem 0.625rem 0; padding:0.75rem 1.125rem; white-space:nowrap; flex-shrink:0; margin:0;
  background:var(--surface-2); color:var(--ink); border:1.5px solid var(--line-strong); box-shadow:none;
}
.woocommerce-cart .sar-cart-actions .coupon button[name="apply_coupon"]:hover {
  background:var(--surface); color:var(--ink); border-color:var(--ink);
}
.woocommerce-cart .sar-update-cart[hidden] { display:none; }
.woocommerce-cart .sar-cart-actions .sar-update-cart { margin-left:auto; }
.woocommerce-cart .sar-cart-card.is-updating { opacity:.55; pointer-events:none; }

/* ---- Right panel: Riepilogo (totals) ---- */
.woocommerce-cart .sar-cart-aside { margin:0; }
.woocommerce-cart .sar-cart-aside::before, .woocommerce-cart .sar-cart-aside::after { content:none; }
/* neutralise WooCommerce's default .cart-collaterals/.cart_totals 48% float so
   the Riepilogo fills the sidebar column (aside IS the .cart-collaterals) */
.woocommerce-cart .sar-cart-aside .cart-collaterals,
.woocommerce-cart .sar-cart-aside .cart_totals,
.woocommerce-cart .sar-cart-aside .sar-totals { width:100% !important; float:none !important; margin:0 !important; }
.woocommerce-cart .sar-totals {
  position:sticky; top:var(--sticky-top); width:100%; margin:0;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l);
  box-shadow:var(--shadow-1); overflow:hidden;
}
.woocommerce-cart .sar-totals__head { padding:1rem 1.25rem; border-bottom:1px solid var(--line); }
.woocommerce-cart .sar-totals__head h2 {
  font-family:var(--font-display); font-weight:700; font-size:1rem; letter-spacing:-.01em; margin:0;
}
.woocommerce-cart .sar-totals__body { padding:0.375rem 1.25rem 0.25rem; }
.woocommerce-cart .sar-totals .trow {
  display:flex; align-items:baseline; justify-content:space-between; gap:0.875rem;
  padding:0.8125rem 0; border-bottom:1px solid var(--line);
}
.woocommerce-cart .sar-totals .trow .lbl { font-size:0.90625rem; color:var(--muted); }
.woocommerce-cart .sar-totals .trow .val {
  font-family:var(--font-display); font-weight:700; font-size:0.9375rem; color:var(--ink);
  text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;
}
.woocommerce-cart .sar-totals .trow .val .amount { color:inherit; font-weight:inherit; }
.woocommerce-cart .sar-totals .trow .val.soft {
  font-family:var(--font-body); font-weight:500; font-size:0.8125rem; color:var(--muted);
  max-width:58%; text-align:right; white-space:normal;
}
.woocommerce-cart .sar-totals .trow.cart-discount .val { color:var(--red); }
:root[data-theme="dark"] .woocommerce-cart .sar-totals .trow.cart-discount .val { color:var(--red-on-dark); }
.woocommerce-cart .sar-totals .trow.grand { border-bottom:0; padding:1rem 0 0.375rem; }
.woocommerce-cart .sar-totals .trow.grand .lbl { font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--ink); }
.woocommerce-cart .sar-totals .trow.grand .val { font-family:var(--font-display); font-weight:800; font-size:1.4375rem; letter-spacing:-.02em; }

.woocommerce-cart .sar-totals__foot { padding:0.25rem 1.25rem 1.25rem; display:flex; flex-direction:column; gap:0.75rem; }
.woocommerce-cart .sar-totals__foot .wc-proceed-to-checkout { padding:0; margin:0; }
.woocommerce-cart .sar-totals__foot .wc-proceed-to-checkout a.checkout-button {
  display:flex; width:100%; margin:0; font-size:0.96875rem; padding:0.875rem 1.375rem; text-align:center;
}
.woocommerce-cart .sar-totals__foot .sar-continue {
  text-align:center; font-family:var(--font-display); font-weight:600; font-size:0.84375rem;
  color:var(--muted); text-decoration:none; transition:color .2s;
}
.woocommerce-cart .sar-totals__foot .sar-continue:hover { color:var(--red); }
:root[data-theme="dark"] .woocommerce-cart .sar-totals__foot .sar-continue:hover { color:var(--red-on-dark); }
.woocommerce-cart .sar-totals__note { font-family:var(--font-body); font-size:0.75rem; color:var(--muted); text-align:center; margin:0; }

/* Cross-sells (if any) sit below the summary in the aside */
.woocommerce-cart .sar-cart-aside .cross-sells { margin-top:1.5rem; }
.woocommerce-cart .sar-cart-aside .cross-sells > h2 {
  font-family:var(--font-display); font-weight:700; font-size:1rem; letter-spacing:-.01em; margin:0 0 0.875rem;
}

/* ---- Empty cart state ---- */
.woocommerce-cart .sar-cart-empty {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l);
  box-shadow:var(--shadow-1); padding:clamp(2.5rem,7vw,4rem) 1.625rem; text-align:center;
}
.woocommerce-cart .sar-cart-empty__ic {
  width:4rem; height:4rem; margin:0 auto 1.125rem; border-radius:50%; background:var(--surface-2);
  border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--muted);
}
.woocommerce-cart .sar-cart-empty__ic svg { width:1.875rem; height:1.875rem; }
.woocommerce-cart .sar-cart-empty__msg {
  font-family:var(--font-display); font-weight:700; font-size:1.25rem; letter-spacing:-.01em;
  color:var(--ink); margin:0 0 0.5rem;
}
.woocommerce-cart .sar-cart-empty .cart-empty.woocommerce-info,
.woocommerce-cart .sar-cart-empty__msg .wc-block-components-notice-banner {
  background:transparent; border:0; border-radius:0; padding:0; margin:0; color:var(--ink);
  font-family:var(--font-display); font-weight:700; font-size:1.25rem; justify-content:center;
}
.woocommerce-cart .sar-cart-empty__msg .wc-block-components-notice-banner > svg { display:none; }
.woocommerce-cart .sar-cart-empty__msg .wc-block-components-notice-banner__content { text-align:center; }
.woocommerce-cart .sar-cart-empty__msg p { margin:0; }
.woocommerce-cart .sar-cart-empty .return-to-shop { margin:1.375rem 0 0; }
.woocommerce-cart .sar-cart-empty .return-to-shop a.button { display:inline-flex; }

@media (max-width:960px){
  .woocommerce-cart .sar-cart-layout { grid-template-columns:minmax(0,1fr); }
  .woocommerce-cart .sar-totals { position:static; }
}
@media (max-width:640px){
  .woocommerce-cart .sar-cart-card {
    grid-template-columns:4.5rem minmax(0,1fr) auto;
    grid-template-areas:"media info remove" "qty total total";
    column-gap:0.875rem; row-gap:1rem; padding:1rem;
  }
  .woocommerce-cart .cart-card__media { width:4.5rem; }
  .woocommerce-cart .cart-card__total { align-self:center; font-size:1.0625rem; }
  .woocommerce-cart .cart-card__remove { align-self:start; }
}
@media (max-width:560px){
  .woocommerce-cart .sar-cart-actions { flex-direction:column; align-items:stretch; }
  .woocommerce-cart .sar-cart-actions .coupon { width:100%; }
  .woocommerce-cart .sar-cart-actions .coupon input.input-text { width:auto; flex:1 1 auto; max-width:none; }
  .woocommerce-cart .sar-cart-actions .sar-update-cart { margin-left:0; width:100%; }
}

