/* ============================================================
   WOOCOMMERCE — premium styling via CSS + hooks only.
   No template overrides: WC upgrades can never break the shop.
   ============================================================ */

.woocommerce { font-family: var(--font-body); }

/* WC fallback templates wrap in <div id="primary" class="content-area"> —
   constrain that to the design-system container. */
#main-content > .content-area {
	inline-size: min(100% - 2 * var(--gutter), var(--container));
	margin-inline: auto;
	padding-block: var(--space-xl) var(--section-y);
}

/* ---------- Generic WC elements ---------- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2xs);
	font-size: var(--text-sm);
	font-weight: 600;
	line-height: 1;
	padding: 1rem 1.75rem;
	border-radius: var(--radius-full);
	border: 1px solid transparent;
	background: var(--color-sage-tint);
	color: var(--color-ink);
	transition: transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background var(--dur-fast);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--color-linen); transform: translateY(-2px); color: var(--color-ink); }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #place_order {
	background: var(--gradient-clay) !important;
	color: var(--color-parchment) !important;
	box-shadow: var(--shadow-clay);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #place_order:hover {
	background: var(--gradient-clay) !important;
	transform: translateY(-2px);
	color: var(--color-parchment) !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border: 1px solid;
	border-radius: var(--radius-md);
	background: var(--color-sage-glow);
	border-color: var(--color-sage-tint);
	color: var(--text);
	padding: var(--space-md) var(--space-lg);
	font-size: var(--text-sm);
}
.woocommerce-message { border-color: #D6B8A1; background: #F0E3D8; }
.woocommerce-error { border-color: #E6C9BF; background: #F5E4DF; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

/* Price */
.woocommerce .price {
	font-family: var(--font-display);
	color: var(--text);
	font-size: var(--text-lg);
}
.woocommerce .price del { color: var(--text-mute); font-size: 0.8em; margin-inline-end: 0.4em; }
.woocommerce .price ins { text-decoration: none; color: var(--accent); }

/* ---------- Shop / product cards ---------- */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
	gap: var(--space-lg);
	margin: 0;
}
/* Reset WC's legacy float/width column system so the grid owns layout. */
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last {
	float: none;
	width: auto;
	margin: 0;
	clear: none;
}
.woocommerce ul.products li.product {
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	text-align: start;
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.woocommerce ul.products li.product a { display: grid; gap: var(--space-2xs); }
.woocommerce ul.products li.product img {
	border-radius: var(--radius-md);
	background: var(--color-sage-tint);
	margin: 0 0 var(--space-xs);
	inline-size: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
/* Products without photography still get a considered visual area. */
.woocommerce ul.products li.product img[src*="placeholder"],
.woocommerce ul.products li.product img:not([src]) {
	object-fit: cover;
	background:
		radial-gradient(80% 90% at 70% 20%, rgba(246, 241, 231, 0.35), transparent 60%),
		linear-gradient(150deg, var(--color-moss) 0%, var(--color-moss-soft) 100%);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: 500;
	padding: 0;
}
.woocommerce ul.products li.product .button { margin-block-start: var(--space-xs); }

.woocommerce span.onsale {
	background: var(--color-brass);
	color: var(--color-ink);
	border-radius: var(--radius-full);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	padding: 0.4em 1em;
	min-height: 0;
	line-height: 1.5;
	inset-block-start: var(--space-md);
	inset-inline-start: var(--space-md);
}

/* ---------- Single product (premium eCommerce) ---------- */

/* Contained container — never full-width */
.single-product .site-main > .woocommerce,
.single-product .woocommerce > .woocommerce-notices-wrapper:first-child + .product {
	max-inline-size: 72rem;
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.single-product div.product {
	display: grid;
	gap: clamp(2rem, 4vw, 4rem);
	grid-template-columns: 1fr;
	padding-block: var(--space-xl) var(--space-2xl);
}
@media (min-width: 880px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		align-items: start;
	}
	.single-product div.product .woocommerce-tabs,
	.single-product div.product section.related,
	.single-product div.product .related.products { grid-column: 1 / -1; }
}

/* Neutralise WC legacy floats */
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto !important;
	max-inline-size: 100%;
}

/* --- Image: contained, balanced, premium --- */
.woocommerce div.product .woocommerce-product-gallery {
	position: relative;
	background: var(--color-vellum, var(--bg-raised));
	border: 1px solid var(--border);
	border-radius: var(--radius-card-a);
	padding: clamp(1rem, 2.5vw, 1.75rem);
	box-shadow: var(--shadow-sm);
}
.woocommerce div.product .woocommerce-product-gallery__image {
	display: block;
	border-radius: var(--radius-lg);
	overflow: clip;
	background: var(--color-cream);
}
.woocommerce div.product .woocommerce-product-gallery__image img {
	inline-size: 100%;
	block-size: auto;
	max-block-size: 30rem;
	object-fit: contain;
	border-radius: var(--radius-lg);
	transition: transform var(--dur-slow) var(--ease-out);
}
.woocommerce div.product .woocommerce-product-gallery__image:hover img {
	transform: scale(1.04);
}
/* Placeholder never dominates */
.woocommerce div.product .woocommerce-product-gallery__image img.woocommerce-placeholder,
.woocommerce div.product .woocommerce-product-gallery__image img[src*="placeholder"] {
	max-block-size: 16rem;
	object-fit: contain;
	padding: var(--space-xl);
}
/* Thumbnails */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	gap: var(--space-xs);
	margin-block-start: var(--space-md);
	padding: 0;
}
.woocommerce div.product .flex-control-thumbs li {
	inline-size: 4.25rem;
	border-radius: var(--radius-md);
	overflow: clip;
	border: 2px solid transparent;
	opacity: 0.65;
	transition: opacity var(--dur-fast), border-color var(--dur-fast);
}
.woocommerce div.product .flex-control-thumbs li:hover,
.woocommerce div.product .flex-control-thumbs li.flex-active {
	opacity: 1;
	border-color: var(--color-clay);
}
.woocommerce div.product .flex-control-thumbs li img { inline-size: 100%; }

