/**
 * Shopping Bag — WooCommerce Cart BLOCK (woocommerce/cart) — Cosmetiques-style.
 * Aggressive overrides to make the block match the demo on themes such as The7.
 */

/* -------------------------------------------------------------------------
   Tokens & typography
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart {
	--gs-cart-green: #1b4d2e;
	--gs-cart-green-hover: #133a22;
	--gs-cart-green-dark: #14361f;
	--gs-cart-cream: #f4ede0;
	--gs-cart-cream-tile: #efe7d6;
	--gs-cart-page-bg: #ffffff;
	--gs-cart-text: #1f1f1f;
	--gs-cart-muted: #767676;
	--gs-cart-muted-2: #9c9c9c;
	--gs-cart-sale: #1a8443;
	--gs-cart-discount: #b71c1c;
	--gs-cart-warn: #c0392b;
	--gs-cart-border: #e6e6e6;
	--gs-cart-border-soft: #efefef;
	--gs-cart-black-btn: #0f0f0f;
	--gs-cart-radius: 0;
	--gs-cart-font: 'Gotham', sans-serif !important;

	font-family: var(--gs-cart-font) !important;
	font-size: 15px !important;
	line-height: 1.55 !important;
	color: var(--gs-cart-text) !important;
	-webkit-font-smoothing: antialiased;
	background: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart *,
body.woocommerce-cart .wp-block-woocommerce-cart *::before,
body.woocommerce-cart .wp-block-woocommerce-cart *::after {
	box-sizing: border-box;
}

/* Page title: "Shopping bag (N)" + align with main cart column */
body.woocommerce-cart .gs-plugin-shopping-bag-cart-page-title-shell {
	display: grid;
	grid-template-columns: minmax(0, 1.95fr) minmax(280px, 1fr);
	column-gap: clamp(1.5rem, 3.5vw, 2.5rem);
	max-width: 1200px;
	width: 100%;
	margin: 30px auto 0;
	padding: 0;
	box-sizing: border-box;
}

body.woocommerce-cart .gs-plugin-shopping-bag-cart-page-title-shell > .wp-block-post-title {
	grid-column: 1;
	justify-self: stretch;
}

body.woocommerce-cart .wp-block-post-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart .entry-title,
body.woocommerce-cart h1.post-title {
	margin: 30px 0 0.85rem !important;
	padding: 0 0 1.1rem !important;
	border-bottom: 1px solid var(--gs-cart-border) !important;
	text-align: center !important;
	font-family: var(--gs-cart-font) !important;
	font-size: clamp(1rem, 1.6vw, 1.0625rem) !important;
	font-weight: 600 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--gs-cart-text) !important;
	line-height: 1.3 !important;
}

body.woocommerce-cart .gs-plugin-shopping-bag-cart-page-title-shell .wp-block-post-title {
	margin-top: 0 !important;
}

@media (max-width: 900px) {
	body.woocommerce-cart .gs-plugin-shopping-bag-cart-page-title-shell {
		grid-template-columns: 1fr;
		column-gap: 0;
	}
}

/* -------------------------------------------------------------------------
   Force usable width even when theme container is narrow.
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart {
	width: 100% !important;
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}

/* If our cart sits in a constrained .entry-content / .wf-wrap, encourage full width. */
body.woocommerce-cart .entry-content,
body.woocommerce-cart .post-content,
body.woocommerce-cart .wf-container-main .wf-wrap,
body.woocommerce-cart article.post,
body.woocommerce-cart .wp-block-post-content {
	max-width: none !important;
}

