/**
 * GRZ cart v1.4.28
 * Ported from the approved design. Uses the canonical 1440px site container, compact one-row lines,
 * summary full-width beneath the items.
 */

/* ===================================================================
 * 1. NEUTRALISE WooCommerce core
 * woocommerce-layout.css is dequeued on the cart from v1.4.5 (inc/assets.php),
 * but plugins and parent styles still float these. Structural !important only —
 * never colour, never type.
 * ================================================================ */
/* Core floats .cart_totals right at 48% and .cross-sells left. Kill the float
 * and the width — NOTHING else. The earlier version also forced
 * `border:0; background:none` here, which silently stripped .grz-pnl off the
 * summary: .cart_totals IS the summary panel element. */
.grz-cart-page .woocommerce,
.grz-cart-page .woocommerce-cart-form,
.grz-cart-page .cart-collaterals,
.grz-cart-page .cart-collaterals .cart_totals,
.grz-cart-page .woocommerce-cart-form__contents {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
}

.grz-cart-page form.woocommerce-cart-form {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.grz-cart-page .woocommerce-cart-form__contents,
.grz-cart-page .woocommerce-cart-form__contents tbody,
.grz-cart-page .woocommerce-cart-form__contents tr,
.grz-cart-page .woocommerce-cart-form__contents td,
.grz-cart-page .woocommerce-cart-form__contents th {
	display: block !important;
	border: 0 !important;
	padding: 0 !important;
}
.grz-cart-page .cross-sells,
.grz-cart-page .cart-collaterals > h2,
.grz-cart-page .shipping-calculator-button,
.grz-cart-page .woocommerce-cart-form .actions .coupon label {
	display: none !important;
}
.grz-cart-page .grz-cart__update {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
}

/* ===================================================================
 * 2. Shell
 * ================================================================ */
.grz-cart-page .site-main,
.grz-cart-page .content-area {
	background: var(--grz-canvas);
}
.grz-cart {
	width: 100%;
	max-width: var(--grz-cart-max, var(--grz-container-inner, 1392px));
	margin: 0 auto;
	padding: 0 0 84px;
	color: var(--grz-ink);
	font-size: 16px;
	line-height: 1.5;
}
.grz-cart__top {
	display: flex;
	align-items: baseline;
	gap: 11px;
	margin: 0 0 13px;
}
.grz-cart__title {
	margin: 0;
	font-size: 1.14rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--grz-ink);
}
.grz-cart__count {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--grz-muted);
}
.grz-cart__back {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-inline-start: auto;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--grz-blue);
	text-decoration: none;
	transition: color var(--grz-transition);
}
.grz-cart__back:hover { color: var(--grz-blue-dark); }
.grz-cart__back svg { width: 14px; height: 14px; }

.grz-pnl {
	background: var(--grz-surface);
	border: 1px solid var(--grz-line);
	border-radius: var(--grz-radius-lg);
	box-shadow: var(--grz-shadow-xs);
	overflow: hidden;
}
.grz-cart__form,
.grz-cart__collaterals { display: block; }
.grz-cart__items { margin-bottom: 14px; padding: 16px; }
.grz-cart__sum { margin-bottom: 14px; }

/* Each game group is its own inset card inside the items panel. */
.grz-cart__gcard {
	border: 1px solid var(--grz-line);
	border-radius: 12px;
	background: var(--grz-surface);
	overflow: hidden;
}
.grz-cart__gcard + .grz-cart__gcard { margin-top: 14px; }

.grz-pnl__hd {
	display: flex;
	align-items: baseline;
	gap: 9px;
	padding: 13px 18px;
	border-bottom: 1px solid var(--grz-line);
	background: var(--grz-blue-mist);
}
.grz-pnl__hd h2 {
	margin: 0;
	font-size: 0.79rem;
	font-weight: 800;
	color: var(--grz-ink);
}
.grz-pnl__hd p {
	margin: 0;
	font-size: 0.7rem;
	color: var(--grz-muted);
}

