/**
 * TGP CART v3.6 — premium dark cart layout (Apr 2026)
 *
 * Pairs with `hello-theme-child-master/woocommerce/cart/cart.php`
 * which ships markup under `.tgp-cart-v3`.  All rules in this file
 * are scoped to `.tgp-cart-v3` (or `body.woocommerce-cart`) so we
 * cannot bleed into other pages.
 *
 * Highlights vs. v3.5:
 *   • Checkout-matched charcoal gradient canvas (see `body::before`).
 *   • Generous, readable typography on items (60×60 thumb, large
 *     name, by-author meta).
 *   • Fixed-size remove icon (was previously stretched).
 *   • Header search-bar width capped (was stretched).
 *   • Coupon row redesigned as a single segmented control.
 *   • Sonaar "Preview License" button is hidden via CSS plus PHP
 *     remove_action() in functions.php.
 *
 * Design language: monochrome dark, white CTAs, thin neutral
 * borders. Mirrors `checkout-saas.css` so cart → checkout reads
 * as one continuous funnel.
 */

/* ─── Tokens ──────────────────────────────────────────────────── */
body.woocommerce-cart {
	--cart-bg:            #000000;
	--cart-surface:       #0a0a0c;
	--cart-surface-2:     rgba(255, 255, 255, 0.025);
	--cart-surface-3:     rgba(255, 255, 255, 0.045);
	--cart-border:        rgba(255, 255, 255, 0.08);
	--cart-border-strong: rgba(255, 255, 255, 0.16);
	--cart-text:          #fafafa;
	--cart-text-2:        #d4d4d8;
	--cart-text-3:        #a1a1aa;
	--cart-text-4:        #71717a;
	--cart-text-5:        #52525b;
	--cart-success:       #10b981;
	--cart-error:         #f87171;
	--cart-radius:        16px;
	--cart-radius-sm:     10px;
	--cart-shadow:        0 12px 36px rgba(0, 0, 0, 0.55);

	/* v3.7.53: checkout-saas Ghost Coins rules use --co-*; those tokens only
	 * existed under `.tgp-co-v2` — on cart they were unset → broken pill / inputs. */
	--co-surface:           rgba(255, 255, 255, 0.06);
	--co-surface-2:       rgba(255, 255, 255, 0.08);
	--co-surface-3:       rgba(255, 255, 255, 0.10);
	--co-border:          rgba(255, 255, 255, 0.12);
	--co-border-strong:   rgba(255, 255, 255, 0.18);
	--co-text:            #fafafa;
	--co-text-2:          #d4d4d8;
	--co-text-3:          #a1a1aa;
	--co-text-4:          #71717a;
	--co-success:         #10b981;
	--co-success-soft:    rgba(16, 185, 129, 0.10);
	--co-success-border:  rgba(16, 185, 129, 0.30);
}

/* ─── BODY: fixed gradient overlay (pairs with checkout v3.7.27) ─ */
html.woocommerce-cart,
html:has(body.woocommerce-cart) {
	min-height: 100% !important;
	height: auto !important;
	max-height: none !important;
	overflow-x: hidden !important;
	overflow-y: visible !important;
	background-color: #060608 !important;
	background-image: none !important;
}

/* v3.8.17 — Match checkout: document-only vertical scroll (no body touch-action clamp). */

body.woocommerce-cart {
	background-color: transparent !important;
	background-image: none !important;
	color-scheme: dark !important;
	color: #fafafa !important;
	background-attachment: scroll !important;
	position: relative !important;
	overflow-x: hidden !important;
	overflow-y: visible !important;
	height: auto !important;
	max-height: none !important;
	max-width: 100% !important;
	overscroll-behavior-y: auto !important;
}

body.woocommerce-cart::before {
	content: "" !important;
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	/* Avoid `100vw`: it includes scrollbar width and causes horizontal stretch on mobile */
	width: auto !important;
	height: auto !important;
	min-height: 100vh !important;
	background-color: #030304 !important;
	background-image:
		radial-gradient(ellipse 115% 72% at 50% -10%, rgba(255, 255, 255, 0.075) 0%, transparent 55%),
		linear-gradient(168deg, #161616 0%, #0b0b0c 46%, #040404 100%) !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	z-index: -1 !important;
	pointer-events: none !important;
	display: block !important;
}

/* ─── v3.6.8: THEME PAGE WRAPPER BACKGROUNDS ─────────────────
 * Same fix as checkout-saas.css: force #page, main, #content,
 * article etc. transparent so the #111 body shows through.      */
body.woocommerce-cart #page,
body.woocommerce-cart #content,
body.woocommerce-cart #primary,
body.woocommerce-cart main,
body.woocommerce-cart #main,
body.woocommerce-cart .site-main,
body.woocommerce-cart .site-content,
body.woocommerce-cart .site-inner,
body.woocommerce-cart .entry-content,
body.woocommerce-cart article.type-page,
body.woocommerce-cart .hentry,
body.woocommerce-cart .elementor-section-wrap,
body.woocommerce-cart .elementor-inner,
body.woocommerce-cart .elementor-column,
body.woocommerce-cart .elementor-column-wrap,
body.woocommerce-cart .ast-container,
body.woocommerce-cart .ast-row,
body.woocommerce-cart .page-content {
	background:       transparent !important;
	background-color: transparent !important;
	background-image: none !important;
}

/* ─── ELEMENTOR / THEME WRAPPER OVERRIDES ─────────────────────
 * Force every Elementor section, container, column, widget INSIDE
 * <main> to be transparent — same nuclear approach as the checkout
 * uses. Header/footer Theme Builder docs are excluded so the
 * Sonaar nav and footer keep their styling.                      */
body.woocommerce-cart main [class*="elementor"]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]),
body.woocommerce-cart #content [class*="elementor"]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]),
body.woocommerce-cart main .e-con,
body.woocommerce-cart main .e-con-inner,
body.woocommerce-cart main .e-con-full,
body.woocommerce-cart #content .e-con,
body.woocommerce-cart #content .e-con-inner,
body.woocommerce-cart #content .e-con-full {
	background-color: transparent !important;
	background-image: none !important;
	--bg-color: transparent !important;
	--background-color: transparent !important;
	--e-section-bg-color: transparent !important;
	--e-global-color-background: transparent !important;
}

@supports selector(:has(*)) {
	body.woocommerce-cart :is(div, section, main, article, aside):has(.tgp-cart-v3):not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not(.tgp-cart-v3) {
		background-color: transparent !important;
		background-image: none !important;
		--bg-color: transparent !important;
		--background-color: transparent !important;
		--e-section-bg-color: transparent !important;
		--e-global-color-background: transparent !important;
	}
}

/* ─── SITE HEADER — menu cart ONLY ─────────────────────────────
 * v3.7.45: NEVER target `header .woocommerce` globally. Many Elementor headers
 * wrap a full-width row (search + nav) in `.woocommerce`; `max-width:none` on
 * that node stretched the entire masthead edge-to-edge ("broken" header on cart). */
body.woocommerce-cart [data-elementor-type="header"] .elementor-widget-woocommerce-menu-cart .woocommerce,
body.woocommerce-cart [data-elementor-type="header"] .elementor-widget-woocommerce-menu-cart {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
}
/* v3.7.51: `align-self:center` on the toggle fought Elementor’s row flex and
 * pulled the bag icon off the vertical rhythm (taller header bar). */
body.woocommerce-cart [data-elementor-type="header"] .elementor-widget-woocommerce-menu-cart,
body.woocommerce-cart [data-elementor-type="header"] .elementor-menu-cart__wrapper,
body.woocommerce-cart [data-elementor-type="header"] .elementor-menu-cart__toggle {
	align-self: auto !important;
}
body.woocommerce-cart [data-elementor-type="header"] .elementor-menu-cart__wrapper {
	display: flex !important;
	align-items: center !important;
}
body.woocommerce-cart [data-elementor-type="header"] .elementor-menu-cart__toggle {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
	margin-block: 0 !important;
}
body.woocommerce-cart [data-elementor-type="header"] .elementor-widget-woocommerce-menu-cart .elementor-widget-container {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	min-height: 0 !important;
}

/* v3.7.47 — Theme Builder masthead: cap inner band + search flex so logo / search / nav
 * do not sit in a full-viewport “canyon” on cart. */