/* --- Summary: hierarchy + breathing room --- */
.woocommerce div.product div.summary {
	background: var(--color-vellum, var(--bg-raised));
	border: 1px solid var(--border);
	border-radius: var(--radius-card-b);
	padding: clamp(1.75rem, 3.5vw, 2.75rem);
	box-shadow: var(--shadow-sm);
	display: flex;
	flex-direction: column;
}
@media (min-width: 880px) {
	.woocommerce div.product div.summary {
		position: sticky;
		inset-block-start: calc(var(--header-h) + var(--adminbar-h, 0px) + var(--space-lg));
	}
}
.woocommerce div.product .product_title {
	font-size: clamp(1.9rem, 1.5rem + 1.8vw, 2.6rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin-block-end: var(--space-sm);
}
/* Rating row */
.woocommerce div.product .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: var(--space-2xs);
	margin-block-end: var(--space-md);
	font-size: var(--text-sm);
	color: var(--text-mute);
}
.woocommerce div.product .woocommerce-product-rating .star-rating { color: var(--color-brass); }
/* Price: the decision number */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 1.5rem + 1.4vw, 2.3rem);
	color: var(--color-clay);
	margin-block-end: var(--space-md);
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	font-size: 0.6em;
	color: var(--text-mute);
	font-weight: 400;
	margin-inline-end: var(--space-2xs);
}
.woocommerce div.product p.price ins { text-decoration: none; }
/* Short description */
.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: var(--text-base);
	line-height: var(--leading-body);
	color: var(--text-soft);
	padding-block-end: var(--space-lg);
	margin-block-end: var(--space-lg);
	border-block-end: 1px solid var(--border);
}
.woocommerce div.product .woocommerce-product-details__short-description p { max-width: 52ch; }

/* Stock badge */
.woocommerce div.product .stock {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2xs);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	padding: 0.4em 1em;
	border-radius: var(--radius-full);
	background: #EFE1D7;
	color: var(--color-success);
	margin-block-end: var(--space-md);
}
.woocommerce div.product .stock.out-of-stock { background: #F0DCD6; color: var(--color-error); }

/* --- Purchase area --- */
.woocommerce div.product form.cart {
	display: flex;
	gap: var(--space-sm);
	align-items: stretch;
	flex-wrap: wrap;
	margin-block-end: var(--space-md);
}
.woocommerce div.product form.cart .quantity { margin: 0; }
.woocommerce .quantity .qty {
	border: 1.5px solid var(--border);
	border-radius: var(--radius-full);
	padding: 0.85rem 1.1rem;
	inline-size: 5.25rem;
	background: var(--color-cream);
	font-weight: 600;
	text-align: center;
	block-size: 100%;
}
.woocommerce .quantity .qty:focus { outline: 2px solid var(--color-clay-tint); border-color: var(--color-clay); }
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
	flex: 1 1 auto;
	min-inline-size: 12rem;
	border-radius: var(--radius-full);
	background: var(--gradient-clay);
	color: var(--color-parchment);
	font-weight: 700;
	font-size: var(--text-base);
	padding: 1rem 2rem;
	border: 0;
	box-shadow: var(--shadow-clay);
	transition: transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base), opacity var(--dur-fast);
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product .single_add_to_cart_button:hover {
	transform: translateY(-2px) rotate(-0.4deg);
	box-shadow: 0 16px 40px rgba(176, 86, 47, 0.34);
	color: var(--color-parchment);
}
.woocommerce div.product form.cart .button:disabled { opacity: 0.5; box-shadow: none; }

/* Variations */
.woocommerce div.product form.variations_form .variations { margin-block-end: var(--space-md); }
.woocommerce div.product form.variations_form .variations td { display: block; padding-block-end: var(--space-2xs); }
.woocommerce div.product form.variations_form .variations label { font-weight: 600; font-size: var(--text-sm); }
.woocommerce div.product form.variations_form .variations select {
	inline-size: 100%;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--color-cream);
	padding: 0.8rem 1rem;
	font: inherit;
}
.woocommerce div.product .woocommerce-variation-price { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-clay); }
.woocommerce div.product .woocommerce-variation-availability { font-size: var(--text-sm); }
.woocommerce div.product .reset_variations { font-size: var(--text-xs); color: var(--accent); }

/* Meta row */
.woocommerce div.product .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs) var(--space-lg);
	padding-block-start: var(--space-md);
	border-block-start: 1px solid var(--border);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	letter-spacing: 0.04em;
	color: var(--text-mute);
}
.woocommerce div.product .product_meta > span { display: inline-flex; gap: var(--space-3xs); }
.woocommerce div.product .product_meta a { color: var(--accent); }

/* Mobile sticky purchase bar */
@media (max-width: 640px) {
	.single-product div.product form.cart:not(.variations_form) {
		position: sticky;
		inset-block-end: var(--space-xs);
		background: color-mix(in srgb, var(--color-vellum, var(--bg-raised)) 92%, transparent);
		backdrop-filter: blur(10px);
		padding: var(--space-sm);
		border-radius: var(--radius-lg);
		border: 1px solid var(--border);
		box-shadow: var(--shadow-lg);
		z-index: 10;
	}
}