/* ===================================================================
 * 3. Product hierarchy inside each cart line
 * ================================================================ */
.grz-cart__product-name {
	display: block;
	margin-bottom: 3px;
	font-size: 0.7rem;
	font-weight: 650;
	line-height: 1.2;
	color: var(--grz-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.grz-cart__product-name a {
	color: inherit;
	text-decoration: none;
}
.grz-cart__product-name a:hover { color: var(--grz-blue); }

/* ===================================================================
 * 4. Line — one row, ~72px
 * ================================================================ */
.grz-cart__ln {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto auto auto;
	grid-template-areas: "a c q p x";
	align-items: center;
	gap: 16px;
	padding: 14px 16px;
	border-bottom: 1px solid #f1f5fa;
	transition: background var(--grz-transition);
}
.grz-cart__ln:last-of-type { border-bottom: 0; }
.grz-cart__ln:hover { background: #fcfdff; }

.grz-cart__art {
	grid-area: a;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	overflow: hidden;
	background: var(--grz-blue-soft);
	flex: none;
}
.grz-cart__art img,
.grz-cart__art a {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.grz-cart__c { grid-area: c; min-width: 0; }
.grz-cart__name {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--grz-ink);
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.grz-cart__name a { color: inherit; text-decoration: none; }
.grz-cart__name a:hover { color: var(--grz-blue); }

.grz-cart__meta[hidden],
.grz-cart__pid-form[hidden] { display: none !important; }

.grz-cart__meta {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-top: 6px;
	min-width: 0;
}
.grz-cart__pid {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 3px 4px 3px 10px;
	border: 1px solid var(--grz-line);
	border-radius: 99px;
	background: #fbfcfe;
	font-size: 0.665rem;
	color: var(--grz-muted-light);
	white-space: nowrap;
}
.grz-cart__pid b {
	font-weight: 800;
	color: var(--grz-ink);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.05em;
	font-size: 0.715rem;
}
.grz-cart__pid-edit {
	display: grid;
	place-items: center;
	width: 20px;
	height: 20px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--grz-surface);
	color: var(--grz-muted);
	cursor: pointer;
	transition: background var(--grz-transition), color var(--grz-transition);
}
.grz-cart__pid-edit:hover { background: var(--grz-blue); color: #fff; }
.grz-cart__pid-edit svg { width: 10px; height: 10px; }

.grz-cart__attrs { margin-top: 4px; font-size: 0.66rem; color: var(--grz-muted); }
.grz-cart__attrs p { margin: 0; }

.grz-cart__pid-form {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
	flex-wrap: wrap;
}
.grz-cart__pid-input {
	min-width: 0;
	width: 150px;
	height: 30px;
	padding: 0 9px;
	border: 1px solid var(--grz-line-strong);
	border-radius: var(--grz-radius-sm);
	font: inherit;
	font-size: 0.715rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--grz-ink);
	background: var(--grz-surface);
}
.grz-cart__pid-input:focus {
	outline: 0;
	border-color: var(--grz-blue);
	box-shadow: 0 0 0 3px rgba(8, 104, 242, 0.13);
}
.grz-cart__pid-save,
.grz-cart__pid-cancel {
	height: 30px;
	padding: 0 11px;
	border-radius: var(--grz-radius-sm);
	border: 1px solid var(--grz-line-strong);
	background: var(--grz-surface);
	font-size: 0.68rem;
	font-weight: 700;
	color: var(--grz-ink-soft);
	cursor: pointer;
	transition: background var(--grz-transition), color var(--grz-transition), border-color var(--grz-transition);
}
.grz-cart__pid-save {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	visibility: visible;
	opacity: 1;
	border-color: var(--grz-blue);
	background: var(--grz-blue);
	color: #fff;
}
.grz-cart__pid-save:hover { background: var(--grz-blue-dark); border-color: var(--grz-blue-dark); box-shadow: none; transform: none; }
.grz-cart__pid-save[disabled] { opacity: 0.55; cursor: default; }
.grz-cart__pid-cancel:hover { background: var(--grz-blue-mist); }
.grz-cart__pid-error {
	flex-basis: 100%;
	font-size: 0.655rem;
	font-weight: 600;
	color: var(--grz-red);
}
.grz-cart__pid-error:empty { display: none; }

/* stepper — the theme's own .grz-quantity-control (commerce-v140.js), skinned */
.grz-cart__qty { grid-area: q; }
.grz-cart__qty .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--grz-line-strong);
	border-radius: var(--grz-radius-sm);
	overflow: hidden;
	background: var(--grz-surface);
	float: none;
	margin: 0;
	width: auto;
}
.grz-cart__qty .quantity label,
.grz-cart__qty .quantity .screen-reader-text { display: none; }
.grz-cart__qty .grz-quantity-control__button {
	display: grid;
	place-items: center;
	width: 33px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--grz-muted);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background var(--grz-transition), color var(--grz-transition);
}
.grz-cart__qty .grz-quantity-control__button:hover:not([disabled]) {
	background: var(--grz-blue-soft);
	color: var(--grz-blue);
}
.grz-cart__qty .grz-quantity-control__button[disabled] { opacity: 0.35; cursor: default; }
.grz-cart__qty input.qty {
	width: 34px;
	height: 34px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-inline: 1px solid var(--grz-line);
	background: none;
	text-align: center;
	font-size: 0.74rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--grz-ink);
	outline: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}