body.woocommerce-cart [data-elementor-type="header"] .elementor-section.elementor-section-boxed > .elementor-container:not(:has(.tgp-hdr-root)) {
	max-width: min(1540px, calc(100vw - 40px)) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart [data-elementor-type="header"] .elementor-section.elementor-section-full_width > .elementor-container:not(:has(.tgp-hdr-root)) {
	max-width: min(1540px, calc(100vw - 40px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart [data-elementor-type="header"] .elementor-widget-search-form {
	flex: 0 1 min(380px, 32vw) !important;
	max-width: min(380px, 32vw) !important;
	min-width: 0 !important;
	width: auto !important;
}
body.woocommerce-cart [data-elementor-type="header"] .elementor-search-form,
body.woocommerce-cart [data-elementor-type="header"] .elementor-search-form__container,
body.woocommerce-cart [data-elementor-type="header"] .elementor-field-group {
	flex: 0 1 min(380px, 32vw) !important;
	max-width: min(380px, 32vw) !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart [data-elementor-type="header"] input.elementor-search-form__input {
	max-width: 100% !important;
	width: auto !important;
	min-width: 0 !important;
}

/* v3.7.49 — v3.7.48 regressions: #primary/max-width:none + --container-max-width:none on
 * e-con broke Elementor flex. Elementor ALSO sets fractional columns via .elementor-col-*
 * + --e-column-width with specificity that beat generic :has() rules — fix at SECTION scope. */

body.woocommerce-cart article.page .entry-content:has(.tgp-cart-v3),
body.woocommerce-cart .entry-content:has(.tgp-cart-v3),
body.woocommerce-cart .elementor-widget-woocommerce-cart,
body.woocommerce-cart .elementor-widget-woocommerce-cart .elementor-widget-container {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

body.woocommerce-cart .elementor-widget-woocommerce-cart {
	flex-basis: 100% !important;
	max-width: 100% !important;
}

@supports selector(:has(*)) {
	body.woocommerce-cart .elementor-section:has(.tgp-cart-v3) > .elementor-container {
		max-width: 100% !important;
		width: 100% !important;
		margin-inline: auto !important;
		box-sizing: border-box !important;
	}

	body.woocommerce-cart .elementor-section:has(.tgp-cart-v3) > .elementor-container > .elementor-row {
		width: 100% !important;
		flex-wrap: wrap !important;
	}

	body.woocommerce-cart .elementor-section:has(.tgp-cart-v3) [class*="elementor-col-"] {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
		--e-column-width: 100% !important;
		min-width: 0 !important;
	}

	body.woocommerce-cart .elementor-section:has(.tgp-cart-v3) .elementor-inner-section .elementor-column,
	body.woocommerce-cart .elementor-section:has(.tgp-cart-v3) .elementor-inner-section [class*="elementor-col-"] {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
		--e-column-width: 100% !important;
		min-width: 0 !important;
	}

	body.woocommerce-cart .elementor-column:has(.tgp-cart-v3),
	body.woocommerce-cart .elementor-column-wrap:has(.tgp-cart-v3),
	body.woocommerce-cart .elementor-widget-wrap:has(.tgp-cart-v3) {
		width: 100% !important;
		max-width: 100% !important;
		--e-column-width: 100% !important;
	}

	body.woocommerce-cart main .elementor-element.elementor-widget-woocommerce-cart,
	body.woocommerce-cart #content .elementor-element.elementor-widget-woocommerce-cart {
		width: 100% !important;
		max-width: 100% !important;
	}

	body.woocommerce-cart main .e-con:has(.tgp-cart-v3),
	body.woocommerce-cart #content .e-con:has(.tgp-cart-v3) {
		width: 100% !important;
		max-width: 100% !important;
		--container-max-width: min(1540px, calc(100vw - 48px)) !important;
	}

	body.woocommerce-cart main .e-con-inner:has(.tgp-cart-v3),
	body.woocommerce-cart #content .e-con-inner:has(.tgp-cart-v3) {
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Pure flex/container layout — no enclosing .elementor-section */
	body.woocommerce-cart main .e-parent:has(.tgp-cart-v3),
	body.woocommerce-cart #content .e-parent:has(.tgp-cart-v3) {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* Theme Builder masthead: cap flex rows ONLY inside <header> (not every .elementor-location-header). */
body.woocommerce-cart header[data-elementor-type="header"] .elementor > .e-con.e-parent:not(:has(.tgp-hdr-root)),
body.woocommerce-cart header[data-elementor-type="header"] .elementor-location-header > .elementor > .e-con.e-parent:not(:has(.tgp-hdr-root)) {
	max-width: min(1540px, calc(100vw - 40px)) !important;
	width: 100% !important;
	margin-inline: auto !important;
	box-sizing: border-box !important;
}

/* ─── ROOT WRAPPER ───────────────────────────────────────────── */
.tgp-cart-v3 {
	box-sizing: border-box;
	width: 100%;
	max-width: min(1180px, 100%);
	margin: clamp(28px, 5vw, 52px) auto 48px;
	padding: 0 clamp(16px, 4vw, 40px);
	min-width: 0 !important;
	overflow-x: hidden !important;
	font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--cart-text-2);
	background: transparent;
}

.tgp-cart-v3 *,
.tgp-cart-v3 *::before,
.tgp-cart-v3 *::after { box-sizing: border-box; }

/* ─── HEADER ────────────────────────────────────────────────────
 * Cart title left · Ghost Coins earn pill right (same row on wide / phone). */
.tgp-cart-v3__header {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: clamp(10px, 3vw, 20px) !important;
	min-width: 0 !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
}
.tgp-cart-v3__title {
	flex: 0 1 auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 32px !important;
	font-weight: 800 !important;
	letter-spacing: -0.025em !important;
	color: var(--cart-text) !important;
	line-height: 1.05 !important;
}
.tgp-cart-v3__subtitle {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	color: var(--cart-text-3) !important;
	letter-spacing: -0.005em !important;
}

/* ─── CART HEADER COINS RAIL (earn pill only — balance shows under redeem) ─
 * v3.7.60: masthead keeps “Earn +… with purchase”; balance after 20k hint. */
.tgp-cart-v3__masthead-band {
	flex: 1 1 auto !important;
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 8px !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	background: none !important;
	background-color: transparent !important;
	box-sizing: border-box !important;
}
.tgp-cart-v3__masthead-band:not(:has(.tgp-cart-v3__ghc-slot > *)) {
	display: none !important;
	margin: 0 !important;
}
.tgp-cart-v3__masthead-band .tgp-cart-v3__ghc-slot {
	flex: 0 1 auto !important;
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
	width: auto !important;
	max-width: min(560px, 58vw, 100%) !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	grid-column: unset !important;
}
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-cart-v3__ghc-slot:empty {
	display: none !important;
}
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2 {
	width: fit-content !important;
	max-width: 100% !important;
	margin: 0 !important;
	margin-left: auto !important;
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2:not(.tgp-ghc-card-v2--cart-balance-only),
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only {
	padding: 0 !important;
	gap: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__main--cart-masthead-earn {
	min-width: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__balance-row--masthead-earn {
	display: inline-flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	align-self: center !important;
	justify-content: flex-end !important;
	gap: 0 !important;
	width: auto !important;
	max-width: 100% !important;
	min-height: 0 !important;
	margin-left: auto !important;
}
/*
 * checkout-saas `.tgp-ghc-card-v2__earn-pill` sets flex-wrap + white-space:normal;
 * that stacks text into a tall pill in the masthead — force one compact rail.
 */
body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__earn-pill {
	flex: 0 1 auto !important;
	flex-wrap: nowrap !important;
	margin-left: 0 !important;
	align-items: center !important;
	align-self: center !important;
	white-space: nowrap !important;
	max-width: min(100%, 320px) !important;
	min-width: 0 !important;
	justify-content: center !important;
	padding-block: 1px !important;
	padding-inline: 7px !important;
	line-height: 1.12 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}

body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__earn-pill > * {
	white-space: nowrap !important;
	flex-shrink: 1 !important;
	min-width: 0 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

/* ≤640px — Cart title + Ghost Coins pill share one header row without a tall wrapped pill */
@media (max-width: 640px) {
	.tgp-cart-v3__header {
		flex-wrap: nowrap !important;
		align-items: center !important;
		align-content: center !important;
		gap: clamp(8px, 2.2vw, 14px) !important;
	}
	.tgp-cart-v3__title {
		flex: 0 1 auto !important;
		font-size: clamp(17px, 4.85vw, 22px) !important;
		line-height: 1.05 !important;
		max-width: 42vw !important;
	}
	.tgp-cart-v3__masthead-band {
		flex: 1 1 0 !important;
		justify-content: flex-end !important;
		min-width: 0 !important;
		align-items: center !important;
		align-self: center !important;
	}
	body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-cart-v3__ghc-slot {
		max-width: min(220px, calc(100vw - 108px)) !important;
	}
	body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__earn-pill {
		max-width: 100% !important;
		line-height: 1.08 !important;
		font-size: clamp(8.5px, 2.35vw, 11px) !important;
		font-weight: 700 !important;
		padding-block: 1px !important;
		padding-inline: clamp(6px, 1.9vw, 9px) !important;
		letter-spacing: -0.02em !important;
		border-radius: 999px !important;
		text-align: center !important;
	}
	body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__balance-row--masthead-earn {
		justify-content: flex-end !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		min-width: 0 !important;
		min-height: 0 !important;
		text-align: right !important;
	}
	body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2__main--cart-masthead-earn {
		min-height: 0 !important;
		align-items: center !important;
	}
	body.woocommerce-cart .tgp-cart-v3__masthead-band .tgp-ghc-card-v2 {
		margin-left: auto !important;
		margin-right: 0 !important;
		align-items: center !important;
		justify-content: center !important;
		min-width: 0 !important;
		min-height: 0 !important;
		max-width: 100% !important;
		width: auto !important;
	}
}

/* ─── GHOST COINS SLOT ─────────────────────────────────────────
 * Full-width slot sitting ABOVE the items/totals grid.
 * Explicitly spans both grid columns in case any ancestor grid
 * accidentally picks up .tgp-cart-v3 as a grid container.       */
.tgp-cart-v3__ghc-slot {
	margin: 0 0 6px;
	padding: 0;
	grid-column: 1 / -1 !important;
	width: 100% !important;
}
.tgp-cart-v3__ghc-slot:empty { display: none !important; }

/* Balance + earn pill: one flex row (sentence + pill right), wraps on narrow viewports. */
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2__balance-row {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 8px 12px !important;
	width: 100% !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2__balance-sentence {
	flex: 1 1 200px !important;
	min-width: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2__earn-pill {
	flex: 0 1 auto !important;
	margin-left: auto !important;
	margin-top: 0 !important;
	max-width: min(100%, 360px) !important;
	white-space: normal !important;
	line-height: 1.25 !important;
	text-align: right !important;
	justify-content: flex-end !important;
}

/* v3.7.42 — Cart Ghost Coins (full-width slot): less padding / gaps than checkout aside. */
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2 {
	padding: 10px 14px !important;
	gap: 6px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2__info {
	gap: 3px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2__earn-pill {
	margin-top: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2__redeem {
	padding-top: 5px !important;
	margin: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .woocommerce-reward-points-redemption-form-container::before {
	margin: 0 0 4px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-redeem-v2__row,
body.woocommerce-cart .tgp-cart-v3__ghc-slot .woocommerce-reward-points-redemption-form-inputs {
	height: 38px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .woocommerce-reward-points-redemption-text-below,
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-redeem-v2__hint {
	margin-top: 4px !important;
	margin-bottom: 0 !important;
}

/* v3.7.51 — Compact balance ribbon after redeem is moved beside coupon (checkout-saas.js). */
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 6px 14px !important;
	padding: 8px 12px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only .tgp-ghc-card-v2__balance-row {
	display: inline-flex !important;
	flex-wrap: wrap !important;
	align-items: baseline !important;
	gap: 6px 10px !important;
	width: auto !important;
	min-width: 0 !important;
	grid-template-columns: unset !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only .tgp-ghc-card-v2__balance-num,
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only .tgp-ghc-card-v2__balance-meta,
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only .tgp-ghc-card-v2__balance-sentence {
	grid-column: unset !important;
	grid-row: unset !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-slot .tgp-ghc-card-v2.tgp-ghc-card-v2--cart-balance-only .tgp-ghc-card-v2__earn-pill {
	grid-column: unset !important;
	grid-row: unset !important;
	margin-left: auto !important;
	margin-top: 0 !important;
}

/* Redeem block lives in `.tgp-cart-v3__ghc-redeem-host` (moved from slot by JS). */
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	align-self: stretch !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host [data-tgp-ghc-redeem] {
	width: 100% !important;
	min-width: 0 !important;
	display: block !important;
	position: relative !important;
	z-index: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-container {
	float: none !important;
	position: relative !important;
	z-index: 0 !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	clear: both !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-earning-text-container,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-text {
	display: none !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-card-v2__redeem {
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100% !important;
	min-width: 0 !important;
	border-top: 0 !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-left: 0 !important;
	padding-left: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below {
	margin-top: 12px !important;
	padding-top: 12px !important;
	border-top: 1px solid var(--cart-border) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--cart-text-2) !important;
	line-height: 1.4 !important;
	text-align: center !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-sentence {
	display: inline !important;
	white-space: normal !important;
	text-align: center !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-num {
	font-size: 15px !important;
	font-weight: 800 !important;
	color: var(--cart-text) !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-label {
	font-size: 9px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-worth {
	font-size: 11px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__row,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-inputs {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 44px !important;
	height: 44px !important;
	max-height: 44px !important;
	box-sizing: border-box !important;
	position: relative !important;
	overflow: hidden !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__input,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points {
	flex: 1 1 0 !important;
	min-width: 0 !important;
}

/*
 * Host: `.tgp-ghc-card-v2__redeem` is moved out of `.tgp-ghc-card-v2` by JS.
 * checkout-saas.css chains many selectors as `.tgp-ghc-card-v2 .woocommerce-reward-points-*`
 * — those no longer match here. Mirror the segmented redeem pill + CTA so layout
 * matches checkout/coupon row.
 */
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-inputs {
	background: var(--co-surface-3) !important;
	border: 1px solid var(--co-border-strong) !important;
	border-radius: 9px !important;
	overflow: hidden !important;
	gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* No “Redeem coins” caption — keeps redeem row aligned with coupon (same 44px bar). */
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-container::before {
	content: none !important;
	display: none !important;
	margin: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-earning-text,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host p.woocommerce-reward-points-earning-text {
	display: none !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points {
	width: auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
	height: 100% !important;
	padding: 0 12px !important;
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--co-text) !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	outline: none !important;
	box-shadow: none !important;
	-moz-appearance: textfield !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	font-variant-numeric: tabular-nums !important;
	text-align: left !important;
	margin: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points::-webkit-outer-spin-button,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points::placeholder {
	color: var(--co-text-4) !important;
	font-weight: 500 !important;
	font-size: 12.5px !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__max {
	flex: 0 0 auto !important;
	height: 100% !important;
	padding: 0 14px !important;
	background: rgba(255, 255, 255, 0.04) !important;
	border: 0 !important;
	border-left: 1px solid var(--co-border-strong) !important;
	border-radius: 0 !important;
	color: var(--co-text-2) !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 10.5px !important;
	font-weight: 800 !important;
	letter-spacing: 0.10em !important;
	white-space: nowrap !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	text-transform: uppercase !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__btn,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host a.woocommerce-reward-points-redemption-form-button,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button.btn,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button.button,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button {
	flex: 0 0 auto !important;
	height: 100% !important;
	padding: 0 16px !important;
	background-color: rgba(16, 185, 129, 0.16) !important;
	background-image: none !important;
	color: #6ee7b7 !important;
	border: 0 !important;
	border-left: 1px solid rgba(16, 185, 129, 0.30) !important;
	border-radius: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	line-height: 1 !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__btn::after,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host a.woocommerce-reward-points-redemption-form-button::after,
body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button::after {
	content: "\2192" !important;
	display: inline-block !important;
	margin-left: 2px !important;
	font-weight: 600 !important;
	color: inherit !important;
	transform: translateY(-0.5px) !important;
}

/* Safety: ensure the header also spans full width in any grid ctx */
.tgp-cart-v3__header { grid-column: 1 / -1 !important; }
.tgp-cart-v3__grid   { grid-column: 1 / -1 !important; }

/* The Ghost Coins card itself ships from `class-woocommerce-reward-
 * points-public.php` and uses the shared `.tgp-ghc-card-v2` /
 * `.tgp-ghc-redeem-v2` selectors styled in `checkout-saas.css`.
 * This block just makes sure the card never inherits stray plugin
 * float / width / text-align rules in the cart context.          */
.tgp-cart-v3__ghc-slot .woocommerce-reward-points-text-container,
.tgp-cart-v3__ghc-slot .woocommerce-reward-points-redemption-form-container,
.tgp-cart-v3__ghc-slot .woocommerce-reward-points-redemption-success-container,
.tgp-cart-v3__ghc-slot .woocommerce-reward-points-earning-text-container,
.tgp-cart-v3__ghc-slot .woocommerce-reward-points-level-container {
	float: none !important;
	width: auto !important;
	max-width: 100% !important;
	text-align: left !important;
	display: block !important;
	box-sizing: border-box !important;
}

/* ─── GRID ────────────────────────────────────────────────────── */
.tgp-cart-v3__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 400px);
	gap: 22px;
	align-items: start;
}

@media (min-width: 1280px) {
	.tgp-cart-v3__grid {
		grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
		gap: 26px;
	}
}

@media (max-width: 1200px) and (min-width: 1025px) {
	.tgp-cart-v3__grid {
		grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
		gap: 18px;
	}
}

@media (max-width: 1024px) {
	.tgp-cart-v3__grid { grid-template-columns: 1fr; gap: 14px; }
}

/* ─── MAIN COLUMN (items + actions) ─────────────────────────── */
.tgp-cart-v3__main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.tgp-cart-v3__form {
	margin: 0;
	padding: 0;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* WC cart.js injects coupon errors inside `.coupon`; cart-saas.js moves them here (outside pill + outside form AJAX replace). */
body.woocommerce-cart .tgp-cart-v3__coupon-messages:empty {
	display: none !important;
}
body.woocommerce-cart .tgp-cart-v3__coupon-messages:not(:empty) {
	flex: 0 0 auto !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 10px 0 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	clear: both !important;
}
body.woocommerce-cart .tgp-cart-v3__coupon-messages > .coupon-error-notice {
	box-sizing: border-box !important;
	width: 100% !important;
	margin: 0 0 10px !important;
	padding: 11px 13px !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	font-weight: 500 !important;
	color: var(--cart-text-2) !important;
	background: rgba(248, 113, 113, 0.08) !important;
	border: 1px solid rgba(248, 113, 113, 0.38) !important;
	border-radius: var(--cart-radius-sm, 10px) !important;
	border-left-width: 4px !important;
	border-left-color: var(--cart-error) !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
	white-space: normal !important;
}
body.woocommerce-cart .tgp-cart-v3__coupon-messages > .coupon-error-notice:last-child {
	margin-bottom: 0 !important;
}

/* ─── WC notices + coupon feedback (avoid flex-row squeeze / overlap) ─────
 * Themes may emit `.woocommerce-notices-wrapper` inside the cart form above
 * the table. If wrappers land inside `.tgp-cart-v3__codes-row`, the flex row
 * can place them beside the coupon at ~half width → cramped text + visuals
 * overlapping the Apply control.                                          */
body.woocommerce-cart .tgp-cart-v3 form.woocommerce-cart-form {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart .tgp-cart-v3 .woocommerce-notices-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	flex: 0 0 auto !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
	float: none !important;
	clear: both !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart .tgp-cart-v3 .woocommerce-notices-wrapper:last-child {
	margin-bottom: 0 !important;
}
/* Full-width band above coupon+redeem (matches checkout `.tgp-co-v2__coupon-msg-wrap`).
 * Prefer descendant selectors — some stacks emit wrappers nested one level deep. */
body.woocommerce-cart .tgp-cart-v3__codes-row > .woocommerce-notices-wrapper,
body.woocommerce-cart .tgp-cart-v3__codes-row .woocommerce-notices-wrapper:first-of-type,
body.woocommerce-cart .tgp-cart-v3__codes-row > .woocommerce-message,
body.woocommerce-cart .tgp-cart-v3__codes-row > .woocommerce-info,
body.woocommerce-cart .tgp-cart-v3__codes-row > ul.woocommerce-error,
body.woocommerce-cart .tgp-cart-v3__codes-row ul.woocommerce-error:first-of-type {
	flex: 1 1 100% !important;
	flex-basis: 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	align-self: stretch !important;
	order: -1 !important;
}
body.woocommerce-cart .tgp-cart-v3__codes-row .woocommerce-message:not(.cart-empty),
body.woocommerce-cart .tgp-cart-v3 .woocommerce-message,
body.woocommerce-cart .tgp-cart-v3 .woocommerce-info:not(.cart-empty) {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
	hyphens: auto !important;
	white-space: normal !important;
}
body.woocommerce-cart .tgp-cart-v3__codes-row .woocommerce-message:not(.cart-empty) {
	flex: 1 1 100% !important;
	flex-basis: 100% !important;
	order: -1 !important;
	padding: 11px 13px !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	color: var(--cart-success) !important;
	background: rgba(16, 185, 129, 0.09) !important;
	border: 1px solid rgba(16, 185, 129, 0.32) !important;
	border-radius: var(--cart-radius-sm) !important;
	border-left-width: 4px !important;
	border-left-color: var(--cart-success) !important;
}
body.woocommerce-cart .tgp-cart-v3 ul.woocommerce-error {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	background: transparent !important;
	border: 0 !important;
	overflow-wrap: anywhere !important;
}
body.woocommerce-cart .tgp-cart-v3 ul.woocommerce-error::before,
body.woocommerce-cart .tgp-cart-v3 ul.woocommerce-error li::before,
body.woocommerce-cart .tgp-cart-v3 .woocommerce-message::before,
body.woocommerce-cart .tgp-cart-v3 .woocommerce-info:not(.cart-empty)::before {
	display: none !important;
	content: none !important;
}
body.woocommerce-cart .tgp-cart-v3 ul.woocommerce-error > li {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 0 0 8px !important;
	padding: 11px 13px !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	font-weight: 500 !important;
	color: var(--cart-text-2) !important;
	background: rgba(248, 113, 113, 0.08) !important;
	border: 1px solid rgba(248, 113, 113, 0.38) !important;
	border-radius: var(--cart-radius-sm, 10px) !important;
	border-left-width: 4px !important;
	border-left-color: var(--cart-error) !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
	hyphens: auto !important;
	white-space: normal !important;
}
body.woocommerce-cart .tgp-cart-v3 ul.woocommerce-error > li:last-child {
	margin-bottom: 0 !important;
}

/* ─── ITEMS TABLE — visually a clean list of rows ───────────── */
.tgp-cart-v3__items-table,
.tgp-cart-v3 .shop_table.cart {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border: 1px solid var(--cart-border-strong) !important;
	border-radius: var(--cart-radius) !important;
	overflow: hidden !important;
	background: var(--cart-surface) !important;
}

/* Hide the table header — items read better as standalone cards. */
.tgp-cart-v3__items-table thead {
	display: none !important;
}

/* Hide the unit price column — only the subtotal (line total) is
 * shown. This prevents the price from appearing twice.           */
.tgp-cart-v3 .product-price,
.tgp-cart-v3 td.product-price,
.tgp-cart-v3 th.product-price {
	display: none !important;
}

.tgp-cart-v3__items-table tbody { display: block !important; }

.tgp-cart-v3__items-table tr.tgp-cart-v3__item,
.tgp-cart-v3__items-table tr.cart_item,
.tgp-cart-v3__items-table .woocommerce-cart-form__cart-item {
	display: grid !important;
	grid-template-columns: 60px minmax(0, 1fr) max-content 32px !important;
	column-gap: 12px !important;
	row-gap: 8px !important;
	align-items: center !important;
	padding: 14px 18px !important;
	border-bottom: 1px solid var(--cart-border) !important;
	background: transparent !important;
	transition: background 140ms ease;
}
.tgp-cart-v3__items-table tr.tgp-cart-v3__item:last-child,
.tgp-cart-v3__items-table tr.cart_item:last-child,
.tgp-cart-v3__items-table .woocommerce-cart-form__cart-item:last-child {
	border-bottom: 0 !important;
}
.tgp-cart-v3__items-table tr.tgp-cart-v3__item:hover {
	background: rgba(255, 255, 255, 0.015) !important;
}

.tgp-cart-v3__items-table td {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	vertical-align: middle !important;
}

/* Thumbnail */
.tgp-cart-v3__cell--thumb {
	grid-column: 1 / 2 !important;
	width: 60px !important;
}
.tgp-cart-v3__cell--thumb a,
.tgp-cart-v3__cell--thumb img {
	display: block !important;
	width: 60px !important;
	height: 60px !important;
	border-radius: 8px !important;
	object-fit: cover !important;
	overflow: hidden !important;
	background: var(--cart-surface-2) !important;
}

/* Name column */
.tgp-cart-v3__cell--name {
	grid-column: 2 / 3 !important;
	min-width: 0 !important;
}
.tgp-cart-v3__name-wrap {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 3px !important;
}

/* Track title + seller byline on one row (desktop); seller hidden ≤900px in responsive block. */
.tgp-cart-v3__title-row {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 10px !important;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}
.tgp-cart-v3__title-row .tgp-cart-v3__product-link {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}
.tgp-cart-v3__title-sep {
	flex: 0 0 auto !important;
	display: inline-block !important;
	width: 5px !important;
	height: 5px !important;
	border-radius: 50% !important;
	background: var(--cart-success) !important;
	opacity: 0.88 !important;
	box-shadow: 0 0 0 1px rgba(16, 185, 129, 0.22) !important;
}
@media (min-width: 901px) {
	.tgp-cart-v3__title-row .tgp-cart-v3__seller-byline {
		max-width: min(340px, 36vw) !important;
	}
}

.tgp-cart-v3__product-link,
.tgp-cart-v3__cell--name a:not(.tgp-cart-v3__seller-byline) {
	font-size: 14.5px !important;
	font-weight: 700 !important;
	color: var(--cart-text) !important;
	text-decoration: none !important;
	letter-spacing: -0.01em !important;
	line-height: 1.3 !important;
	overflow-wrap: break-word !important;
	word-wrap: break-word !important;
	word-break: break-word !important;
	hyphens: auto !important;
}
.tgp-cart-v3__cell--name a:not(.tgp-cart-v3__seller-byline):hover {
	color: var(--cart-text) !important;
	opacity: 0.85 !important;
}
.tgp-cart-v3__product-by {
	display: inline-block !important;
	margin-top: 6px !important;
	font-size: 11.5px !important;
	font-weight: 500 !important;
	color: var(--cart-text-3) !important;
	letter-spacing: 0 !important;
}

.tgp-cart-v3__meta-strip {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-end !important;
	column-gap: 12px !important;
	row-gap: 8px !important;
	width: 100% !important;
	min-width: 0 !important;
	margin-top: 10px !important;
	padding-top: 8px !important;
	border-top: 1px solid var(--cart-border) !important;
	box-sizing: border-box !important;
}

/* Duplicate line-mobile only — no strip on desktop. */
@media (min-width: 901px) {
	.tgp-cart-v3__meta-strip {
		display: none !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
		border-top: 0 !important;
	}
}

.tgp-cart-v3__title-row .tgp-cart-v3__seller {
	flex: 0 1 auto !important;
	margin: 0 !important;
}
.tgp-cart-v3__seller {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 10px !important;
	min-width: 0 !important;
	flex: 0 1 auto !important;
}

.tgp-cart-v3__seller-avatar-wrap,
.tgp-cart-v3__seller-avatar {
	display: none !important;
}

.tgp-cart-v3__seller-byline {
	display: inline !important;
	font-size: 12.35px !important;
	font-weight: 500 !important;
	color: var(--cart-text-4) !important;
	text-decoration: none !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
}

.tgp-cart-v3__seller-byline:focus-visible {
	outline: 2px solid rgba(250, 250, 250, 0.35) !important;
	outline-offset: 3px !important;
	border-radius: 4px !important;
}

a.tgp-cart-v3__seller-byline:hover {
	color: var(--cart-text-3) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	text-decoration-color: rgba(250, 250, 250, 0.22) !important;
}

.tgp-cart-v3__seller-prefix {
	opacity: 0.92 !important;
	font-weight: 500 !important;
	color: inherit !important;
}

.tgp-cart-v3__seller-prefix::after {
	content: '\00a0';
}

/* Duplicate line total for ≤900 — hidden visually on desktop where .tgp-cart-v3__cell--price carries the canonical price. */
.tgp-cart-v3__line-total-inline {
	display: none !important;
	align-items: center !important;
	flex: 0 0 auto !important;
	text-align: right !important;
	margin-left: auto !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--cart-text) !important;
	font-variant-numeric: tabular-nums !important;
	letter-spacing: -0.015em !important;
}

.tgp-cart-v3__line-total-inline .amount,
.tgp-cart-v3__line-total-inline bdi {
	color: var(--cart-text) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
}

/* Hide Sonaar "Preview License" button + variation strings on cart. */
.tgp-cart-v3__items-table .view-license-button,
.tgp-cart-v3__items-table [class*="srmp3-license"],
.tgp-cart-v3__items-table [class*="srp_view"],
.tgp-cart-v3 .view-license-button,
.tgp-cart-v3 [class*="view_license"],
.tgp-cart-v3__cell--name [class*="license_button"] {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}
.tgp-cart-v3__cell--name dl.variation,
.tgp-cart-v3__cell--name .wc-item-meta {
	margin: 4px 0 0 !important;
	padding: 0 !important;
	font-size: 11.5px !important;
	color: var(--cart-text-3) !important;
}

/* Quantity hidden — every line is a single license (see cart.php). */
.tgp-cart-v3__items-table td.tgp-cart-v3__cell--qty-fixed {
	display: none !important;
}

/* Price column */
.tgp-cart-v3__cell--price {
	grid-column: 3 / 4 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--cart-text) !important;
	font-variant-numeric: tabular-nums !important;
	text-align: right !important;
	min-width: 70px !important;
}
.tgp-cart-v3__cell--price .amount,
.tgp-cart-v3__cell--price bdi {
	color: var(--cart-text) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
}

/*
 * Hello child `custom.css` ships `td.product-subtotal { display: none !important; }`,
 * which hid the Woo line-total column for every cart layout. Re-enable for v3 desktop
 * (≤900 still hides `.tgp-cart-v3__cell--price`; see responsive block below).
 */
@media (min-width: 901px) {
	body.woocommerce-cart .tgp-cart-v3 table.shop_table.cart.tgp-cart-v3__items-table tbody td.product-subtotal.tgp-cart-v3__cell--price {
		display: block !important;
	}
}

/* Remove button — fixed-size circular icon, NEVER stretched */
.tgp-cart-v3__cell--remove {
	grid-column: 4 / 5 !important;
}
.tgp-cart-v3__remove,
.tgp-cart-v3 a.remove,
.tgp-cart-v3__items-table a.remove {
	width: 26px !important;
	height: 26px !important;
	min-width: 26px !important;
	min-height: 26px !important;
	max-width: 26px !important;
	max-height: 26px !important;
	padding: 0 !important;
	margin: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: transparent !important;
	border: 1px solid var(--cart-border-strong) !important;
	border-radius: 999px !important;
	color: var(--cart-text-3) !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: 0 !important;
	text-decoration: none !important;
	flex-shrink: 0 !important;
	transition: color 140ms ease, background 140ms ease, border-color 140ms ease, transform 120ms ease;
	box-shadow: none !important;
	cursor: pointer !important;
	position: relative !important;
}
.tgp-cart-v3__remove::before,
.tgp-cart-v3 a.remove::before,
.tgp-cart-v3__items-table a.remove::before {
	content: "\00d7" !important;
	font-size: 18px !important;
	line-height: 1 !important;
	font-weight: 400 !important;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
	color: inherit !important;
	display: inline-block !important;
}
.tgp-cart-v3__remove > *,
.tgp-cart-v3 a.remove > * {
	display: none !important;
}
.tgp-cart-v3__remove:hover,
.tgp-cart-v3 a.remove:hover {
	background: rgba(248, 113, 113, 0.10) !important;
	border-color: rgba(248, 113, 113, 0.40) !important;
	color: var(--cart-error) !important;
	transform: scale(1.06) !important;
}

/* ─── ACTIONS ROW (nonce + cart_actions only) + CODES STRIP (outside form) ─
 * v3.7.73: coupon + Ghost Coins host live in `.tgp-cart-v3__codes-strip` AFTER
 * `</form>` so `update_wc_div` cannot destroy JS-moved redeem markup. Coupon
 * controls use `form="tgp-cart-v3-cart-form"`. */
.tgp-cart-v3__actions {
	margin: 0 !important;
	padding: 0 !important;
	border-top: 0 !important;
	display: block !important;
}
.tgp-cart-v3__codes-strip {
	margin: 14px 0 0 !important;
	padding: 12px 0 0 !important;
	border-top: 1px solid var(--cart-border) !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 10px !important;
	align-items: stretch !important;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}
.tgp-cart-v3__codes-strip > .tgp-cart-v3__codes-row {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	min-width: 0 !important;
}

/* Notices hooked after the codes row — never share a flex column with Apply. */
body.woocommerce-cart .tgp-cart-v3__actions > .woocommerce-notices-wrapper,
body.woocommerce-cart .tgp-cart-v3__actions > ul.woocommerce-error {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.tgp-cart-v3__codes-row {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	gap: 10px !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
.tgp-cart-v3__codes-row .tgp-cart-v3__coupon {
	flex: 1 1 min(280px, 100%) !important;
	width: auto !important;
	min-width: min(100%, 220px) !important;
	max-width: none !important;
}
/*
 * v3.7.71: Do NOT force `nowrap` here — Woo coupon errors often render as a third flex
 * child; nowrap squeezes them beside "Apply" and clips text. Wrapped row still keeps
 * coupon + redeem on one line at ~42% / 48% when no notice row is present.
 */
@media (min-width: 701px) {
	.tgp-cart-v3__codes-row {
		align-items: stretch !important;
	}
	.tgp-cart-v3__codes-row .tgp-cart-v3__coupon {
		flex: 1 1 42% !important;
		max-width: min(520px, 48%) !important;
	}
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host {
		flex: 1 1 48% !important;
		min-width: 0 !important;
	}
}
body.woocommerce-cart .tgp-cart-v3 button[name="update_cart"]:not(.tgp-cart-v3__ghost-update-cart),
body.woocommerce-cart .tgp-cart-v3 input[name="update_cart"] {
	display: none !important;
}
/* Sentinel for Ghost Coins redeem — Reward Points triggers .trigger('click') on update_cart after AJAX redeem. */
html body.woocommerce-cart.woocommerce-cart .tgp-cart-v3 button.tgp-cart-v3__ghost-update-cart[name="update_cart"],
html body.woocommerce-cart.woocommerce-cart button.tgp-cart-v3__ghost-update-cart[name="update_cart"] {
	display: block !important;
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	color: transparent !important;
	background: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	pointer-events: auto !important;
}
body.woocommerce-cart .tgp-cart-v3__actions {
	position: relative !important;
}
@media (max-width: 700px) {
	.tgp-cart-v3__codes-row {
		flex-direction: column !important;
	}
	.tgp-cart-v3__codes-row .tgp-cart-v3__coupon {
		flex: 1 1 auto !important;
		width: 100% !important;
		min-width: 0 !important;
	}
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host {
		flex: 1 1 auto !important;
		width: 100% !important;
		min-width: 0 !important;
	}
}

/* Coupon — segmented control: [ input | Apply ] */
.tgp-cart-v3__coupon {
	display: flex !important;
	align-items: stretch !important;
	height: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--cart-surface) !important;
	border: 1px solid var(--cart-border-strong) !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	float: none !important;
	width: 100% !important;
	max-width: none !important;
}
.tgp-cart-v3__coupon:focus-within { border-color: rgba(255, 255, 255, 0.45) !important; }

.tgp-cart-v3__coupon-input,
.tgp-cart-v3 input#coupon_code {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	width: auto !important;
	height: 100% !important;
	padding: 0 14px !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--cart-text) !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.tgp-cart-v3__coupon-input::placeholder { color: var(--cart-text-4) !important; }

.tgp-cart-v3__coupon-btn {
	flex: 0 0 auto !important;
	height: 100% !important;
	padding: 0 18px !important;
	margin: 0 !important;
	background: var(--cart-text) !important;
	background-image: none !important;
	color: #0a0a0a !important;
	border: 0 !important;
	border-left: 1px solid var(--cart-border-strong) !important;
	border-radius: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
}
.tgp-cart-v3__coupon-btn:hover {
	background: #ffffff !important;
	color: #0a0a0a !important;
	opacity: 0.95 !important;
}

/* ─── SUMMARY (sticky aside) ─────────────────────────────────── */
.tgp-cart-v3__summary {
	min-width: 0;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.tgp-cart-v3__summary-sticky {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
	min-height: 100%;
}
.tgp-cart-v3__summary-sticky .tgp-cart-v3__collaterals {
	order: 1 !important;
}

/* WooCommerce wraps cart_totals in `.cart-collaterals .cart_totals`. */
.tgp-cart-v3__collaterals {
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	background: transparent !important;
}
.tgp-cart-v3__collaterals .cart_totals,
.tgp-cart-v3__collaterals .cross-sells {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.tgp-cart-v3__collaterals .cart_totals {
	background: var(--cart-surface) !important;
	border: 1px solid var(--cart-border-strong) !important;
	border-radius: var(--cart-radius) !important;
	padding: 18px 20px 22px !important;
}

.tgp-cart-v3__collaterals .cart_totals h2 {
	margin: 0 0 12px !important;
	padding: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--cart-text-3) !important;
}

.tgp-cart-v3__collaterals .shop_table {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-collapse: collapse !important;
	background: transparent !important;
}

.tgp-cart-v3__collaterals .shop_table tr,
.tgp-cart-v3__collaterals .shop_table tbody tr {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 8px 0 !important;
	border-bottom: 1px dashed var(--cart-border) !important;
	background: transparent !important;
}
.tgp-cart-v3__collaterals .shop_table tr:last-child {
	border-bottom: 0 !important;
}

.tgp-cart-v3__collaterals .shop_table th,
.tgp-cart-v3__collaterals .shop_table td {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--cart-text-3) !important;
	text-align: right !important;
	font-variant-numeric: tabular-nums !important;
}
.tgp-cart-v3__collaterals .shop_table th {
	font-weight: 600 !important;
	color: var(--cart-text-2) !important;
	text-align: left !important;
	letter-spacing: -0.005em !important;
}

.tgp-cart-v3__collaterals .shop_table .order-total th,
.tgp-cart-v3__collaterals .shop_table .order-total td {
	font-size: 16px !important;
	font-weight: 800 !important;
	color: var(--cart-text) !important;
	letter-spacing: -0.015em !important;
}
.tgp-cart-v3__collaterals .shop_table .order-total {
	margin-top: 4px !important;
	padding-top: 12px !important;
	border-top: 1px solid var(--cart-border-strong) !important;
	border-bottom: 0 !important;
}

.tgp-cart-v3__collaterals .amount,
.tgp-cart-v3__collaterals bdi {
	color: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
}

/* Proceed to Checkout button */
.tgp-cart-v3__collaterals .wc-proceed-to-checkout {
	margin: 14px 0 0 !important;
	padding: 0 !important;
}
.tgp-cart-v3__collaterals .wc-proceed-to-checkout a.checkout-button,
.tgp-cart-v3__collaterals a.checkout-button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 48px !important;
	margin: 0 !important;
	padding: 0 18px !important;
	background: var(--cart-text) !important;
	background-image: none !important;
	color: #0a0a0a !important;
	border: 0 !important;
	border-radius: 12px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: -0.005em !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	box-shadow: 0 6px 18px rgba(255, 255, 255, 0.06) !important;
	text-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: opacity 140ms ease, transform 120ms ease;
}
.tgp-cart-v3__collaterals .wc-proceed-to-checkout a.checkout-button::after {
	content: "\2192" !important;
	margin-left: 8px !important;
	font-weight: 600 !important;
	color: inherit !important;
}
.tgp-cart-v3__collaterals .wc-proceed-to-checkout a.checkout-button:hover,
.tgp-cart-v3__collaterals a.checkout-button:hover {
	opacity: 0.95 !important;
	color: #0a0a0a !important;
}
.tgp-cart-v3__collaterals .wc-proceed-to-checkout a.checkout-button:active {
	transform: scale(0.99) !important;
}

/* Hide the "Calculate shipping" widget — not relevant for digital tracks. */
.tgp-cart-v3__collaterals .shipping-calculator-button,
.tgp-cart-v3__collaterals .shipping-calculator-form,
.tgp-cart-v3__collaterals .shipping {
	display: none !important;
}

/* ─── EMPTY CART ──────────────────────────────────────────────
 * WooCommerce shows an empty-cart notice + "Return to shop" button
 * when the cart is empty. Style it to match.                     */
body.woocommerce-cart .cart-empty.woocommerce-info,
body.woocommerce-cart .return-to-shop {
	background: var(--cart-surface) !important;
	border: 1px solid var(--cart-border-strong) !important;
	border-radius: var(--cart-radius) !important;
	color: var(--cart-text) !important;
	font-family: 'Inter', sans-serif !important;
	box-shadow: var(--cart-shadow) !important;
	max-width: 480px !important;
	margin: 32px auto !important;
}
body.woocommerce-cart .cart-empty.woocommerce-info {
	padding: 22px 24px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-align: center !important;
	border-bottom-left-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
	border-bottom: 0 !important;
}
body.woocommerce-cart .cart-empty.woocommerce-info::before { display: none !important; }

body.woocommerce-cart .return-to-shop {
	margin-top: -1px !important;
	padding: 0 !important;
	border-top: 1px solid var(--cart-border) !important;
	border-top-left-radius: 0 !important;
	border-top-right-radius: 0 !important;
	display: block !important;
	overflow: hidden !important;
}
body.woocommerce-cart .return-to-shop .button,
body.woocommerce-cart .return-to-shop a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 48px !important;
	background: var(--cart-text) !important;
	color: #0a0a0a !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-weight: 700 !important;
	font-size: 13.5px !important;
	text-transform: none !important;
	letter-spacing: -0.005em !important;
}

/* ─── RESPONSIVE CART ROWS ─────────────────────────────────────
 * WooCommerce `.shop_table_responsive` injects `td::before { content: attr(data-title) }`
 * which fights our grid; hide it and use a 2-row card layout on tablets / phones. */

@media screen and (max-width: 768px) {
	body.woocommerce-cart .tgp-cart-v3 table.shop_table_responsive.cart tbody td::before {
		display: none !important;
		content: none !important;
	}
	/*
	 * v3.7.65: Exclude price cell — `display:block` beat `.tgp-cart-v3__cell--price { display:none }`
	 * due to higher specificity → duplicate EUR on mobile next to `.line-total-inline`.
	 */
	body.woocommerce-cart .tgp-cart-v3 table.shop_table_responsive.cart tbody td:not(.tgp-cart-v3__cell--price) {
		display: block !important;
	}
}

/*
 * Tablet / phone — hidden qty + duplicated price sits in `.tgp-cart-v3__meta-strip`; hide standalone price cell.
 */
@media (max-width: 900px) {
	.tgp-cart-v3__items-table tr.tgp-cart-v3__item,
	.tgp-cart-v3__items-table tr.cart_item,
	.tgp-cart-v3__items-table tr.woocommerce-cart-form__cart-item {
		grid-template-columns: clamp(52px, 15vw, 60px) minmax(0, 1fr) auto !important;
		grid-template-rows: auto !important;
		grid-template-areas: none !important;
		column-gap: 14px !important;
		row-gap: 0 !important;
		align-items: start !important;
		padding: 16px 16px !important;
		box-sizing: border-box !important;
	}

	.tgp-cart-v3__line-total-inline {
		display: inline-flex !important;
		justify-content: flex-end !important;
		margin-left: 0 !important;
	}

	.tgp-cart-v3__meta-strip {
		column-gap: 0 !important;
		justify-content: flex-end !important;
		align-items: center !important;
		border-top-color: transparent !important;
		margin-top: 6px !important;
		padding-top: 0 !important;
	}

	.tgp-cart-v3__title-row .tgp-cart-v3__seller,
	.tgp-cart-v3__title-row .tgp-cart-v3__title-sep {
		display: none !important;
	}

	body.woocommerce-cart .tgp-cart-v3 table.shop_table_responsive.cart tbody td.product-subtotal.tgp-cart-v3__cell--price {
		display: none !important;
	}

	.tgp-cart-v3__cell--price {
		display: none !important;
	}

	.tgp-cart-v3__cell--thumb {
		grid-column: 1 / 2 !important;
		grid-row: 1 / 2 !important;
		align-self: start !important;
		justify-self: start !important;
		width: 100% !important;
		max-width: 60px !important;
	}

	.tgp-cart-v3__cell--thumb a,
	.tgp-cart-v3__cell--thumb img {
		width: 100% !important;
		max-width: 60px !important;
		height: auto !important;
		aspect-ratio: 1 / 1 !important;
		min-height: 52px !important;
		min-width: 0 !important;
	}

	.tgp-cart-v3__cell--name {
		grid-column: 2 / 3 !important;
		grid-row: 1 / 2 !important;
		min-width: 0 !important;
		align-self: start !important;
		justify-self: stretch !important;
		text-align: left !important;
		padding-right: 6px !important;
		box-sizing: border-box !important;
	}

	.tgp-cart-v3__name-wrap {
		align-items: flex-start !important;
		max-width: 100% !important;
	}

	.tgp-cart-v3__cell--remove {
		grid-column: 3 / 4 !important;
		grid-row: 1 / 2 !important;
		justify-self: end !important;
		align-self: start !important;
		padding-top: 2px !important;
	}

	.tgp-cart-v3__actions {
		padding-top: 16px !important;
		margin-top: 14px !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below {
		margin-top: 12px !important;
		padding-top: 8px !important;
		border-top: 0 !important;
		background: none !important;
		background-color: transparent !important;
		box-shadow: none !important;
	}

	/* Ghost Coins ribbon: balanced line that wraps cleanly when centered */
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-sentence {
		display: inline-flex !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		align-items: baseline !important;
		gap: 0.2em 0.45em !important;
		max-width: 100% !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-num {
		font-size: clamp(14px, 3.9vw, 16px) !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-label {
		font-size: clamp(10px, 2.8vw, 11px) !important;
		letter-spacing: 0.08em !important;
		text-transform: uppercase !important;
		opacity: 0.92 !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below .tgp-ghc-card-v2__balance-worth {
		font-size: clamp(11.5px, 3.2vw, 13px) !important;
	}

	/* Cart totals rows: breathable gap between label and amount (fixes "Subtotal:800") */
	.tgp-cart-v3__collaterals .shop_table tr,
	.tgp-cart-v3__collaterals .shop_table tbody tr {
		gap: 10px 18px !important;
		justify-content: space-between !important;
	}

	.tgp-cart-v3__collaterals .shop_table th {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		padding-right: 12px !important;
		word-break: break-word !important;
	}

	.tgp-cart-v3__collaterals .shop_table td {
		flex: 0 1 auto !important;
		min-width: 0 !important;
		text-align: right !important;
	}
}

@media (max-width: 640px) {
	.tgp-cart-v3 {
		margin-top: 18px;
		padding: 0 clamp(14px, 4vw, 22px);
	}
	.tgp-cart-v3__title {
		font-size: 22px !important;
		line-height: 1.08 !important;
	}

	.tgp-cart-v3__items-table,
	.tgp-cart-v3 .shop_table.cart {
		border-radius: calc(var(--cart-radius, 14px) + 2px) !important;
	}

	.tgp-cart-v3__items-table tr.tgp-cart-v3__item,
	.tgp-cart-v3__items-table tr.cart_item,
	.tgp-cart-v3__items-table tr.woocommerce-cart-form__cart-item {
		padding-left: clamp(14px, 4.5vw, 18px) !important;
		padding-right: clamp(14px, 4.5vw, 18px) !important;
	}

	.tgp-cart-v3__collaterals .cart_totals {
		padding: 16px 16px 20px !important;
	}

	.tgp-cart-v3__coupon,
	.tgp-cart-v3__coupon-btn {
		min-height: 44px !important;
		box-sizing: border-box !important;
	}

	.tgp-cart-v3 .tgp-cart-v3__coupon-input,
	.tgp-cart-v3 input#coupon_code {
		line-height: 1.25 !important;
		display: block !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-container {
		margin-bottom: 0 !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points {
		min-width: 44px !important;
		max-width: 100% !important;
		padding: 0 10px !important;
		font-size: 12.5px !important;
		box-sizing: border-box !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__max {
		padding: 0 10px !important;
		font-size: 9.5px !important;
		letter-spacing: 0.08em !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__btn,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host a.woocommerce-reward-points-redemption-form-button,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button {
		padding: 0 12px !important;
		font-size: 11.5px !important;
		white-space: nowrap !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__hint,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-text-below {
		display: block !important;
		width: 100% !important;
		margin: 8px 0 0 !important;
		padding: 0 2px !important;
		font-size: 11px !important;
		line-height: 1.4 !important;
		text-align: center !important;
		color: var(--cart-text-4) !important;
		font-weight: 500 !important;
	}

	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-cart-v3__ghc-balance-below {
		border: 0 !important;
		box-shadow: none !important;
		margin-top: 8px !important;
		padding: 6px 2px !important;
		background: transparent !important;
		background-color: transparent !important;
		border-radius: 0 !important;
		box-sizing: border-box !important;
	}
}

/* Very narrow phones: keep redeem bar inside the viewport width */
@media (max-width: 420px) {
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__max {
		padding: 0 6px !important;
		font-size: 9px !important;
	}
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__btn,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host a.woocommerce-reward-points-redemption-form-button,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button {
		padding: 0 8px !important;
		font-size: 10.75px !important;
		font-weight: 700 !important;
	}
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .tgp-ghc-redeem-v2__btn::after,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host a.woocommerce-reward-points-redemption-form-button::after,
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-button::after {
		content: none !important;
		display: none !important;
		margin-left: 0 !important;
	}
	body.woocommerce-cart .tgp-cart-v3__ghc-redeem-host .woocommerce-reward-points-redemption-form-points {
		padding: 0 8px !important;
		font-size: 12px !important;
	}
}

/* ════════════════════════════════════════════════════════════════
 * FALLBACK v3.6.4 — DEFAULT WooCommerce cart.php template styling
 *
 * Modelled on the Graffin / modern SaaS cart reference:
 *   • No table borders or backgrounds
 *   • Items as clean rows: thumb | name | price | ×
 *   • Two-column layout: items LEFT, totals RIGHT (flex on desktop)
 *   • Purple buttons killed; white primary, ghost secondary
 *   • Cross-sells hidden (irrelevant for digital tracks)
 * ════════════════════════════════════════════════════════════════ */

/* ─── Page wrapper ───
 * v3.7.44: Narrow max-width / grid layout applies ONLY to stock WC cart markup.
 * v3.7.50: Elementor wraps `<div class="tgp-cart-v3 woocommerce">` in an OUTER
 * `<div class="woocommerce">`. `:not(.tgp-cart-v3)` alone matched that outer node
 * and forced `display:grid; 1fr 340px` — the real cart stayed in column 1 (left island).
 * Add `:not(:has(.tgp-cart-v3))` so legacy CSS applies only when no child uses v3. */
body.woocommerce-cart .woocommerce {
	font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
	color: #d4d4d8 !important;
	background: transparent !important;
	box-sizing: border-box !important;
}
/* v3.7.52: Do not add outer margin/max-width here — it still matched some cart DOM
 * (e.g. when :has() unsupported or stray .woocommerce) and squeezed / offset the layout. */
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.woocommerce-cart .woocommerce > h1.entry-title { display: none !important; }

/* Notices — stock WC cart shell only (.tgp-cart-v3 styles notices inside the plugin block). */
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-message,
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-info:not(.cart-empty),
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-error {
	background: #0e0e10 !important;
	border: 1px solid rgba(255,255,255,0.12) !important;
	border-radius: 10px !important;
	color: #fafafa !important;
	box-shadow: none !important;
	margin: 0 0 16px !important;
	padding: 12px 16px !important;
}
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-message::before,
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-info::before {
	display: none !important;
}

/* Notices BEFORE `.tgp-cart-v3` share the SAME parent `.woocommerce` — the :not(:has()) rules
 * above never matched, so builder/theme grids split icon vs copy (far left/right). Force a normal block stack. */
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: min(1180px, 100%) !important;
	min-width: 0 !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 clamp(16px, 4vw, 40px) !important;
	box-sizing: border-box !important;
	display: block !important;
	float: none !important;
	clear: both !important;
}
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper ul.woocommerce-error,
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper ul.woocommerce-error > li {
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
	float: none !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
	white-space: normal !important;
}
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper ul.woocommerce-error::before,
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper ul.woocommerce-error li::before {
	display: none !important;
	content: none !important;
}
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-message,
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-info:not(.cart-empty),
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper ul.woocommerce-error > li {
	background: #0e0e10 !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	border-radius: 10px !important;
	color: #fafafa !important;
	box-shadow: none !important;
	padding: 12px 16px !important;
}
/* Hide the icon pseudo-element that overlaps the "Undo?" link text */
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-message::before,
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-info::before {
	display: none !important;
	content: none !important;
}
/* "Undo?" restore link inside the notice */
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-message .restore-item,
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-message a.button {
	color: #ffffff !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	border-radius: 6px !important;
	padding: 3px 10px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	float: none !important;
	margin: 0 8px 0 0 !important;
	display: inline-block !important;
}
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper ul.woocommerce-error > li {
	border-left: 4px solid var(--cart-error, #ef4444) !important;
}
body.woocommerce-cart .woocommerce:has(.tgp-cart-v3) > .woocommerce-notices-wrapper .woocommerce-error .button {
	float: none !important;
	margin-top: 8px !important;
}

/* ─── Two-column desktop layout: form LEFT, totals RIGHT ─── */
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) {
	display: flex !important;
	flex-direction: column !important;
}
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-notices-wrapper { order: 0; }
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) form.woocommerce-cart-form { order: 1; }
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .cart-collaterals { order: 2; }

/* On large screens put the form and totals side by side. */
@media (min-width: 860px) {
	body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) 340px !important;
		grid-template-rows: auto !important;
		gap: 24px !important;
		align-items: start !important;
	}
	body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .woocommerce-notices-wrapper {
		grid-column: 1 / -1 !important;
	}
	body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) form.woocommerce-cart-form {
		grid-column: 1 / 2 !important;
		grid-row: 2 !important;
	}
	body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)) .cart-collaterals {
		grid-column: 2 / 3 !important;
		grid-row: 2 !important;
		position: sticky !important;
		top: 24px !important;
	}
}

/* ─── Cart form (items + coupon/update row) ─── */
body.woocommerce-cart form.woocommerce-cart-form {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* ─── Items table → clean card (stock WC only — never `.tgp-cart-v3__items-table`) ─── */
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border: 1px solid rgba(255,255,255,0.12) !important;
	border-radius: 14px !important;
	overflow: hidden !important;
	background: #0e0e10 !important;
	box-shadow: none !important;
	font-family: 'Inter', sans-serif !important;
}
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) thead { display: none !important; }
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) tbody { display: block !important; background: transparent !important; }

/* ─── Cart item rows ─── */
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) tr.cart_item {
	display: grid !important;
	grid-template-columns: 60px minmax(0,1fr) auto auto !important;
	grid-template-areas: "thumb name price remove" !important;
	column-gap: 16px !important;
	align-items: center !important;
	padding: 14px 18px !important;
	border-bottom: 1px solid rgba(255,255,255,0.07) !important;
	background: transparent !important;
}
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) tr.cart_item:last-child { border-bottom: 0 !important; }
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) tr.cart_item:hover { background: rgba(255,255,255,0.015) !important; }

body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) tr.cart_item td {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-remove { grid-area: remove !important; }
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-thumbnail { grid-area: thumb !important; }
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-name { grid-area: name !important; min-width: 0 !important; }
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-subtotal { grid-area: price !important; text-align: right !important; }
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-price,
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-quantity,
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) td.product-price,
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) td.product-price::before { display: none !important; }

/* Thumbnail */
body.woocommerce-cart .product-thumbnail a,
body.woocommerce-cart .product-thumbnail img {
	display: block !important;
	width: 60px !important;
	height: 60px !important;
	border-radius: 8px !important;
	object-fit: cover !important;
	background: rgba(255,255,255,0.04) !important;
}

/* Product name */
body.woocommerce-cart .product-name a,
body.woocommerce-cart .product-name {
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #fafafa !important;
	text-decoration: none !important;
	letter-spacing: -0.01em !important;
	line-height: 1.3 !important;
	font-family: 'Inter', sans-serif !important;
}
body.woocommerce-cart .product-name a:hover { opacity: 0.8 !important; }
body.woocommerce-cart .product-name dl.variation,
body.woocommerce-cart .product-name .wc-item-meta {
	margin: 4px 0 0 !important;
	padding: 0 !important;
	font-size: 11.5px !important;
	color: #71717a !important;
	font-weight: 500 !important;
}

/* Hide Sonaar "Preview License" button */
body.woocommerce-cart .product-name .view-license-button,
body.woocommerce-cart .product-name [class*="license-button"],
body.woocommerce-cart .product-name [class*="view_license"] {
	display: none !important;
	width: 0 !important; height: 0 !important; overflow: hidden !important;
}

/* Price — legacy Woo cart rows only (not v3 items table duplicate cells). */
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-subtotal,
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-subtotal .amount,
body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-subtotal bdi {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #fafafa !important;
	font-variant-numeric: tabular-nums !important;
}

/* ─── Remove icon ─── */
body.woocommerce-cart .product-remove a.remove {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 28px !important; height: 28px !important;
	min-width: 28px !important; min-height: 28px !important;
	max-width: 28px !important; max-height: 28px !important;
	padding: 0 !important; margin: 0 !important;
	background: transparent !important;
	border: 1px solid rgba(255,255,255,0.14) !important;
	border-radius: 50% !important;
	color: #a1a1aa !important;
	font-size: 18px !important;
	line-height: 1 !important;
	text-indent: 0 !important;
	text-decoration: none !important;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
	flex-shrink: 0 !important;
	box-shadow: none !important;
	transition: color 120ms, background 120ms, border-color 120ms;
}
body.woocommerce-cart .product-remove a.remove:hover {
	background: rgba(248,113,113,0.10) !important;
	border-color: rgba(248,113,113,0.40) !important;
	color: #f87171 !important;
}

/* ─── Actions row (coupon + update) ───
 * WooCommerce + Royal Elementor use <tr><td class="actions" colspan="…"> — NOT
 * <tr class="actions">. Older rules targeted tr.actions and never matched. */
body.woocommerce-cart table.shop_table.cart tbody tr td.actions {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	align-content: flex-start !important;
	gap: 12px !important;
	padding: 12px 18px !important;
	border-top: 1px solid rgba(255,255,255,0.07) !important;
	background: transparent !important;
	border-bottom: 0 !important;
	box-sizing: border-box !important;
}
/* Coupon — segmented pill: [ input | Apply ] */
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon {
	position: relative !important;
	flex: 1 1 220px !important;
	display: flex !important;
	align-items: stretch !important;
	min-height: 44px !important;
	height: auto !important;
	max-height: none !important;
	background: #0e0e10 !important;
	border: 1px solid rgba(255,255,255,0.14) !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	float: none !important;
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
}
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon:focus-within {
	border-color: rgba(255,255,255,0.40) !important;
}
/* Visible "Coupon:" label (Royal Elementor template) — hide like SR-only */
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
	display: block !important;
}
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon input#coupon_code {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	height: 44px !important;
	padding: 0 14px !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	color: #fafafa !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
}
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon input#coupon_code::placeholder {
	color: #52525b !important;
}
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon button[name="apply_coupon"] {
	flex: 0 0 auto !important;
	align-self: stretch !important;
	min-height: 44px !important;
	height: auto !important;
	padding: 0 16px !important;
	background: #fafafa !important;
	background-image: none !important;
	color: #0a0a0a !important;
	border: 0 !important;
	border-left: 1px solid rgba(255,255,255,0.14) !important;
	border-radius: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
	-webkit-appearance: none !important;
}
body.woocommerce-cart table.shop_table.cart tbody tr td.actions .coupon button[name="apply_coupon"]:hover {
	background: #ffffff !important;
	opacity: 0.95 !important;
}

/* Update cart — ghost button */
body.woocommerce-cart button[name="update_cart"] {
	height: 42px !important;
	padding: 0 16px !important;
	background: transparent !important;
	background-image: none !important;
	color: #a1a1aa !important;
	border: 1px solid rgba(255,255,255,0.14) !important;
	border-radius: 10px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
	-webkit-appearance: none !important;
	transition: color 140ms, border-color 140ms, background 140ms;
}
body.woocommerce-cart button[name="update_cart"]:hover {
	color: #fafafa !important;
	border-color: rgba(255,255,255,0.30) !important;
	background: rgba(255,255,255,0.04) !important;
}

/* ── v3.7.0: CATCH-ALL: kill every glow/animation on ALL cart buttons ──
 * The theme / Elementor applies a purple gradient + box-shadow glow on
 * any `.button:hover`. Targeting by element name (apply_coupon /
 * update_cart) with specificity beats the theme's class selector.      */
body.woocommerce-cart button[name="apply_coupon"],
body.woocommerce-cart button[name="apply_coupon"]:hover,
body.woocommerce-cart button[name="apply_coupon"]:focus,
body.woocommerce-cart button[name="apply_coupon"]:active,
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart button[name="update_cart"]:hover,
body.woocommerce-cart button[name="update_cart"]:focus,
body.woocommerce-cart button[name="update_cart"]:active {
	animation:    none !important;
	filter:       none !important;
	box-shadow:   none !important;
	text-shadow:  none !important;
	transition:   background 120ms ease, color 120ms ease, border-color 120ms ease !important;
}

/* ── v3.6.7: NUCLEAR button overrides ──────────────────────────────
 * The theme or WooCommerce sets background on `.button` / `.alt`
 * with !important. We need an equally-or-more-specific rule that
 * explicitly resets every background shorthand AND the individual
 * sub-properties so nothing purple bleeds through.               */
body.woocommerce-cart button[name="apply_coupon"],
body.woocommerce-cart .woocommerce button[name="apply_coupon"],
body.woocommerce-cart input[name="apply_coupon"],
body.woocommerce-cart .woocommerce input[name="apply_coupon"] {
	background:       #f5f5f5 !important;
	background-color: #f5f5f5 !important;
	background-image: none !important;
	color:            #0a0a0a !important;
	border:           0 !important;
	box-shadow:       none !important;
	text-shadow:      none !important;
}
body.woocommerce-cart button[name="apply_coupon"]:hover,
body.woocommerce-cart input[name="apply_coupon"]:hover {
	background:       #ffffff !important;
	background-color: #ffffff !important;
	background-image: none !important;
	color:            #0a0a0a !important;
	box-shadow:       none !important;
	text-shadow:      none !important;
	animation:        none !important;
	filter:           none !important;
}
body.woocommerce-cart button[name="apply_coupon"]:focus,
body.woocommerce-cart button[name="apply_coupon"]:active {
	background:       #f0f0f0 !important;
	background-color: #f0f0f0 !important;
	background-image: none !important;
	box-shadow:       none !important;
	animation:        none !important;
	filter:           none !important;
	outline:          none !important;
}
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart .woocommerce button[name="update_cart"],
body.woocommerce-cart input[name="update_cart"],
body.woocommerce-cart .woocommerce input[name="update_cart"] {
	background:       transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	color:            #a1a1aa !important;
	box-shadow:       none !important;
	text-shadow:      none !important;
}
body.woocommerce-cart button[name="update_cart"]:hover,
body.woocommerce-cart input[name="update_cart"]:hover {
	color:            #fafafa !important;
	background:       rgba(255,255,255,0.06) !important;
	background-color: rgba(255,255,255,0.06) !important;
	background-image: none !important;
	box-shadow:       none !important;
	animation:        none !important;
	filter:           none !important;
}
body.woocommerce-cart button[name="update_cart"]:focus,
body.woocommerce-cart button[name="update_cart"]:active {
	background:       rgba(255,255,255,0.08) !important;
	background-color: rgba(255,255,255,0.08) !important;
	background-image: none !important;
	box-shadow:       none !important;
	animation:        none !important;
	filter:           none !important;
	outline:          none !important;
}

/* ─── Cart totals sidebar ─── */
body.woocommerce-cart .cart-collaterals {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}
body.woocommerce-cart .cart-collaterals .cross-sells { display: none !important; }
body.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 20px 22px 24px !important;
	background: #0e0e10 !important;
	border: 1px solid rgba(255,255,255,0.12) !important;
	border-radius: 14px !important;
	box-shadow: none !important;
}
body.woocommerce-cart .cart_totals h2 {
	margin: 0 0 14px !important;
	padding: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: #71717a !important;
}
body.woocommerce-cart .cart_totals table.shop_table {
	width: 100% !important;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse !important;
	background: transparent !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr {
	display: flex !important;
	justify-content: space-between !important;
	align-items: baseline !important;
	padding: 8px 0 !important;
	border-bottom: 1px dashed rgba(255,255,255,0.06) !important;
	background: transparent !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr:last-child { border-bottom: 0 !important; }
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: #a1a1aa !important;
	font-variant-numeric: tabular-nums !important;
}
body.woocommerce-cart .cart_totals table.shop_table th {
	font-weight: 600 !important; color: #d4d4d8 !important; text-align: left !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total td {
	font-size: 17px !important; font-weight: 800 !important;
	color: #fafafa !important; letter-spacing: -0.015em !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr.order-total {
	padding-top: 14px !important;
	border-top: 1px solid rgba(255,255,255,0.14) !important;
	border-bottom: 0 !important;
}
body.woocommerce-cart .cart_totals .amount,
body.woocommerce-cart .cart_totals bdi { color: inherit !important; font-size: inherit !important; font-weight: inherit !important; }

/* Hide shipping calculator */
body.woocommerce-cart .cart_totals .shipping-calculator-button,
body.woocommerce-cart .cart_totals .shipping-calculator-form,
body.woocommerce-cart .cart_totals .shipping { display: none !important; }

/* ─── Proceed to checkout CTA ─── */
body.woocommerce-cart .wc-proceed-to-checkout { margin: 16px 0 0 !important; padding: 0 !important; }
body.woocommerce-cart a.checkout-button,
body.woocommerce-cart .checkout-button.button.alt,
body.woocommerce-cart .wc-proceed-to-checkout a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 50px !important;
	margin: 0 !important;
	padding: 0 18px !important;
	background: #fafafa !important;
	background-color: #fafafa !important;
	background-image: none !important;
	color: #0a0a0a !important;
	border: 0 !important;
	border-radius: 12px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: -0.005em !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	box-shadow: 0 6px 18px rgba(255,255,255,0.06) !important;
	text-shadow: none !important;
	-webkit-appearance: none !important;
	transition: opacity 140ms ease;
}
body.woocommerce-cart a.checkout-button::after { content: " →" !important; }
body.woocommerce-cart a.checkout-button:hover { opacity: 0.93 !important; color: #0a0a0a !important; background: #ffffff !important; }

/* Kill all remaining purple buttons */
body.woocommerce-cart a.button:not(.checkout-button),
body.woocommerce-cart button.button:not([name="apply_coupon"]):not([name="update_cart"]) {
	background: #fafafa !important;
	background-image: none !important;
	color: #0a0a0a !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

/* Mobile: stack items above totals (stock WC cart table only) */
@media (max-width: 640px) {
	body.woocommerce-cart .woocommerce:not(:has(.tgp-cart-v3)) { padding: 0 14px !important; }
	body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) tr.cart_item {
		grid-template-columns: 54px minmax(0,1fr) auto !important;
		grid-template-areas: "thumb name remove" "thumb price price" !important;
		row-gap: 4px !important;
		padding: 12px 14px !important;
	}
	body.woocommerce-cart table.shop_table.cart:not(.tgp-cart-v3__items-table) .product-subtotal { text-align: left !important; }
}

/* ════════════════════════════════════════════════════════════════
 * v3.7.10 — FINAL OVERRIDES (pinned at end of file = win cascade)
 * ════════════════════════════════════════════════════════════════ */

/* ─── PURPLE HOVER KILL — maximum specificity ────────────────────
 * The Sonaar/Elementor theme's `.button:hover` uses a purple
 * gradient + glow. We chain `body.woocommerce-cart` twice and
 * prefix with `html` to outscore any theme rule, no matter how
 * specific. Five `!important`s per property to be sure.           */
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="apply_coupon"],
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="apply_coupon"],
html body.woocommerce-cart.woocommerce-cart button[name="apply_coupon"],
html body.woocommerce-cart.woocommerce-cart input[name="apply_coupon"],
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart button[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart input[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="apply_coupon"]:focus,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="apply_coupon"]:focus,
html body.woocommerce-cart.woocommerce-cart button[name="apply_coupon"]:focus,
html body.woocommerce-cart.woocommerce-cart input[name="apply_coupon"]:focus,
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="apply_coupon"]:active,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="apply_coupon"]:active,
html body.woocommerce-cart.woocommerce-cart button[name="apply_coupon"]:active,
html body.woocommerce-cart.woocommerce-cart input[name="apply_coupon"]:active {
	background:           #ffffff !important;
	background-color:     #ffffff !important;
	background-image:     none !important;
	color:                #0a0a0a !important;
	border:               1px solid #ffffff !important;
	box-shadow:           none !important;
	text-shadow:          none !important;
	animation:            none !important;
	-webkit-animation:    none !important;
	filter:               none !important;
	-webkit-filter:       none !important;
	transform:            none !important;
	transition:           background 120ms ease, color 120ms ease, border-color 120ms ease !important;
}
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart button[name="apply_coupon"]:hover,
html body.woocommerce-cart.woocommerce-cart input[name="apply_coupon"]:hover {
	background:           #f0f0f0 !important;
	background-color:     #f0f0f0 !important;
	color:                #000000 !important;
}

html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="update_cart"],
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="update_cart"],
html body.woocommerce-cart.woocommerce-cart button[name="update_cart"],
html body.woocommerce-cart.woocommerce-cart input[name="update_cart"],
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart button[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart input[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="update_cart"]:focus,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="update_cart"]:focus,
html body.woocommerce-cart.woocommerce-cart button[name="update_cart"]:focus,
html body.woocommerce-cart.woocommerce-cart input[name="update_cart"]:focus,
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="update_cart"]:active,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="update_cart"]:active,
html body.woocommerce-cart.woocommerce-cart button[name="update_cart"]:active,
html body.woocommerce-cart.woocommerce-cart input[name="update_cart"]:active {
	background:           transparent !important;
	background-color:     transparent !important;
	background-image:     none !important;
	color:                #d4d4d8 !important;
	border:               1px solid rgba(255,255,255,0.18) !important;
	box-shadow:           none !important;
	text-shadow:          none !important;
	animation:            none !important;
	-webkit-animation:    none !important;
	filter:               none !important;
	-webkit-filter:       none !important;
	transform:            none !important;
}
html body.woocommerce-cart.woocommerce-cart .woocommerce button[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart .woocommerce input[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart button[name="update_cart"]:hover,
html body.woocommerce-cart.woocommerce-cart input[name="update_cart"]:hover {
	background:           rgba(255,255,255,0.06) !important;
	background-color:     rgba(255,255,255,0.06) !important;
	color:                #ffffff !important;
	border-color:         rgba(255,255,255,0.32) !important;
}

/* Proceed-to-checkout — kill any purple hover too */
html body.woocommerce-cart.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
html body.woocommerce-cart.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
html body.woocommerce-cart.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus,
html body.woocommerce-cart.woocommerce-cart .wc-proceed-to-checkout .checkout-button:active,
html body.woocommerce-cart.woocommerce-cart a.checkout-button,
html body.woocommerce-cart.woocommerce-cart a.checkout-button:hover {
	background:           #ffffff !important;
	background-color:     #ffffff !important;
	background-image:     none !important;
	color:                #0a0a0a !important;
	box-shadow:           none !important;
	text-shadow:          none !important;
	animation:            none !important;
	-webkit-animation:    none !important;
	filter:               none !important;
	transform:            none !important;
}

/* ─── GHOST COINS — position INSIDE right column above totals ───
 * The plugin migrates `add_cart_text` to fire on
 * `woocommerce_cart_collaterals` priority 5, which renders the GHC
 * card INSIDE `.cart-collaterals` ABOVE `.cart_totals`. These rules
 * make sure it's visible there and properly sized.                */
body.woocommerce-cart .cart-collaterals .woocommerce-reward-points-text-cart,
body.woocommerce-cart .tgp-cart-ghc-collaterals-slot,
body.woocommerce-cart .tgp-cart-ghc-collaterals-slot .woocommerce-reward-points-text-cart {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 18px !important;
	box-sizing: border-box !important;
}

/* In default WC cart, .cart-collaterals is the right column. Style
 * the wrapper as a sticky-ish dark card and stack our GHC above
 * the cart_totals.                                                */
body.woocommerce-cart .cart-collaterals {
	display: flex !important;
	flex-direction: column !important;
	gap: 18px !important;
}
body.woocommerce-cart .cart-collaterals .tgp-cart-ghc-collaterals-slot {
	order: -1 !important; /* GHC sits ABOVE cart_totals */
}

/* v3.7.49 — HARD RESET for TGP cart template (see v3.7.49 section-scope Elementor fixes). */
body.woocommerce-cart .tgp-cart-v3 {
	width: 100% !important;
	max-width: min(1180px, 100%) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: 48px !important;
	margin-top: clamp(28px, 5vw, 52px) !important;
	padding: 0 clamp(16px, 4vw, 40px) !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart .tgp-cart-v3__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 440px) !important;
	gap: 24px !important;
	align-items: start !important;
}
body.woocommerce-cart .tgp-cart-v3__summary-sticky .tgp-cart-v3__collaterals { order: 1 !important; }
body.woocommerce-cart .tgp-cart-v3 .cart-collaterals {
	display: block !important;
	gap: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__actions {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border-top: 0 !important;
}
body.woocommerce-cart .tgp-cart-v3__codes-strip {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 10px !important;
	align-items: stretch !important;
}
body.woocommerce-cart .tgp-cart-v3__codes-strip > .tgp-cart-v3__codes-row {
	grid-column: 1 / -1 !important;
}
@media (max-width: 1024px) {
	body.woocommerce-cart .tgp-cart-v3__grid {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
	}
}

/* ─── CART PAGE: global notice icon fix ─────────────────────────
 * The undo/"X removed" notice can appear in a notices wrapper
 * rendered at the theme/page level (outside .woocommerce). Hide
 * the ::before icon on ALL woocommerce-message / woocommerce-info
 * notices on the cart page to prevent it overlapping link text.  */
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message::before,
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-info::before,
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before {
	display: none !important;
	content: none !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message,
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-info:not(.cart-empty) {
	padding: 12px 16px !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message .restore-item,
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message a.button {
	color: #ffffff !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	border-radius: 6px !important;
	padding: 3px 10px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	float: none !important;
	margin: 0 8px 0 0 !important;
	display: inline-block !important;
	animation: none !important;
	filter: none !important;
	transform: none !important;
}

/* ─── EMPTY CART STATE (v3.7.84) ────────────────────────────────
 * Shown when the cart has no items.  Wraps in the same
 * `.tgp-cart-v3` root so the page gradient, header, and spacing
 * all match the populated-cart view.                             */
body.woocommerce-cart .tgp-cart-v3--empty {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
}

/* WooCommerce inserts a .woocommerce-notices-wrapper before our div — hide
 * the extra blank .woocommerce div that wraps it when cart is empty */
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(.tgp-cart-v3)):empty,
body.woocommerce-cart .woocommerce:not(.tgp-cart-v3):not(:has(*)) {
	display: none !important;
}

.tgp-cart-v3__empty-state {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: clamp(56px, 10vw, 96px) clamp(24px, 6vw, 48px) !important;
	gap: 20px !important;
}

.tgp-cart-v3__empty-icon {
	color: var(--cart-text-4) !important;
	line-height: 1 !important;
	margin-bottom: 4px !important;
}
.tgp-cart-v3__empty-icon svg {
	width: 56px !important;
	height: 56px !important;
	display: block !important;
}

.tgp-cart-v3__empty-msg {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	color: var(--cart-text-2) !important;
	letter-spacing: -0.01em !important;
	line-height: 1.4 !important;
}

.tgp-cart-v3__empty-cta {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin-top: 4px !important;
	padding: 13px 32px !important;
	border-radius: 100px !important;
	background: #ffffff !important;
	background-color: #ffffff !important;
	background-image: none !important;
	color: #0a0a0a !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
	text-decoration: none !important;
	transition: background 0.15s, color 0.15s !important;
	box-shadow: none !important;
	border: none !important;
	animation: none !important;
	filter: none !important;
	transform: none !important;
}
.tgp-cart-v3__empty-cta:hover,
.tgp-cart-v3__empty-cta:focus {
	background: #f0f0f0 !important;
	background-color: #f0f0f0 !important;
	background-image: none !important;
	color: #000000 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	filter: none !important;
	animation: none !important;
	transform: none !important;
}

/* Hide the default WooCommerce .wc-empty-cart-message and .return-to-shop
 * that may still fire via woocommerce_cart_is_empty action hooks          */
.tgp-cart-v3--empty .wc-empty-cart-message,
.tgp-cart-v3--empty .return-to-shop {
	display: none !important;
}

/* v3.8.0 — notices offset below fixed header / admin bar (mobile) */
body.woocommerce-cart .woocommerce-notices-wrapper:first-child {
	margin-top: calc(env(safe-area-inset-top, 0px) + clamp(52px, 14vw, 88px)) !important;
	scroll-margin-top: clamp(52px, 14vw, 88px) !important;
}
@media (min-width: 783px) {
	body.admin-bar.woocommerce-cart .woocommerce-notices-wrapper:first-child {
		margin-top: calc(env(safe-area-inset-top, 0px) + clamp(44px, 8vw, 64px)) !important;
	}
}

/* Level reward coupon — banner lives inside `.tgp-cart-v3__codes-strip` (see checkout-saas.css) */
.tgp-cart-v3__codes-strip > .tgp-cart-v3__reward-coupon-banner {
	grid-column: 1 / -1 !important;
}
.tgp-cart-v3__level-coupon-btn {
	min-height: 40px !important;
	padding: 0 18px !important;
	gap: 8px !important;
	border-radius: 8px !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	background: rgba(255, 255, 255, 0.06) !important;
	color: var(--cart-text) !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
}
.tgp-cart-v3__level-coupon-btn:disabled {
	opacity: 0.55 !important;
	cursor: wait !important;
}

/* Guest — hide Ghost Coins balance copy (earn pill may still show) */
body.woocommerce-cart:not(.logged-in) .tgp-ghc-card-v2__balance-row,
body.woocommerce-cart:not(.logged-in) .tgp-ghc-card-v2__balance-sentence,
body.woocommerce-cart:not(.logged-in) .tgp-ghc-card-v2__balance-num {
	display: none !important;
}

/* Remove button loading */
@keyframes tgp-cart-remove-spin {
	to { transform: rotate(360deg); }
}
a.tgp-cart-v3__remove.tgp-cart-v3__remove--loading {
	position: relative !important;
	color: transparent !important;
	pointer-events: none !important;
}
a.tgp-cart-v3__remove.tgp-cart-v3__remove--loading::after {
	content: "" !important;
	position: absolute !important;
	inset: 50% auto auto 50% !important;
	width: 14px !important;
	height: 14px !important;
	margin: -7px 0 0 -7px !important;
	border: 2px solid rgba(255, 255, 255, 0.35) !important;
	border-top-color: #fff !important;
	border-radius: 50% !important;
	animation: tgp-cart-remove-spin 0.7s linear infinite !important;
}
body.tgp-cart-removing {
	cursor: wait !important;
}

/* ─── MOBILE: restore smooth vertical scroll ─────────────────────
 * Sticky summary + `height:100%` main + Elementor min-height sections can
 * combine into a viewport-tall chain that fights touch scrolling (esp. iOS). */
@media (max-width: 782px) {
	body.woocommerce-cart #page,
	body.woocommerce-cart #wrapper,
	body.woocommerce-cart .site,
	body.woocommerce-cart main,
	body.woocommerce-cart #main,
	body.woocommerce-cart .site-main,
	body.woocommerce-cart .site-content,
	body.woocommerce-cart .entry-content,
	body.woocommerce-cart .elementor-widget-woocommerce-cart .elementor-widget-container {
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	@supports selector(:has(*)) {
		body.woocommerce-cart main .e-con:has(.tgp-cart-v3),
		body.woocommerce-cart #content .e-con:has(.tgp-cart-v3),
		body.woocommerce-cart .elementor-section:has(.tgp-cart-v3) {
			min-height: 0 !important;
			height: auto !important;
			max-height: none !important;
			overflow: visible !important;
		}
	}

	.tgp-cart-v3__main {
		height: auto !important;
		min-height: 0 !important;
	}

	.tgp-cart-v3__summary-sticky {
		position: relative !important;
		top: auto !important;
		min-height: 0 !important;
	}
}