/* Tabs (description / reviews) */
.woocommerce div.product .woocommerce-tabs { margin-block-start: var(--space-xl); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	border: 0;
	padding: 0;
	display: flex;
	gap: var(--space-2xs);
	margin-block-end: var(--space-md);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--color-sage-tint);
	border: 0;
	border-radius: var(--radius-full);
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 0.7rem 1.4rem;
	font-weight: 600;
	font-size: var(--text-sm);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--bg-dark); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--text-on-dark); }
.woocommerce div.product .woocommerce-tabs .panel {
	background: var(--color-vellum, var(--bg-raised));
	border: 1px solid var(--border);
	border-radius: var(--radius-card-a);
	padding: clamp(1.5rem, 3vw, 2.5rem);
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { margin-block-end: var(--space-md); }

/* Reviews */
.woocommerce div.product #reviews .commentlist { display: grid; gap: var(--space-md); padding: 0; }
.woocommerce div.product #reviews .commentlist li {
	background: var(--color-cream);
	border: 1px solid var(--border);
	border-radius: var(--radius-card-b);
	padding: var(--space-lg);
}
.woocommerce div.product #reviews .commentlist .star-rating { color: var(--color-brass); }
.woocommerce div.product #reviews .comment-form .comment-form-rating label { font-weight: 600; }

/* Related products */
.woocommerce div.product section.related.products { clear: both; }

/* ---------- Transaction pages: task first, decoration second ---------- */

body.woocommerce-cart .c-page-hero,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero {
	padding-block: clamp(1rem, 3vw, 1.75rem);
	background: var(--color-vellum);
	color: var(--text);
	border-block-end: 1px solid var(--border);
}
body.woocommerce-cart .c-page-hero::after,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero::after { display: none; }
body.woocommerce-cart .c-page-hero h1,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero h1 {
	font-size: clamp(2rem, 4vw, var(--text-3xl));
	margin-block-start: var(--space-xs) !important;
}
body.woocommerce-cart .c-page-hero .c-breadcrumbs,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero .c-breadcrumbs { color: var(--text-mute); }
body.woocommerce-cart #main-content > .section,
body.woocommerce-checkout:not(.woocommerce-order-received) #main-content > .section {
	padding-block: clamp(1.25rem, 4vw, 3rem);
}

/* ---------- Cart (mobile-first premium) ---------- */

.woocommerce-cart .woocommerce {
	inline-size: min(100% - 2 * var(--gutter), var(--container));
	margin-inline: auto;
}

.woocommerce-cart table.shop_table {
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
}

@media (max-width: 859px) {
	/* The page container already supplies its mobile gutter. A second cart
	   gutter plus WC's intrinsic table width caused a sideways viewport. */
	.woocommerce-cart .woocommerce { inline-size: 100%; }
	.woocommerce-cart table.shop_table,
	.woocommerce-cart table.shop_table tbody { display: block; inline-size: 100%; min-inline-size: 0; }
	.woocommerce-cart table.shop_table tr.cart_item { box-sizing: border-box; inline-size: 100%; min-inline-size: 0; }
	.woocommerce-cart table.shop_table td.actions { display: grid; inline-size: 100%; min-inline-size: 0; }
	.woocommerce-cart table.shop_table td.actions .coupon { display: grid; grid-template-columns: 1fr; inline-size: 100%; min-inline-size: 0; }
	.woocommerce-cart table.shop_table td.actions .coupon input.input-text,
	.woocommerce-cart table.shop_table td.actions .coupon .button,
	.woocommerce-cart table.shop_table td.actions > .button { box-sizing: border-box; inline-size: 100%; min-inline-size: 0; }
}

/* Header row: desktop only */
.woocommerce-cart table.shop_table thead { display: none; }
@media (min-width: 860px) {
	.woocommerce-cart table.shop_table thead { display: table-header-group; }
	.woocommerce-cart table.shop_table th {
		font-family: var(--font-mono);
		font-size: var(--text-xs);
		letter-spacing: var(--tracking-wide);
		text-transform: uppercase;
		color: var(--text-mute);
		border-block-end: 1px solid var(--border);
		padding: 0 var(--space-md) var(--space-sm);
	}
}

/* Cart item = card on every viewport */
.woocommerce-cart table.shop_table tr.cart_item {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas:
		"name remove"
		"qty  subtotal";
	align-items: center;
	gap: var(--space-sm) var(--space-md);
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	margin-block-end: var(--space-md);
	box-shadow: var(--shadow-xs);
	transition: box-shadow var(--dur-base) var(--ease-out);
}
.woocommerce-cart table.shop_table tr.cart_item:hover { box-shadow: var(--shadow-md); }
/* Most studio products are image-free — thumbnail only earns its place on desktop. */
.woocommerce-cart td.product-thumbnail { display: none; }

@media (min-width: 860px) {
	.woocommerce-cart table.shop_table tr.cart_item {
		display: table-row;
		background: var(--bg-raised);
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}
	.woocommerce-cart table.shop_table.cart {
		background: var(--bg-raised);
		border: 1px solid var(--border);
		border-radius: var(--radius-lg);
		overflow: clip;
	}
	.woocommerce-cart table.shop_table td { padding: var(--space-md); border-block-end: 1px solid var(--color-linen); }
	.woocommerce-cart table.shop_table tr.cart_item:last-of-type td { border-block-end: 0; }
}

/* Cells in card mode — override WC core's responsive pseudo-labels
   (specificity must beat WC's .woocommerce table.shop_table_responsive tr td) */
