/* ==========================================================================
   Emily H&B — WooCommerce mapping
   --------------------------------------------------------------------------
   assets/css/components.css defines the primitives. This file points
   WooCommerce and Kadence markup at them, so the shop renders as designed
   without rebuilding any Woo template.

   SCOPE NOTE, from the Figma file (four separate frames carry this warning):

     Cart and Checkout are built with WooCommerce's standard Cart/Checkout
     Blocks. Block order, field placement, step flow and grid structure are
     platform defaults.
       Customisable:     colour, type, corner radius, spacing, copy, icons
       NOT customisable: block order, field structure, step flow

   Everything below stays inside that line. If a rule here starts reordering
   or restructuring Woo blocks, it is out of scope and belongs in a
   conversation with the client, not in this file.

   Selectors are written against WooCommerce 8.x/9.x block and classic markup.
   They have not been verified against the live staging install — check them
   in the browser during the QA pass and adjust rather than adding !important.
   ========================================================================== */

/* ==========================================================================
   Buttons
   Every Woo and Gutenberg button takes the primary pill.
   ========================================================================== */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 24px;
	background: var(--ehb-brand-orchid);
	border: 0;
	border-radius: var(--ehb-radius-pill);
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-label-button);
	line-height: 1;
	letter-spacing: var(--ehb-ls-label-button);
	text-indent: var(--ehb-ls-label-button);
	text-transform: uppercase;
	color: var(--ehb-text-on-dark);
	text-decoration: none;
	transition: background-color 150ms ease-out;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.wc-block-components-button:hover,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.wc-block-components-button:focus-visible {
	background: var(--ehb-brand-rose-plum);
	color: var(--ehb-text-on-dark);
}

.woocommerce button.button:disabled,
.woocommerce input.button:disabled,
.wc-block-components-button:disabled {
	background: var(--ehb-line-strong);
	color: var(--ehb-text-muted);
	cursor: not-allowed;
}

/* Woo's secondary actions — "Continue shopping", "Update cart" — take the
   outlined variant so the primary action on the page stays singular. */
.woocommerce a.button.wc-backward,
.woocommerce button[name='update_cart'],
.wc-block-components-button.outlined {
	background: transparent;
	color: var(--ehb-brand-rose-plum);
	box-shadow: inset 0 0 0 1.5px var(--ehb-brand-rose-plum);
}

.woocommerce a.button.wc-backward:hover,
.woocommerce button[name='update_cart']:hover,
.wc-block-components-button.outlined:hover {
	background: var(--ehb-surface-blush);
	color: var(--ehb-brand-rose-plum);
}

/* ==========================================================================
   Product loop card — Figma "Product Card"
   ========================================================================== */

.woocommerce ul.products li.product,
.wc-block-grid__product,
.wp-block-post-template li.product {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: var(--ehb-radius-lg);
	overflow: hidden;
	position: relative;
	transition: border-color 150ms ease-out, box-shadow 150ms ease-out;
}

.woocommerce ul.products li.product:hover,
.wc-block-grid__product:hover,
.wp-block-post-template li.product:hover {
	border-color: var(--ehb-line-strong);
	box-shadow: 0 8px 28px rgba(36, 18, 31, 0.1);
}

/* The tinted well behind the packshot. Lilac is the Health default; the
   Beauty tint is applied by product category — see the body/term class
   below, which must be emitted by the archive template. */
.woocommerce ul.products li.product a.woocommerce-loop-image-link,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a.woocommerce-loop-product__link:first-child,
.wc-block-grid__product-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 5;
	flex-shrink: 0;
	/* Figma card image well 360×450 */
	background: var(--ehb-surface-lilac);
	padding: var(--ehb-space-12);
	box-sizing: border-box;
	margin: 0;
	position: relative;
	overflow: hidden;
}

.woocommerce ul.products li.product a.woocommerce-loop-image-link img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link:first-child img,
.wc-block-grid__product-image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 5;
	background: transparent;
	padding: 0;
	margin: 0;
	object-fit: contain;
}

/* Out of stock packshot is dimmed in Figma (opacity 0.45) */
.woocommerce ul.products li.product.outofstock a img,
.woocommerce ul.products li.product.outofstock .attachment-woocommerce_thumbnail {
	opacity: 0.45;
}

.product_cat-skincare ul.products li.product a.woocommerce-loop-image-link,
.product_cat-beauty ul.products li.product a.woocommerce-loop-image-link,
.woocommerce ul.products li.product.ehb-beauty a.woocommerce-loop-image-link {
	background: var(--ehb-surface-blush);
}

.woocommerce ul.products li.product .product-details {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 7px;
	padding: 16px 16px 18px;
	background: transparent;
	margin: 0;
}

.woocommerce ul.products li.product .ehb-card-eyebrow {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ehb-brand-rose-plum);
	padding: 0;
	margin: 0;
}

.woocommerce ul.products li.product>.ehb-card-eyebrow {
	padding: 16px 16px 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
	padding: 0;
	margin: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title a {
	color: var(--ehb-text-ink);
	text-decoration: none;
}

.woocommerce ul.products li.product .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--ehb-space-8);
	padding: 0;
	margin: 0;
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-semibold);
	font-size: 16px;
	line-height: 22px;
	font-variant-numeric: tabular-nums;
	color: var(--ehb-text-ink);
}

.woocommerce ul.products li.product .price del {
	display: none;
}

.woocommerce ul.products li.product .price ins {
	background: transparent;
	color: var(--ehb-text-ink);
	text-decoration: none;
}

.woocommerce ul.products li.product .price .ehb-price-suffix {
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
}

/* Hide card excerpt on product grid */
.woocommerce ul.products li.product .product-excerpt {
	display: none;
}

/* Product action button — always visible pill */
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap,
.woocommerce ul.products li.product .product-action-wrap {
	display: block;
	position: static;
	opacity: 1;
	visibility: visible;
	margin-top: auto;
	padding: 8px 0 0;
	width: 100%;
	transform: none;
}

.woocommerce ul.products.woo-archive-action-on-hover li.product:hover .product-action-wrap {
	transform: none;
}

.woocommerce ul.products.woo-archive-action-on-hover li.product:hover .entry-content-wrap,
.woocommerce ul.products.woo-archive-action-on-hover li.product .entry-content-wrap {
	transform: none;
}

.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap .button,
.woocommerce ul.products li.product .button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
	padding: 13px var(--ehb-space-8);
	margin: 0;
	background: var(--ehb-brand-orchid);
	border: 0;
	border-radius: var(--ehb-radius-pill);
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 12px;
	line-height: 15px;
	letter-spacing: 0.48px;
	text-indent: 0.48px;
	text-transform: uppercase;
	color: var(--ehb-text-on-dark);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 150ms ease-out, border-color 150ms ease-out;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible {
	background: var(--ehb-brand-rose-plum);
	color: var(--ehb-text-on-dark);
}

/* Out of stock card button variant: Raised pill with subtle border and muted text — Figma 192:863 */
.woocommerce ul.products.woo-archive-action-on-hover li.product.outofstock .product-action-wrap .button,
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap .button.ehb-button--outofstock,
.woocommerce ul.products li.product.outofstock .button,
.woocommerce ul.products li.product .button.ehb-button--outofstock {
	background: var(--ehb-surface-raised);
	border: 1px solid var(--ehb-line-subtle);
	color: var(--ehb-text-muted);
}

.woocommerce ul.products.woo-archive-action-on-hover li.product.outofstock .product-action-wrap .button:hover,
.woocommerce ul.products.woo-archive-action-on-hover li.product.outofstock .product-action-wrap .button:focus-visible,
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap .button.ehb-button--outofstock:hover,
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap .button.ehb-button--outofstock:focus-visible,
.woocommerce ul.products li.product.outofstock .button:hover,
.woocommerce ul.products li.product.outofstock .button:focus-visible,
.woocommerce ul.products li.product .button.ehb-button--outofstock:hover,
.woocommerce ul.products li.product .button.ehb-button--outofstock:focus-visible {
	background: var(--ehb-surface-blush);
	border-color: var(--ehb-brand-rose-plum);
	color: var(--ehb-brand-rose-plum);
}

/* Hide Kadence inline SVG icons inside loop button */
.woocommerce ul.products li.product .button .kadence-svg-iconset {
	display: none;
}

/* ==========================================================================
   Badges — Figma "Badge"
   Woo only ships the sale flash. The other five states are emitted by the
   theme in the component pass that follows; the classes are defined here so
   both sources land on the same pill.
   ========================================================================== */

.woocommerce ul.products li.product span.onsale,
.woocommerce ul.products li.product .ehb-stock-badge,
.woocommerce span.onsale,
.wc-block-grid__product-onsale {
	position: absolute;
	top: var(--ehb-space-12);
	left: var(--ehb-space-12);
	right: auto;
	inset-inline-start: var(--ehb-space-12);
	inset-inline-end: auto;
	min-height: 0;
	min-width: 0;
	padding: var(--ehb-space-4) var(--ehb-space-8);
	background: var(--ehb-status-sale);
	border-radius: var(--ehb-radius-pill);
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-label-badge);
	line-height: var(--ehb-lh-label-badge);
	letter-spacing: var(--ehb-ls-label-badge);
	text-indent: var(--ehb-ls-label-badge);
	text-transform: uppercase;
	color: var(--ehb-text-on-dark);
	margin: 0;
	z-index: 2;
}

/* ==========================================================================
   Star rating & Card Review row — Figma 192:835
   ========================================================================== */

.woocommerce ul.products li.product .star-rating {
	display: none;
}

.ehb-card-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
	text-align: left;
}

.ehb-card-rating .ehb-card-rating__stars {
	font-size: 12px;
	line-height: 1;
	letter-spacing: 1px;
	color: var(--ehb-text-muted);
}

.ehb-card-rating .ehb-card-rating__text {
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
	white-space: nowrap;
}

.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
	color: var(--ehb-brand-magenta);
}

.woocommerce .woocommerce-review-link {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-caption);
	color: var(--ehb-text-muted);
	text-decoration: none;
}

/* ==========================================================================
   Single Product (PDP) — Figma 194:81 (Desktop 1440) & 212:726 (Mobile 390)
   ========================================================================== */

/* Outer container resets for full-bleed sections */
.single-product .content-container.site-container {
	max-width: 100%;
	width: 100%;
	padding-inline: 0;
}

.single-product #primary.content-area {
	max-width: 100%;
	width: 100%;
	padding-inline: 0;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}

.single-product div.product {
	display: block;
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
	padding: 0;
	box-sizing: border-box;
}

/* Hide floating sale flash and default meta */
.single-product span.onsale,
.single-product .onsale,
.single-product .product_meta,
.single-product p.stock {
	display: none;
}

/* Product Top row (660px gallery + 60px gap + 480px buy box = 1200px) */
.single-product .ehb-pdp-top-wrapper {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	width: 100%;
	max-width: var(--ehb-content-width, 1200px);
	margin-inline: auto;
	padding-top: 56px;
	padding-bottom: 0;
	box-sizing: border-box;
}

.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery {
	flex: 0 0 660px;
	width: 660px;
	max-width: 660px;
	margin: 0;
	padding: 0;
	float: none;
}

.single-product .ehb-pdp-top-wrapper .summary.entry-summary {
	flex: 0 0 480px;
	width: 480px;
	max-width: 480px;
	margin: 0;
	padding: 0;
	float: none;
}

/* Gallery main image (660x560px, blush #f7eaf1, radius 14px, centered packshot 300x382px) */
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 660px;
	height: 560px;
	min-height: 560px;
	background: var(--ehb-surface-blush, #f7eaf1);
	border-radius: 14px;
	overflow: hidden;
	box-sizing: border-box;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
	max-width: 300px;
	max-height: 382px;
	width: auto;
	height: auto;
	object-fit: contain;
	margin: auto;
	display: block;
}

.single-product .woocommerce-product-gallery__trigger {
	display: none;
}

/* Thumbnails (Figma 194:157: 4 items, 100px height, radius 8px, active border 2px solid magenta) */
.ehb-pdp-thumbnails {
	display: flex;
	gap: 14px;
	width: 660px;
	margin-top: 16px;
	margin-bottom: 0;
	padding: 0;
	box-sizing: border-box;
}