.grz-cart__qty input.qty::-webkit-outer-spin-button,
.grz-cart__qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.grz-cart__qty-fixed {
	display: grid;
	place-items: center;
	width: 31px;
	height: 31px;
	border: 1px solid var(--grz-line);
	border-radius: var(--grz-radius-sm);
	font-size: 0.74rem;
	font-weight: 800;
	color: var(--grz-muted);
}

.grz-cart__price { grid-area: p; min-width: 88px; text-align: end; }
.grz-cart__price b {
	display: block;
	font-size: 0.83rem;
	font-weight: 800;
	color: var(--grz-ink);
	font-variant-numeric: tabular-nums;
}
.grz-cart__was {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 5px;
	margin-top: 3px;
}
.grz-cart__was s {
	color: var(--grz-muted-light);
	font-size: 0.645rem;
	font-variant-numeric: tabular-nums;
}
.grz-cart__off {
	padding: 1px 5px;
	border-radius: 99px;
	background: rgba(18, 166, 106, 0.11);
	color: #0b7a4e;
	font-size: 0.6rem;
	font-weight: 800;
}

.grz-cart__x { grid-area: x; display: flex; gap: 6px; }
.grz-cart__x .product-remove { display: flex; }

/* Scoped above base.css's button[type="submit"] primary skin (0,1,1): the
 * save-for-later control is a submit button, and without this scope it renders
 * as a 42px blue-gradient pill with an invisible white glyph. Every property
 * that skin sets is reset here. */
.grz-cart-page .grz-cart__i {
	display: grid !important;
	place-items: center;
	gap: 0;
	width: 31px !important;
	height: 30px !important;
	min-width: 31px !important;
	min-height: 30px !important;
	padding: 0 !important;
	border: 1px solid transparent !important;
	border-radius: 5px !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 0 !important;
	font-weight: 400;
	line-height: 1 !important;
	text-indent: 0 !important;
	cursor: pointer;
	text-decoration: none !important;
	transform: none !important;
	overflow: hidden;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

/* Both cart actions stay bare at rest. Hover/focus reveals a compact,
 * solid-colour rectangular box instead of WooCommerce's circular remove skin. */
.grz-cart-page .grz-cart__i--save {
	color: var(--grz-blue) !important;
}
.grz-cart-page .grz-cart__i--save:hover,
.grz-cart-page .grz-cart__i--save:focus-visible {
	border-color: var(--grz-blue) !important;
	background: var(--grz-blue) !important;
	box-shadow: none !important;
	color: #fff !important;
	outline: none !important;
}

.grz-cart-page .woocommerce a.remove.grz-cart__i--x,
.grz-cart-page .grz-cart__i--x {
	border-color: transparent !important;
	border-radius: 5px !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--grz-red) !important;
}
.grz-cart-page .woocommerce a.remove.grz-cart__i--x:hover,
.grz-cart-page .woocommerce a.remove.grz-cart__i--x:focus-visible,
.grz-cart-page .grz-cart__i--x:hover,
.grz-cart-page .grz-cart__i--x:focus-visible {
	border-color: var(--grz-red) !important;
	border-radius: 5px !important;
	background: var(--grz-red) !important;
	box-shadow: none !important;
	color: #fff !important;
	outline: none !important;
	transform: none !important;
}
/* base.css sizes .grz-icon in em. Because this compact icon button deliberately
 * uses font-size:0, the wrapper used to collapse to 0x0 and max-width:100% then
 * collapsed the SVG too. Size the wrapper in pixels, not only the child SVG. */