.woocommerce-cart table.shop_table tr.cart_item td { display: block; padding: 0; border: 0; text-align: left !important; }
.woocommerce-cart table.shop_table tr.cart_item td::before { content: none !important; display: none !important; }
.woocommerce-cart td.product-remove { grid-area: remove; align-self: start; }
.woocommerce-cart td.product-thumbnail { grid-area: thumb; }
.woocommerce-cart td.product-name { grid-area: name; }
.woocommerce-cart td.product-quantity { grid-area: qty; }
.woocommerce-cart td.product-subtotal { grid-area: subtotal; justify-self: end; font-family: var(--font-display); font-size: var(--text-lg); }
.woocommerce-cart td.product-name { text-align: left !important; }
.woocommerce-cart td.product-price { display: none !important; } /* consolidated into subtotal */
@media (min-width: 860px) {
	.woocommerce-cart td.product-price { display: table-cell !important; }
}
@media (min-width: 860px) {
	.woocommerce-cart table.shop_table td { display: table-cell; }
}

/* Thumbnail (desktop only) */
@media (min-width: 860px) {
	.woocommerce-cart td.product-thumbnail { display: table-cell; }
	.woocommerce-cart td.product-thumbnail img {
		inline-size: 5.5rem;
		block-size: auto;
		border-radius: var(--radius-md);
		background: var(--color-sage-tint);
	}
}

/* Product name + session meta */
.woocommerce-cart .cart_item .product-name > a {
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: 600;
}
.woocommerce-cart .cart_item .product-name .variation,
.woocommerce-cart .cart_item .product-name dl { font-size: var(--text-sm); color: var(--text-soft); margin-block-start: var(--space-3xs); }
.woocommerce-cart .cart_item .product-name dt { font-weight: 600; }
.woocommerce-cart .cart_item .product-name dd { margin: 0; }

/* Remove — always visible, touch-friendly */
.woocommerce a.remove {
	color: var(--color-error) !important;
	border: 1.5px solid currentColor;
	border-radius: var(--radius-full);
	inline-size: 2.1rem;
	block-size: 2.1rem;
	display: grid;
	place-items: center;
	font-size: 1.15rem;
	line-height: 1;
	transition: all var(--dur-fast) var(--ease-out);
}
.woocommerce a.remove:hover {
	background: var(--color-error) !important;
	color: var(--color-parchment) !important;
	transform: rotate(90deg);
}

/* Quantity pill */
.woocommerce .quantity .qty {
	border: 1px solid var(--border);
	border-radius: var(--radius-full);
	padding: 0.6rem 0.9rem;
	inline-size: 4.6rem;
	text-align: center;
	background: var(--bg-raised);
	font-family: var(--font-mono);
}
.woocommerce .quantity .qty:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--color-clay-tint); }

/* Cart actions row (coupon + update) */
.woocommerce-cart table.shop_table td.actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: space-between;
	padding: var(--space-md) 0 0;
	border: 0;
	background: transparent;
}
.woocommerce .coupon { display: flex; gap: var(--space-2xs); flex-wrap: wrap; flex: 1; min-inline-size: min(100%, 18rem); }
.woocommerce .coupon input.input-text {
	flex: 1;
	min-inline-size: 10rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-full);
	padding: 0.85rem 1.25rem;
	background: var(--bg-raised);
}
.woocommerce .coupon input.input-text:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--color-clay-tint); }
.woocommerce button.button[name="update_cart"] {
	border-radius: var(--radius-full);
}

/* Cart totals — card, sticky on desktop */
.woocommerce .cart-collaterals {
	margin-block-start: var(--space-xl);
}
@media (min-width: 860px) {
	.woocommerce .cart-collaterals {
		display: grid;
		grid-template-columns: 1fr minmax(20rem, 26rem);
		gap: var(--space-xl);
		align-items: start;
	}
	.woocommerce .cart-collaterals::before { content: ""; } /* spacer column */
	.woocommerce .cart-collaterals .cart_totals {
		grid-column: 2;
		position: sticky;
		inset-block-start: calc(var(--header-h) + var(--space-lg));
	}
}
.woocommerce .cart-collaterals .cart_totals {
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--space-xl);
	box-shadow: var(--shadow-md);
	min-inline-size: min(100%, 20rem);
}
.woocommerce .cart-collaterals .cart_totals h2 { font-size: var(--text-xl); margin-block-end: var(--space-md); }
.woocommerce .cart-collaterals table.shop_table { border: 0; background: transparent; inline-size: 100%; }
.woocommerce .cart-collaterals table.shop_table tr { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md); }
.woocommerce .cart-collaterals table.shop_table th,
.woocommerce .cart-collaterals table.shop_table td { padding: var(--space-xs) 0; border: 0; font-size: var(--text-base); text-align: right !important; }
.woocommerce .cart-collaterals table.shop_table th { font-weight: 600; text-align: left !important; }
.woocommerce .cart-collaterals table.shop_table tr.order-total {
	border-block-start: 1px solid var(--border);
	margin-block-start: var(--space-sm);
	padding-block-start: var(--space-md);
}
.woocommerce .cart-collaterals table.shop_table tr.order-total th,
.woocommerce .cart-collaterals table.shop_table tr.order-total td {
	font-family: var(--font-display);
	font-size: var(--text-xl);
}
.woocommerce .wc-proceed-to-checkout { margin-block-start: var(--space-lg); }
.woocommerce .wc-proceed-to-checkout .checkout-button,
.woocommerce-page .wc-proceed-to-checkout .checkout-button {
	display: block !important;
	inline-size: 100%;
	box-sizing: border-box;
	text-align: center;
	font-size: var(--text-base) !important;
	padding: 1.15rem 2.2rem !important;
	border-radius: var(--radius-full) !important;
	white-space: normal;
}

/* Empty cart */
.woocommerce-cart .cart-empty.woocommerce-info {
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--space-xl);
	text-align: center;
	font-family: var(--font-display);
	font-size: var(--text-lg);
}