/* -------------------------------------------------------------------------
   Two-column grid (~ 66 / 34) regardless of theme container.
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart {
	display: grid !important;
	grid-template-columns: minmax(0, 1.95fr) minmax(280px, 1fr) !important;
	column-gap: clamp(1.5rem, 3.5vw, 2.5rem) !important;
	row-gap: 1.5rem !important;
	align-items: start !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	float: none !important;
}

@media (max-width: 900px) {
	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart {
		grid-template-columns: 1fr !important;
		column-gap: 0 !important;
	}
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-main,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__main {
	min-width: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	background: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar {
	position: sticky !important;
	top: 1rem !important;
	align-self: start !important;
	min-width: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

@media (max-width: 900px) {
	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__sidebar {
		position: static !important;
	}
}

/* -------------------------------------------------------------------------
   Items table → block list
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart table.wc-block-cart-items {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__header,
body.woocommerce-cart .wp-block-woocommerce-cart table.wc-block-cart-items thead {
	display: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart table.wc-block-cart-items tbody {
	display: block !important;
	width: 100% !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row {
	position: relative !important;
	display: grid !important;
	grid-template-columns: minmax(104px, 128px) minmax(0, 1fr) auto !important;
	grid-template-rows: auto auto minmax(0, 1fr) auto !important;
	column-gap: 1.25rem !important;
	row-gap: 0 !important;
	align-items: stretch !important;
	padding: 1.5rem 1.5rem 0 0 !important;
	border: none !important;
	border-bottom: 1px solid var(--gs-cart-border) !important;
	background: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	vertical-align: top;
}

/* Thumbnail: full row height (top border → bottom border), image fills cell */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image {
	grid-column: 1 !important;
	grid-row: 1 / -1 !important;
	width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	min-height: 100% !important;
	background: transparent !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: hidden !important;
	align-self: stretch !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image a,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image {
	line-height: 0 !important;
	height: 100% !important;
	min-height: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
	border-radius: 0 !important;
	mix-blend-mode: multiply;
	background: transparent !important;
}

/* Product cell: name + meta + spacer; bottom row = qty + unit price (line total is sibling td, same grid row) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__product {
	grid-column: 2 !important;
	grid-row: 1 / -1 !important;
	min-width: 0 !important;
	padding-right: 0.75rem !important;
	display: flex !important;
	flex-direction: column !important;
	align-self: stretch !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__wrap {
	display: grid !important;
	grid-template-columns: auto auto !important;
	grid-template-rows: auto auto minmax(0, 1fr) auto !important;
	grid-template-areas:
		"name name"
		"meta meta"
		". ."
		"qty price" !important;
	align-items: start !important;
	column-gap: 5px !important;
	row-gap: 0.35rem !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	min-height: 0 !important;
	height: 100% !important;
	flex: 1 1 auto !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-components-product-name {
	grid-area: name !important;
	display: inline-block !important;
	margin: 0 0 0.1rem !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: var(--gs-cart-text) !important;
	text-decoration: none !important;
	line-height: 1.35 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-components-product-name:hover {
	color: var(--gs-cart-green) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

/* Description / metadata */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata {
	grid-area: meta !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata__description {
	margin: 0 !important;
	font-size: 0.8125rem !important;
	line-height: 1.5 !important;
	color: var(--gs-cart-muted) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata__description p {
	margin: 0 0 0.25rem !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata__description p:last-child {
	margin: 0 !important;
}

/* Unit price: 5px from quantity; nudged down to align with line total (right column) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices {
	grid-area: price !important;
	justify-self: start !important;
	align-self: end !important;
	margin: 0 !important;
	padding-top: 3px !important;
	font-size: 0.9375rem !important;
	line-height: 1.2 !important;
	display: inline-flex !important;
	align-items: flex-end !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__quantity {
	grid-area: qty !important;
	justify-self: start !important;
	align-self: end !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-end !important;
	gap: 0.85rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Quantity selector */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector {
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--gs-cart-border) !important;
	border-radius: var(--gs-cart-radius) !important;
	background: #fff !important;
	overflow: hidden !important;
	width: auto !important;
	max-width: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__input {
	order: 2 !important;
	width: 2.5rem !important;
	min-width: 2.5rem !important;
	height: 2.25rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-left: 1px solid var(--gs-cart-border) !important;
	border-right: 1px solid var(--gs-cart-border) !important;
	border-radius: 0 !important;
	background: #fff !important;
	font: inherit !important;
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	text-align: center !important;
	color: var(--gs-cart-text) !important;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 2rem !important;
	min-width: 2rem !important;
	height: 2.25rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: var(--gs-cart-text) !important;
	font-size: 1.05rem !important;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button--minus {
	order: 1 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button--plus {
	order: 3 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	background: var(--gs-cart-cream) !important;
	color: var(--gs-cart-green) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector__button:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

/* Per-line price colors (sale) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price {
	display: inline-flex !important;
	align-items: flex-end !important;
	gap: 0.65rem;
	font-size: 0.9375rem !important;
	line-height: 1.2 !important;
	color: var(--gs-cart-text) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price del,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price .wc-block-formatted-money-amount[aria-hidden="true"] {
	color: var(--gs-cart-muted) !important;
	text-decoration: line-through !important;
	font-weight: 400 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price ins {
	text-decoration: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price ins .wc-block-formatted-money-amount {
	color: var(--gs-cart-sale) !important;
	font-weight: 600 !important;
}

/* Remove link — small trash icon top right (matches row padding) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
	position: absolute !important;
	top: 1.5rem !important;
	right: 1.5rem !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 1.85rem !important;
	height: 1.85rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	color: var(--gs-cart-muted-2) !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transition: color 0.15s ease;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link:hover {
	color: var(--gs-cart-warn) !important;
	background: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link svg {
	width: 18px !important;
	height: 18px !important;
	fill: currentColor !important;
}

/* Line total: same bottom grid row as qty + unit price, right column */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__total {
	grid-column: 3 !important;
	grid-row: 4 !important;
	align-self: end !important;
	padding-left: 0.5rem !important;
	padding-bottom: 0 !important;
	text-align: right !important;
	white-space: nowrap !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price {
	display: inline-flex !important;
	align-items: flex-end !important;
	gap: 0.55rem;
	font-size: 1rem !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;
	color: var(--gs-cart-text) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price del,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price .wc-block-formatted-money-amount[aria-hidden="true"] {
	color: var(--gs-cart-muted) !important;
	font-weight: 400 !important;
	text-decoration: line-through !important;
}

/* -------------------------------------------------------------------------
   Sidebar — order summary, OFFER CODE, checkout button
   ------------------------------------------------------------------------- */

/* Proceed to checkout first; express (PayPal) directly under it. Disable via filter gs_plugin_shopping_bag_cart_checkout_button_first */
body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-cart-totals-block {
	display: flex !important;
	flex-direction: column !important;
}

body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block {
	order: -20 !important;
	margin: 0 0 0.65rem !important;
}

body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-cart-express-payment-block {
	order: -15 !important;
	margin: 0 0 1rem !important;
}

body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-cart-order-summary-block {
	order: 0 !important;
}

body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-cart-accepted-payment-methods-block {
	order: 5 !important;
}

/* Coupon panel header (block "Add coupons" button) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon {
	margin: 0 0 1.25rem !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-panel__button {
	margin: 0 0 0.55rem !important;
	padding: 0 !important;
	background: transparent !important;
	color: var(--gs-cart-text) !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	border: none !important;
	cursor: pointer;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-panel__button-icon {
	width: 16px !important;
	height: 16px !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon-link {
	color: var(--gs-cart-text) !important;
}

/* Coupon input + APPLY button (when expanded) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon__form {
	display: flex !important;
	gap: 0.5rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-text-input {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-text-input input {
	height: 2.6rem !important;
	min-height: 2.6rem !important;
	padding: 0 0.75rem !important;
	border: 1px solid var(--gs-cart-border) !important;
	border-radius: var(--gs-cart-radius) !important;
	background: #fff !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 0.85rem !important;
	color: var(--gs-cart-text) !important;
	box-shadow: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-text-input label {
	display: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-button:not(.is-link) {
	flex: 0 0 auto !important;
	margin: 0 !important;
	height: 2.6rem !important;
	min-height: 2.6rem !important;
	padding: 0 1.25rem !important;
	background: var(--gs-cart-black-btn) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--gs-cart-radius) !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 0.7rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-button:not(.is-link):hover {
	background: #2a2a2a !important;
	opacity: 1 !important;
}

/* Order summary heading (renamed via ::before) */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__totals-title {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	font-size: 0 !important;
	color: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__totals-title::before {
	content: "Order summary";
	display: block;
	margin: 0 0 0.65rem;
	font-family: var(--gs-cart-font);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gs-cart-text);
	line-height: 1.3;
}

/* Totals rows */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-wrapper {
	margin: 0 !important;
	padding: 0.4rem 0 !important;
	border: none !important;
	border-bottom: 1px solid var(--gs-cart-border) !important;
	background: transparent !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-item {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	margin: 0 !important;
	padding: 0.2rem 0 !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 0.9rem !important;
	color: var(--gs-cart-text) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-item__label {
	font-weight: 400 !important;
	color: var(--gs-cart-text) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-item__value {
	font-weight: 500 !important;
	color: var(--gs-cart-text) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-item__description {
	flex: 1 1 100%;
	margin-top: 0.25rem !important;
	color: var(--gs-cart-muted) !important;
	font-size: 0.8rem !important;
}

/* Discount line — red */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-discount,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-totals-item__label,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-discount .wc-block-components-totals-item__label,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-discount .wc-block-formatted-money-amount {
	color: var(--gs-cart-discount) !important;
}

/* Shipping selector card */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-shipping {
	display: block !important;
	margin: 0 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-totals-item {
	flex-wrap: wrap;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-shipping-rates-control,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-shipping select {
	width: 100% !important;
	margin: 0.45rem 0 0 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-shipping-rates-control__package {
	border: 1px solid var(--gs-cart-border) !important;
	background: #fafafa !important;
	padding: 0.55rem 0.7rem !important;
	border-radius: var(--gs-cart-radius) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart select,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-combobox-control input {
	border: 1px solid var(--gs-cart-border) !important;
	border-radius: var(--gs-cart-radius) !important;
	background: #fff !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 0.9rem !important;
	color: var(--gs-cart-text) !important;
}

/* Footer "Estimated total" */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item {
	margin-top: 0.85rem !important;
	padding-top: 0.85rem !important;
	border-top: 1px solid var(--gs-cart-border) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: 1rem !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--gs-cart-text) !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	color: var(--gs-cart-text) !important;
}

/* -------------------------------------------------------------------------
   Submit / Proceed to checkout (full-width green CTA, lock icon)
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit,
body.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block {
	margin: 1rem 0 0 !important;
}

body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit,
body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block {
	margin: 0 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit-container {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit-container--sticky {
	box-shadow: none !important;
	border: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-cart__submit-button.wc-block-components-button,
body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-cart__submit-button.wc-block-components-button.contained,
body.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.6rem !important;
	width: 100% !important;
	min-height: 3.4rem !important;
	margin: 0 !important;
	padding: 1.1rem 1.25rem !important;
	background: var(--gs-cart-green) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--gs-cart-radius) !important;
	font-family: var(--gs-cart-font) !important;
	font-size: 0.82rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1.2 !important;
	box-shadow: none !important;
	transition: background 0.2s ease;
}

body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-cart__submit-button.wc-block-components-button:hover {
	background: var(--gs-cart-green-hover) !important;
	color: #fff !important;
}

/* Lock icon before checkout label */
body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-cart__submit-button .wc-block-components-button__text::before {
	content: "";
	display: inline-block;
	width: 1.05em;
	height: 1.05em;
	margin-right: 0.55rem;
	flex-shrink: 0;
	vertical-align: -0.1em;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M17 8h-1V6a5 5 0 0 0-10 0v2H5c-1.66 0-3 1.34-3 3v7c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3v-7c0-1.66-1.34-3-3-3zM9 6a3 3 0 0 1 6 0v2H9V6z'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.woocommerce-cart .wp-block-woocommerce-cart a.wc-block-cart__submit-button .wc-block-components-button__text {
	display: inline-flex !important;
	align-items: center !important;
}

/* Express payment buttons (PayPal etc.) — under checkout when checkout-first body class is set */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-express-payment {
	margin: 0 0 0.85rem !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

body.gs-plugin-shopping-bag-cart--checkout-first.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-cart-express-payment-block .wc-block-components-express-payment {
	margin-bottom: 0 !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-express-payment__title {
	display: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-express-payment__event-button {
	border-radius: var(--gs-cart-radius) !important;
}

/* Sidebar payment options block */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__payment-options:empty {
	display: none !important;
}

/* -------------------------------------------------------------------------
   Notices area
   ------------------------------------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-notices {
	margin-bottom: 1rem;
}

body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-notice-banner {
	border-radius: var(--gs-cart-radius) !important;
}

/* -------------------------------------------------------------------------
   Mobile
   ------------------------------------------------------------------------- */
@media (max-width: 600px) {
	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row {
		grid-template-columns: minmax(72px, 88px) minmax(0, 1fr) auto !important;
		grid-template-rows: auto auto minmax(0, 1fr) auto !important;
		column-gap: 0.75rem !important;
		padding: 1.25rem 1rem 0 0 !important;
	}

	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image {
		grid-column: 1 !important;
		grid-row: 1 / -1 !important;
	}

	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__product {
		grid-column: 2 !important;
		grid-row: 1 / -1 !important;
		padding-right: 0.35rem !important;
	}

	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__total {
		grid-column: 3 !important;
		grid-row: 4 !important;
		align-self: end !important;
		padding-left: 0.25rem !important;
		text-align: right !important;
	}

	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
		top: 1.25rem !important;
		right: 1rem !important;
	}
}