.grz-cart-page .grz-cart__i .grz-icon {
	display: inline-grid;
	width: 14px;
	height: 14px;
	font-size: 14px;
	visibility: visible;
	opacity: 1;
}
.grz-cart-page .grz-cart__i .grz-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
}

/* ===================================================================
 * 5. Summary
 * ================================================================ */
.grz-cart__sum-in {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(268px, 300px);
	gap: 16px 44px;
	padding: 18px;
}
.grz-cart__sum-l { display: grid; gap: 13px; align-content: start; }

.grz-cart__promo {
	max-width: 500px;
	display: flex;
	align-items: stretch;
	gap: 0;
	padding: 0 0 0 12px;
	border: 1px solid var(--grz-line-strong);
	border-radius: var(--grz-radius-sm);
	background: var(--grz-surface);
	overflow: hidden;
	transition: border-color var(--grz-transition), box-shadow var(--grz-transition);
}
.grz-cart__promo:focus-within {
	border-color: var(--grz-blue);
	box-shadow: 0 0 0 3px rgba(8, 104, 242, 0.13);
}
.grz-cart__promo > .grz-icon { width: 14px; height: 14px; margin: auto 0; color: var(--grz-muted-light); flex: none; }
.grz-cart__promo input {
	min-width: 0;
	flex: 1;
	min-height: 40px;
	padding: 0 10px;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	outline: 0;
	font: inherit;
	font-size: 0.74rem;
	color: var(--grz-ink);
}
.grz-cart-page .woocommerce .grz-cart__promo input.input-text:focus,
.grz-cart-page .woocommerce .grz-cart__promo input.input-text:focus-visible {
	border: 0 !important;
	box-shadow: none !important;
	outline: none !important;
}
/* The Apply action is a flush soft-blue end segment, matching the supplied
 * reference: no gap, no inset chip, and the parent supplies the outside border
 * and right-hand rounding. Scoped above the global WooCommerce button skins. */
.grz-cart-page .woocommerce .grz-cart__promo button.button.grz-cart__promo-apply {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	flex: 0 0 auto;
	box-sizing: border-box;
	min-width: 64px;
	min-height: 40px;
	appearance: none;
	margin: 0;
	padding: 0 15px;
	border: 0;
	border-inline-start: 1px solid #d4e3f5;
	border-radius: 0;
	background: #eaf3ff;
	box-shadow: none;
	color: var(--grz-blue);
	font-size: 0.73rem;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	transform: none;
	transition: background var(--grz-transition), color var(--grz-transition), border-color var(--grz-transition);
}
.grz-cart-page .woocommerce .grz-cart__promo button.button.grz-cart__promo-apply:hover {
	background: var(--grz-blue);
	box-shadow: none;
	color: #fff;
	transform: none;
}

.grz-cart__trust {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px 20px;
	font-size: 0.685rem;
	color: var(--grz-muted);
}
.grz-cart__trust div { display: flex; align-items: center; gap: 7px; }
.grz-cart__trust b { color: var(--grz-ink-soft); font-weight: 700; }
.grz-cart__trust svg { width: 13px; height: 13px; color: var(--grz-success); flex: none; }