.ehb-pdp-thumb {
	flex: 0 0 calc((660px - 42px) / 4);
	width: calc((660px - 42px) / 4);
	max-width: 155px;
	height: 100px;
	background: var(--ehb-surface-raised, #fbf7fa);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	cursor: pointer;
	transition: border-color 150ms ease;
}

.ehb-pdp-thumb img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

.ehb-pdp-thumb--active {
	border: 2px solid var(--ehb-brand-magenta, #b93c7b);
	background: #ffffff;
}

/* Buy box styling */
.single-product div.summary .ehb-pdp-eyebrow {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ehb-brand-magenta, #b93c7b);
	margin: 0 0 10px 0;
}

.single-product div.summary .product_title {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 40px;
	line-height: 48px;
	letter-spacing: -0.6px;
	color: var(--ehb-text-ink);
	margin: 0 0 16px 0;
}

.single-product div.summary .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px 0;
	font-size: 14px;
	color: var(--ehb-brand-magenta, #b93c7b);
}

.single-product div.summary .woocommerce-product-rating .star-rating {
	color: var(--ehb-brand-magenta, #b93c7b);
	font-size: 14px;
}

.single-product div.summary .woocommerce-product-rating .woocommerce-review-link {
	font-family: var(--ehb-font-body);
	font-size: 12px;
	color: var(--ehb-text-muted);
}

.single-product div.summary p.price,
.single-product div.summary span.price {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 28px;
	line-height: 34px;
	letter-spacing: -0.28px;
	font-variant-numeric: tabular-nums;
	color: var(--ehb-text-ink);
	margin: 0 0 4px 0;
}

.single-product div.summary p.price del {
	font-weight: 400;
	font-size: var(--ehb-size-body-small);
	color: var(--ehb-text-muted);
}

.single-product div.summary p.price ins {
	background: transparent;
	color: var(--ehb-status-sale);
	text-decoration: none;
}

.single-product div.summary .ehb-pdp-tax-note {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	margin: 0 0 20px 0;
}

.single-product div.summary .ehb-tiered-offer {
	background: var(--ehb-surface-blush, #f7eaf1);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: 8px;
	padding: 16px 18px;
	margin: 0 0 20px 0;
	box-sizing: border-box;
}

.single-product div.summary .ehb-tiered-offer__title {
	display: block;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
	margin: 0 0 6px 0;
}

.single-product div.summary .ehb-tiered-offer__copy {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body, #3d2c36);
	margin: 0;
}

/* Quantity Stepper & Add to Cart button row */
.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 16px 0;
}

.woocommerce div.product form.cart .quantity {
	display: inline-flex;
	align-items: center;
	height: 48px;
	background: var(--ehb-surface-paper, #ffffff);
	border: 1px solid var(--ehb-line-strong, #d3c3cf);
	border-radius: var(--ehb-radius-pill);
	padding: 0;
	margin: 0;
	box-sizing: border-box;
	overflow: hidden;
}

.woocommerce div.product form.cart .quantity .ehb-qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 100%;
	background: transparent;
	border: none;
	padding: 0;
	margin: 0;
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-medium);
	font-size: 16px;
	color: var(--ehb-text-body, #3d2c36);
	cursor: pointer;
	user-select: none;
	transition: color 150ms ease;
}

.woocommerce div.product form.cart .quantity .ehb-qty-btn:hover {
	color: var(--ehb-brand-magenta, #b93c7b);
}

.woocommerce div.product form.cart .quantity input.qty {
	width: 38px;
	height: 100%;
	padding: 0;
	margin: 0;
	background: transparent;
	border: none;
	text-align: center;
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-medium);
	font-size: 16px;
	color: var(--ehb-text-ink);
	-moz-appearance: textfield;
}

.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 0 0;
	min-width: 0;
	width: auto;
	height: 48px;
	padding: 0 30px;
	background: var(--ehb-brand-orchid);
	border-radius: var(--ehb-radius-pill);
	border: none;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 14px;
	line-height: 48px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: #ffffff;
	cursor: pointer;
	transition: background-color 150ms ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--ehb-brand-rose-plum, #944c72);
}

/* Shipping & Stock meta row */
.single-product div.summary .ehb-pdp-meta-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 16px;
	margin-bottom: 0;
}

.single-product div.summary .ehb-stock-badge--pill {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	align-self: flex-start;
	padding: 4px 8px;
	background: var(--ehb-surface-paper, #ffffff);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: var(--ehb-radius-pill);
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 9px;
	line-height: 11px;
	letter-spacing: 0.54px;
	text-transform: uppercase;
	color: var(--ehb-status-in-stock, #2f6b52);
}

.single-product div.summary .ehb-afterpay-note {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	margin: 0;
}

/* Product tabs (Figma 195:157 & 213:791) */
.woocommerce div.product .woocommerce-tabs {
	display: block;
	width: 100%;
	max-width: var(--ehb-content-width, 1200px);
	margin-inline: auto;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: var(--ehb-space-24, 24px);
	padding-bottom: var(--ehb-space-72, 72px);
	padding-inline: 0;
	box-sizing: border-box;
}

@media (max-width: 1248px) {

	.single-product .ehb-pdp-top-wrapper,
	.woocommerce div.product .woocommerce-tabs {
		padding-inline: var(--ehb-gutter, 24px);
	}
}

/* Tablet 768–1199: the desktop row below is a fixed 660px gallery + 480px
   summary (1140px content, no shrink) — it only fits once the viewport has
   room for 1140px plus gutters. Below that it still renders side by side but
   with no room, so the gallery keeps its full width and the summary (buy
   box) is squeezed to whatever pixels are left, wrapping text one letter per
   line. Stack the same way the <768px rule already does, until there is
   really enough width for two columns. */
@media (min-width: 768px) and (max-width: 1199px) {
	.single-product .ehb-pdp-top-wrapper {
		flex-direction: column;
		gap: 32px;
	}

	/* .woocommerce-product-gallery.images: the extra .images qualifier (the
	   element carries it already) matches WooCommerce core's own
	   ".woocommerce div.product div.images" rule (0,3,2) on specificity —
	   plain ".woocommerce-product-gallery" alone (0,3,0) loses to it and the
	   48% width leaks through. */
	.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery.images,
	.single-product .ehb-pdp-top-wrapper .summary.entry-summary {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
	}

	.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery .woocommerce-product-gallery__image {
		width: 100%;
		max-width: 100%;
	}
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: var(--ehb-space-32, 32px);
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--ehb-line-subtle, #e7dce5);
	list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 0 -1px;
	padding: 0;
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 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 {
	display: block;
	padding: 0 0 14px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-medium);
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0.28px;
	color: var(--ehb-text-muted);
	text-decoration: none;
	transition: color 150ms ease;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-bottom-color: var(--ehb-brand-magenta, #b93c7b);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--ehb-text-ink);
}

/* Mobile responsive (390px) */
@media (max-width: 767px) {
	.single-product .content-container.site-container {
		padding-inline: 0;
		max-width: 100%;
	}

	.single-product div.product {
		display: block;
		width: 100%;
		padding: 0;
		margin: 0;
	}

	.single-product .ehb-pdp-top-wrapper {
		display: flex;
		flex-direction: column;
		width: 100%;
		max-width: 100%;
		padding-top: 0;
		padding-bottom: 32px;
		gap: 0;
	}

	.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery {
		flex: none;
		width: 100%;
		max-width: 100%;
		margin: 0;
		padding: 0;
		float: none;
	}

	.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery .woocommerce-product-gallery__image {
		width: 100%;
		height: auto;
		min-height: unset;
		aspect-ratio: 1 / 1;
		border-radius: 0;
		background: var(--ehb-surface-blush, #f7eaf1);
	}

	.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery .woocommerce-product-gallery__image img {
		max-width: 220px;
		max-height: 280px;
	}

	.ehb-pdp-thumbnails {
		display: none;
	}

	.single-product .ehb-pdp-top-wrapper .summary.entry-summary {
		flex: none;
		width: 100%;
		max-width: 100%;
		padding: 24px 16px 32px;
		margin: 0;
		box-sizing: border-box;
		float: none;
	}

	.single-product div.summary .product_title {
		font-size: 30px;
		line-height: 38px;
		letter-spacing: -0.3px;
		margin-bottom: 12px;
	}

	.single-product div.summary p.price,
	.single-product div.summary span.price {
		font-size: 30px;
		line-height: 38px;
		letter-spacing: -0.3px;
		margin-bottom: 2px;
	}

	.single-product div.summary .ehb-pdp-tax-note {
		font-size: 14px;
		line-height: 22px;
		margin-bottom: 16px;
	}

	.single-product div.summary .ehb-tiered-offer {
		padding: 14px 16px;
		margin-bottom: 16px;
	}

	.woocommerce div.product form.cart {
		gap: 12px;
		margin-bottom: 16px;
	}

	.single-product div.summary .ehb-afterpay-note {
		font-size: 12px;
		line-height: 18px;
	}

	.woocommerce div.product .woocommerce-tabs {
		padding-top: var(--ehb-space-8, 8px);
		padding-bottom: var(--ehb-space-40, 40px);
		padding-inline: var(--ehb-gutter, 16px);
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs {
		display: flex;
		flex-direction: column;
		gap: 0;
		border-bottom: 0;
		width: 100%;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		margin: 0;
		padding: 0;
		border-bottom: 1px solid var(--ehb-line-subtle, #e7dce5);
		border-radius: 0;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 16px 0;
		font-family: var(--ehb-font-display);
		font-weight: var(--ehb-weight-semibold, 600);
		font-size: 16px;
		line-height: 22px;
		color: var(--ehb-text-ink);
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li a::after {
		content: '+';
		font-family: var(--ehb-font-body);
		font-weight: 400;
		font-size: 16px;
		color: var(--ehb-text-muted);
		margin-left: auto;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
		border-bottom-color: var(--ehb-line-subtle, #e7dce5);
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after {
		content: '−';
	}

	/* Sticky Add to Cart Bar (Figma 213:933, height 73px) */
	.ehb-sticky-bar--pdp {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 999;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		height: 73px;
		padding: 12px 16px;
		background: var(--ehb-surface-paper, #ffffff);
		border-top: 1px solid var(--ehb-line-subtle, #e7dce5);
		box-shadow: 0 -4px 16px rgba(36, 19, 32, 0.08);
		box-sizing: border-box;
	}

	.ehb-sticky-bar--pdp .ehb-sticky-bar__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		max-width: 100%;
		margin: 0;
	}

	.ehb-sticky-bar--pdp .ehb-sticky-bar__price {
		display: flex;
		flex-direction: column;
		flex-shrink: 0;
	}

	.ehb-sticky-bar--pdp .ehb-sticky-bar__amount {
		font-family: var(--ehb-font-body);
		font-weight: var(--ehb-weight-semibold, 600);
		font-size: 18px;
		line-height: 26px;
		color: var(--ehb-text-ink);
	}

	.ehb-sticky-bar--pdp .ehb-sticky-bar__tax {
		font-family: var(--ehb-font-body);
		font-size: 12px;
		line-height: 18px;
		color: var(--ehb-text-muted);
	}

	.ehb-sticky-bar--pdp .ehb-sticky-bar__action {
		flex: 1 0 0;
		min-width: 0;
		height: 48px;
		padding: 0 24px;
		background: var(--ehb-brand-orchid);
		border: none;
		border-radius: var(--ehb-radius-pill);
		font-family: var(--ehb-font-display);
		font-weight: var(--ehb-weight-bold);
		font-size: 14px;
		letter-spacing: 1.12px;
		text-transform: uppercase;
		color: #ffffff;
		cursor: pointer;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* Replace bottom nav on PDP on mobile (Figma node 213:933) */
	.single-product #mobile-footer-nav,
	.single-product .kadence-mobile-bottom-nav {
		display: none;
	}

	body.single-product {
		padding-bottom: 73px;
	}
}

/* ==========================================================================
   Archive toolbar — Figma "Toolbar"
   ========================================================================== */

.woocommerce .woocommerce-result-count {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-muted);
	margin: 0;
}

.woocommerce .woocommerce-ordering select {
	padding: 9px 14px;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-md);
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	color: var(--ehb-text-ink);
}

/* ==========================================================================
   Pagination — Figma "Pagination"
   ========================================================================== */

.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	margin: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	justify-content: center;
	gap: var(--ehb-space-8);
	padding: var(--ehb-space-8) 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-md);
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	color: var(--ehb-text-body);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a.current {
	background: var(--ehb-brand-magenta);
	border-color: var(--ehb-brand-magenta);
	color: var(--ehb-text-on-dark);
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: var(--ehb-brand-magenta);
	color: var(--ehb-brand-magenta);
	background: var(--ehb-surface-paper);
}

/* ==========================================================================
   Breadcrumb — Figma "Breadcrumb"
   ========================================================================== */

.woocommerce .woocommerce-breadcrumb,
.kadence-breadcrumbs {
	display: flex;
	align-items: center;
	gap: var(--ehb-space-8);
	padding: 18px var(--ehb-gutter);
	border-bottom: 1px solid var(--ehb-line-subtle);
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-muted);
}

.woocommerce .woocommerce-breadcrumb a,
.kadence-breadcrumbs a {
	color: var(--ehb-text-muted);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover,
.kadence-breadcrumbs a:hover {
	color: var(--ehb-brand-magenta);
	text-decoration: underline;
}

.woocommerce .woocommerce-breadcrumb [aria-current='page'],
.woocommerce .woocommerce-breadcrumb .breadcrumb_last,
.kadence-breadcrumbs [aria-current='page'],
.kadence-breadcrumbs .breadcrumb_last {
	color: var(--ehb-text-body);
}

/* ==========================================================================
   Cart and Checkout blocks
   Colour, type, radius and spacing only — see the scope note at the top.
   ========================================================================== */

/* Form controls — Figma "Form Field". */
.wc-block-components-text-input input[type='text'],
.wc-block-components-text-input input[type='email'],
.wc-block-components-text-input input[type='tel'],
.wc-block-components-text-input input[type='number'],
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select {
	padding: 14px var(--ehb-space-16);
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-md);
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-base);
	line-height: var(--ehb-lh-body-base);
	color: var(--ehb-text-ink);
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	outline: 0;
	border-width: 2px;
	border-color: var(--ehb-brand-magenta);
	padding: 13px 15px;
	box-shadow: none;
}

/* Woo 11 renders the field <input> with NO class inside .wc-block-components-text-input,
   and its own packages-style.css sets radius 4px + a dark rgb border via
   `.wc-block-components-form .wc-block-components-text-input input[type="email"]`
   — specificity (0,3,1), which outranks the base "Form Field" rule above. Re-assert the
   Figma field spec (radius 8, 1px #d3c3cf border — checkout frame 199:1197 "Input") one
   class higher (0,4,1) via the `input[type]` attribute, scoped to the cart/checkout
   blocks so nothing else is touched. Style-only, within the Scope Note. */
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type],
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-textarea,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-blocks-components-select__select,
.wp-block-woocommerce-cart .wc-block-components-form .wc-block-components-text-input input[type],
.wp-block-woocommerce-cart .wc-block-components-form .wc-blocks-components-select__select {
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-md);
}

.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type]:focus,
.wp-block-woocommerce-cart .wc-block-components-form .wc-block-components-text-input input[type]:focus {
	border-color: var(--ehb-brand-magenta);
}

.wc-block-components-validation-error {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-caption);
	line-height: var(--ehb-lh-body-caption);
	color: var(--ehb-brand-magenta);
}

/* Checkbox and radio — Figma "Checkbox" / "Radio". */
.wc-block-components-checkbox input[type='checkbox'],
.wc-block-components-radio-control__input {
	width: 20px;
	height: 20px;
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-sm);
	background: var(--ehb-surface-paper);
}

.wc-block-components-radio-control__input {
	border-radius: var(--ehb-radius-pill);
}

.wc-block-components-checkbox input[type='checkbox']:checked,
.wc-block-components-radio-control__input:checked {
	background: var(--ehb-brand-magenta);
	border-color: var(--ehb-brand-magenta);
}

/* Note: Cart & Checkout styles are consolidated authoritatively under Section: Cart & Checkout Flow below */

/* ==========================================================================
   Stock states
   ========================================================================== */

/* Figma 194:188: IN STOCK is a bordered pill badge, not plain text. */
.woocommerce div.product .stock.in-stock {
	display: inline-flex;
	align-items: center;
	padding: var(--ehb-space-4) var(--ehb-space-8);
	border-radius: var(--ehb-radius-pill);
	box-shadow: inset 0 0 0 1px var(--ehb-line-subtle);
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-label-badge);
	line-height: var(--ehb-lh-label-badge);
	letter-spacing: var(--ehb-ls-label-badge);
	text-transform: uppercase;
	color: var(--ehb-status-in-stock);
}

.woocommerce div.product .stock.out-of-stock {
	color: var(--ehb-text-muted);
}

/* Out-of-stock cards dim the packshot (opacity 0.45, single rule at the top of this file, scoped to the card's own li).
   Never scope this to a bare .product.outofstock: on an out-of-stock PDP that wrapper contains the related-products cards. */

/* ==========================================================================
   TGA compliance strip
   Required on every product page. Not decorative: it is the Therapeutic Goods
   Administration wording for a site selling supplements in Australia.
   ========================================================================== */

.ehb-compliance {
	padding: var(--ehb-space-20) var(--ehb-space-24);
	background: var(--ehb-surface-raised);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: var(--ehb-radius-md);
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-body);
}

/* ==========================================================================
   Shop landing and product archives
   ========================================================================== */

/* Product archives inject a full-bleed hero (.ehb-catalog-hero / .ehb-shop-hero)
   directly under the breadcrumb bar. Kadence's content-area carries an 80px top
   margin (body class content-vertical-padding-show), which leaves an empty white
   band between the breadcrumb and the hero — the gap flagged against the Figma
   archive frames, where the hero sits flush. Drop it on product archives only;
   single product and blog keep their breathing room. */
.tax-product_cat .content-area,
.tax-product_tag .content-area,
.post-type-archive-product .content-area,
.woocommerce-shop .content-area {
	margin-top: 0;
}

.tax-product_cat .content-container,
.tax-product_tag .content-container,
.post-type-archive-product .content-container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.ehb-shop-hero,
.ehb-catalog-hero {
	padding: 72px var(--ehb-gutter) 64px;
	background: var(--ehb-surface-blush);
}

.ehb-shop-hero>*,
.ehb-catalog-hero__inner {
	max-width: var(--ehb-content-width);
	margin-inline: auto;
}

.ehb-shop-hero h1,
.ehb-catalog-hero h1 {
	margin: 0 0 18px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 40px;
	line-height: 48px;
	letter-spacing: -0.6px;
	color: var(--ehb-text-ink);
}

.ehb-shop-hero p,
.ehb-catalog-hero__description {
	margin: 0;
	font-family: var(--ehb-font-body);
	font-size: 18px;
	line-height: 30px;
	color: var(--ehb-text-body);
}

.ehb-shop-band {
	padding: 88px var(--ehb-gutter);
}

.ehb-shop-band--raised {
	background: var(--ehb-surface-raised);
}

.ehb-shop-band>* {
	max-width: var(--ehb-content-width);
	margin-inline: auto;
}

:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag, .woocommerce-shop) :is(.ehb-shop-hero, .ehb-shop-band, .ehb-shop-all, .ehb-shop-seo),
:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag, .woocommerce-shop) .ehb-catalog-hero {
	padding-inline: var(--ehb-gutter) !important;
}