/* ---------- Checkout (mobile-first responsive) ---------- */

/* Login/coupon reminder notices as cards */
.woocommerce .woocommerce-form-login-toggle,
.woocommerce .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-info {
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	padding: var(--space-md) var(--space-lg);
	font-size: var(--text-sm);
	margin-block-end: var(--space-md);
}
.woocommerce .woocommerce-form-login-toggle,
.woocommerce .woocommerce-form-coupon-toggle {
	padding: 0;
	border: 0;
	background: transparent;
}
.woocommerce-checkout .woocommerce-info a { color: var(--accent); font-weight: 600; }

/* Login form inside checkout */
.woocommerce form.woocommerce-form-login {
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	margin-block-end: var(--space-md);
}

/* Billing columns always full-width on mobile, side-by-side ≥860px */
.woocommerce form.checkout .col2-set .col-1,
.woocommerce form.checkout .col2-set .col-2 {
	inline-size: 100%;
	float: none;
}
.woocommerce form.checkout .woocommerce-billing-fields,
.woocommerce form.checkout .woocommerce-shipping-fields,
.woocommerce form.checkout .woocommerce-additional-fields {
	padding: clamp(1rem, 3vw, 1.6rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-card-b);
	background: linear-gradient(145deg, var(--color-vellum), var(--bg-raised));
}
.woocommerce form.checkout .woocommerce-billing-fields > h3,
.woocommerce form.checkout .woocommerce-shipping-fields > h3,
.woocommerce form.checkout .woocommerce-additional-fields > h3 {
	margin-block: 0 1rem;
	font-size: var(--text-xl);
}
@media (min-width: 900px) {
	.woocommerce form.checkout .col2-set { inline-size: 55%; float: left; }
	.woocommerce form.checkout #order_review_heading,
	.woocommerce form.checkout #order_review { inline-size: 40%; float: right; clear: right; }
	.woocommerce form.checkout::after { content: ""; display: table; clear: both; }
}
@media (max-width: 899px) {
	/* Order review AFTER billing on mobile, both full-width cards */
	.woocommerce form.checkout #order_review_heading,
	.woocommerce form.checkout #order_review { inline-size: 100%; float: none; clear: both; }
	.woocommerce #order_review { margin-block-start: var(--space-lg); }
}

/* Order review + payment as clean cards */
.woocommerce #order_review table.shop_table {
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--bg-raised);
}
.woocommerce #order_review table.shop_table th,
.woocommerce #order_review table.shop_table td {
	padding: var(--space-sm) var(--space-md);
	font-size: var(--text-sm);
}
.woocommerce #order_review table.shop_table tfoot th { font-weight: 600; }

/* Place order: full-width, unmissable on mobile */
.woocommerce #payment .form-row.place-order { padding: 0; }
.woocommerce #place_order {
	display: block;
	inline-size: 100%;
	box-sizing: border-box;
	text-align: center;
	font-size: var(--text-base) !important;
	padding: 1.1rem 1.5rem !important;
	border-radius: var(--radius-full) !important;
	margin-block-start: var(--space-md);
}

.woocommerce form.checkout {
	display: block;
}

/* Stripe express checkout (Apple Pay / Google Pay / Link) above step 1. Its
   "— OR —" divider is a <p>: lift base.css's 68ch cap so it centres. */
.woocommerce form.checkout #wc-stripe-express-checkout-button-separator {
	max-inline-size: none;
	color: var(--text-mute);
	font-size: var(--text-sm);
	letter-spacing: .08em;
}
.woocommerce form.checkout .form-row { margin-block-end: var(--space-md); }
.woocommerce form.checkout label { font-size: var(--text-sm); font-weight: 600; color: var(--text-soft); margin-block-end: var(--space-2xs); }
.woocommerce form.checkout input.input-text,
.woocommerce form.checkout textarea,
.woocommerce form.checkout select {
	inline-size: 100%;
	background: var(--bg-raised);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 0.9rem 1.1rem;
	transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.woocommerce form.checkout input.input-text:focus,
.woocommerce form.checkout textarea:focus,
.woocommerce form.checkout select:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--color-clay-tint);
}
.woocommerce #order_review {
	background: linear-gradient(145deg, var(--bg-raised), var(--color-vellum));
	border: 1px solid var(--border);
	border-radius: var(--radius-card-a);
	padding: var(--space-xl);
	box-shadow: var(--shadow-sm);
}
.woocommerce #order_review_heading { font-size: var(--text-xl); }
.woocommerce #payment {
	background: transparent;
	border: 0;
	border-radius: 0;
}
.woocommerce #payment div.payment_box {
	background: var(--color-sage-glow);
	border-radius: var(--radius-md);
}
.woocommerce #payment div.payment_box::before { border-bottom-color: var(--color-sage-glow); }
.woocommerce #payment ul.payment_methods li {
	border-radius: var(--radius-md);
	margin-block-end: var(--space-xs);
}

/* ---------- Order received / thank you ---------- */