.grz-cart__note { margin: 0; font-size: 0.65rem; color: var(--grz-muted-light); }

/* Keep the complete totals stack aligned to the checkout action. Subtotal,
 * discounts, separator, grand total and button now share the same 206px rail. */
.grz-cart__tt {
	display: grid;
	gap: 8px;
	width: 206px;
	max-width: 100%;
	margin-inline-start: auto;
	font-family: Arial, Helvetica, sans-serif;
}
.grz-cart__tt-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0;
	color: #667085;
}
.grz-cart__tt-row b {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	color: #172033;
	font-variant-numeric: tabular-nums;
}
.grz-cart__tt-row--save b { color: var(--grz-success); }
/* Native cart-shipping.php outputs table rows. Keep them in a real table
 * rather than placing <tr> elements directly inside the custom totals <div>. */
.grz-cart__shipping-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
}
.grz-cart__shipping-table th,
.grz-cart__shipping-table td {
	padding: 9px 0;
	border: 0;
	border-top: 1px solid var(--grz-line);
	background: transparent;
	font-size: 0.74rem;
	line-height: 1.45;
	vertical-align: top;
}
.grz-cart__shipping-table th {
	width: 38%;
	color: var(--grz-muted);
	font-weight: 600;
	text-align: start;
}
.grz-cart__shipping-table td {
	color: var(--grz-ink-soft);
	font-weight: 600;
	text-align: end;
}
.grz-cart__shipping-table ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}
.grz-cart__shipping-table ul#shipping_method li { margin: 0 0 5px; }
.grz-cart__shipping-table ul#shipping_method li:last-child { margin-bottom: 0; }
.grz-cart__shipping-table .shipping-calculator-button { color: var(--grz-blue); font-weight: 800; }
.grz-cart__shipping-table .shipping-calculator-form {
	margin-top: 8px;
	text-align: start;
}
.grz-cart__shipping-table .shipping-calculator-form .form-row { margin: 0 0 7px; }
.grz-cart__shipping-table .shipping-calculator-form input,
.grz-cart__shipping-table .shipping-calculator-form select {
	width: 100%;
	min-height: 38px;
	padding: 7px 9px;
	border: 1px solid var(--grz-line-strong);
	border-radius: var(--grz-radius-sm);
	background: #fff;
}

.grz-cart__tt-row--grand {
	width: 100%;
	max-width: 100%;
	justify-self: stretch;
	margin-top: 4px;
	padding-top: 14px;
	border-top: 1px solid var(--grz-line);
}
.grz-cart__tt-row--grand span {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	color: #101828;
}
.grz-cart__tt-row--grand b {
	font-size: 24px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.01em;
	color: var(--grz-blue);
}
/* WooCommerce wraps the order total in its own <strong>/<span>; force them to
 * inherit the blue grand style whatever element rules exist elsewhere. */
.grz-cart-page .grz-cart__tt-row--grand b :is(strong, span, bdi) {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}
.grz-cart__tt .woocommerce-Price-amount { font-variant-numeric: tabular-nums; }
.grz-cart__tt .woocommerce-remove-coupon {
	margin-inline-start: 6px;
	font-size: 0.62rem;
	color: var(--grz-muted-light);
}