.ehb-shop-band__title {
	margin-top: 0;
	margin-bottom: 10px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 28px;
	line-height: 34px;
	letter-spacing: -0.28px;
	text-transform: uppercase;
	color: var(--ehb-text-ink);
}

.ehb-shop-band__intro {
	margin-top: 0;
	margin-bottom: 36px;
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
}

:is(.entry-content, .woocommerce, .site-main) .ehb-shop-cards,
.ehb-shop-cards {
	gap: 24px;
	margin-block: 0;
}

.ehb-shop-route {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 32px 36px;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: 14px;
	box-sizing: border-box;
}

.ehb-shop-cards--two .ehb-shop-route {
	min-height: 240px;
}

.ehb-shop-cards--need .ehb-shop-route {
	min-height: 190px;
}

.ehb-shop-cards--three .ehb-shop-route {
	min-height: 200px;
}

.ehb-shop-route--health {
	background: var(--ehb-surface-blush);
	border-color: transparent;
}

.ehb-shop-route--beauty {
	background: var(--ehb-surface-lilac);
	border-color: transparent;
}

.ehb-shop-route>* {
	margin-top: 0;
}

.ehb-shop-route h3 {
	margin-bottom: 10px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 20px;
	line-height: 26px;
	letter-spacing: -0.2px;
	text-transform: uppercase;
	color: var(--ehb-text-ink);
}

.ehb-shop-cards--two .ehb-shop-route h3 {
	font-size: 24px;
	line-height: 30px;
	letter-spacing: -0.24px;
}

.ehb-shop-cards--need .ehb-shop-route h3 {
	font-size: 22px;
	line-height: 28px;
	letter-spacing: -0.22px;
}

.ehb-shop-route p {
	margin-bottom: 16px;
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-body);
}

.ehb-shop-route p:last-child {
	margin-bottom: 0;
}

.ehb-shop-route p.ehb-shop-route__eyebrow {
	margin-bottom: 10px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-label-eyebrow);
	line-height: var(--ehb-lh-label-eyebrow);
	letter-spacing: var(--ehb-ls-label-eyebrow);
	text-transform: uppercase;
	color: var(--ehb-brand-magenta);
}

.ehb-shop-route a {
	display: inline-flex;
	align-items: center;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-label-button);
	line-height: var(--ehb-lh-label-button);
	letter-spacing: var(--ehb-ls-label-button);
	text-transform: uppercase;
	color: var(--ehb-text-ink);
	text-decoration: none;
	transition: color 150ms ease-out;
}

.ehb-shop-route a:hover,
.ehb-shop-route a:focus-visible {
	color: var(--ehb-brand-magenta);
}

.ehb-shop-all {
	padding: 72px var(--ehb-gutter);
	text-align: center;
}

.ehb-shop-all h2 {
	margin: 0 0 18px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-h2);
	line-height: var(--ehb-lh-h2);
	letter-spacing: var(--ehb-ls-h2);
	color: var(--ehb-text-ink);
}

.ehb-shop-all p {
	margin: 0 auto 28px;
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-base);
	line-height: var(--ehb-lh-body-base);
	color: var(--ehb-text-body);
}

.ehb-shop-all .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 228px;
	height: 49px;
	padding: 14px 30px;
	background-color: var(--ehb-brand-orchid);
	border-radius: var(--ehb-radius-pill);
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 14px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ehb-text-on-dark);
	text-decoration: none;
	transition: background-color 150ms ease-out;
}

.ehb-shop-all .wp-block-button__link:hover,
.ehb-shop-all .wp-block-button__link:focus-visible {
	background-color: var(--ehb-brand-rose-plum);
}

.ehb-shop-seo {
	padding: 80px var(--ehb-gutter);
	background: var(--ehb-surface-blush);
}

.ehb-shop-seo .ehb-shop-seo__inner,
.entry-content .ehb-shop-seo .ehb-shop-seo__inner,
.entry-content .ehb-shop-seo>* {
	width: min(100%, var(--ehb-content-width));
	max-width: var(--ehb-content-width);
	margin-inline: auto;
	text-align: left;
}

.ehb-shop-seo h2,
.entry-content .ehb-shop-seo h2 {
	margin: 0 0 20px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-h2);
	line-height: var(--ehb-lh-h2);
	letter-spacing: var(--ehb-ls-h2);
	color: var(--ehb-text-ink);
	text-align: left;
}

.ehb-shop-seo p,
.entry-content .ehb-shop-seo p {
	max-width: 880px;
	margin: 0 0 16px;
	margin-inline-start: 0;
	margin-inline-end: auto;
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-base);
	line-height: var(--ehb-lh-body-base);
	color: var(--ehb-text-body);
	text-align: left;
}

.ehb-shop-seo p:last-child,
.entry-content .ehb-shop-seo p:last-child {
	margin-bottom: 0;
}

.ehb-catalog-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	column-gap: var(--ehb-space-40);
	width: 100%;
	max-width: 1200px;
	margin: var(--ehb-space-56) auto 80px;
	padding: 0;
	box-sizing: border-box;
}

.ehb-catalog-filters h2 {
	margin: 0 0 24px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 18px;
	line-height: 24px;
	letter-spacing: -0.2px;
	color: var(--ehb-text-ink);
}

/* ==========================================================================
   Filter Group & Facets — Figma "Filter sidebar" (192:157)
   ========================================================================== */

.ehb-filter-widget {
	margin-bottom: 20px;
}

.ehb-filter-widget__title {
	margin: 0 0 16px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
}

.ehb-filter-group {
	border-bottom: 1px solid var(--ehb-line-subtle);
	padding: 14px 0;
	box-sizing: border-box;
}

.ehb-filter-group[open] {
	padding-bottom: 18px;
}

.ehb-filter-group summary.ehb-filter-group__header,
.ehb-filter-group summary.wp-block-details__summary,
.ehb-filter-group summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	list-style: none;
	user-select: none;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	font-size: 15px;
	line-height: 22px;
	color: var(--ehb-text-ink);
	transition: color 120ms ease;
}

.ehb-filter-group summary.ehb-filter-group__header:hover,
.ehb-filter-group summary.wp-block-details__summary:hover,
.ehb-filter-group summary:hover {
	color: var(--ehb-brand-rose-plum);
}

.ehb-filter-group summary::-webkit-details-marker {
	display: none;
}

.ehb-filter-group summary::marker {
	display: none;
	content: "";
}

.ehb-filter-group summary.ehb-filter-group__header::after,
.ehb-filter-group summary.wp-block-details__summary::after,
.ehb-filter-group summary::after {
	content: "+";
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 18px;
	line-height: 1;
	color: var(--ehb-text-ink);
}

.ehb-filter-group[open] summary.ehb-filter-group__header::after,
.ehb-filter-group[open] summary.wp-block-details__summary::after,
.ehb-filter-group[open] summary::after {
	content: "−";
	font-size: 18px;
}

.ehb-filter-group__options,
.ehb-filter-group ul.wp-block-list,
.ehb-filter-group ul.ehb-filter-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 16px;
	margin: 0;
	padding-left: 0;
	list-style: none;
}

.ehb-filter-group ul.wp-block-list li,
.ehb-filter-group ul.ehb-filter-list li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 14px;
	line-height: 20px;
	color: var(--ehb-text-body);
	cursor: pointer;
	user-select: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ehb-filter-group ul.wp-block-list li::before,
.ehb-filter-group ul.ehb-filter-list li::before {
	content: "";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background: #ffffff;
	border: 1px solid #d3c3cf;
	border-radius: 3px;
	box-sizing: border-box;
	transition: background-color 120ms ease, border-color 120ms ease;
}

.ehb-filter-group ul.wp-block-list li:hover::before,
.ehb-filter-group ul.ehb-filter-list li:hover::before {
	border-color: var(--ehb-brand-rose-plum);
}

.ehb-filter-group ul.wp-block-list li.is-checked::before,
.ehb-filter-group ul.ehb-filter-list li.is-checked::before,
.ehb-filter-group ul.wp-block-list li[aria-checked="true"]::before,
.ehb-filter-group ul.ehb-filter-list li[aria-checked="true"]::before {
	background-color: var(--ehb-brand-rose-plum);
	border-color: var(--ehb-brand-rose-plum);
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.5 7L5.5 10L11.5 4' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 11px 11px;
}

.ehb-filter-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
	user-select: none;
	margin: 0;
}

.ehb-filter-checkbox input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.ehb-filter-checkbox__control {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background: #ffffff;
	border: 1px solid #d3c3cf;
	border-radius: 3px;
	box-sizing: border-box;
	transition: background-color 120ms ease, border-color 120ms ease;
}

.ehb-filter-checkbox input[type="checkbox"]:focus-visible+.ehb-filter-checkbox__control {
	outline: 2px solid var(--ehb-brand-rose-plum);
	outline-offset: 2px;
}

.ehb-filter-checkbox input[type="checkbox"]:checked+.ehb-filter-checkbox__control {
	background: var(--ehb-brand-rose-plum);
	border-color: var(--ehb-brand-rose-plum);
}

.ehb-filter-checkbox input[type="checkbox"]:checked+.ehb-filter-checkbox__control::after {
	content: "";
	display: block;
	width: 4px;
	height: 8px;
	border: solid #ffffff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translate(-0.5px, -0.5px);
}

.ehb-filter-checkbox__label {
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 14px;
	line-height: 20px;
	color: var(--ehb-text-body);
}

.ehb-filter-checkbox:hover .ehb-filter-checkbox__control {
	border-color: var(--ehb-brand-rose-plum);
}

.ehb-filter-group__options a {
	display: flex;
	justify-content: space-between;
	gap: var(--ehb-space-8);
	font-size: var(--ehb-size-body-small);
	color: var(--ehb-text-body);
	text-decoration: none;
}

.ehb-filter-group__options a:hover,
.ehb-filter-group__options a:focus-visible {
	color: var(--ehb-brand-magenta);
}

/* ==========================================================================
   Catalogue Results & Toolbar — Figma 192:197, 192:198
   ========================================================================== */

.ehb-catalog-results {
	display: flex;
	flex-direction: column;
	min-width: 0;
	width: 100%;
}

.ehb-catalog-results .kadence-shop-top-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	border-bottom: 1px solid var(--ehb-line-subtle);
	padding-block: 14px;
	margin-bottom: 28px;
}

.ehb-catalog-results .kadence-shop-top-row .kadence-shop-top-item {
	display: flex;
	align-items: center;
}

.ehb-catalog-results .kadence-shop-top-row .kadence-woo-results-count,
.ehb-catalog-results .kadence-shop-top-row .woocommerce-result-count {
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	margin: 0;
}

.ehb-catalog-results .kadence-shop-top-row .kadence-woo-ordering,
.ehb-catalog-results .kadence-shop-top-row .woocommerce-ordering {
	margin: 0;
}

.ehb-catalog-results .kadence-shop-top-row .woocommerce-ordering select.orderby {
	display: inline-flex;
	align-items: center;
	height: 42px;
	box-sizing: border-box;
	background-color: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-md);
	padding: 9px 36px 9px 14px;
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-ink);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%236B5A65' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 10px 6px;
	transition: border-color 150ms ease-out;
}

.ehb-catalog-results .kadence-shop-top-row .woocommerce-ordering select.orderby:hover,
.ehb-catalog-results .kadence-shop-top-row .woocommerce-ordering select.orderby:focus-visible {
	border-color: var(--ehb-brand-magenta);
	outline: none;
}

.ehb-catalog-results .kadence-shop-top-row .kadence-woo-toggle {
	display: none;
}

.ehb-catalog-results .products,
.ehb-catalog-results .woocommerce-pagination {
	width: 100%;
	flex: 0 0 auto;
}

.ehb-catalog-results ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 24px;
	row-gap: 28px;
	margin: 0 0 28px;
}

.ehb-catalog-results ul.products::before,
.ehb-catalog-results ul.products::after {
	display: none;
}

.ehb-catalog-results ul.products li.product {
	width: auto;
	margin: 0;
}

.woocommerce ul.products li.product .ehb-stock-badge--muted,
.ehb-stock-badge--muted {
	background: var(--ehb-line-strong);
	border: 1px solid var(--ehb-line-subtle);
	color: var(--ehb-text-muted);
}

.ehb-catalog-filter-drawer,
.ehb-result-count--mobile {
	display: none;
}

/* ==========================================================================
   Pagination — Figma "Pagination" (188:92)
   ========================================================================== */