body.woocommerce-order-received .woocommerce {
	inline-size: min(100%, 72rem);
	margin-inline: auto;
}
body.woocommerce-order-received .c-page-hero {
	/* WooCommerce pages already offset #main-content below the fixed header. */
	padding-block: var(--space-xl);
}
body.woocommerce-order-received .c-page-hero h1 { font-size: var(--text-3xl); }
.yoga-thanks {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1.45fr) minmax(13rem, .7fr);
	align-items: center;
	gap: clamp(1rem, 3vw, 2rem);
	margin-block: var(--space-md) var(--space-xl);
	padding: clamp(1.4rem, 4vw, 3rem);
	border: 1px solid color-mix(in srgb, var(--color-brass) 35%, var(--border));
	border-radius: var(--radius-card-a);
	background:
		radial-gradient(circle at 90% 12%, rgba(217, 164, 65, .14), transparent 15rem),
		linear-gradient(145deg, var(--color-vellum), var(--color-sage-glow));
	box-shadow: var(--shadow-lg);
	overflow: clip;
}
.yoga-thanks::after {
	content: "";
	position: absolute;
	inset-inline-end: -2.5rem;
	inset-block-end: -3.5rem;
	inline-size: 10rem;
	block-size: 10rem;
	border: 1px solid rgba(168, 132, 50, .2);
	border-radius: 50%;
	box-shadow: inset 0 0 0 1.8rem transparent, inset 0 0 0 calc(1.8rem + 1px) rgba(168, 132, 50, .12), inset 0 0 0 3.6rem transparent, inset 0 0 0 calc(3.6rem + 1px) rgba(168, 132, 50, .1);
	pointer-events: none;
}
.yoga-thanks__mark {
	display: grid;
	place-items: center;
	inline-size: clamp(3.5rem, 7vw, 5rem);
	block-size: clamp(3.5rem, 7vw, 5rem);
	border: 1px solid var(--color-success);
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);
	color: var(--color-success);
}
.yoga-thanks__mark svg { inline-size: 55%; block-size: 55%; }
.yoga-thanks__copy { position: relative; z-index: 1; }
.yoga-thanks__eyebrow {
	margin-block-end: .35rem;
	font: 700 var(--text-xs) / 1.4 var(--font-mono);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	color: var(--color-success);
}
.yoga-thanks h1 { max-inline-size: 18ch; font-size: var(--text-3xl); line-height: var(--leading-tight); text-wrap: balance; }
.yoga-thanks__copy > p:not(.yoga-thanks__eyebrow) { max-inline-size: 46rem; margin-block-start: var(--space-sm); color: var(--text-soft); }
.yoga-thanks__actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm); margin-block-start: var(--space-lg); }
.yoga-thanks__actions .button { margin: 0 !important; }
.yoga-thanks__secondary { color: var(--accent); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.yoga-thanks__summary {
	position: relative;
	z-index: 1;
	display: grid;
	gap: var(--space-xs);
	padding-inline-start: var(--space-lg);
	border-inline-start: 1px dashed color-mix(in srgb, var(--color-brass) 55%, var(--border));
}
.yoga-thanks__summary span { display: grid; gap: .12rem; color: var(--text-mute); font: 600 var(--text-xs) / 1.35 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; }
.yoga-thanks__summary strong { color: var(--text); font: 600 var(--text-xl) / 1.15 var(--font-display); text-transform: none; letter-spacing: 0; }
body.woocommerce-order-received .woocommerce-thankyou-order-received { display: none; }

.woocommerce .woocommerce-order-overview {
	/* One receipt strip: a single card whose cells share hairline dividers
	   (1px grid gap over a brass hairline background). */
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
	gap: 1px;
	margin-block: var(--space-lg) var(--space-xl);
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--color-brass) 35%, var(--border));
	border-radius: var(--radius-card-a);
	background: color-mix(in srgb, var(--color-brass) 28%, var(--border));
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	list-style: none;
}
/* WooCommerce's clearfix pseudo is a full grid item here — retire it.
   (Plugin css uses `.woocommerce ul.order_details::before`, so this needs
   the ul + both classes to out-rank it.) */
