/* ===================================================================
   Madame Ginger 5 — cart (cart.html, classic [woocommerce_cart])
   =================================================================== */

/* ---- free-shipping progress ---- */
.ship-bar-card{border:1.5px solid var(--ink); padding:18px 20px; margin-bottom:30px; background:var(--paper);}
.ship-bar-msg{font-size:14px; font-weight:600; margin-bottom:12px;}
.ship-bar-msg strong,.ship-bar-msg .woocommerce-Price-amount{color:var(--mgshop);}
.ship-bar-msg.is-met{color:var(--mgshop);}
.ship-bar-track{height:8px; background:var(--cream); border:1px solid var(--line-soft); position:relative; overflow:hidden;}
.ship-bar-fill{height:100%; width:0; background:var(--mgshop); transition:width .35s ease;}

/* ---- layout ---- */
.cart-layout{display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:52px; align-items:start;}
.cart-main{min-width:0;}

/* ---- rows ---- */
.cart-list{border-top:2px solid var(--ink);}
.cart-row{display:flex; gap:20px; padding:22px 0; border-bottom:1.5px solid var(--line-soft); align-items:center; transition:opacity .25s ease, transform .25s ease;}
.cart-row.is-removing{opacity:.35; transform:translateX(12px);}
.cart-row .img-wrap{flex:0 0 92px; aspect-ratio:3/4; overflow:hidden; background:var(--cream); border:1.5px solid var(--line-soft);}
.cart-row .img-wrap a{display:block; height:100%;}
.cart-row .img-wrap img{width:100%; height:100%; object-fit:cover;}
.cart-row .info{flex:1; min-width:0;}
.cart-row .product-name{font-size:15.5px; font-weight:700; line-height:1.3; margin:0 0 6px;}
.cart-row .info .product-name a{color:inherit; text-decoration:none !important;}
.cart-row .product-name a:hover{text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px;}
.cart-row .meta{display:block; font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:rgba(27,23,18,.5); margin-bottom:10px;}
.cart-row .backorder_notification{font-size:12px; font-weight:600; color:var(--gold-deep); margin:0 0 8px;}
.cart-row .unit-price{font-family:var(--font-mono); font-size:13px; font-weight:600; color:rgba(27,23,18,.6);}
.cart-row .unit-price .woocommerce-Price-amount{font-weight:600;}
.cart-row .row-actions{display:flex; align-items:center; gap:18px; margin-top:12px;}
.cart-row .quantity input.qty{width:38px; min-height:30px; font-size:13px;}
.cart-row .qty-step{width:30px; font-size:14px; font-weight:700;}
.cart-row .quantity:not(.qty-box) input.qty{border:0;}
.cart-row .remove-btn{font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--orange); border-bottom:1px solid transparent;}
.cart-row .remove-btn:hover{border-bottom-color:var(--orange);}
.cart-row .line-total{flex:0 0 auto; text-align:right; min-width:78px;}
.cart-row .line-total .price{font-size:16px;}
.cart-row .line-total small{display:block; font-size:11px; font-weight:500; opacity:.6;}

/* ---- actions ---- */
.cart-actions{padding-top:26px;}
.coupon-row{display:flex; gap:10px;}
.coupon-row .input-text{flex:1; min-width:0; text-transform:uppercase; font-family:var(--font-mono); font-size:12.5px;}
.coupon-row .input-text::placeholder{text-transform:none;}
.coupon-row .button{flex:0 0 auto; background:var(--ink); color:var(--cream); border-radius:0 !important; box-shadow:none; padding:12px 20px; font-size:11.5px; font-weight:700;}
.coupon-row .button:hover{transform:none; box-shadow:none; background:var(--ink); color:var(--gold);}
.cart-actions > [name="update_cart"]{margin-top:16px;}
.woocommerce-cart-form.is-auto [name="update_cart"]{position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); border:0; white-space:nowrap;}

.cart-foot{display:flex; align-items:center; justify-content:space-between; padding-top:22px; flex-wrap:wrap; gap:14px;}
.continue-link{font-family:var(--font-mono); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; border-bottom:1px solid var(--ink); padding-bottom:2px;}