.woocommerce nav.woocommerce-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	padding: var(--ehb-space-8) 0;
	margin-top: 28px;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--ehb-space-8);
	border: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	display: inline-flex;
	margin: 0;
	padding: 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	box-sizing: border-box;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	border-radius: var(--ehb-radius-md);
	font-family: var(--ehb-font-body);
	font-weight: var(--ehb-weight-regular);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body);
	text-decoration: none;
	transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li span.page-numbers.current {
	background: var(--ehb-brand-magenta);
	border-color: var(--ehb-brand-magenta);
	color: var(--ehb-text-on-dark);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:focus-visible {
	background: var(--ehb-surface-blush);
	border-color: var(--ehb-brand-magenta);
	color: var(--ehb-brand-magenta);
}

/* The Shop landing supplies its own curated product loop. */
.woocommerce-shop:not(.search) .ehb-shop-default-loop,
.woocommerce-shop:not(.search) .woocommerce-result-count,
.woocommerce-shop:not(.search) .woocommerce-ordering,
.woocommerce-shop:not(.search) .woocommerce-pagination,
.woocommerce-shop:not(.search) .kadence-shop-top-row,
.woocommerce-shop:not(.search) .kadence-product-toggle-container,
.woocommerce-shop:not(.search) .kadence-shop-top-item,
.woocommerce-shop:not(.search) ul.products:not(.ehb-product-grid *),
.woocommerce-shop:not(.search) div.products:not(.ehb-product-grid *),
.post-type-archive-product:not(.search):not(.tax-product_cat):not(.tax-product_tag) .kadence-shop-top-row,
.post-type-archive-product:not(.search):not(.tax-product_cat):not(.tax-product_tag) .kadence-product-toggle-container,
.post-type-archive-product:not(.search):not(.tax-product_cat):not(.tax-product_tag) .kadence-shop-top-item,
.post-type-archive-product:not(.search):not(.tax-product_cat):not(.tax-product_tag) .ehb-shop-default-loop,
.post-type-archive-product:not(.search):not(.tax-product_cat):not(.tax-product_tag) .woocommerce-pagination {
	display: none;
}

@media (max-width: 767px) {

	:is(.post-type-archive-product, .woocommerce-shop) :is(.ehb-shop-hero, .ehb-shop-band, .ehb-shop-all, .ehb-shop-seo),
	:is(.tax-product_cat, .tax-product_tag) .ehb-catalog-hero {
		padding-inline: 16px !important;
	}

	.ehb-shop-hero,
	.entry-content .ehb-shop-hero {
		padding: 44px 16px 40px !important;
	}

	.ehb-shop-hero h1,
	.entry-content .ehb-shop-hero h1 {
		margin: 0 0 12px;
		font-size: 30px;
		line-height: 38px;
		letter-spacing: -0.4px;
	}

	.ehb-shop-hero p,
	.entry-content .ehb-shop-hero p {
		font-size: 16px;
		line-height: 26px;
		max-width: 100%;
	}

	.ehb-shop-band,
	.entry-content .ehb-shop-band {
		padding: 52px var(--ehb-gutter);
	}

	.ehb-shop-band__title,
	.entry-content .ehb-shop-band__title {
		margin-top: 0;
		margin-bottom: 6px;
		font-size: 28px;
		line-height: 34px;
		letter-spacing: -0.28px;
		text-transform: uppercase;
	}

	.ehb-shop-band__intro,
	.entry-content .ehb-shop-band__intro {
		margin-top: 0;
		margin-bottom: 24px;
		font-size: 14px;
		line-height: 20px;
	}

	:is(.entry-content, .woocommerce, .site-main) .ehb-shop-cards,
	.ehb-shop-cards {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.ehb-shop-route,
	.entry-content .ehb-shop-route,
	.ehb-shop-cards--two .ehb-shop-route,
	.ehb-shop-cards--need .ehb-shop-route,
	.ehb-shop-cards--three .ehb-shop-route {
		min-height: auto;
		padding: 22px 20px;
		gap: 8px;
		border-radius: 14px;
	}

	.ehb-shop-route h3,
	.entry-content .ehb-shop-route h3,
	.ehb-shop-cards--two .ehb-shop-route h3,
	.ehb-shop-cards--need .ehb-shop-route h3,
	.ehb-shop-cards--three .ehb-shop-route h3 {
		margin-bottom: 0;
		font-size: 20px;
		line-height: 27px;
		letter-spacing: -0.1px;
		text-transform: none;
	}

	.ehb-shop-route p,
	.entry-content .ehb-shop-route p {
		margin-bottom: 0;
		font-size: 14px;
		line-height: 20px;
	}

	.ehb-shop-route p.ehb-shop-route__eyebrow,
	.entry-content .ehb-shop-route p.ehb-shop-route__eyebrow {
		margin-bottom: 4px;
		font-size: 11px;
		line-height: 14px;
		letter-spacing: 1.2px;
	}

	.ehb-shop-route a,
	.entry-content .ehb-shop-route a {
		margin-top: 4px;
		font-size: 12px;
		line-height: 16px;
		letter-spacing: 0.8px;
		font-weight: var(--ehb-weight-bold);
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post-template {
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 8px;
		-webkit-overflow-scrolling: touch;
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post {
		flex: 0 0 140px;
		width: 140px;
		max-width: 140px;
		min-width: 140px;
		scroll-snap-align: start;
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post a img {
		padding: 8px;
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post .woocommerce-loop-product__title {
		font-size: 13px;
		line-height: 18px;
		padding: 0 10px;
		margin: 0 0 4px;
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post .price {
		font-size: 14px;
		line-height: 18px;
		padding: 0 10px;
		margin-bottom: 8px;
	}

	.ehb-shop-all,
	.entry-content .ehb-shop-all {
		padding: 48px var(--ehb-gutter);
	}

	.ehb-shop-all h2,
	.entry-content .ehb-shop-all h2 {
		margin: 0 0 12px;
		font-size: 20px;
		line-height: 27px;
	}

	.ehb-shop-all p,
	.entry-content .ehb-shop-all p {
		margin: 0 auto 20px;
		font-size: 14px;
		line-height: 22px;
	}

	.ehb-shop-all .wp-block-buttons {
		width: 100%;
	}

	.ehb-shop-all .wp-block-button,
	.ehb-shop-all .wp-block-button__link {
		width: 100%;
		min-width: 0;
		display: flex;
		justify-content: center;
	}

	.ehb-shop-seo,
	.entry-content .ehb-shop-seo {
		padding: 52px var(--ehb-gutter);
	}

	.ehb-shop-seo h2,
	.entry-content .ehb-shop-seo h2 {
		margin: 0 0 12px;
		font-size: 20px;
		line-height: 27px;
	}

	.ehb-shop-seo p,
	.entry-content .ehb-shop-seo p {
		margin: 0 0 12px;
		font-size: 14px;
		line-height: 22px;
	}

	/* PLP Archive mobile */
	.ehb-catalog-hero {
		padding: 40px 16px 36px;
		background: var(--ehb-surface-blush);
		box-sizing: border-box;
		width: 100%;
	}

	.ehb-catalog-hero h1 {
		margin: 0 0 12px;
		font-size: 30px;
		line-height: 38px;
		letter-spacing: -0.3px;
	}

	.ehb-catalog-hero h1:last-child {
		margin-bottom: 0;
	}

	.ehb-catalog-hero__description {
		font-size: 14px;
		line-height: 22px;
	}
}

/* Tablet (768px–1023px): Shop Landing */
@media (min-width: 768px) and (max-width: 1023px) {

	:is(.post-type-archive-product, .woocommerce-shop) :is(.ehb-shop-hero, .ehb-shop-band, .ehb-shop-all, .ehb-shop-seo),
	:is(.tax-product_cat, .tax-product_tag) .ehb-catalog-hero {
		padding-inline: var(--ehb-gutter) !important;
	}

	.ehb-shop-hero,
	.entry-content .ehb-shop-hero {
		padding: 56px var(--ehb-gutter) 48px !important;
	}

	.ehb-shop-hero h1,
	.entry-content .ehb-shop-hero h1 {
		font-size: 36px;
		line-height: 44px;
		letter-spacing: -0.4px;
		margin-bottom: 14px;
	}

	.ehb-shop-hero p,
	.entry-content .ehb-shop-hero p {
		font-size: 17px;
		line-height: 28px;
	}

	.ehb-shop-band,
	.entry-content .ehb-shop-band {
		padding: 64px var(--ehb-gutter);
	}

	.ehb-shop-band__title,
	.entry-content .ehb-shop-band__title {
		font-size: 32px;
		line-height: 40px;
		letter-spacing: -0.32px;
		margin-bottom: 8px;
	}

	.ehb-shop-band__intro,
	.entry-content .ehb-shop-band__intro {
		font-size: 15px;
		line-height: 22px;
		margin-bottom: 28px;
	}

	:is(.entry-content, .woocommerce, .site-main) .ehb-shop-cards,
	.ehb-shop-cards {
		gap: 20px;
	}

	.ehb-shop-cards--two {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ehb-shop-cards--three {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px;
	}

	.ehb-shop-cards--need {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ehb-shop-route,
	.entry-content .ehb-shop-route {
		padding: 24px 20px;
		border-radius: 14px;
	}

	.ehb-shop-route h3,
	.entry-content .ehb-shop-route h3 {
		font-size: 20px;
		line-height: 27px;
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post-template {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.ehb-shop-band .ehb-product-grid .wp-block-post {
		width: auto;
		max-width: none;
		min-width: 0;
		flex: 1 1 auto;
	}

	.ehb-shop-all,
	.entry-content .ehb-shop-all {
		padding: 60px var(--ehb-gutter);
	}

	.ehb-shop-all .wp-block-button {
		max-width: 320px;
		margin-inline: auto;
	}

	.ehb-shop-seo,
	.entry-content .ehb-shop-seo {
		padding: 64px var(--ehb-gutter);
	}
}

/* Tablet & Mobile (<=1023px): PLP Archive layout & sticky filter bar.
   Full-width bleed with zero horizontal overflow, 16px mobile / 24px tablet gutters. */
@media (max-width: 1023px) {

	.tax-product_cat .content-container,
	.tax-product_tag .content-container,
	.post-type-archive-product .content-container {
		max-width: none;
		padding-inline: 0;
	}

	.ehb-catalog-hero {
		padding: 56px var(--ehb-gutter) 48px;
		background: var(--ehb-surface-blush);
		box-sizing: border-box;
		width: 100%;
		max-width: none;
		margin-inline: 0;
	}

	.ehb-catalog-hero h1 {
		margin: 0 0 14px;
		font-size: 34px;
		line-height: 42px;
		letter-spacing: -0.34px;
	}

	.ehb-catalog-hero h1:last-child {
		margin-bottom: 0;
	}

	.ehb-catalog-hero__description {
		font-size: 16px;
		line-height: 26px;
	}

	.ehb-catalog-layout {
		display: block;
		width: 100%;
		margin-block: 0 40px;
		padding: 0;
	}

	.ehb-catalog-filters {
		display: none;
	}

	.ehb-result-count--desktop {
		display: none;
	}

	.ehb-result-count--mobile {
		display: inline;
	}

	.ehb-catalog-results {
		display: block;
		width: 100%;
	}

	.ehb-catalog-results .kadence-shop-top-row {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 12px;
		position: sticky;
		top: 0;
		z-index: 40;
		background: var(--ehb-surface-paper);
		border-bottom: 1px solid var(--ehb-line-subtle);
		padding: 14px var(--ehb-gutter);
		margin: 0 0 32px;
		box-sizing: border-box;
		width: 100%;
	}

	.ehb-catalog-filter-drawer {
		display: block;
		position: static;
		margin: 0;
		order: 1;
	}

	.ehb-catalog-filter-drawer>summary {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 9px 16px;
		background: var(--ehb-brand-magenta);
		border: 1px solid var(--ehb-brand-magenta);
		border-radius: var(--ehb-radius-pill);
		font-family: var(--ehb-font-body);
		font-size: 14px;
		line-height: 20px;
		color: var(--ehb-text-on-dark);
		cursor: pointer;
		list-style: none;
		user-select: none;
		white-space: nowrap;
	}

	.ehb-catalog-filter-drawer>summary::-webkit-details-marker {
		display: none;
	}

	.ehb-catalog-filter-drawer>summary::marker {
		display: none;
		content: "";
	}

	.ehb-catalog-results .kadence-shop-top-row .kadence-woo-ordering {
		order: 2;
		margin: 0;
	}

	.ehb-catalog-results .kadence-shop-top-row .woocommerce-ordering select.orderby {
		height: 40px;
		padding: 8px 32px 8px 14px;
		font-size: 14px;
		line-height: 22px;
		border-radius: var(--ehb-radius-pill);
		border: 1px solid var(--ehb-line-strong);
		background-color: var(--ehb-surface-paper);
		background-position: right 12px center;
	}

	.ehb-catalog-results .kadence-shop-top-row .kadence-woo-results-count {
		order: 3;
		margin-left: auto;
	}

	.ehb-catalog-results .kadence-shop-top-row .woocommerce-result-count {
		font-size: 12px;
		line-height: 18px;
		color: var(--ehb-text-muted);
		text-align: right;
		white-space: nowrap;
		margin: 0;
	}

	.ehb-catalog-filter-drawer__body {
		position: absolute;
		top: calc(100% + 6px);
		left: var(--ehb-gutter);
		right: var(--ehb-gutter);
		z-index: 100;
		max-height: 75vh;
		overflow-y: auto;
		background: var(--ehb-surface-paper);
		border: 1px solid var(--ehb-line-subtle);
		border-radius: var(--ehb-radius-md);
		box-shadow: 0 12px 36px rgba(36, 18, 31, 0.15);
		padding: 20px;
	}

	/* Tablet 3 columns */
	.ehb-catalog-results ul.products {
		clear: both;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 20px;
		padding-inline: var(--ehb-gutter);
		box-sizing: border-box;
		margin: 0 0 32px;
	}

	.woocommerce nav.woocommerce-pagination {
		padding: 0 var(--ehb-gutter) 48px;
		margin: 0;
	}

	.woocommerce .woocommerce-breadcrumb,
	.kadence-breadcrumbs {
		padding: 14px var(--ehb-gutter);
	}

	.ehb-catalog-seo {
		padding: 64px var(--ehb-gutter);
		margin-top: 0;
		background: var(--ehb-surface-blush);
	}

	.ehb-catalog-seo h2 {
		font-size: 24px;
		line-height: 32px;
		letter-spacing: -0.15px;
		margin-bottom: 16px;
	}

	.ehb-catalog-seo p {
		font-size: 15px;
		line-height: 24px;
		margin-bottom: 14px;
	}
}

/* Mobile (<=767px): PLP Archive 2 columns matching Figma 211:535 */
@media (max-width: 767px) {
	.ehb-catalog-hero {
		padding: 40px 16px 36px !important;
	}

	.ehb-catalog-hero h1 {
		margin: 0 0 12px;
		font-size: 30px;
		line-height: 38px;
		letter-spacing: -0.3px;
	}

	.ehb-catalog-hero h1:last-child {
		margin-bottom: 0;
	}

	.ehb-catalog-hero__description {
		font-size: 14px;
		line-height: 22px;
	}

	.ehb-catalog-results .kadence-shop-top-row {
		padding: 12px 16px;
		min-height: 64px;
		margin-bottom: 24px;
		gap: 10px;
	}

	.ehb-catalog-results .kadence-shop-top-row .woocommerce-ordering select.orderby {
		padding: 6px 30px 6px 14px;
		font-size: 13px;
	}

	/* Mobile 2 columns (Figma 211:605) */
	.ehb-catalog-results ul.products {
		clear: both;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
		padding-inline: 16px;
		box-sizing: border-box;
		margin: 0 0 28px;
	}

	.ehb-catalog-results ul.products li.product {
		border-radius: 14px;
	}

	.ehb-catalog-results ul.products li.product a.woocommerce-loop-image-link {
		padding: 12px;
		aspect-ratio: 4 / 5;
	}

	.ehb-catalog-results ul.products li.product a img {
		padding: 0 !important;
	}

	.ehb-catalog-results ul.products li.product .product-details {
		padding: 16px 16px 18px;
		gap: 7px;
	}

	.ehb-catalog-results ul.products li.product .ehb-card-eyebrow {
		font-size: 11px;
		line-height: 14px;
		letter-spacing: 1.32px;
		font-weight: 700;
	}

	.ehb-catalog-results ul.products li.product .woocommerce-loop-product__title {
		font-size: 16px;
		line-height: 22px;
		font-weight: 600;
		padding: 0;
		margin: 0;
	}

	.ehb-catalog-results ul.products li.product .price {
		font-size: 16px;
		line-height: 22px;
		font-weight: 600;
		padding: 0;
		margin: 0;
	}

	.ehb-catalog-results ul.products li.product .price .ehb-price-suffix {
		font-size: 12px;
		line-height: 18px;
		font-weight: 400;
	}

	.woocommerce ul.products li.product .product-action-wrap,
	.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap,
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap .button {
		display: none;
	}

	.ehb-card-rating__reviews-word {
		display: none;
	}

	.woocommerce nav.woocommerce-pagination {
		padding: 0 16px 40px;
		margin: 0;
	}

	.woocommerce .woocommerce-breadcrumb,
	.kadence-breadcrumbs {
		padding: 12px 16px;
	}

	.ehb-catalog-seo {
		padding: 52px 16px;
		margin-top: 0;
	}

	.ehb-catalog-seo h2 {
		font-size: 20px;
		line-height: 27px;
		letter-spacing: -0.1px;
		margin-bottom: 14px;
	}

	.ehb-catalog-seo p {
		font-size: 14px;
		line-height: 22px;
		margin-bottom: 12px;
	}
}

/* ==========================================================================
   PLP Enhancements — Category Archive & Filter
   ========================================================================== */

.woocommerce a.button.ehb-button--secondary {
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	color: var(--ehb-text-ink);
	box-shadow: none;
}

.woocommerce a.button.ehb-button--secondary:hover {
	background: var(--ehb-surface-blush);
	border-color: var(--ehb-brand-magenta);
	color: var(--ehb-brand-magenta);
}

.ehb-catalog-seo {
	width: 100%;
	box-sizing: border-box;
	padding: 80px var(--ehb-gutter);
	background: var(--ehb-surface-blush);
	margin-top: 0;
}

.ehb-catalog-seo__inner {
	max-width: var(--ehb-content-width);
	margin-inline: auto;
}

.ehb-catalog-seo h2 {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 30px;
	line-height: 38px;
	letter-spacing: -0.3px;
	color: var(--ehb-text-ink);
	margin-bottom: 20px;
}

.ehb-catalog-seo p {
	font-family: var(--ehb-font-body);
	font-size: 16px;
	line-height: 26px;
	color: var(--ehb-text-body);
	max-width: 880px;
	margin-bottom: 16px;
}

.ehb-catalog-seo p:last-child {
	margin-bottom: 0;
}

.ehb-catalog-seo__placeholder {
	color: var(--ehb-text-muted);
	font-style: italic;
}

/* ==========================================================================
   PDP (Single Product) Buy Box, Tabs & TGA Strip
   ========================================================================== */

.woocommerce div.product .ehb-pdp-eyebrow {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-label-eyebrow);
	letter-spacing: var(--ehb-ls-label-eyebrow);
	text-transform: uppercase;
	color: var(--ehb-brand-magenta);
	margin-bottom: var(--ehb-space-8);
}

.woocommerce div.product .ehb-pdp-tax-note {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-muted);
	margin-top: -6px;
	margin-bottom: var(--ehb-space-20);
}

.ehb-tiered-offer {
	background: var(--ehb-surface-blush);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: var(--ehb-radius-md);
	padding: var(--ehb-space-16) var(--ehb-space-20);
	margin-bottom: var(--ehb-space-24);
}

.ehb-tiered-offer__title {
	display: block;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: var(--ehb-size-body-base);
	color: var(--ehb-text-ink);
	margin-bottom: var(--ehb-space-4);
}

.ehb-tiered-offer__copy {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-body);
	margin: 0;
}

.ehb-afterpay-note {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-caption);
	color: var(--ehb-text-muted);
	margin-top: var(--ehb-space-12);
}

.ehb-afterpay-note span.amount {
	font-weight: var(--ehb-weight-semibold);
	color: var(--ehb-text-ink);
}


/* TGA Strip — Full width dark disclaimer band (Figma 195:172) */
.ehb-tga-strip {
	background: var(--ehb-text-ink);
	color: var(--ehb-text-on-dark);
	padding: var(--ehb-space-28) var(--ehb-gutter);
	margin-top: 0;
	margin-bottom: 0;
	text-align: left;
}

.ehb-tga-strip__inner {
	max-width: var(--ehb-content-width);
	width: 100%;
	margin-inline: auto;
}

.ehb-tga-strip__main {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	font-size: var(--ehb-size-body-base);
	line-height: 22px;
	color: var(--ehb-text-on-dark);
	margin: 0 0 6px;
}

.ehb-tga-strip__sub {
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: 22px;
	color: var(--ehb-text-muted-on-dark);
	margin: 0;
}

.ehb-tga-strip__link {
	color: #e5a4c5;
	text-decoration: underline;
	font-weight: 500;
	transition: color 150ms ease;
}

.ehb-tga-strip__link:hover {
	color: #ffffff;
}

@media (max-width: 767px) {
	.ehb-tga-strip {
		padding: 22px var(--ehb-gutter);
	}
}

/* ==========================================================================
   Single Product — Tabs Content, Ingredients Table, Directions & Shipping
   ========================================================================== */

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
	margin-top: var(--ehb-space-32);
	margin-bottom: 0;
	padding: 0;
	max-width: 880px;
	box-sizing: border-box;
}

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel>h2:first-child {
	display: none;
}

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel p {
	font-family: var(--ehb-font-body);
	font-size: 16px;
	line-height: 26px;
	color: var(--ehb-text-body, #3d2c36);
	margin-top: 0;
	margin-bottom: var(--ehb-space-16, 16px);
}

.ehb-pdp-lead {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	font-size: 20px;
	line-height: 27px;
	letter-spacing: -0.1px;
	color: var(--ehb-text-ink);
	margin-bottom: var(--ehb-space-16);
}

.ehb-tab-lead {
	font-family: var(--ehb-font-display);
	font-size: 16px;
	line-height: 24px;
	color: var(--ehb-text-ink);
	margin-bottom: var(--ehb-space-12);
}

.ehb-tab-placeholder {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	font-style: italic;
	margin-top: var(--ehb-space-16);
}

.ehb-ingredients-table {
	width: 100%;
	max-width: 680px;
	border-collapse: collapse;
	margin: var(--ehb-space-16) 0 var(--ehb-space-20);
}

.ehb-ingredients-table tr {
	border-bottom: 1px solid var(--ehb-line-subtle);
}

.ehb-ingredients-table td {
	padding: 12px 0;
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: var(--ehb-lh-body-small);
	color: var(--ehb-text-body);
	vertical-align: middle;
}

.ehb-ingredients-table__name {
	font-weight: var(--ehb-weight-medium);
	color: var(--ehb-text-ink);
}

.ehb-ingredients-table__qty {
	text-align: right;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	color: var(--ehb-brand-rose-plum);
	white-space: nowrap;
	padding-left: var(--ehb-space-16);
}

.ehb-ingredients-disclaimer {
	font-family: var(--ehb-font-body);
	font-size: 13px;
	line-height: 20px;
	color: var(--ehb-text-muted);
	margin: 0;
}

.ehb-directions-content,
.ehb-shipping-content {
	max-width: 680px;
	font-family: var(--ehb-font-body);
	font-size: var(--ehb-size-body-small);
	line-height: 1.6;
	color: var(--ehb-text-body);
}

.ehb-directions-content p,
.ehb-shipping-content p {
	margin-bottom: var(--ehb-space-12);
}

.ehb-directions-warning {
	margin-top: var(--ehb-space-16);
	padding: 12px 16px;
	background: var(--ehb-surface-blush);
	border-left: 3px solid var(--ehb-brand-magenta);
	border-radius: 4px;
	color: var(--ehb-brand-rose-plum);
	font-size: 13px;
	line-height: 20px;
}

/* ==========================================================================
   Single Product — Related Products ("YOU MAY ALSO LIKE", Figma 194:81 / 195:175)
   ========================================================================== */

.woocommerce div.product .related.products {
	background: var(--ehb-surface-raised);
	padding: var(--ehb-space-80) var(--ehb-gutter);
	margin-top: 0;
	margin-bottom: 0;
	border-top: 0;
}

.woocommerce div.product .related.products .ehb-related-products__inner {
	max-width: var(--ehb-content-width);
	width: 100%;
	margin-inline: auto;
	padding-inline: 0;
}

.woocommerce div.product .related.products .ehb-section-head {
	margin-bottom: var(--ehb-space-36);
}

.woocommerce div.product .related.products .ehb-section-head__title {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 28px;
	line-height: 34px;
	letter-spacing: -0.28px;
	text-transform: uppercase;
	color: var(--ehb-text-ink);
	margin: 0 0 10px;
}

.woocommerce div.product .related.products .ehb-section-head__subtitle {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	margin: 0;
}

.woocommerce div.product .related.products ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--ehb-space-24);
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
}

/* Tablet: four across like desktop (two 350px-wide cards were 600px tall), with the mobile card's type. */
@media (min-width: 768px) and (max-width: 1023px) {
	.woocommerce div.product .related.products ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--ehb-space-16);
		align-items: stretch;
	}

	.woocommerce div.product .related.products ul.products li.product .product-details {
		padding: 16px 12px 18px;
		gap: 7px;
	}

	.woocommerce div.product .related.products .woocommerce-loop-product__title {
		font-size: 15px;
		line-height: 21px;
	}

	.woocommerce div.product .related.products .ehb-card-eyebrow {
		font-size: 10px;
		line-height: 14px;
	}

	.woocommerce div.product .related.products .price {
		font-size: 15px;
		line-height: 21px;
	}

	.woocommerce div.product .related.products .price .ehb-price-suffix {
		display: inline-block;
		font-size: 12px;
		line-height: 18px;
	}

	.woocommerce div.product .related.products ul.products li.product .product-action-wrap {
		display: none;
	}
}

@media (min-width: 1024px) and (max-width: 1024px) {
	.woocommerce div.product .related.products ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.woocommerce div.product .related.products {
		padding: var(--ehb-space-48) 0;
	}

	.woocommerce div.product .related.products .ehb-related-products__inner {
		padding-inline: var(--ehb-gutter);
	}

	.woocommerce div.product .related.products ul.products {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: var(--ehb-space-16);
		padding-bottom: var(--ehb-space-12);
		margin-inline: calc(-1 * var(--ehb-gutter));
		padding-inline: var(--ehb-gutter);
		scroll-padding-inline: var(--ehb-gutter);
	}

	.woocommerce div.product .related.products ul.products li.product {
		flex: 0 0 78vw;
		max-width: 280px;
		scroll-snap-align: start;
	}
}

/* ==========================================================================
   Single Product — Related Articles ("READ BEFORE YOU BUY", Figma 194:81 / 195:236)
   ========================================================================== */

.ehb-pdp-articles {
	background: var(--ehb-surface-paper);
	padding: var(--ehb-space-80) var(--ehb-gutter);
	margin-top: 0;
	margin-bottom: 0;
	border-top: 0;
}

.ehb-pdp-articles__inner {
	max-width: var(--ehb-content-width);
	width: 100%;
	margin-inline: auto;
	padding-inline: 0;
}

.ehb-pdp-articles .ehb-section-head {
	margin-bottom: var(--ehb-space-36);
}

.ehb-pdp-articles .ehb-section-head__title {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 28px;
	line-height: 34px;
	letter-spacing: -0.28px;
	text-transform: uppercase;
	color: var(--ehb-text-ink);
	margin: 0 0 10px;
}

.ehb-pdp-articles__hub-link {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	text-decoration: none;
	display: inline-block;
	transition: color 0.15s ease;
}

.ehb-pdp-articles__hub-link:hover {
	color: var(--ehb-brand-magenta);
	text-decoration: underline;
}

.ehb-pdp-articles__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ehb-space-24);
}

.ehb-pdp-article-card {
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: 14px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ehb-pdp-article-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(36, 19, 32, 0.06);
}

.ehb-pdp-article-card__media {
	display: block;
	width: 100%;
	aspect-ratio: 380 / 200;
	background: var(--ehb-surface-lilac);
	overflow: hidden;
	position: relative;
}

.ehb-pdp-article-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ehb-pdp-article-card__placeholder {
	width: 100%;
	height: 100%;
	background: var(--ehb-surface-lilac);
}

.ehb-pdp-article-card__body {
	padding: 22px 24px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.ehb-pdp-article-card__badge {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ehb-brand-magenta);
}

.ehb-pdp-article-card__title {
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-semibold);
	font-size: 20px;
	line-height: 27px;
	letter-spacing: -0.1px;
	color: var(--ehb-text-ink);
	margin: 0;
}