.woocommerce ul.woocommerce-order-overview.order_details::before,
.woocommerce ul.woocommerce-order-overview.order_details::after { display: none; }
.woocommerce .woocommerce-order-overview li {
	/* display:block — Chrome shrinks `list-item` grid items by the outside
	   marker offset, which broke the hairline grid. */
	position: relative;
	display: block;
	list-style: none;
	margin: 0;
	inline-size: 100%; /* upstream li width rules defeat grid stretch */
	padding: var(--space-lg) clamp(1.2rem, 3vw, 1.7rem);
	background: linear-gradient(160deg, #fffdf9, var(--color-vellum));
	font: 600 var(--text-xs) / 1.4 var(--font-mono);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	color: var(--text-mute);
	min-width: 0;
}
.woocommerce .woocommerce-order-overview li::first-line { color: inherit; }
.woocommerce .woocommerce-order-overview li strong {
	display: block;
	margin-block-start: .35rem;
	font: 600 var(--text-base) / 1.35 var(--font-mono);
	letter-spacing: 0;
	text-transform: none;
	color: var(--text);
	overflow-wrap: anywhere;
}
/* Corner cells clear the card's generous radius — works in both the 4-up
   and 2x2 arrangements because corners are always the first/last cells. */
.woocommerce .woocommerce-order-overview li:first-child {
	padding-inline-start: clamp(1.5rem, 5vw, 2.4rem);
}
.woocommerce .woocommerce-order-overview li:last-child {
	padding-inline-end: clamp(1.5rem, 5vw, 2.4rem);
}
/* The total gets the display treatment — it is the number people scan for. */
.woocommerce .woocommerce-order-overview li.woocommerce-order-overview__total strong {
	font: 600 var(--text-xl) / 1.2 var(--font-display);
	color: var(--accent);
}

body.woocommerce-order-received .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-customer-details {
	margin-block-start: var(--space-xl);
	padding: clamp(1.1rem, 3vw, 2rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-card-c);
	background: var(--color-vellum);
}
body.woocommerce-order-received .woocommerce-order-details h2,
body.woocommerce-order-received .woocommerce-customer-details h2 { font-size: var(--text-2xl); }

@media (max-width: 840px) {
	.yoga-thanks { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
	.yoga-thanks__summary { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: var(--space-md) 0 0; border-inline-start: 0; border-block-start: 1px dashed color-mix(in srgb, var(--color-brass) 55%, var(--border)); }
}
@media (max-width: 560px) {
	.yoga-thanks { grid-template-columns: 1fr; border-radius: var(--radius-card-b); }
	.yoga-thanks__mark { inline-size: 3.5rem; block-size: 3.5rem; }
	.yoga-thanks h1 { font-size: var(--text-2xl); }
	.yoga-thanks__actions { align-items: stretch; flex-direction: column; }
	.yoga-thanks__actions .button,
	.yoga-thanks__secondary { inline-size: 100%; text-align: center; }
	.yoga-thanks__summary { grid-column: auto; grid-template-columns: 1fr; }
	.woocommerce .woocommerce-order-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce .woocommerce-order-overview li { padding: var(--space-md); }
}

/* ---------- My Account ---------- */

@media (min-width: 900px) {
	.woocommerce-account .woocommerce::after { content: ""; display: table; clear: both; }
	.woocommerce-account .woocommerce-MyAccount-navigation {
		float: left;
		inline-size: 25%;
		position: sticky;
		top: calc(var(--header-h, 80px) + 1.5rem);
	}
	.woocommerce-account .woocommerce-MyAccount-content { float: right; inline-size: 71%; }
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	padding: 0.75rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-card-c);
	background: linear-gradient(150deg, var(--color-vellum), var(--color-sage-glow));
	box-shadow: var(--shadow-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation::before {
	content: "My studio";
	display: block;
	padding: 0.55rem 0.75rem 0.8rem;
	font: 700 var(--text-xs) var(--font-mono);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--accent);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	display: grid;
	gap: var(--space-3xs);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.75rem 1.1rem;
	border-radius: var(--radius-sm);
	font-size: var(--text-sm);
	font-weight: 500;
	color: var(--text-soft);
	transition: background var(--dur-fast), color var(--dur-fast);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
	content: "";
	inline-size: 0.42rem;
	block-size: 0.42rem;
	border: 1px solid currentColor;
	border-radius: 50%;
	transition: background var(--dur-fast), transform var(--dur-fast);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--color-sage-tint);
	color: var(--text);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before { background: var(--accent); border-color: var(--accent); transform: scale(1.15); }
.woocommerce-account .woocommerce-MyAccount-content {
	background: linear-gradient(155deg, var(--bg-raised), var(--color-vellum));
	border: 1px solid var(--border);
	border-radius: var(--radius-card-a);
	padding: var(--space-xl);
	box-shadow: var(--shadow-sm);
}

/* Credit/pill styling for yoga account content */
.yoga-credit-pill {
	display: inline-flex;
	align-items: baseline;
	gap: var(--space-2xs);
	background: var(--color-brass-tint);
	color: #7A6118;
	font-family: var(--font-mono);
	border-radius: var(--radius-full);
	padding: 0.4em 1em;
	font-size: var(--text-sm);
}

.yoga-account-home {
	display: grid;
	gap: var(--space-lg);
	margin-block-start: var(--space-lg);
	padding: clamp(1.2rem, 3vw, 2rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-card-a);
	background: linear-gradient(135deg, var(--color-vellum) 0%, var(--color-sage-glow) 100%);
	box-shadow: var(--shadow-sm);
}
.yoga-account-home__eyebrow {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--accent);
}
.yoga-account-home__intro h2 { margin-block: var(--space-2xs); font-size: var(--text-2xl); }
.yoga-account-home__intro p { margin: 0; color: var(--text-soft); }
.yoga-account-home__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-sm); }
.yoga-account-home__stats a {
	display: grid;
	gap: 0.15rem;
	padding: var(--space-md);
	border: 1px solid color-mix(in srgb, var(--color-brass) 35%, var(--border));
	border-radius: var(--radius-card-b);
	background: color-mix(in srgb, var(--color-parchment) 82%, transparent);
	color: var(--text);
}
.yoga-account-home__stats strong { font: 600 var(--text-3xl) / 1 var(--font-display); color: var(--accent); }
.yoga-account-home__stats a.is-attention { border-color: color-mix(in srgb, var(--accent) 65%, var(--border)); background: var(--color-clay-tint); }
.yoga-account-home__stats span { font: var(--text-xs) var(--font-mono); text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-mute); }
.yoga-account-home__actions { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.yoga-account-home__actions a {
	display: inline-flex;
	padding: 0.6rem 1rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-full);
	background: var(--color-parchment);
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--text);
}
.yoga-account-home__actions a:hover,
.yoga-account-home__actions a:focus-visible { border-color: var(--accent); color: var(--accent); }
.yoga-account-home__note { margin: 0; padding-block-start: var(--space-sm); border-block-start: 1px dashed var(--border); font-size: var(--text-sm); color: var(--text-mute); }

@media (max-width: 560px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { margin-block-end: var(--space-lg); }
	.woocommerce-account .woocommerce-MyAccount-content { padding: var(--space-md); }
	.yoga-account-home__stats { grid-template-columns: 1fr; }
	.yoga-account-home__actions { display: grid; }
}

/* ---------- Store notices / breadcrumbs ---------- */

.woocommerce .woocommerce-breadcrumb {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--text-mute);
	margin-block-end: var(--space-lg);
}
.woocommerce .woocommerce-breadcrumb a { color: var(--accent); }

.woocommerce-result-count,
.woocommerce-ordering select {
	font-size: var(--text-sm);
}
.woocommerce-ordering select {
	border: 1px solid var(--border);
	border-radius: var(--radius-full);
	padding: 0.6rem 1.1rem;
	background: var(--bg-raised);
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: var(--space-3xs);
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--border);
	border-radius: var(--radius-full) !important;
	background: var(--bg-raised);
	padding: 0.6rem 1.1rem;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--bg-dark);
	color: var(--text-on-dark);
	border-color: var(--bg-dark);
}