/* Keep the original summary arrangement. The action is wider but slightly
 * lower and tighter, so it fills the rail naturally without reading as an
 * oversized square button. */
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout {
	display: flex !important;
	justify-content: flex-end;
	box-sizing: border-box;
	width: 206px;
	max-width: 100%;
	margin: 7px 0 0 auto !important;
	padding: 0 !important;
	text-align: end;
}
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button,
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button.alt {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 206px !important;
	min-width: 206px !important;
	max-width: 206px !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: 7px !important;
	background: linear-gradient(135deg, var(--grz-blue), #2b82ff) !important;
	box-shadow: 0 5px 14px rgba(8, 104, 242, 0.16) !important;
	color: #fff !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: -0.015em !important;
	text-align: center !important;
	text-decoration: none !important;
	white-space: nowrap;
	cursor: pointer;
	transform: none !important;
	transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button::after,
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button.alt::after {
	content: none !important;
	display: none !important;
}
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button:hover,
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button.alt:hover,
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button:focus-visible,
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button.alt:focus-visible {
	background: linear-gradient(135deg, var(--grz-blue-dark), var(--grz-blue)) !important;
	box-shadow: 0 7px 18px rgba(8, 104, 242, 0.22) !important;
	transform: translateY(-1px) !important;
}

/* ===================================================================
 * 6. Saved for later
 * ================================================================ */
.grz-cart__kp {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	gap: 13px;
	align-items: center;
	padding: 11px 18px;
	border-bottom: 1px solid #f1f5fa;
}
.grz-cart__kp:last-child { border-bottom: 0; }
.grz-cart__kp-art {
	width: 40px;
	height: 40px;
	border-radius: 9px;
	overflow: hidden;
	background: var(--grz-blue-soft);
}
.grz-cart__kp-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.grz-cart__kp--unavailable .grz-cart__kp-art {
	display: grid;
	place-items: center;
	background: #fff1f2;
	color: var(--grz-red);
}
.grz-cart__kp--unavailable .grz-cart__kp-art svg { width: 16px; height: 16px; }
.grz-cart__kp-c { min-width: 0; }
.grz-cart__kp-c strong {
	display: block;
	font-size: 0.755rem;
	font-weight: 700;
	color: var(--grz-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.grz-cart__kp-c span { font-size: 0.68rem; color: var(--grz-muted); }
.grz-cart__kp-b { display: flex; gap: 6px; }
.grz-cart-page .grz-cart__kp-move,
.grz-cart-page .grz-cart__kp-drop {
	min-height: 0;
	padding: 5px 10px;
	border: 1px solid var(--grz-line-strong);
	border-radius: var(--grz-radius-sm);
	background: var(--grz-surface);
	box-shadow: none;
	color: var(--grz-ink-soft);
	font-family: inherit;
	font-size: 0.68rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transform: none;
	cursor: pointer;
	color: var(--grz-ink-soft);
	transition: background var(--grz-transition), color var(--grz-transition), border-color var(--grz-transition);
}
.grz-cart-page .grz-cart__kp-move { border-color: var(--grz-blue); color: var(--grz-blue); }
.grz-cart-page .grz-cart__kp-move:hover { background: var(--grz-blue); box-shadow: none; color: #fff; transform: none; }
.grz-cart-page .grz-cart__kp-drop:hover { background: var(--grz-surface); border-color: var(--grz-red); box-shadow: none; color: var(--grz-red); transform: none; }

/* ===================================================================
 * 7. Empty
 * ================================================================ */
.grz-cart__mty { padding: 48px 22px; text-align: center; }
.grz-cart__mty-i {
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	margin: 0 auto 15px;
	border-radius: 50%;
	background: var(--grz-blue-soft);
	color: var(--grz-blue);
}
.grz-cart__mty-i svg { width: 26px; height: 26px; }
.grz-cart__mty h2 { margin: 0 0 6px; font-size: 1rem; font-weight: 800; color: var(--grz-ink); }
.grz-cart__mty p { margin: 0 0 18px; font-size: 0.78rem; color: var(--grz-muted); }
.grz-cart__mty-b {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 0 20px;
	border-radius: var(--grz-radius-sm);
	background: linear-gradient(135deg, var(--grz-blue), #2b82ff);
	box-shadow: var(--grz-shadow-blue);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 800;
	text-decoration: none;
	transition: transform var(--grz-transition), background var(--grz-transition);
}
.grz-cart__mty-b:hover { background: linear-gradient(135deg, var(--grz-blue-dark), var(--grz-blue)); transform: translateY(-1px); }
.grz-cart__mty-b svg { width: 15px; height: 15px; }

/* ===================================================================
 * 8. Native undo notice, restyled as the design's undo bar
 * cart.js binds .restore-item — this is WooCommerce's own Undo, not a rebuild.
 * ================================================================ */
.grz-cart-page .woocommerce-message,
.grz-cart-page .woocommerce-info {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 13px;
	padding: 10px 18px;
	border: 1px solid var(--grz-line);
	border-radius: var(--grz-radius-lg);
	background: var(--grz-blue-mist);
	list-style: none;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--grz-ink-soft);
}
.grz-cart-page .woocommerce-message::before,
.grz-cart-page .woocommerce-info::before { display: none; }
.grz-cart-page .woocommerce-message .button,
.grz-cart-page .restore-item {
	margin-inline-start: auto;
	padding: 5px 11px;
	border: 1px solid var(--grz-blue);
	border-radius: var(--grz-radius-sm);
	background: var(--grz-surface);
	color: var(--grz-blue);
	font-size: 0.68rem;
	font-weight: 800;
	text-decoration: none;
	float: none;
	transition: background var(--grz-transition), color var(--grz-transition);
}
.grz-cart-page .woocommerce-message .button:hover,
.grz-cart-page .restore-item:hover { background: var(--grz-blue); color: #fff; }
.grz-cart-page .woocommerce-error {
	margin: 0 0 13px;
	padding: 10px 18px;
	border: 1px solid rgba(242, 61, 79, 0.3);
	border-radius: var(--grz-radius-lg);
	background: rgba(242, 61, 79, 0.06);
	list-style: none;
	font-size: 0.72rem;
	color: var(--grz-red);
}
.grz-cart-page .woocommerce-error::before { display: none; }


.grz-cart__action-form { display: none; }
.grz-cart__kp-b form { margin: 0; }
.grz-cart__mobile-bar { display: none; }
.grz-cart__saved { margin-bottom: 13px; }
.grz-cart--empty { display: block; }

/* ===================================================================
 * 9. Responsive
 * ================================================================ */
@media (max-width: 860px) {
	.grz-cart__sum-in { grid-template-columns: 1fr; gap: 15px; }
	.grz-cart__sum-l { order: 2; }
	.grz-cart__sum-r { order: 1; }
}
@media (max-width: 600px) {
	.grz-cart { padding: 0 0 104px; }
	.grz-cart__ln {
		grid-template-columns: 48px minmax(0, 1fr) auto;
		grid-template-areas:
			"a c x"
			"a q p";
		gap: 10px 14px;
		padding: 13px 14px;
	}
	.grz-cart__kp,
	.grz-pnl__hd,
	.grz-cart__sum-in { padding-inline: 14px; }
	.grz-cart__price { text-align: end; }
	.grz-cart__x { align-self: start; margin-top: -2px; }
	.grz-cart__back { font-size: 0.7rem; }
	.grz-cart__go { display: none; }
	.grz-cart__mobile-bar {
		position: fixed;
		inset-inline: 0;
		bottom: 0;
		z-index: 90;
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 12px;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		border-top: 1px solid var(--grz-line);
		background: rgba(255, 255, 255, 0.97);
		box-shadow: 0 -8px 24px rgba(16, 36, 71, 0.09);
		backdrop-filter: blur(10px);
	}
	.grz-cart__mobile-total small,
	.grz-cart__mobile-total strong { display: block; line-height: 1.2; }
	.grz-cart__mobile-total small { font-size: 0.6rem; color: var(--grz-muted); }
	.grz-cart__mobile-total strong { margin-top: 2px; font-size: 1rem; font-weight: 900; color: var(--grz-blue); white-space: nowrap; }
	.grz-cart__mobile-checkout {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 44px;
		border-radius: var(--grz-radius-sm);
		background: linear-gradient(135deg, var(--grz-blue), #2b82ff);
		box-shadow: var(--grz-shadow-blue);
		color: #fff;
		font-size: 0.78rem;
		font-weight: 800;
		text-decoration: none;
	}
	.grz-cart__mobile-checkout svg { width: 14px; height: 14px; }
}
@media (max-width: 440px) {
	.grz-cart__kp { grid-template-columns: 38px minmax(0, 1fr); }
	.grz-cart__kp-b { grid-column: 1 / -1; justify-content: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
	.grz-cart *,
	.grz-cart-page .restore-item { transition: none !important; }
}
.grz-cart :focus-visible {
	outline: 2px solid var(--grz-blue);
	outline-offset: 2px;
	border-radius: 4px;
}

/* ===================================================================
 * 10. v1.4.28 — compact radius + unified commerce typography
 * The user-approved SEAGM-like type treatment is now applied to the
 * complete cart surface, including native WooCommerce controls/buttons.
 * ================================================================ */
.grz-cart-page {
	--grz-radius-sm: 4px;
	--grz-radius-md: 5px;
	--grz-radius-lg: 7px;
}

.grz-cart-page,
.grz-cart-page .grz-cart,
.grz-cart-page .grz-cart *,
.grz-cart-page .woocommerce,
.grz-cart-page .woocommerce button,
.grz-cart-page .woocommerce input,
.grz-cart-page .woocommerce select,
.grz-cart-page .woocommerce textarea,
.grz-cart-page .woocommerce a.button,
.grz-cart-page .woocommerce button.button {
	font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
}

/* Main shells: less rounded, still clearly separated. */
.grz-cart-page .grz-pnl {
	border-radius: 7px;
}
.grz-cart-page .grz-cart__gcard {
	border-radius: 5px;
}

/* Product and saved-item artwork. */
.grz-cart-page .grz-cart__art,
.grz-cart-page .grz-cart__kp-art {
	border-radius: 5px;
}

/* Inputs, quantity control, coupon bar, and secondary actions. */
.grz-cart-page .grz-cart__promo,
.grz-cart-page .grz-cart__pid-input,
.grz-cart-page .grz-cart__pid-save,
.grz-cart-page .grz-cart__pid-cancel,
.grz-cart-page .grz-cart__qty .quantity,
.grz-cart-page .grz-cart__qty-fixed,
.grz-cart-page .grz-cart__shipping-table input,
.grz-cart-page .grz-cart__shipping-table select,
.grz-cart-page .grz-cart__kp-move,
.grz-cart-page .grz-cart__kp-drop,
.grz-cart-page .grz-cart__mty-b,
.grz-cart-page .grz-cart__mobile-checkout {
	border-radius: 4px !important;
}

/* Remove the remaining pill/circle feel from small cart controls. */
.grz-cart-page .grz-cart__pid,
.grz-cart-page .grz-cart__pid-edit,
.grz-cart-page .grz-cart__off,
.grz-cart-page .grz-cart__i,
.grz-cart-page .woocommerce a.remove.grz-cart__i--x {
	border-radius: 4px !important;
}

/* Primary checkout button uses the same restrained radius and typeface. */
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button,
.grz-cart-page .woocommerce .grz-cart__go.wc-proceed-to-checkout a.checkout-button.button.alt {
	border-radius: 5px !important;
	font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
}

/* Keep headings and prices strong without the previous extra-heavy rounded look. */
.grz-cart-page .grz-cart__title,
.grz-cart-page .grz-cart__product-name,
.grz-cart-page .grz-cart__name,
.grz-cart-page .grz-cart__price b,
.grz-cart-page .grz-cart__tt-row b,
.grz-cart-page .grz-cart__tt-row--grand span,
.grz-cart-page .grz-cart__tt-row--grand b {
	font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
	letter-spacing: 0;
}
.grz-cart-page .grz-cart__title,
.grz-cart-page .grz-cart__product-name,
.grz-cart-page .grz-cart__name,
.grz-cart-page .grz-cart__price b,
.grz-cart-page .grz-cart__tt-row--grand span {
	font-weight: 700;
}
.grz-cart-page .grz-cart__tt-row--grand b {
	font-weight: 800;
}