.ehb-pdp-article-card__title a {
	color: inherit;
	text-decoration: none;
}

.ehb-pdp-article-card__title a:hover {
	color: var(--ehb-brand-magenta);
}

.ehb-pdp-article-card__excerpt {
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body);
	margin: 0;
	flex: 1;
}

.ehb-pdp-article-card__time {
	font-family: var(--ehb-font-body);
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
	margin-top: 4px;
}

@media (max-width: 991px) {
	.ehb-pdp-articles__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.ehb-pdp-articles {
		padding: var(--ehb-space-48) 0;
	}

	.ehb-pdp-articles__inner {
		padding-inline: var(--ehb-gutter);
	}

	.ehb-pdp-articles__grid {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: var(--ehb-space-16);
		padding-bottom: var(--ehb-space-12);
		margin-inline: calc(-1 * var(--ehb-gutter));
		padding-inline: var(--ehb-gutter);
		scroll-padding-inline: var(--ehb-gutter);
	}

	.ehb-pdp-article-card {
		flex: 0 0 82vw;
		max-width: 320px;
		scroll-snap-align: start;
	}
}

/* ==========================================================================
   Cart Flow — Figma 196:86 (Desktop 1440) & 214:892 (Mobile 390)
   Scope Note: Native WooCommerce Cart Block structure preserved.
   ========================================================================== */

.entry-content .wp-block-woocommerce-cart.alignwide,
.entry-content .wp-block-woocommerce-cart.alignfull,
.entry-content .wp-block-woocommerce-checkout.alignwide,
.entry-content .wp-block-woocommerce-checkout.alignfull {
	max-width: 100% !important;
	width: 100% !important;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
	box-sizing: border-box;
}

/* Page container: center in 1200px column */
.woocommerce-cart #primary .entry-content,
.woocommerce-checkout #primary .entry-content,
.woocommerce-cart.content-title-style-hide #primary .entry-content,
.woocommerce-checkout.content-title-style-hide #primary .entry-content {
	max-width: var(--ehb-content-width);
	margin-inline: auto;
	padding-inline: 0;
	box-sizing: border-box;
}

@media (max-width: 1248px) {

	.woocommerce-cart #primary .entry-content,
	.woocommerce-checkout #primary .entry-content,
	.woocommerce-cart.content-title-style-hide #primary .entry-content,
	.woocommerce-checkout.content-title-style-hide #primary .entry-content {
		padding-inline: var(--ehb-gutter);
	}
}

/* ==========================================================================
   Cart Block — Figma 196:86 (1440) / 214:892 (390)
   Visual only (SCOPE NOTE). Font family, colour and the pill button come from
   tokens.css / components.css (Kadence palette), so only the deltas from those
   defaults are written here. Woo's cart.css nests its rules under
   .wc-block-cart (and `table.wc-block-cart-items`); selectors below repeat that
   chain plus .woocommerce-cart to outrank it — no !important.
   ========================================================================== */

/* Title + free-shipping notice (Figma 196:150 / 196:152) */
.woocommerce-cart .ehb-cart-title {
	margin: 0;
	padding: 56px 0 24px;
}

.woocommerce-cart .ehb-free-shipping-bar {
	margin: 8px 0 24px;
	padding: 18px 24px;
	background: var(--ehb-surface-blush);
	border-radius: 8px;
}

.woocommerce-cart .ehb-free-shipping-bar[hidden] {
	display: none;
}

.woocommerce-cart .ehb-free-shipping-bar__message {
	margin: 0 0 12px;
	font-weight: 500;
	color: var(--ehb-text-ink);
}

.ehb-free-shipping-bar__track {
	height: 8px;
	border-radius: 999px;
	overflow: hidden;
	background: var(--ehb-line-subtle);
}

.ehb-free-shipping-bar__fill {
	height: 100%;
	border-radius: 999px;
	background: var(--ehb-brand-magenta);
	transition: width 300ms ease;
}

/* Cart body: 24px above, 88px below (Figma 196:86 "Cart body") */
.woocommerce-cart .wp-block-woocommerce-cart {
	padding: 24px 0 88px;
}

/* Columns: line items + 40px gap + 400px totals. Desktop only; Woo stacks them
   on mobile. The totals card hugs its content instead of stretching. */