/* ============================================================
 * Norfolk transaction pages — compact horizon headers and calm
 * checkout surfaces keep the actual task above the fold.
 * ============================================================ */
body.woocommerce-cart .c-page-hero,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero {
	padding-block: 0.7rem;
	background:
		radial-gradient(100% 180% at 12% 50%, rgba(234, 219, 203, 0.86), transparent 62%),
		linear-gradient(90deg, rgba(255, 255, 255, 0.42), transparent 68%),
		var(--color-parchment);
}
body.woocommerce-cart .c-page-hero > .container,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero > .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	min-block-size: 4.5rem;
}
body.woocommerce-cart .c-page-hero h1,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero h1 {
	margin: 0 !important;
	font-size: clamp(1.65rem, 3vw, 2.2rem);
	letter-spacing: -0.025em;
}
body.woocommerce-cart .c-page-hero .c-breadcrumbs,
body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero .c-breadcrumbs {
	margin: 0;
	background: rgba(255, 255, 255, 0.8);
}
body.woocommerce-cart #main-content > .section,
body.woocommerce-checkout:not(.woocommerce-order-received) #main-content > .section {
	padding-block: clamp(1rem, 3vw, 2rem);
}

.woocommerce-cart table.shop_table tr.cart_item {
	border-color: rgba(184, 132, 102, 0.3);
	border-radius: 1rem;
	background: rgba(246, 247, 241, 0.72);
	box-shadow: 0 8px 24px rgba(31, 49, 43, 0.06);
}
.woocommerce-cart .cart_item .product-name a { color: var(--color-moss); }
.woocommerce-cart table.shop_table td.actions {
	margin-block-start: 0.75rem;
	padding: 0.85rem;
	border: 1px solid rgba(184, 132, 102, 0.28);
	border-radius: 0.85rem;
	background: rgba(238, 241, 234, 0.65);
}
.woocommerce .coupon input.input-text { background: rgba(255, 255, 255, 0.72); }
.woocommerce .cart-collaterals .cart_totals {
	padding: clamp(1.1rem, 3vw, 1.6rem);
	border-color: rgba(184, 132, 102, 0.36);
	border-radius: 1rem;
	background: linear-gradient(145deg, rgba(234, 219, 203, 0.72), rgba(251, 247, 239, 0.92));
	box-shadow: 0 10px 28px rgba(31, 49, 43, 0.08);
}

.woocommerce .woocommerce-form-login-toggle,
.woocommerce .woocommerce-form-coupon-toggle {
	display: inline-flex;
	margin-block-end: 0.7rem;
}
.woocommerce .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0;
	padding: 0.55rem 0.8rem;
	border-color: rgba(184, 132, 102, 0.34);
	border-radius: 999px;
	background: rgba(238, 241, 234, 0.76);
}
.woocommerce form.checkout .woocommerce-billing-fields,
.woocommerce form.checkout .woocommerce-shipping-fields,
.woocommerce form.checkout .woocommerce-additional-fields {
	padding: clamp(1rem, 2.5vw, 1.4rem);
	border-color: rgba(184, 132, 102, 0.3);
	border-radius: 1rem;
	background: rgba(246, 247, 241, 0.76);
}
.woocommerce form.checkout input.input-text,
.woocommerce form.checkout textarea,
.woocommerce form.checkout select { background: rgba(255, 255, 255, 0.76); }
.woocommerce form.checkout input.input-text:focus,
.woocommerce form.checkout textarea:focus,
.woocommerce form.checkout select:focus {
	border-color: var(--color-field-sage);
	box-shadow: 0 0 0 3px rgba(216, 185, 162, 0.42);
}
.woocommerce #order_review {
	padding: clamp(1rem, 2.5vw, 1.4rem);
	border-color: rgba(184, 132, 102, 0.36);
	border-radius: 1rem;
	background: linear-gradient(145deg, rgba(234, 219, 203, 0.7), rgba(251, 247, 239, 0.94));
	box-shadow: 0 10px 28px rgba(31, 49, 43, 0.08);
}
.woocommerce #order_review table.shop_table {
	border-color: rgba(184, 132, 102, 0.3);
	background: rgba(255, 255, 255, 0.56);
}
.woocommerce #payment div.payment_box { background: rgba(216, 185, 162, 0.38); }
.woocommerce #payment div.payment_box::before { border-bottom-color: rgba(216, 185, 162, 0.38); }

@media (min-width: 900px) {
	.woocommerce form.checkout #order_review {
		position: sticky;
		inset-block-start: calc(var(--header-h-scrolled, 4rem) + 1rem);
	}
}

@media (max-width: 680px) {
	body.woocommerce-cart .c-page-hero > .container,
	body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero > .container {
		align-items: flex-start;
		flex-direction: column-reverse;
		gap: 0.45rem;
		min-block-size: 0;
	}
	body.woocommerce-cart .c-page-hero h1,
	body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero h1 { font-size: 1.65rem; }
	body.woocommerce-cart .c-page-hero .c-breadcrumbs,
	body.woocommerce-checkout:not(.woocommerce-order-received) .c-page-hero .c-breadcrumbs {
		max-inline-size: 100%;
		overflow: hidden;
		white-space: nowrap;
	}
	.woocommerce-cart table.shop_table td.actions { display: grid; }
	.woocommerce .coupon { display: grid; grid-template-columns: 1fr; }
	.woocommerce .coupon input.input-text,
	.woocommerce .coupon button { inline-size: 100% !important; }
}
