/* ==========================================================================
   Cart — ported from prototype cart.html, adapted to WooCommerce cart markup
   ========================================================================== */

.cart-head{padding-top:26px;padding-bottom:6px}
.cart-head h1{font-size:clamp(28px,3.6vw,40px);font-weight:900;letter-spacing:-.03em}
.cart-head .sub{color:var(--muted);margin-top:6px;font-size:15px}
.cart-head .sub a{color:var(--brand);font-weight:600}

/* free-delivery progress */
.progress{display:flex;align-items:center;gap:14px;background:var(--brand-soft);border:1px solid #d4e0ff;border-radius:14px;padding:14px 18px;margin:14px 0 6px}
.progress .pic{width:40px;height:40px;border-radius:10px;background:#fff;display:grid;place-items:center;flex:none}
.progress .pic .icn{stroke:var(--brand);width:21px;height:21px}
.progress .ptxt{flex:1;min-width:0}
.progress .ptxt b{font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:14.5px;color:var(--brand-d)}
.progress .ptxt p{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.progress .bar{height:7px;border-radius:99px;background:#fff;margin-top:9px;overflow:hidden}
.progress .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),#3f6fe0);transition:width .5s ease}

.cart-wrap{display:grid;grid-template-columns:1fr 372px;gap:30px;align-items:start;padding-top:18px;padding-bottom:70px}
.cart-col{min-width:0}

/* line items */
.cart-list{border:1px solid var(--line);border-radius:var(--r-l);background:#fff;overflow:hidden}
.cart-lh{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);background:var(--bg-2)}
.cart-lh b{font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:14px}
.citem{display:grid;grid-template-columns:84px 1fr auto;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line-2);position:relative}
.citem:last-child{border-bottom:0}
.citem .cimg{width:84px;height:84px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#fff}
.citem .cimg img{width:100%;height:100%;object-fit:contain}
.citem .cmeta .ctitle{font-family:"Archivo","Archivo Fallback";font-weight:700;font-size:15.5px;line-height:1.25;letter-spacing:-.01em}
.citem .cmeta .ctitle a:hover{color:var(--brand)}
.citem .cvariant{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.citem .cvariant span,.citem .cvariant dl{font-size:12px;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);border-radius:7px;padding:3px 9px;margin:0}
.citem .cvariant dt,.citem .cvariant dd{display:inline;margin:0}
.citem .cstock{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--green);font-weight:600;margin-top:9px}
.citem .cstock .icn{width:14px;height:14px;stroke:var(--green)}
.citem .cbulk{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--brand-d);background:var(--brand-soft);border-radius:7px;padding:4px 9px;margin-top:9px;font-weight:600;width:fit-content}
.citem .cbulk .icn{width:13px;height:13px;stroke:var(--brand-d)}
/* per-product estimated delivery date (in-stock = neutral, back-order = amber) */
.citem .cdeliv{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);font-weight:600;margin-top:8px;width:fit-content}
.citem .cdeliv .icn{width:14px;height:14px;stroke:var(--ink-2);flex:none}
.citem .cdeliv b{font-weight:800;color:var(--ink)}
.citem .cdeliv-bo{color:#8a5a00;background:#fff7e6;border:1px solid #f3d79a;border-radius:7px;padding:4px 9px;width:fit-content}
.citem .cdeliv-bo .icn{stroke:#8a5a00}
.citem .cdeliv-bo b{color:#8a5a00}
.citem .cright{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:12px}
.citem .cprice{font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:17px;text-align:right;white-space:nowrap}
.citem .cprice .was{display:block;font-family:"Hanken Grotesk","Hanken Fallback";font-weight:500;font-size:12px;color:var(--muted);text-decoration:line-through}
.citem .cprice small{display:block;font-family:"Hanken Grotesk","Hanken Fallback";font-weight:500;font-size:11px;color:var(--muted)}
.cstep{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}
.cstep .quantity{display:flex;margin:0}
.cstep .qbtn{width:34px;height:38px;border:0;background:#fff;font-size:18px;line-height:1;cursor:pointer;color:var(--ink);display:grid;place-items:center;font-family:"Archivo","Archivo Fallback";padding:0;flex:none}
.cstep .qbtn:hover{background:var(--bg-2)}
.cstep input.qty{width:44px;height:38px;border:0;text-align:center;font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:15px;outline:none;-moz-appearance:textfield;background:#fff}
.cstep input.qty::-webkit-outer-spin-button,.cstep input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cremove{border:0;background:none;color:var(--muted);font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:4px}
.cremove:hover{color:#c0392b}
.cremove .icn{width:14px;height:14px}

.cart-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;flex-wrap:wrap}
.cart-actions a.cont{font-family:"Archivo","Archivo Fallback";font-weight:700;font-size:14px;color:var(--brand);display:inline-flex;align-items:center;gap:8px}
.cart-actions a.cont .icn{width:17px;height:17px;stroke:var(--brand)}

/* summary */
.summary{position:sticky;top:150px;display:grid;gap:16px}
.sumcard{border:1px solid var(--line);border-radius:var(--r-l);background:#fff;padding:22px}
.sumcard h3{font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:18px;margin-bottom:16px}
.sumrow{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14.5px;padding:7px 0;color:var(--ink-2)}
.sumrow b{font-family:"Archivo","Archivo Fallback";color:var(--ink);font-weight:700}
.sumrow.disc,.sumrow.disc b{color:var(--green)}
.sumrow .free{color:var(--green);font-family:"Archivo","Archivo Fallback";font-weight:800}
.sumdiv{height:1px;background:var(--line);margin:10px 0}
.sumtotal{display:flex;align-items:flex-end;justify-content:space-between;margin-top:6px}
.sumtotal .l{font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:17px}
.sumtotal .r{text-align:right}
.sumtotal .r .big{font-family:"Archivo","Archivo Fallback";font-weight:900;font-size:28px;letter-spacing:-.02em;line-height:1}
.sumtotal .r small{display:block;font-size:12px;color:var(--muted);margin-top:5px}

/* proceed to checkout (Woo) + express */
/* Block layout (not grid) + no padding: PayPal adds 16px top/bottom padding and a
   grid clearfix row to reserve space for Pay Later messaging, which is OFF — so we
   drop all of that and control the spacing with simple margins instead. The .sumcard
   prefix + !important is required to beat PayPal's own stylesheet (loaded after this). */
.sumcard .wc-proceed-to-checkout{margin-top:14px;display:block !important;padding:0 !important}
.sumcard .wc-proceed-to-checkout:empty{display:none;margin:0}
.sumcard .wc-proceed-to-checkout .ppcp-messages,
.sumcard .wc-proceed-to-checkout::after{display:none !important}
.wc-proceed-to-checkout a.checkout-button,.checkout-btn{width:100%;border:0!important;border-radius:12px!important;background:var(--brand)!important;color:#fff!important;font-family:"Archivo","Archivo Fallback",sans-serif!important;font-weight:800!important;font-size:16px!important;padding:16px!important;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:.16s;text-align:center;line-height:1.2}
.wc-proceed-to-checkout a.checkout-button:hover,.checkout-btn:hover{background:var(--brand-d)!important;transform:translateY(-1px);color:#fff!important}
.sum-trust{display:grid;gap:9px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.sum-trust div{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-2)}
.sum-trust .icn{width:16px;height:16px;stroke:var(--brand);flex:none}
.pay-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.pay-chips .chip{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;height:26px;padding:0 9px;display:grid;place-items:center;font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:10.5px;color:var(--ink-2);letter-spacing:.02em}

/* trade card */
.trade-card{background:var(--ink);color:#fff;border-radius:var(--r-l);padding:18px 20px;display:flex;gap:13px;align-items:center}
.trade-card .tic{width:40px;height:40px;border-radius:10px;background:rgba(157,180,255,.16);display:grid;place-items:center;flex:none}
.trade-card .tic .icn{stroke:#9db4ff;width:21px;height:21px}
.trade-card b{font-family:"Archivo","Archivo Fallback";font-weight:800;font-size:14.5px;display:block}
.trade-card p{font-size:12.5px;color:#c2c9d4;margin-top:2px}
.trade-card a{margin-left:auto;white-space:nowrap;font-family:"Archivo","Archivo Fallback";font-weight:700;font-size:12.5px;color:#fff;border:1.5px solid rgba(255,255,255,.3);border-radius:999px;padding:8px 13px}
.trade-card a:hover{background:#fff;color:var(--ink)}

/* postcode field in the order-summary card (drives the per-product dates) */
.sumcard .cart-pc{margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}

/* upsell — vertical-only padding so the .wrap horizontal gutter is preserved */
.upsell{padding-bottom:80px}
.upsell .sec-head{margin-bottom:26px}
.up-grid{grid-template-columns:repeat(4,1fr)}

/* empty cart */
.cart-empty-state{padding:64px 0 96px;text-align:center}
.cart-empty-state .ce-ic{width:88px;height:88px;border-radius:50%;background:var(--brand-soft);display:inline-grid;place-items:center;margin-bottom:24px}
.cart-empty-state .ce-ic .icn{width:40px;height:40px;stroke:var(--brand)}
.cart-empty-state h1{font-size:clamp(26px,3.4vw,38px);font-weight:900;letter-spacing:-.02em;line-height:1.1;margin:0}
.cart-empty-state p{color:var(--ink-2);font-size:16px;line-height:1.5;margin:14px auto 30px;max-width:48ch}
.cart-empty-state .ce-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cart-empty-state .ce-actions .btn{display:inline-flex;align-items:center;gap:8px}
.cart-empty-state .ce-actions .btn .icn{width:17px;height:17px}
/* fallback if the default WC empty markup ever renders */
.cart-empty,.wc-empty-cart-message{text-align:center;font-size:17px;color:var(--ink-2);padding:30px 0}
.return-to-shop{text-align:center;padding-bottom:60px}

@media(max-width:980px){
  .cart-wrap{grid-template-columns:1fr;gap:22px}
  .summary{position:static}
  .up-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .citem{grid-template-columns:66px 1fr;gap:13px;padding:16px}
  .citem .cimg{width:66px;height:66px}
  .citem .cright{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px dashed var(--line);padding-top:12px}
  .up-grid{grid-template-columns:1fr 1fr;gap:12px}
  .progress{flex-wrap:wrap}
  .upsell{padding-bottom:52px}
  .upsell .sec-head{margin-bottom:18px}
}

/* Express-pay buttons removed: suppress gateway-injected express / Pay-Later
   buttons on the cart (Stripe payment-request, PayPal smart buttons + messaging,
   Amazon Pay). They load async (causing jank) and can't work off a live HTTPS
   domain — pay via Card/PayPal/Klarna at checkout instead. */
.woocommerce-cart .wc-stripe-payment-request-wrapper,
.woocommerce-cart [class*="payment-request-button"],
.woocommerce-cart #wc-stripe-express-checkout-element,
.woocommerce-cart #wc-stripe-express-checkout-button-separator,
.woocommerce-cart .ppc-button-wrapper,
.woocommerce-cart [id*="ppc-button"],
.woocommerce-cart .paypal-buttons,
.woocommerce-cart .ppcp-messages,.woocommerce-cart [data-pp-message],
.woocommerce-cart .amazon-pay-button,.woocommerce-cart [id*="amazon_pay"],.woocommerce-cart [id*="pay_with_amazon"],
.woocommerce-cart [id*="express-checkout"]{display:none!important}
