/* XCellParts — Cart page enhancement
 * Restyles the standard WooCommerce/WoodMart cart (table-based
 * .woocommerce-cart-form + .cart_totals) into the bespoke card layout from
 * docs/designs/xcellparts-cart-v2.html. Everything is scoped to
 * body.woocommerce-cart so nothing leaks to other pages. Additive markup
 * (free-shipping bar, per-item SKU, trust row) is emitted by XCell_Cart.
 */

/* ---- Page canvas: soft red-50 glow (comp _v2.css) ---- */
body.woocommerce-cart {
	background:
		radial-gradient(1100px 440px at 82% -12%, var(--xcell-red-50, #FDECEE) 0%, rgba(253, 236, 238, 0) 60%),
		linear-gradient(180deg, var(--xcell-n-50, #F7F8FA), #fff 320px, #fff);
}

/* =========================================================================
 * Notices — consolidate the stack (success / error / info, in any mix or
 * order, e.g. the batch WooCommerce emits after "Order again") into ONE card
 * with colour-coded rows, instead of three mismatched WooCommerce/WoodMart
 * boxes. Scoped to the cart page. Each row: [icon] message … [optional button].
 * ====================================================================== */
/* The wrapper is the card shell. :not(:empty) so a clean cart draws nothing. */
body.woocommerce-cart .woocommerce-notices-wrapper:not(:empty) {
	background: #fff;
	border: 1px solid var(--xcell-n-200, #E2E5EA);
	border-radius: var(--xcell-r-card, 16px);
	box-shadow: var(--xcell-shadow-e1, 0 1px 2px rgba(14, 17, 22, .06));
	overflow: hidden;
	margin: 0 0 16px;
}
/* Every notice type → a flush, full-width row (strip the per-notice chrome). */
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-message,
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-error,
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-info {
	margin: 0 !important;
	padding: 13px 16px 13px 18px !important;
	border: 0 !important;
	border-left: 4px solid transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-size: 14px;
	line-height: 1.45;
	color: var(--xcell-ink-800, #14171F) !important;
	list-style: none;
}
/* message / info are one-line divs; error is a <ul> whose <li> are the lines. */
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-message,
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-info,
body.woocommerce-cart .woocommerce-notices-wrapper > ul.woocommerce-error > li {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
body.woocommerce-cart .woocommerce-notices-wrapper > ul.woocommerce-error > li {
	margin: 0;
	padding: 0;
	list-style: none;
}
body.woocommerce-cart .woocommerce-notices-wrapper > ul.woocommerce-error > li + li {
	margin-top: 8px;
}
/* Thin divider between stacked rows; none after the last. */
body.woocommerce-cart .woocommerce-notices-wrapper > *:not(:last-child) {
	border-bottom: 1px solid var(--xcell-n-100, #EEF0F3) !important;
}
/* Type tint + left accent. */
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-message {
	background: var(--xcell-success-bg, #E7F6EE) !important;
	border-left-color: var(--xcell-success, #1E9E5A) !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-error {
	background: var(--xcell-red-50, #FDECEE) !important;
	border-left-color: var(--xcell-red-500, #D42027) !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-info {
	background: var(--xcell-info-bg, #E8F0FE) !important;
	border-left-color: var(--xcell-info, #2563EB) !important;
}
/* Replace the theme's solid-bar glyphs with our own crisp inline-SVG icons
   (self-contained — no Font Awesome dependency). Theme ::after is unused. */
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-message::after,
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-error::after,
body.woocommerce-cart .woocommerce-notices-wrapper > ul.woocommerce-error > li::after,
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-info::after {
	display: none !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-message::before,
body.woocommerce-cart .woocommerce-notices-wrapper > ul.woocommerce-error > li::before,
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-info::before {
	content: "" !important;
	position: static !important;
	flex: none;
	width: 18px;
	height: 18px;
	margin: 0 !important;
	padding: 0 !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-message::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E9E5A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper > ul.woocommerce-error > li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D42027' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E") !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper > .woocommerce-info::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E") !important;
}
/* Links: brand-red text links; the "View cart" / "Undo" button → compact pill
   pushed to the row end so the message reads cleanly. */
body.woocommerce-cart .woocommerce-notices-wrapper a:not(.button) {
	color: var(--xcell-red-600, #B11A20) !important;
	font-weight: 600;
	text-decoration: underline;
}
body.woocommerce-cart .woocommerce-notices-wrapper a:not(.button):hover {
	color: var(--xcell-red-700, #8E1419) !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper a.button {
	margin-left: auto !important;
	flex: none;
	background: #fff !important;
	border: 1px solid var(--xcell-n-300, #CBD0D8) !important;
	color: var(--xcell-ink-800, #14171F) !important;
	border-radius: var(--xcell-r-pill, 9999px) !important;
	padding: 6px 14px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	min-height: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper a.button:hover {
	border-color: var(--xcell-ink-800, #14171F) !important;
	background: #fff !important;
}

/* =========================================================================
 * Free-shipping progress bar (woocommerce_before_cart_table)
 * ====================================================================== */
.xcell-cart-ship {
	background: #fff;
	border: 1px solid var(--xcell-n-200, #E2E5EA);
	border-radius: var(--xcell-r-card, 16px);
	box-shadow: var(--xcell-shadow-e1, 0 1px 2px rgba(14, 17, 22, .06));
	padding: 16px 18px;
	margin-bottom: 16px;
}
.xcell-cart-ship__t {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	font-size: 13.5px;
	color: var(--xcell-n-600, #4B515C);
	margin-bottom: 9px;
}
.xcell-cart-ship__t b { color: var(--xcell-ink-800, #14171F); font-weight: 700; }
/* WoodMart paints every .amount red; keep the bar's figures calm (comp: ink + grey),
   so red lives only on the fill + the CTA. */
.xcell-cart-ship__t b,
.xcell-cart-ship__t b .amount,
.xcell-cart-ship__t b .woocommerce-Price-amount { color: var(--xcell-ink-800, #14171F) !important; }
.xcell-cart-ship__num,
.xcell-cart-ship__num .amount,
.xcell-cart-ship__num .woocommerce-Price-amount { color: var(--xcell-n-500, #6B7280) !important; }
.xcell-cart-ship__num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.xcell-cart-ship__bar { position: relative; height: 9px; border-radius: 9px; background: var(--xcell-n-100, #EEF0F3); overflow: visible; }
.xcell-cart-ship__bar i {
	display: block;
	height: 100%;
	border-radius: 9px;
	background: linear-gradient(90deg, var(--xcell-red-500, #D42027), var(--xcell-red-400, #E0404A));
	transition: width .4s var(--xcell-ease, ease);
}
.xcell-cart-ship.is-complete .xcell-cart-ship__bar i {
	background: linear-gradient(90deg, var(--xcell-success, #1E9E5A), #27B06A);
}
@media (prefers-reduced-motion:reduce){.xcell-cart-ship__bar i{transition:none}}

/* =========================================================================
 * Items card
 * ====================================================================== */
/* The form is a transparent container; the progress bar (injected before the
 * table) and the items table are each their own card so they stack like the comp. */
body.woocommerce-cart .woocommerce-cart-form {
	background: none;
	border: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
}
body.woocommerce-cart .woocommerce-cart-form table.cart {
	margin: 0;
	background: #fff;
	border: 1px solid var(--xcell-n-200, #E2E5EA);
	border-radius: var(--xcell-r-card, 16px);
	box-shadow: var(--xcell-shadow-e1, 0 1px 2px rgba(14, 17, 22, .06));
	padding: 4px 18px;
}
/* Comp has no column headers */
body.woocommerce-cart .woocommerce-cart-form table.cart thead { display: none; }

@media (min-width: 769px) {
	body.woocommerce-cart .woocommerce-cart-form table.cart,
	body.woocommerce-cart .woocommerce-cart-form table.cart tbody {
		display: block;
		width: 100%;
	}

	body.woocommerce-cart .woocommerce-cart-form tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 84px minmax(0, 1fr) auto auto;
		grid-template-rows: auto auto;
		align-items: center;
		column-gap: 18px;
		row-gap: 2px;
		padding: 18px 8px 18px 0;
		border-bottom: 1px solid var(--xcell-n-100, #EEF0F3);
	}
	body.woocommerce-cart .woocommerce-cart-form tr.cart_item:last-of-type { border-bottom: 0; }
	body.woocommerce-cart .woocommerce-cart-form tr.cart_item > td {
		border: 0 !important;
		padding: 0;
		background: none;
	}

	body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail { grid-column: 1; grid-row: 1 / span 2; }
	body.woocommerce-cart .woocommerce-cart-form td.product-name { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
	body.woocommerce-cart .woocommerce-cart-form td.product-price { display: none; } /* unit price omitted, per comp */
	body.woocommerce-cart .woocommerce-cart-form td.product-quantity { grid-column: 3; grid-row: 1 / span 2; align-self: center; justify-self: end; }
	body.woocommerce-cart .woocommerce-cart-form td.product-subtotal { grid-column: 4; grid-row: 1 / span 2; align-self: center; justify-self: end; min-width: 78px; text-align: right; }
	body.woocommerce-cart .woocommerce-cart-form td.product-remove { position: absolute; top: 14px; right: 4px; }
}

/* Spotlight product thumbnail (comp .citem .pi) */
body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail { width: 84px; }
body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	padding: 8px;
	border-radius: var(--xcell-r-ctrl, 10px);
	border: 1px solid var(--xcell-n-100, #EEF0F3);
	background: radial-gradient(120% 120% at 50% 0%, #fff, var(--xcell-n-50, #F7F8FA));
	overflow: hidden;
}
body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	margin: 0;
}

/* Name + SKU (comp .citem .nm / .meta) */
body.woocommerce-cart .woocommerce-cart-form td.product-name { font-size: 14px; }
body.woocommerce-cart .woocommerce-cart-form td.product-name a {
	color: var(--xcell-ink-800, #14171F) !important;
	font-weight: 600;
	line-height: 1.35;
	text-decoration: none;
}
body.woocommerce-cart .woocommerce-cart-form td.product-name a:hover { color: var(--xcell-red-600, #B11A20) !important; }
.xcell-cart-sku {
	display: block;
	color: var(--xcell-n-500, #6B7280);
	font-size: 12px;
	font-weight: 500;
	margin-top: 4px;
	font-variant-numeric: tabular-nums;
}

/* Quantity stepper -> unified pill (comp .qty) */
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--xcell-n-300, #CBD0D8);
	border-radius: var(--xcell-r-pill, 9999px);
	overflow: hidden;
	background: #fff;
}
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .qty {
	width: 44px;
	height: 44px;
	text-align: center;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-weight: 700;
	color: var(--xcell-ink-800, #14171F);
	-moz-appearance: textfield;
	padding: 0;
}
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .qty::-webkit-outer-spin-button,
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .minus,
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .plus {
	width: 44px;
	height: 44px;
	border: 0 !important;
	background: #fff !important;
	color: var(--xcell-ink-700, #1F2330) !important;
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	border-radius: 0 !important;
}
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .minus:hover,
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .plus:hover {
	background: var(--xcell-red-50, #FDECEE) !important;
	color: var(--xcell-red-600, #B11A20) !important;
}
/* At a stock bound (XCell_Cart JS sets [disabled]) -> greyed, no hover lift */
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .minus:disabled,
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .plus:disabled {
	opacity: .32;
	cursor: not-allowed;
}
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .minus:disabled:hover,
body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity .plus:disabled:hover {
	background: #fff !important;
	color: var(--xcell-ink-700, #1F2330) !important;
}

/* Line subtotal -> dark ink, bold (comp .lp; brand red stays on CTA/accents) */
body.woocommerce-cart .woocommerce-cart-form td.product-subtotal .amount {
	color: var(--xcell-ink-900, #0E1116) !important;
	font-weight: 800;
	font-size: 16px;
}

/* Remove -> subtle grey x, red on hover (comp .rm) */
body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--xcell-tap, 44px);
	height: var(--xcell-tap, 44px);
	border-radius: 50%;
	color: var(--xcell-n-400, #9AA1AD) !important;
	background: none !important;
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
}
body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove:hover {
	color: var(--xcell-red-600, #B11A20) !important;
	background: var(--xcell-red-50, #FDECEE) !important;
}
/* WoodMart adds a pseudo-element x on .remove; with our literal x glyph that
   renders two. Drop the pseudo and keep the single literal x. */
body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove::before,
body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove::after {
	content: none !important;
	display: none !important;
}

/* Action row (Update cart / Save as purchase list) */
body.woocommerce-cart .woocommerce-cart-form tr.wd-cart-action-row,
body.woocommerce-cart .woocommerce-cart-form tr.wd-cart-action-row > td.actions {
	display: block;
	border: 0 !important;
	background: none;
}
body.woocommerce-cart .woocommerce-cart-form tr.wd-cart-action-row > td.actions { padding: 16px 0 8px; }
body.woocommerce-cart .woocommerce-cart-form .cart-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* =========================================================================
 * Order summary (.cart_totals)
 * ====================================================================== */
body.woocommerce-cart .cart_totals .cart-totals-inner {
	background: #fff;
	border: 1px solid var(--xcell-n-200, #E2E5EA);
	border-radius: var(--xcell-r-card, 16px);
	box-shadow: var(--xcell-shadow-e1, 0 1px 2px rgba(14, 17, 22, .06));
	padding: 20px;
	position: sticky;
	top: 120px;
}
body.woocommerce-cart .cart_totals h2 {
	font-size: 16px;
	margin: 0 0 14px;
	color: var(--xcell-ink-900, #0E1116);
}
body.woocommerce-cart .cart_totals table.shop_table { border: 0; margin: 0; background: none; }
body.woocommerce-cart .cart_totals table.shop_table tbody tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	padding: 7px 0;
	border: 0;
}
body.woocommerce-cart .cart_totals table.shop_table th {
	font-weight: 500;
	color: var(--xcell-n-600, #4B515C);
	text-align: left;
	padding: 0;
	border: 0;
}
body.woocommerce-cart .cart_totals table.shop_table td {
	text-align: right;
	padding: 0;
	border: 0;
	color: var(--xcell-ink-800, #14171F);
	font-variant-numeric: tabular-nums;
}
body.woocommerce-cart .cart_totals table.shop_table .amount { color: var(--xcell-ink-800, #14171F); }

/* Shipping row carries an option list -> stack it */
body.woocommerce-cart .cart_totals table.shop_table tr.shipping {
	flex-direction: column;
	align-items: stretch;
	gap: 6px;
}
body.woocommerce-cart .cart_totals table.shop_table tr.shipping td { text-align: left; }
body.woocommerce-cart .cart_totals ul#shipping_method { margin: 0; padding: 0; list-style: none; }
body.woocommerce-cart .cart_totals ul#shipping_method li { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
body.woocommerce-cart .cart_totals ul#shipping_method li label { margin: 0; color: var(--xcell-ink-800, #14171F); }
body.woocommerce-cart .cart_totals ul#shipping_method input[type="radio"] { accent-color: var(--xcell-red-500, #D42027); }
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
	margin: 4px 0 0;
	font-size: 12px;
	color: var(--xcell-n-500, #6B7280);
}

/* Total row */
body.woocommerce-cart .cart_totals table.shop_table tr.order-total {
	border-top: 1px solid var(--xcell-n-100, #EEF0F3);
	margin-top: 6px;
	padding-top: 14px;
	font-size: 18px;
}
body.woocommerce-cart .cart_totals table.shop_table tr.order-total th { color: var(--xcell-ink-900, #0E1116); font-weight: 700; }
body.woocommerce-cart .cart_totals table.shop_table tr.order-total td .amount,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total strong { color: var(--xcell-ink-900, #0E1116) !important; font-weight: 800; }

/* Proceed to checkout */
body.woocommerce-cart .wc-proceed-to-checkout { padding: 16px 0 0; margin: 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 52px;
	margin: 0;
	background: var(--xcell-red-500, #D42027) !important;
	color: #fff !important;
	border: 0;
	border-radius: var(--xcell-r-pill, 9999px) !important;
	font-weight: 600;
	font-size: 15px;
	text-transform: none !important;
	letter-spacing: 0;
	box-shadow: 0 6px 16px rgba(212, 32, 39, .26);
	transition: .16s var(--xcell-ease, ease);
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--xcell-red-600, #B11A20) !important;
	transform: translateY(-1px);
}

/* =========================================================================
 * Line-item badges (wholesale tier nudge)
 * ====================================================================== */
.xcell-cart-tier {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--xcell-success, #1E9E5A);
}

/* =========================================================================
 * Coupon / trade code (comp .promo) — JS lifts it above the checkout button
 * ====================================================================== */
.xcell-cart-coupon { display: flex; gap: 8px; margin: 14px 0 0; }
.xcell-cart-coupon__input {
	flex: 1;
	min-width: 0;
	height: 44px;
	border: 1px solid var(--xcell-n-200, #E2E5EA);
	border-radius: var(--xcell-r-pill, 9999px);
	padding: 0 16px;
	font: inherit;
	font-size: 13px;
	color: var(--xcell-ink-800, #14171F);
	background: #fff;
}
.xcell-cart-coupon__input:focus {
	border-color: var(--xcell-red-500, #D42027);
	box-shadow: 0 0 0 3px var(--xcell-red-50, #FDECEE);
	outline: 0;
}
.xcell-cart-coupon__btn {
	height: 44px;
	border: 1px solid var(--xcell-n-300, #CBD0D8);
	background: #fff;
	border-radius: var(--xcell-r-pill, 9999px);
	padding: 0 18px;
	font: inherit;
	font-weight: 600;
	font-size: 13px;
	color: var(--xcell-ink-800, #14171F);
	cursor: pointer;
	transition: .16s var(--xcell-ease, ease);
}
.xcell-cart-coupon__btn:hover { border-color: var(--xcell-ink-800, #14171F); }

/* =========================================================================
 * Summary breakdown rows (discount green / fee / tax) — surfaced when present
 * ====================================================================== */
body.woocommerce-cart .cart_totals table.shop_table tr.cart-discount th,
body.woocommerce-cart .cart_totals table.shop_table tr.cart-discount td,
body.woocommerce-cart .cart_totals table.shop_table tr.cart-discount .amount {
	color: var(--xcell-success, #1E9E5A) !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr.cart-discount td a {
	color: var(--xcell-n-500, #6B7280);
	font-size: 12px;
	font-weight: 500;
}

/* =========================================================================
 * Live update: hide Update cart from first paint (qty auto-saves via JS).
 * Do not wait for .xcell-cart-jsajax — that caused a flash of both buttons.
 * ====================================================================== */
body.woocommerce-cart .woocommerce-cart-form tr.wd-cart-action-row button[name="update_cart"],
body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"] {
	display: none !important;
}
.cart-content-wrapper.xcell-cart-updating {
	opacity: .55;
	pointer-events: none;
	transition: opacity .15s ease;
}

/* =========================================================================
 * Cross-sell "Frequently added together" (comp .xsell / .prodgrid / .pcard)
 * ====================================================================== */
.xcell-cart-xsell { margin: 36px 0 8px; }
.xcell-cart-xsell__h { font-size: 20px; margin: 0 0 16px; color: var(--xcell-ink-900, #0E1116); }
.xcell-cart-xsell__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-items: stretch; }
.xcell-cart-pcard {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--xcell-n-200, #E2E5EA);
	border-radius: var(--xcell-r-card, 16px);
	box-shadow: var(--xcell-shadow-e1, 0 1px 2px rgba(14, 17, 22, .06));
	padding: 14px;
	transition: .16s var(--xcell-ease, ease);
}
.xcell-cart-pcard:hover { border-color: var(--xcell-n-300, #CBD0D8); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(14, 17, 22, .08); }
.xcell-cart-pcard__img {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 120px;
	margin-bottom: 12px;
	padding: 10px;
	border-radius: var(--xcell-r-ctrl, 10px);
	border: 1px solid var(--xcell-n-100, #EEF0F3);
	background: radial-gradient(120% 120% at 50% 0%, #fff, var(--xcell-n-50, #F7F8FA));
}
.xcell-cart-pcard__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.xcell-cart-pcard__nm {
	color: var(--xcell-ink-800, #14171F);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.35;
	text-decoration: none;
	min-height: 36px;
}
.xcell-cart-pcard__nm:hover { color: var(--xcell-red-600, #B11A20); }
/* Price on its own row, pinned to the card bottom so every card is equal height. */
.xcell-cart-pcard__row { display: flex; align-items: center; margin-top: auto; }
.xcell-cart-pcard__price, .xcell-cart-pcard__price .amount { font-weight: 800; color: var(--xcell-red-500, #D42027) !important; font-size: 18px; font-variant-numeric: tabular-nums; }
/* Full-width red "Add to cart" pill — matches the shop + PDP cards (was a round "+"). */
.xcell-cart-pcard__add {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: var(--xcell-tap, 44px);
	margin-top: 10px;
	flex: none;
	border-radius: var(--xcell-r-pill, 9999px);
	background: var(--xcell-red-500, #D42027);
	color: #fff !important;
	font-size: var(--xcell-fs-sm);
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	border: 0;
	transition: .16s var(--xcell-ease, ease);
}
.xcell-cart-pcard__add:hover { background: var(--xcell-red-600, #B11A20); transform: translateY(-1px); }
.xcell-cart-pcard .added_to_cart { display: none !important; } /* hide WC's post-add "View cart" link — toast handles feedback */
.xcell-cart-pcard__add.added { background: var(--xcell-success, #1E9E5A); pointer-events: none; }

/* Cross-sell / cart add confirmation */
.xcell-cart-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translate(-50%, 12px);
	z-index: 9999;
	max-width: calc(100vw - 32px);
	background: var(--xcell-ink-900, #0e1116);
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.35;
	padding: 12px 18px;
	border-radius: var(--xcell-r-pill, 9999px);
	box-shadow: var(--xcell-shadow-e2, 0 8px 24px rgba(14, 17, 22, .18));
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s var(--xcell-ease, ease), transform .25s var(--xcell-ease, ease);
}
.xcell-cart-toast.is-show {
	opacity: 1;
	transform: translate(-50%, 0);
}
@media (prefers-reduced-motion: reduce) {
	.xcell-cart-toast { transition: none; }
}

/* =========================================================================
 * Mobile (<=768px): own the line-item stacking (don't rely on the theme's
 * default cart reflow). Thumbnail left, name/qty/subtotal stacked right,
 * remove pinned top-right — mirrors the desktop grid minus the unit-price col.
 * ====================================================================== */
@media (max-width: 768px) {
	body.woocommerce-cart .woocommerce-cart-form table.cart,
	body.woocommerce-cart .woocommerce-cart-form table.cart tbody { display: block; width: 100%; }
	body.woocommerce-cart .woocommerce-cart-form table.cart { padding: 4px 14px; }
	body.woocommerce-cart .woocommerce-cart-form tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 84px minmax(0, 1fr);
		column-gap: 14px;
		row-gap: 6px;
		align-items: center;
		padding: 16px 0;
		border-bottom: 1px solid var(--xcell-n-100, #EEF0F3);
	}
	body.woocommerce-cart .woocommerce-cart-form tr.cart_item:last-of-type { border-bottom: 0; }
	body.woocommerce-cart .woocommerce-cart-form tr.cart_item > td { border: 0 !important; padding: 0; background: none; }
	body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail { grid-column: 1; grid-row: 1 / span 3; display: flex; }
	body.woocommerce-cart .woocommerce-cart-form td.product-name { grid-column: 2; grid-row: 1; align-self: end; }
	body.woocommerce-cart .woocommerce-cart-form td.product-price { display: none; }
	body.woocommerce-cart .woocommerce-cart-form td.product-quantity { grid-column: 2; grid-row: 2; justify-self: start; }
	body.woocommerce-cart .woocommerce-cart-form td.product-subtotal { grid-column: 2; grid-row: 3; justify-self: start; text-align: left; }
	body.woocommerce-cart .woocommerce-cart-form td.product-remove { position: absolute; top: 10px; right: 2px; }
	body.woocommerce-cart .cart_totals .cart-totals-inner { position: static; }
	.xcell-cart-xsell__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	/* Brand rule: keep product grids 2-col on phones (never 1-col at 375). */
	.xcell-cart-xsell__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
}