@media (min-width: 1000px) {
	.woocommerce-cart .wc-block-cart {
		gap: 40px;
		flex-wrap: nowrap;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart__main,
	.woocommerce-cart .wc-block-cart .wc-block-cart__sidebar {
		margin: 0;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart__main {
		flex: 1 1 0;
		min-width: 0;
		max-width: none;
		padding-right: 0;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart__sidebar {
		flex: 0 0 400px;
		max-width: 400px;
		align-self: flex-start;
	}
}

/* Tablet 768–999: Woo Blocks default makes the cart sidebar ~35% width (252px),
   which is too narrow for totals rows, payment marks and checkout button.
   Force single-column stack on tablet, same as Checkout. */
@media (min-width: 768px) and (max-width: 999px) {
	.woocommerce-cart .wc-block-cart {
		flex-direction: column;
		gap: 32px;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart__main,
	.woocommerce-cart .wc-block-cart .wc-block-cart__sidebar {
		width: 100%;
		max-width: 100%;
		flex: 1 1 100%;
	}
}

/* Line items table (Figma 196:86 "Table header" + rows) */
.woocommerce-cart .wc-block-cart table.wc-block-cart-items {
	margin: 0;
	border-collapse: collapse;
	width: 100%;
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__header {
	border-bottom: 1px solid var(--ehb-line-strong);
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__header th {
	padding: 0 0 12px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ehb-text-muted);
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__header .wc-block-cart-items__header-image {
	width: 116px;
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
	border-bottom: 1px solid var(--ehb-line-subtle);
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
	padding-right: 20px;
	vertical-align: top;
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img {
	width: 96px;
	height: 96px;
	object-fit: contain;
	border-radius: 8px;
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name {
	margin: 0 0 4px;
	font-size: 16px;
	line-height: 26px;
	color: var(--ehb-text-ink);
	text-decoration: none;
}

/* Unit price is hidden: Figma shows the price only in the Total column. Woo
   renders it in a hidden-on-desktop slot already; this covers the mobile one. */
.woocommerce-cart .wc-block-cart .wc-block-cart-item__product .wc-block-cart-item__prices {
	display: none;
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__wrap .wc-block-components-product-metadata {
	margin: 0;
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
}

/* Stepper 112×38 (38 + 36 + 38) and the plain-text Remove link, 18px apart */
.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity {
	align-items: center;
	gap: 18px;
	margin-top: 4px;
}

.woocommerce-cart .wc-block-cart .wc-block-components-quantity-selector {
	width: 112px;
	height: 38px;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-strong);
	border-radius: 999px;
	overflow: hidden;
}

.woocommerce-cart .wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
	flex: 0 0 36px;
	width: 36px;
	padding: 0;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-ink);
}

.woocommerce-cart .wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	flex: 0 0 38px;
	padding: 0;
	font-size: 14px;
	line-height: 38px;
	color: var(--ehb-text-body);
}

.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
	display: inline-flex;
	width: auto;
	height: auto;
	padding: 0;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	text-decoration: none;
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__remove-link svg {
	display: none;
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__remove-link::after {
	content: 'Remove';
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__remove-link:hover {
	color: var(--ehb-brand-magenta);
}

/* Total column: Inter 18/600 + "incl. GST", no sale badge */
.woocommerce-cart .wc-block-cart .wc-block-cart-item__total {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	padding-left: 20px;
	text-align: right;
	white-space: nowrap;
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__total .wc-block-components-product-price {
	font-weight: 600;
	font-size: 18px;
	line-height: 26px;
	color: var(--ehb-text-ink);
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__total::after {
	content: 'incl. GST';
	margin-top: 2px;
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
}

.woocommerce-cart .wc-block-cart .wc-block-cart-item__total .wc-block-components-sale-badge,
.woocommerce-cart .wc-block-cart .wc-block-cart-item__total .wc-block-components-product-badge {
	display: none;
}

/* Totals card (Figma 197:228). 27px + the 1px border = the 28px padding. */
.woocommerce-cart .wc-block-cart .wc-block-cart__sidebar {
	padding: 27px;
	background: var(--ehb-surface-raised);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: 14px;
	box-sizing: border-box;
}

.woocommerce-cart .wc-block-cart .wc-block-cart__totals-title {
	margin: 0 0 6px;
	padding: 0;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 20px;
	line-height: 27px;
	letter-spacing: -0.1px;
	text-transform: none;
	color: var(--ehb-text-ink);
}

/* Rows sit 10px apart with no dividers except the one above Total. Shared with
   Checkout's order summary (both blocks carry .wc-block-components-sidebar-layout). */
.woocommerce-cart .wc-block-cart .wc-block-components-totals-wrapper {
	padding: 0;
	border: 0;
}

.wc-block-components-sidebar-layout .wc-block-components-totals-coupon {
	margin: 0 0 6px;
	padding: 0;
	border: 0;
}

.wc-block-components-sidebar-layout .wc-block-components-totals-coupon .wc-block-components-panel__button {
	padding: 0;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-brand-magenta);
	text-decoration: none;
	background: none;
	border: 0;
}

.wc-block-components-sidebar-layout .wc-block-components-totals-coupon .wc-block-components-panel__button-icon {
	display: none;
}

.wc-block-components-sidebar-layout .wc-block-components-totals-item {
	padding-block: 10px;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body);
}

.wc-block-components-sidebar-layout .ehb-fig-subtotal,
.wc-block-components-sidebar-layout .wc-block-components-totals-item--subtotal {
	font-weight: 500;
	font-size: 16px;
	line-height: 26px;
	color: var(--ehb-text-ink);
}

.wc-block-components-sidebar-layout .wc-block-components-totals-shipping .wc-block-components-totals-item__description {
	margin-top: 4px;
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
}

.wc-block-components-sidebar-layout .wc-block-components-totals-footer-item .wc-block-components-totals-footer-item-tax {
	display: none;
}

.wc-block-components-sidebar-layout .wc-block-components-totals-footer-item {
	margin-top: 6px;
	padding-block: 16px;
	border-top: 1px solid var(--ehb-line-subtle);
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
}

/* Checkout button 344×49: colour, pill and type come from the global button
   rule (components.css / .wc-block-components-button); only size is set here. */
.woocommerce-cart .wc-block-cart .wc-block-cart__submit-button {
	width: 100%;
	height: auto;
	padding: 17px 30px;
	font-size: 14px;
	line-height: 15px;
}

/* Payment marks under the button — Figma 197:250 */
.ehb-cart-payment-marks {
	padding-top: 14px;
}

.ehb-cart-payment-marks .ehb-payment-row {
	flex-wrap: nowrap;
	justify-content: flex-start;
	gap: 14px;
	max-width: none;
	margin: 0;
}

.ehb-cart-payment-marks .ehb-payment-row img {
	height: 19px;
	width: auto;
}

.ehb-cart-payment-marks .ehb-payment-row img[alt*='Mastercard' i],
.ehb-cart-payment-marks .ehb-payment-row img[alt*='Afterpay' i] {
	height: 26px;
}

.ehb-cart-payment-marks .ehb-payment-row img[alt*='Afterpay' i] {
	border-radius: 4px;
}

.ehb-cart-payment-marks .ehb-payment-row img[alt*='Visa' i] {
	height: 16px;
}

/* Cross-sells (Woo's product-collection inside the cart; Figma 197:196).
   Card type sizes come from the theme now that the template's preset font
   sizes are dropped in Emily_HB_Commerce::cart_cross_sell_font_sizes(). */
.woocommerce-cart .wp-block-woocommerce-product-collection {
	padding-top: 36px;
}

.woocommerce-cart .wp-block-woocommerce-product-collection>.wc-block-components-notices {
	margin: 0;
}

.woocommerce-cart .wp-block-woocommerce-product-collection>.wp-block-heading {
	margin: 0;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-product-template {
	gap: 20px;
	margin: 0;
	padding: 0;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-product {
	display: flex;
	flex-direction: column;
	background: var(--ehb-surface-paper);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: 14px;
	overflow: hidden;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-product:empty {
	display: none;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-components-product-image {
	position: relative;
	aspect-ratio: 4 / 5;
	padding: 12px;
	background: var(--ehb-surface-lilac);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-components-product-image a,
.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-components-product-image img {
	width: 100%;
	height: 100%;
	padding: 0;
	aspect-ratio: auto;
	object-fit: contain;
	background: none;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-components-product-sale-badge {
	background: var(--ehb-brand-magenta);
	border: 0;
	border-radius: 999px;
	padding: 4px 8px;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 9px;
	line-height: 11px;
	letter-spacing: 0.54px;
	text-transform: uppercase;
	color: var(--ehb-text-on-dark);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .ehb-product-card__concern {
	margin: 0;
	padding: 16px 16px 0;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ehb-brand-rose-plum);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .ehb-product-card__title {
	margin: 0;
	padding: 7px 16px 0;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wp-block-woocommerce-product-price {
	margin: 0;
	padding: 7px 16px 0;
	font-weight: 600;
	font-size: 16px;
	line-height: 22px;
	color: var(--ehb-text-ink);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wp-block-woocommerce-product-price .wc-block-components-product-price {
	margin: 0;
	font-size: inherit;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .ehb-price-suffix {
	margin-left: 8px;
	font-weight: 400;
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wp-block-woocommerce-product-price del {
	display: none;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .ehb-product-card__rating {
	margin: 0;
	padding: 7px 16px 0;
}

/* Add to cart 338×41: full-width pill, 12/700 (global button rule = colour) */
.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-components-product-button {
	display: block;
	padding: 7px 16px 18px;
}

.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	padding: 13px 6px;
	font-size: 12px;
	line-height: 15px;
	letter-spacing: 0.48px;
	white-space: nowrap;
}

/* Mobile 390 (Figma 214:892) */
@media (max-width: 767px) {
	.woocommerce-cart .ehb-cart-title {
		padding-block: 36px 16px;
		font-size: 30px;
		line-height: 38px;
		letter-spacing: -0.3px;
	}

	.woocommerce-cart .ehb-free-shipping-bar {
		margin: 0 0 20px;
		padding: 14px 16px;
	}

	.woocommerce-cart .ehb-free-shipping-bar__message {
		margin-bottom: 10px;
		font-weight: 400;
		font-size: 14px;
		line-height: 22px;
	}

	.woocommerce-cart .wp-block-woocommerce-cart {
		padding: 0 0 32px;
	}

	/* Row: 72px thumbnail + 14px gap; name, stepper and Remove stack in the
	   right column and the line total sits level with the stepper. */
	.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
		position: relative;
		grid-template-columns: 72px 1fr;
		column-gap: 14px;
	}

	.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
		padding-right: 0;
	}

	.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img {
		width: 72px;
		height: 72px;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart-item__wrap .wc-block-components-product-metadata {
		display: none;
	}

	.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity {
		flex-wrap: wrap;
		gap: 11px 18px;
		margin-top: 3px;
	}

	.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
		flex-basis: 100%;
		font-size: 12px;
		line-height: 18px;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart-item__total {
		position: absolute;
		right: 0;
		bottom: 42px;
		padding-left: 0;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart-item__total::after {
		margin-top: 0;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart__sidebar {
		margin-top: 28px;
		padding: 19px;
	}

	.woocommerce-cart .wc-block-cart .wc-block-cart__totals-title {
		display: block;
		font-size: 16px;
		line-height: 22px;
		letter-spacing: 0;
	}

	.ehb-cart-payment-marks .ehb-payment-row {
		gap: 10px;
	}

	/* The sticky bar below (total + CHECKOUT) replaces Woo's own submit button. */
	.woocommerce-cart .wc-block-cart .wc-block-cart__submit-container {
		display: none;
	}

	/* Cross-sells scroll sideways: 140px cards, 2.5 visible */
	.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-product-template {
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.woocommerce-cart .wp-block-woocommerce-product-collection .wc-block-product {
		flex: 0 0 140px;
		scroll-snap-align: start;
	}

	.woocommerce-cart .wp-block-woocommerce-product-collection .ehb-price-suffix {
		display: block;
		margin-left: 0;
	}
}

/* ==========================================================================
   Checkout Block — Figma 199:1197 (1440) / 215:1047 (390)
   Visual only (SCOPE NOTE): field order, floating labels and the step flow are
   Woo's. What lives in the editor instead of here: the Terms tick and text,
   the "Place order · $total" label, the "Return to cart" link (block
   settings), the guest / account / phone / company fields (Woo settings) and
   the delivery estimate (shipping rates). Type family, colour and the pill
   button come from tokens.css / components.css (Kadence palette).
   ========================================================================== */

/* Minimal header: Kadence Free has no per-page header, so the top and nav rows
   are hidden and the main row becomes logo + "Secure checkout" (Figma 93px). */
.ehb-checkout-minimal #masthead .site-top-header-wrap,
.ehb-checkout-minimal #masthead .site-bottom-header-wrap,
.ehb-checkout-minimal .kadence-breadcrumbs,
.ehb-checkout-minimal .ehb-breadcrumbs {
	display: none;
}

.ehb-checkout-minimal #masthead .site-main-header-wrap .site-header-row-container-inner {
	background: var(--ehb-surface-ink);
}

.ehb-checkout-minimal #masthead .site-main-header-wrap .site-container {
	position: relative;
	padding: 22px max(var(--ehb-gutter), calc((100% - var(--ehb-content-width)) / 2));
}

.ehb-checkout-minimal #masthead .site-main-header-wrap .site-main-header-inner-wrap {
	min-height: 0;
	padding-inline: 0;
}

.ehb-checkout-minimal #masthead .site-main-header-wrap .site-header-item:not(:has(.site-branding)) {
	display: none;
}

.ehb-checkout-minimal #masthead .site-main-header-wrap .site-branding img {
	width: auto;
	max-width: none;
	height: 49px;
}

.ehb-checkout-minimal #masthead .site-main-header-wrap .site-container::after {
	content: '🔒\00a0 Secure checkout';
	position: absolute;
	top: 50%;
	right: max(var(--ehb-gutter), calc((100% - var(--ehb-content-width)) / 2));
	transform: translateY(-50%);
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-on-dark);
}

/* Returning-customer strip (Figma "Returning customer"), full-bleed */
.woocommerce-checkout .ehb-checkout-login {
	padding: 16px 0;
	background: var(--ehb-surface-blush);
	box-shadow: 0 0 0 100vmax var(--ehb-surface-blush);
	clip-path: inset(0 -100vmax);
	font-size: 14px;
	line-height: 26px;
	color: var(--ehb-text-body);
}

.woocommerce-checkout .ehb-checkout-login a {
	margin-left: 8px;
	font-size: 16px;
	font-weight: 500;
	color: var(--ehb-brand-magenta);
	text-decoration: none;
}

/* Body: fields 760 + 40 gap + summary 400 */
.woocommerce-checkout .wp-block-woocommerce-checkout {
	padding: 56px 0 88px;
}

@media (min-width: 1000px) {
	.woocommerce-checkout .wc-block-checkout {
		gap: 40px;
		flex-wrap: nowrap;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__main {
		flex: 1 1 0;
		min-width: 0;
		max-width: none;
		padding-right: 0;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__sidebar {
		flex: 0 0 400px;
		width: 400px;
		max-width: 400px;
		align-self: flex-start;
	}
}

/* Step titles: Archivo 20/600 */
.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-step__title {
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 20px;
	line-height: 27px;
	letter-spacing: -0.1px;
	color: var(--ehb-text-ink);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-step {
	margin-bottom: 36px;
}

/* Fields: 8px radius, strong line; focus ring from the brand colour */
.woocommerce-checkout .wc-block-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-checkout .wc-block-components-combobox .components-combobox-control input,
.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input select,
.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input select,
.woocommerce-checkout .wc-block-checkout .wc-block-components-textarea {
	border: 1px solid var(--ehb-line-strong);
	border-radius: 8px;
	color: var(--ehb-text-ink);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-checkout .wc-block-components-textarea:focus {
	border-color: var(--ehb-brand-magenta);
	outline: 0;
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--ehb-brand-magenta) 25%, transparent);
}

/* Shipping + payment options: plain one-line radio rows, not boxes (Figma
   "Radio"): "Standard — AusPost eParcel · $9.95 · about 7 business days".
   Woo draws the frame with ::after on the group and stacks name / price /
   delivery time in two rows, so those are flattened here. */
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control::after,
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control__option::after {
	display: none;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control__option,
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control-accordion-option {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control__option {
	padding-left: 32px;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__option-layout,
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__label-group,
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__description-group {
	display: contents;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__option {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__label,
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__secondary-label,
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__description {
	flex: 0 0 auto;
	width: auto;
	font-weight: 400;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__secondary-label::before,
.woocommerce-checkout .wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__description::before {
	content: '\00a0·\00a0';
}

/* "Free shipping" needs no price in the line */
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__secondary-label:has(.wc-block-checkout__shipping-option--free) {
	display: none;
}

/* Radio 20px: white with a strong line, magenta with a white dot when chosen */
.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control__input {
	top: 1px;
	left: 0;
	margin: 0;
	transform: none;
	background: var(--ehb-surface-paper);
	border-color: var(--ehb-line-strong);
	box-shadow: none;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	background: var(--ehb-brand-magenta);
	border-color: var(--ehb-brand-magenta);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
	background: var(--ehb-text-on-dark);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control-accordion-content {
	padding: 0 0 0 32px;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
}

/* Place order 49px tall and full width, "Return to cart" beside it (Figma
   "Actions"). The link and the label are block settings, not CSS. */
@media (min-width: 768px) {
	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row {
		flex-direction: row-reverse;
		align-items: center;
		gap: 20px;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
		flex: 1 1 0;
		width: auto;
	}
}

/* Place order 49px tall; the label and "Return to cart" come from the block */
.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-place-order-button {
	height: auto;
	padding: 17px 30px;
	font-size: 14px;
	line-height: 15px;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-return-to-cart-button {
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-muted);
	text-decoration: none;
}

/* Tablet 768–1023: Woo Blocks' own container-query on
   .wc-block-components-sidebar-layout measures ITS width, not the viewport,
   and still reports "is-large" (2-column, side by side) down to ~700px. At
   this site's content width that leaves the sidebar column ~190-250px wide —
   too narrow for image + product name + price, so names wrap one letter per
   line. Force single-column stacking through the tablet band, same as the
   <768px behaviour, until the container is wide enough for a real 2nd column. */
@media (min-width: 768px) and (max-width: 1023px) {
	.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout.is-large {
		flex-direction: column;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout.is-large .wc-block-checkout__main,
	.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout.is-large .wc-block-checkout__sidebar {
		width: 100%;
		max-width: 100%;
		flex: 1 1 100%;
	}
}

/* Order summary card (Figma 199:1197): the sidebar is the card, Woo's inner
   frame and row dividers go. Row/coupon/total type is the shared totals rule. */
.woocommerce-checkout .wc-block-checkout .wc-block-checkout__sidebar {
	padding: 27px;
	background: var(--ehb-surface-raised);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: 14px;
	box-sizing: border-box;
}

.woocommerce-checkout .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border: 0;
	border-radius: 0;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-order-summary__title,
.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-order-summary__content {
	padding: 0;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-order-summary__title-text {
	margin: 0;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 20px;
	line-height: 27px;
	letter-spacing: -0.1px;
	color: var(--ehb-text-ink);
}

.wc-block-components-sidebar-layout .wc-block-components-totals-wrapper {
	padding: 0;
	border: 0;
}

/* Mobile 390 (Figma 215:1047) */
@media (max-width: 767px) {

	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-top-header-wrap,
	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-bottom-header-wrap {
		display: none;
	}

	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-main-header-wrap .site-header-row-container-inner {
		background: var(--ehb-surface-ink);
	}

	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-main-header-wrap .site-container {
		position: relative;
		padding: 14px var(--ehb-gutter);
	}

	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-main-header-wrap .site-header-item:not(:has(.site-branding)) {
		display: none;
	}

	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-main-header-wrap .site-branding img {
		width: auto;
		height: 37px;
	}

	.ehb-checkout-minimal #masthead .site-mobile-header-wrap .site-main-header-wrap .site-container::after {
		content: '🔒\00a0 Secure checkout';
		position: absolute;
		top: 50%;
		right: var(--ehb-gutter);
		transform: translateY(-50%);
		font-size: 12px;
		line-height: 18px;
		color: var(--ehb-text-on-dark);
	}

	.woocommerce-checkout .ehb-checkout-login {
		padding: 12px 0;
	}

	.woocommerce-checkout .wp-block-woocommerce-checkout {
		padding: 32px 0 48px;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-step__title {
		font-size: 16px;
		line-height: 22px;
		letter-spacing: 0;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__sidebar {
		padding: 15px;
	}

	/* Figma 215:1047: full width place order button, stacked with return link */
	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row {
		flex-direction: column;
		align-items: stretch;
		gap: 16px;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
		width: 100%;
		display: flex;
		justify-content: center;
		text-align: center;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-return-to-cart-button {
		text-align: center;
		display: block;
		margin-inline: auto;
	}
}

/* ==========================================================================
   Mobile Sticky Bottom Bars (PDP & Cart)
   ========================================================================== */

.ehb-sticky-bar,
.ehb-sticky-bar[hidden] {
	display: none;
}

@media (max-width: 767px) {
	.ehb-sticky-bar {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 120;
		display: block;
		background: var(--ehb-surface-paper);
		border-top: 1px solid var(--ehb-line-subtle);
		box-shadow: 0 -4px 16px rgba(36, 19, 32, 0.08);
		padding: 12px var(--ehb-gutter);
	}

	.ehb-sticky-bar__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--ehb-space-16);
		max-width: var(--ehb-content-width);
		margin-inline: auto;
	}

	.ehb-sticky-bar__price {
		display: flex;
		flex-direction: column;
	}

	.ehb-sticky-bar__amount {
		font-family: var(--ehb-font-body);
		font-weight: var(--ehb-weight-bold);
		font-size: var(--ehb-size-price-compact);
		color: var(--ehb-text-ink);
	}

	.ehb-sticky-bar__tax {
		font-family: var(--ehb-font-body);
		font-size: var(--ehb-size-body-caption);
		color: var(--ehb-text-muted);
	}

	.ehb-sticky-bar__action {
		height: 48px;
		padding: 0 var(--ehb-space-24);
		font-size: var(--ehb-size-label-button-compact);
		margin: 0;
	}

	/* PDP specific sticky bar (Figma 213:933, height 73px) */
	.ehb-sticky-bar.ehb-sticky-bar--pdp,
	.ehb-sticky-bar.ehb-sticky-bar--cart {
		display: flex;
		align-items: center;
		height: 73px;
		padding: 12px 16px;
		box-sizing: border-box;
		z-index: 999;
	}

	.ehb-sticky-bar.ehb-sticky-bar--pdp .ehb-sticky-bar__inner,
	.ehb-sticky-bar.ehb-sticky-bar--cart .ehb-sticky-bar__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
	}

	.ehb-sticky-bar.ehb-sticky-bar--pdp .ehb-sticky-bar__amount,
	.ehb-sticky-bar.ehb-sticky-bar--cart .ehb-sticky-bar__amount {
		font-family: var(--ehb-font-body);
		font-weight: 600;
		font-size: 18px;
		line-height: 26px;
		color: var(--ehb-text-ink);
	}

	.ehb-sticky-bar.ehb-sticky-bar--pdp .ehb-sticky-bar__tax,
	.ehb-sticky-bar.ehb-sticky-bar--cart .ehb-sticky-bar__tax {
		font-family: var(--ehb-font-body);
		font-size: 12px;
		line-height: 18px;
		color: var(--ehb-text-muted);
	}

	.ehb-sticky-bar.ehb-sticky-bar--pdp .ehb-sticky-bar__action,
	.ehb-sticky-bar.ehb-sticky-bar--cart .ehb-sticky-bar__action {
		flex: 1 0 0;
		min-width: 0;
		height: 48px;
		padding: 0 24px;
		background: var(--ehb-brand-orchid);
		border: none;
		border-radius: var(--ehb-radius-pill);
		font-family: var(--ehb-font-display);
		font-weight: var(--ehb-weight-bold);
		font-size: 14px;
		letter-spacing: 1.12px;
		text-transform: uppercase;
		color: var(--ehb-text-on-dark);
		cursor: pointer;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* Replace bottom nav on PDP on mobile (Figma node 213:933) */
	.single-product #mobile-footer-nav,
	.single-product .kadence-mobile-bottom-nav {
		display: none;
	}

	/* Prevent content from hiding behind mobile sticky bars */
	body.single-product {
		padding-bottom: calc(73px + env(safe-area-inset-bottom, 0px));
	}

	.ehb-sticky-bar.ehb-sticky-bar--cart[hidden] {
		display: none;
	}

	body.woocommerce-cart {
		padding-bottom: calc(73px + env(safe-area-inset-bottom, 0px));
	}
}

/* Native Woo gallery and accessible mobile panels. */
.woocommerce div.product .woocommerce-tabs ul.tabs[hidden] {
	display: none;
}

.ehb-product-accordion details {
	border-bottom: 1px solid var(--ehb-line-subtle);
}

.ehb-product-accordion summary {
	padding-block: 16px;
	cursor: pointer;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	list-style: none;
}

.ehb-product-accordion summary::-webkit-details-marker {
	display: none;
}

.ehb-product-accordion summary::after {
	content: '+';
	float: right;
}

.ehb-product-accordion details[open] summary::after {
	content: '−';
}

.woocommerce .ehb-product-accordion .woocommerce-Tabs-panel {
	display: block !important;
	margin: 0;
	padding: 0 0 16px;
}

.ehb-product-accordion summary:focus-visible {
	outline: 2px solid var(--ehb-brand-magenta);
	outline-offset: 4px;
}

/* ==========================================================================
   Order received — Figma 201:1362 (1440) / 222:1634 (390)
   Layout is the editable order-confirmation wp_block (see
   tools/wp-cli/setup-checkout.php); this styles its blocks. Delivery line,
   GST row and total note come from Emily_HB_Commerce.
   ========================================================================== */

/* Confirmation band: full-bleed blush, H1 + status line + order meta */
.woocommerce-order-received .ehb-order-hero {
	padding: 72px 0 56px;
	background: var(--ehb-surface-blush);
	box-shadow: 0 0 0 100vmax var(--ehb-surface-blush);
	clip-path: inset(0 -100vmax);
}

.woocommerce-order-received .ehb-order-hero h1,
.woocommerce-order-received .ehb-order-hero .woocommerce-thankyou-order-received {
	margin: 0 0 14px;
}

.woocommerce-order-received .ehb-order-hero .wc-block-order-confirmation-status-description {
	margin: 0 0 14px;
	font-size: 18px;
	line-height: 30px;
	color: var(--ehb-text-body);
}

.woocommerce-order-received .ehb-order-hero .wc-block-order-confirmation-summary-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body);
}

.woocommerce-order-received .ehb-order-hero .wc-block-order-confirmation-summary-list-item__key {
	font-weight: 600;
}

/* Body: cards 760 + 40 + totals 400 */
.woocommerce-order-received .ehb-order-body {
	flex-wrap: nowrap;
	gap: 40px;
	margin: 0;
	padding: 56px 0 88px;
}

.woocommerce-order-received .ehb-order-body>.wp-block-column:first-child {
	flex: 1 1 0;
	min-width: 0;
}

.woocommerce-order-received .ehb-order-body>.wp-block-column:last-child {
	flex: 0 0 400px;
}

.ehb-order-body .wc-block-order-confirmation-shipping-wrapper,
.ehb-order-body .wc-block-order-confirmation-billing-wrapper,
.ehb-order-body .wc-block-order-confirmation-additional-information,
.ehb-order-body .wc-block-order-confirmation-totals-wrapper {
	margin: 0 0 28px;
	padding: 22px 24px;
	background: var(--ehb-surface-raised);
	border: 1px solid var(--ehb-line-subtle);
	border-radius: 14px;
}

.ehb-order-body .wc-block-order-confirmation-totals-wrapper {
	padding: 28px;
}

.ehb-order-body h2 {
	margin: 0 0 10px;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 16px;
	line-height: 22px;
	letter-spacing: 0;
	color: var(--ehb-text-ink);
}

.ehb-order-body .wc-block-order-confirmation-totals-wrapper h2 {
	margin-bottom: 6px;
	font-size: 20px;
	line-height: 27px;
	letter-spacing: -0.1px;
}

.ehb-order-body address,
.ehb-order-body p {
	margin: 0;
	font-style: normal;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body);
}

/* Woo frames each address in its own bordered box; the card already does that */
.ehb-order-body .wc-block-order-confirmation-shipping-address,
.ehb-order-body .wc-block-order-confirmation-billing-address {
	padding: 0;
	border: 0;
}

/* GST invoice table: item rows, then Shipping / Taxes / Total. Woo scopes its
   cell padding under .wc-block-order-confirmation-totals, so this does too. */
.ehb-order-body .wc-block-order-confirmation-totals table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
}

.ehb-order-body .wc-block-order-confirmation-totals table th,
.ehb-order-body .wc-block-order-confirmation-totals table td {
	padding: 10px 0;
	border: 0;
	font-size: 14px;
	line-height: 22px;
	font-weight: 400;
	color: var(--ehb-text-body);
	overflow-wrap: anywhere;
}

.ehb-order-body .wc-block-order-confirmation-totals table thead th {
	padding-top: 0;
	font-family: var(--ehb-font-display);
	font-weight: var(--ehb-weight-bold);
	font-size: 11px;
	line-height: 14px;
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ehb-text-muted);
}

.ehb-order-body .wc-block-order-confirmation-totals table td:last-child,
.ehb-order-body .wc-block-order-confirmation-totals table th:last-child {
	text-align: right;
	white-space: nowrap;
}

.ehb-order-body .wc-block-order-confirmation-totals table a {
	color: var(--ehb-text-ink);
	text-decoration: none;
}

.ehb-order-body .wc-block-order-confirmation-totals table tfoot tr:last-child th,
.ehb-order-body .wc-block-order-confirmation-totals table tfoot tr:last-child td {
	padding-block: 16px;
	border-top: 1px solid var(--ehb-line-subtle);
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 16px;
	color: var(--ehb-text-ink);
}

.ehb-order-body .ehb-order-abn {
	margin-top: 8px;
	font-size: 12px;
	line-height: 18px;
	color: var(--ehb-text-muted);
}

/* Tablet 768–1023: stack order body columns so address cards and totals aren't squeezed */
@media (min-width: 768px) and (max-width: 1023px) {
	.woocommerce-order-received .ehb-order-body {
		flex-direction: column;
		gap: 28px;
	}

	.woocommerce-order-received .ehb-order-body>.wp-block-column:last-child {
		flex: 1 1 100%;
		max-width: 100%;
	}
}

@media (max-width: 767px) {
	.woocommerce-order-received .ehb-order-hero {
		padding: 44px 0 36px;
	}

	.woocommerce-order-received .ehb-order-hero h1 {
		font-size: 30px;
		line-height: 38px;
	}

	.woocommerce-order-received .ehb-order-body {
		flex-direction: column;
		gap: 20px;
		padding: 32px 0 40px;
	}

	.woocommerce-order-received .ehb-order-body>.wp-block-column:last-child {
		flex-basis: auto;
	}

	.ehb-order-body .wc-block-order-confirmation-totals-wrapper {
		padding: 20px;
	}

	/* Figma 222:1717: full-width CONTINUE SHOPPING button */
	.ehb-order-body .wp-block-buttons,
	.ehb-order-body .wp-block-button,
	.ehb-order-body .wp-block-button__link {
		width: 100%;
		display: flex;
		justify-content: center;
		text-align: center;
	}
}

/* ==========================================================================
   WooCommerce My Account Page Styles (Emily H&B Design System)
   ========================================================================== */

.woocommerce-account .site-main {
	padding-block: var(--ehb-space-48, 48px);
}

.woocommerce-account .entry-content {
	max-width: var(--ehb-content-width, 1140px);
	margin-inline: auto;
	width: 100%;
}

.woocommerce-account h2,
.woocommerce-account h3 {
	font-family: var(--ehb-font-display);
	font-weight: 700;
	color: var(--ehb-text-ink, #241320);
}

.woocommerce-account a {
	color: var(--ehb-brand-magenta, #944c72);
	text-decoration: underline;
}

.woocommerce-account a:hover {
	color: var(--ehb-brand-rose-plum, #6c2d52);
}

/* --- Logged-out Login / Register Cards --- */

.woocommerce-account #customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
	margin-top: 16px;
}

.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2,
.woocommerce-account form.woocommerce-form-login {
	background: var(--ehb-surface-paper, #ffffff);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: var(--ehb-radius-xl, 16px);
	padding: 36px 32px;
	box-shadow: 0 4px 20px rgba(36, 19, 32, 0.04);
	box-sizing: border-box;
}

/* Single login form when registration is disabled */
.woocommerce-account:not(.logged-in) .woocommerce {
	max-width: 480px;
	margin: 0 auto;
}

.woocommerce-account:not(.logged-in) .woocommerce:has(#customer_login) {
	max-width: 960px;
}

.woocommerce-account:not(.logged-in) .woocommerce>h2 {
	text-align: center;
	margin: 0 0 24px;
	font-family: var(--ehb-font-display);
	font-size: 28px;
	line-height: 36px;
	font-weight: 700;
	color: var(--ehb-text-ink, #241320);
}

.woocommerce-account:not(.logged-in) .woocommerce>form.woocommerce-form-login {
	width: 100%;
	margin: 0 auto;
}

.woocommerce-account form .form-row {
	margin-bottom: 18px;
	padding: 0;
}

.woocommerce-account form .form-row label {
	display: block;
	margin-bottom: 6px;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 13.5px;
	color: var(--ehb-text-ink, #241320);
}

.woocommerce-account form .form-row .required {
	color: var(--ehb-brand-magenta, #944c72);
	margin-left: 2px;
}

.woocommerce-account form input[type="text"],
.woocommerce-account form input[type="email"],
.woocommerce-account form input[type="password"],
.woocommerce-account form input[type="tel"],
.woocommerce-account form select,
.woocommerce-account form textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: var(--ehb-radius-md, 8px);
	font-family: var(--ehb-font-body);
	font-size: 15px;
	line-height: 22px;
	color: var(--ehb-text-ink, #241320);
	background: #ffffff;
	box-sizing: border-box;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

.woocommerce-account form input[type="text"]:focus,
.woocommerce-account form input[type="email"]:focus,
.woocommerce-account form input[type="password"]:focus,
.woocommerce-account form input[type="tel"]:focus,
.woocommerce-account form select:focus,
.woocommerce-account form textarea:focus {
	outline: none;
	border-color: var(--ehb-brand-magenta, #944c72);
	box-shadow: 0 0 0 3px rgba(148, 76, 114, 0.15);
}

.woocommerce-account .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	color: var(--ehb-text-body, #241320);
	margin-bottom: 20px;
	cursor: pointer;
}

.woocommerce-account form button.woocommerce-Button,
.woocommerce-account form button[type="submit"],
.woocommerce-account .woocommerce-Button.button {
	width: 100%;
	padding: 14px 28px;
	background: var(--ehb-brand-magenta, #944c72);
	color: #ffffff !important;
	border: none;
	border-radius: 999px;
	font-family: var(--ehb-font-display);
	font-weight: 700;
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	transition: background-color 150ms ease, transform 100ms ease;
}

.woocommerce-account form button.woocommerce-Button:hover,
.woocommerce-account form button[type="submit"]:hover,
.woocommerce-account .woocommerce-Button.button:hover {
	background: var(--ehb-brand-rose-plum, #6c2d52);
	color: #ffffff !important;
}

.woocommerce-account .woocommerce-LostPassword {
	margin-top: 16px;
	text-align: center;
	font-size: 13.5px;
}

/* --- Logged-in Dashboard Layout --- */

.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	flex: 0 0 240px;
	width: 240px;
	background: var(--ehb-surface-paper, #ffffff);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: var(--ehb-radius-lg, 12px);
	padding: 16px 12px;
	box-shadow: 0 2px 12px rgba(36, 19, 32, 0.03);
	box-sizing: border-box;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 10px 16px;
	border-radius: 8px;
	font-family: var(--ehb-font-display);
	font-weight: 600;
	font-size: 14px;
	line-height: 20px;
	color: var(--ehb-text-ink, #241320);
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--ehb-surface-blush, #fbf7fa);
	color: var(--ehb-brand-magenta, #944c72);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: var(--ehb-brand-magenta, #944c72);
	color: #ffffff !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
	flex: 1 1 0;
	min-width: 0;
	background: var(--ehb-surface-paper, #ffffff);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: var(--ehb-radius-xl, 16px);
	padding: 36px;
	box-shadow: 0 2px 12px rgba(36, 19, 32, 0.03);
	box-sizing: border-box;
}

.woocommerce-account .woocommerce-MyAccount-content p {
	font-family: var(--ehb-font-body);
	font-size: 15px;
	line-height: 24px;
	color: var(--ehb-text-body, #241320);
	margin-bottom: 18px;
}

/* Orders Table */
.woocommerce-account table.woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 16px;
	box-sizing: border-box;
}

.woocommerce-account table.woocommerce-orders-table th {
	padding: 12px 16px;
	border-bottom: 2px solid var(--ehb-line-subtle, #e7dce5);
	font-family: var(--ehb-font-display);
	font-weight: 700;
	font-size: 11px;
	line-height: 16px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--ehb-text-muted, #6b5f69);
	text-align: left;
}

.woocommerce-account table.woocommerce-orders-table td {
	padding: 16px;
	border-bottom: 1px solid var(--ehb-line-subtle, #e7dce5);
	font-size: 14px;
	line-height: 20px;
	color: var(--ehb-text-ink, #241320);
}

.woocommerce-account table.woocommerce-orders-table .woocommerce-button {
	display: inline-block;
	width: auto;
	padding: 6px 16px;
	background: var(--ehb-surface-blush, #fbf7fa);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--ehb-brand-magenta, #944c72) !important;
	text-decoration: none;
	transition: background-color 150ms ease, border-color 150ms ease;
}

.woocommerce-account table.woocommerce-orders-table .woocommerce-button:hover {
	background: var(--ehb-brand-magenta, #944c72);
	border-color: var(--ehb-brand-magenta, #944c72);
	color: #ffffff !important;
}

/* Addresses Section */
.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: 20px;
}

.woocommerce-account .woocommerce-Address {
	background: var(--ehb-surface-blush, #fbf7fa);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	border-radius: 12px;
	padding: 24px;
	box-sizing: border-box;
}

.woocommerce-account .woocommerce-Address .title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
}

.woocommerce-account .woocommerce-Address .title h3 {
	margin: 0;
	font-size: 16px;
}

.woocommerce-account .woocommerce-Address address {
	font-style: normal;
	font-size: 14px;
	line-height: 22px;
	color: var(--ehb-text-body, #241320);
}

/* Notices & Alerts */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
	padding: 16px 20px;
	border-radius: 10px;
	font-family: var(--ehb-font-body);
	font-size: 14px;
	line-height: 20px;
	margin-bottom: 24px;
	box-sizing: border-box;
}

.woocommerce-notices-wrapper .woocommerce-message {
	background: #edf7ed;
	border: 1px solid #c8e6c9;
	color: #1e4620;
}

.woocommerce-notices-wrapper .woocommerce-info {
	background: var(--ehb-surface-blush, #fbf7fa);
	border: 1px solid var(--ehb-line-subtle, #e7dce5);
	color: var(--ehb-text-ink, #241320);
}

.woocommerce-notices-wrapper .woocommerce-error {
	background: #fdf2f2;
	border: 1px solid #f8b4b4;
	color: #9b1c1c;
	list-style: none;
}

/* Mobile & Tablet Responsiveness */
@media (max-width: 1023px) {
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		flex-direction: column;
		gap: 20px;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation {
		width: 100%;
		flex: none;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding: 8px;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 8px;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li {
		white-space: nowrap;
	}

	.woocommerce-account .woocommerce-MyAccount-content {
		padding: 24px 20px;
		width: 100%;
	}
}

@media (max-width: 767px) {
	.woocommerce-account #customer_login {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.woocommerce-account:not(.logged-in) .u-column1,
	.woocommerce-account:not(.logged-in) .u-column2,
	.woocommerce-account form.woocommerce-form-login {
		padding: 24px 18px;
	}

	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

@media (max-width: 767px) {
	.single-product .ehb-pdp-top-wrapper {
		padding-inline: 0;
	}

	.single-product .ehb-pdp-top-wrapper .woocommerce-product-gallery {
		flex-basis: auto;
	}

	.single-product .ehb-pdp-top-wrapper .summary.entry-summary {
		flex-basis: auto;
	}

	.woocommerce div.product .related.products {
		padding-block: 52px;
	}

	.woocommerce div.product .related.products .ehb-section-head {
		gap: 6px;
		margin-bottom: 20px;
	}

	.woocommerce div.product .related.products .ehb-section-head__title {
		margin: 0;
	}

	.woocommerce div.product .related.products ul.products {
		gap: 12px;
		margin-inline: 0;
		padding-inline: 0;
	}

	.woocommerce div.product .related.products ul.products li.product {
		flex: 0 0 140px;
		width: 140px;
		min-width: 140px;
	}

	.woocommerce div.product .related.products ul.products {
		align-items: stretch;
	}

	.woocommerce div.product .related.products ul.products li.product {
		height: auto;
	}

	.woocommerce div.product .related.products ul.products li.product .product-details {
		padding: 16px 16px 18px;
		gap: 7px;
	}

	.woocommerce div.product .related.products .woocommerce-loop-product__title {
		font-size: 16px;
		line-height: 22px;
	}

	.woocommerce div.product .related.products .ehb-card-eyebrow {
		font-size: 11px;
		line-height: 14px;
	}

	.woocommerce div.product .related.products .price {
		font-size: 16px;
		line-height: 22px;
	}

	.woocommerce div.product .related.products .price .ehb-price-suffix {
		display: inline-block;
		font-size: 12px;
		line-height: 18px;
	}

	.woocommerce div.product .related.products .ehb-card-rating {
		flex-wrap: wrap;
		font-size: 12px;
		line-height: 18px;
	}

	.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel p {
		font-size: 14px;
		line-height: 22px;
	}

	/* Keep Woo's actual submit button and validation; only fix its position. */
	.ehb-checkout-minimal #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start),
	.ehb-checkout-minimal #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-header-row-container-inner {
		background: var(--ehb-surface-ink) !important;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row::before {
		content: '';
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		height: calc(73px + env(safe-area-inset-bottom, 0px));
		background: var(--ehb-surface-paper);
		border-top: 1px solid var(--ehb-line-subtle);
		z-index: 99;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
		position: fixed;
		left: 16px;
		right: 16px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		width: calc(100% - 32px);
		min-height: 49px;
		margin: 0;
		z-index: 100;
	}

	/* Keyboard open (see add-to-cart.js): hide the bar instead of letting iOS Safari float it over the form. */
	.ehb-typing.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row::before,
	.ehb-typing.woocommerce-checkout .wc-block-checkout .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
		opacity: 0;
		pointer-events: none;
	}

	/* "PLACE ORDER · $total" (Figma 215:1262); the total is copied onto data-ehb-total by add-to-cart.js */
	.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-place-order-button[data-ehb-total]::after {
		content: '· ' attr(data-ehb-total);
		margin-left: .4em;
		letter-spacing: inherit;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #colophon {
		padding-bottom: calc(73px + env(safe-area-inset-bottom, 0px));
	}
}

/* Checkout mobile (Figma 215:1047): 54px fields, 14/22 checkbox copy, 16/26 recap rows */
@media (max-width: 767px) {
	.woocommerce-checkout .wc-block-checkout .wc-block-components-form .wc-block-components-text-input input[type] {
		min-height: 54px;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-components-checkbox .wc-block-components-checkbox__label {
		font-size: 14px;
		line-height: 22px;
	}

	.woocommerce-checkout .wc-block-checkout .wc-block-components-totals-item:not(.wc-block-components-totals-footer-item) .wc-block-components-totals-item__label,
	.woocommerce-checkout .wc-block-checkout .wc-block-components-totals-item:not(.wc-block-components-totals-footer-item) .wc-block-components-totals-item__value {
		font-size: 16px;
		line-height: 26px;
		font-weight: 500;
		color: var(--ehb-text-ink);
	}
}

/* Mobile/tablet filter drawer: group headers are plain rows (not the pill trigger); reset link sits in the gutter */
@media (max-width: 1023px) {
	.ehb-catalog-results .ehb-clear-filters-btn {
		padding: 16px var(--ehb-gutter, 16px) 0;
		font-size: 14px !important;
		line-height: 20px;
	}
}

/* PDP gallery: infographic images have white backgrounds; multiply lets the lilac well show through
   without touching the artwork (background removal destroyed the text). Thumb strip scrollbar hidden. */
.woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs img,
.woocommerce div.product div.images.woocommerce-product-gallery .woocommerce-product-gallery__image img {
	mix-blend-mode: multiply;
}

.woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs {
	scrollbar-width: none;
}

.woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar {
	display: none;
}

/* Breadcrumb on one line (long product names truncate instead of wrapping into a second row) */
@media (max-width: 767px) {
	.ehb-breadcrumb-bar .ehb-breadcrumb {
		flex-wrap: nowrap;
		overflow: hidden;
	}

	.ehb-breadcrumb-bar .ehb-breadcrumb li {
		flex: 0 0 auto;
	}

	.ehb-breadcrumb-bar .ehb-breadcrumb li:last-child {
		flex: 0 1 auto;
		min-width: 0;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		display: block;
	}
}

/* Thumb well sits on the li so the img's multiply blends against blush, not the white page */
.woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li {
	background: var(--ehb-surface-blush, #f7eaf1);
	border-radius: 8px;
	overflow: hidden;
}

.woocommerce div.product div.images.woocommerce-product-gallery .flex-control-thumbs li img {
	background: transparent;
}

/* Checkout address card: "Edit" link shrank to 2px and wrapped per character (flex item, no basis) */
.wc-block-components-address-card .wc-block-components-address-card__edit {
	flex: 0 0 auto;
	white-space: nowrap;
	margin-left: 16px;
}

.wc-block-components-address-card {
	gap: 16px;
}

.wc-block-components-address-card address {
	min-width: 0;
	flex: 1 1 auto;
}