/* ---- summary (cart_totals) ---- */
.cart-summary{position:sticky; top:104px;}
.admin-bar .cart-summary{top:136px;}
.cart_totals{border:1.5px solid var(--ink); padding:24px 22px; background:var(--paper);}
.cart_totals h2{font-family:var(--font-display); font-size:19px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:20px;}
.cart_totals table.shop_table{width:100%; border:0; margin:0; display:block;}
.cart_totals table.shop_table tbody{display:block;}
.cart_totals table.shop_table tr{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line-soft); font-size:14px;}
.cart_totals table.shop_table :is(th,td){display:block; padding:0; border:0; background:none;}
.cart_totals table.shop_table th{flex:0 0 auto; font-family:var(--font); font-size:14px; font-weight:500; text-align:left; text-transform:none; letter-spacing:0;}
.cart_totals table.shop_table td{text-align:right; font-family:var(--font-mono); font-weight:600;}
.cart_totals table.shop_table td::before{display:none !important;}
.cart_totals .cart-discount{color:var(--green);}
.cart_totals .woocommerce-remove-coupon{display:inline-block; margin-left:6px; font-size:11px; color:var(--orange);}
.cart_totals .order-total{border-bottom:none !important; border-top:2px solid var(--ink); margin-top:6px; padding-top:16px !important; font-size:16px; font-weight:700;}
.cart_totals .order-total th{font-weight:700;}
.cart_totals .order-total td{font-size:20px;}
.cart_totals .order-total .includes_tax{display:block; font-size:11px; font-weight:500; opacity:.6;}

.cart_totals tr.woocommerce-shipping-totals{flex-direction:column; align-items:stretch;}
.cart_totals tr.woocommerce-shipping-totals td{text-align:left; font-family:var(--font); font-weight:500;}
.cart_totals #shipping_method{list-style:none; margin:8px 0; padding:0; display:flex; flex-direction:column; gap:8px;}
.cart_totals #shipping_method li{display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; font-size:13.5px;}
.cart_totals #shipping_method li label{flex:1; cursor:pointer;}
.cart_totals #shipping_method .amount{font-family:var(--font-mono); font-weight:600;}
.cart_totals .woocommerce-shipping-destination{font-size:12px; opacity:.65; margin:6px 0 4px;}
.cart_totals .shipping-calculator-button{font-family:var(--font-mono); font-size:11px; font-weight:600; text-transform:uppercase; text-decoration:underline; text-underline-offset:2px;}
.cart_totals .shipping-calculator-form{margin-top:14px;}
.cart_totals .shipping-calculator-form .button{width:100%;}

.wc-proceed-to-checkout{margin-top:20px; padding:0;}
.wc-proceed-to-checkout .checkout-button{width:100%;}
.wc-proceed-to-checkout .checkout-button::after{content:"→";}

/* ---- cross-sells ---- */
.cross-sells.sec{margin-top:70px;}
.cross-sell .sec-badge{display:block; font-size:22px; font-weight:700; letter-spacing:.03em; color:var(--ink); margin-bottom:24px;}

/* ---- empty cart ---- */
.empty-cart{text-align:center; padding:80px 20px; border:1.5px dashed var(--line);}
.empty-cart .icon{width:56px; height:56px; margin:0 auto 20px; opacity:.5; display:block;}
.empty-cart h2{font-family:var(--font-display); font-size:24px; font-weight:700; margin-bottom:10px;}
.empty-cart p{font-size:14.5px; opacity:.6; margin-bottom:24px;}
.empty-cart .return-to-shop{opacity:1; margin:0;}
.empty-cart .return-to-shop .btn{align-self:center;}

@media (max-width:1080px){
  .cart-layout{grid-template-columns:minmax(0,1fr); gap:0;}
  .cart-summary,.admin-bar .cart-summary{position:static; margin-top:30px;}
}

@media (max-width:640px){
  .cart-row{flex-wrap:wrap;}
  .cart-row .img-wrap{flex:0 0 76px;}
  .cart-row .row-actions{width:100%; justify-content:space-between;}
  .cart-row .line-total{margin-left:auto;}
  .coupon-row{flex-direction:column;}
  .cross-sells.sec{margin-top:44px;}
}
