/* EMS interface palette.  Product photography, logos and third-party embeds
 * are intentionally outside this visual-only layer. */
:root {
	/* One source of truth for the anniversary-sale orange accent. */
	--ems-accent: #F6A51C;
	--ems-ui-orange: var(--ems-accent);
	--ems-ui-orange-hover: #D88A08;
	--ems-ui-orange-dark: #9A4A05;
	--ems-ui-orange-soft: #fff5e6;
	--ems-ui-orange-rgb: 246, 165, 28;
	--ems-ui-orange-dark-rgb: 154, 74, 5;
}

/* WoodMart's primary green is a theme variable, so replace it at the source
 * used by its buttons, active controls, pagination and price inheritance. */
body.ems-shell-active {
	--wd-primary-color: var(--ems-ui-orange);
	--wd-primary-color-hover: var(--ems-ui-orange-hover);
	--wd-primary-color-rgb: var(--ems-ui-orange-rgb);
	--wd-alternative-color: var(--ems-ui-orange);
	--wd-alternative-color-hover: var(--ems-ui-orange-hover);
	--wd-alternative-color-rgb: var(--ems-ui-orange-rgb);
}

/* Component-scoped palettes inherit the same accent instead of their older
 * red/green values. */
body.ems-shell-active .ems-homepage,
body.ems-shell-active .ems-shell,
body.ems-shell-active .ems-homepage.bd-el-home {
	--ems-hp-orange: var(--ems-accent);
	--ems-hp-orange-hover: var(--ems-ui-orange-hover);
	--ems-shell-orange: var(--ems-accent);
	--ems-shell-orange-hover: var(--ems-ui-orange-hover);
	--bd-orange: var(--ems-accent);
}

/* The badge is the visual authority. Keep it exact across every loop,
 * archive, quick view and related-product carousel. */
body.ems-shell-active :is(
	.ems-sale-badge,
	.product-card__badge,
	.ems-card-discount-badge,
	.ems-hp-product__badge,
	.onsale,
	.wd onsale
) {
	background-color: var(--ems-accent) !important;
	border-color: var(--ems-accent) !important;
	color: #17191c !important;
}

/* Recovered homepage and policy components still carry the old red-orange
 * literals. Their UI accent is now the shared EMS orange. */
body.ems-shell-active :is(
	.ems-hp-button,
	.bd-el-btn-red,
	.bd-el-red-link,
	.bd-el-warranty-btn,
	.bd-el-buy-with-btn,
	.ems-contact-submit,
	.ems-shell-mega__heading-link:hover,
	.ems-shell-mega__heading-link:focus-visible,
	.ems-shell-mega__links a:hover,
	.ems-shell-mega__links a:focus-visible,
	.ems-all-equipment__eyebrow,
	.ems-reference-footer a:hover,
	.ems-privacy-kicker,
	.ems-product-policy-links a
) {
	color: var(--ems-accent) !important;
}

/* Filled EMS actions use white text for contrast. Keep this explicit because
 * the shared accent rule above also covers legacy button class names. */
body.ems-shell-active :is(
	.ems-hp-button,
	.bd-el-btn-red,
	.bd-el-warranty-btn,
	.bd-el-buy-with-btn,
	.ems-contact-submit
) {
	color: #fff !important;
}

body.ems-shell-active :is(
	.ems-hp-button,
	.bd-el-btn-red,
	.bd-el-warranty-btn,
	.bd-el-buy-with-btn,
	.ems-contact-submit,
	.ems-shell-mega,
	.ems-product-contact-card,
	.ems-product-card-icon,
	.ems-product-trust-icon,
	.ems-product-payment-status,
	.ems-reference-page__content .tax-highlight,
	.ems-reference-page__content .payment-highlight
) {
	border-color: var(--ems-accent) !important;
}

body.ems-shell-active :is(
	.ems-hp-button,
	.bd-el-btn-red,
	.bd-el-warranty-btn,
	.bd-el-buy-with-btn,
	.ems-contact-submit,
	.ems-shell-mega,
	.ems-reference-page__content .tax-highlight,
	.ems-reference-page__content .payment-highlight
) {
	background-color: var(--ems-accent) !important;
}

/* Inline styles in the managed policy pages are first-party UI. Override only
 * their known accent declarations; genuine error/payment-state reds remain. */
body.ems-shell-active [style*="#ff5c2b"],
body.ems-shell-active [style*="#ff5733"],
body.ems-shell-active [style*="#ff5a2f"],
body.ems-shell-active [style*="#ff7a4f"],
body.ems-shell-active [style*="#f97316"],
body.ems-shell-active [style*="#e3a12c"] {
	color: var(--ems-accent) !important;
	border-color: var(--ems-accent) !important;
}

body.ems-shell-active [style*="background:#ff5c2b"],
body.ems-shell-active [style*="background: #ff5c2b"],
body.ems-shell-active [style*="background:#ff5733"],
body.ems-shell-active [style*="background: #ff5733"],
body.ems-shell-active [style*="background:#ff5a2f"],
body.ems-shell-active [style*="background: #ff5a2f"],
body.ems-shell-active [style*="background:#f97316"],
body.ems-shell-active [style*="background: #f97316"],
body.ems-shell-active [style*="background:#e3a12c"],
body.ems-shell-active [style*="background: #e3a12c"] {
	background-color: var(--ems-accent) !important;
	color: #17191c !important;
}

/* The anti-fraud warning is an intentional warning state, so retain its
 * semantic red rather than treating it as a decorative accent. */
body.ems-shell-active .ems-reference-page__content .warning-box[style*="#ff5c2b"] {
	background-color: #ff5c2b !important;
	border-color: #ff5c2b !important;
	color: #fff !important;
}

/* Sale and payable prices use the accessible dark orange on white. */
body.ems-shell-active :is(
	.ems-price-current,
	.price ins,
	.price ins .woocommerce-Price-amount,
	.woocommerce-Price-amount.amount,
	.product-card__price,
	.ems-price-stack,
	.ems-hp-product__price,
	.woocommerce-cart-form .product-subtotal,
	.woocommerce-cart-form .product-price,
	.cart_totals .amount,
	.woocommerce-checkout-review-order-table .amount,
	.woocommerce-mini-cart__total .amount,
	.widget_shopping_cart .amount
) {
	color: var(--ems-ui-orange-dark) !important;
}

body.ems-shell-active :is(
	.ems-price-current .woocommerce-Price-amount,
	.price ins .woocommerce-Price-currencySymbol,
	.woocommerce-cart-form .product-subtotal .amount,
	.woocommerce-cart-form .product-price .amount,
	.cart_totals .amount,
	.woocommerce-checkout-review-order-table .amount,
	.woocommerce-mini-cart__total .amount,
	.widget_shopping_cart .amount
) {
	color: var(--ems-ui-orange-dark) !important;
}

/* Availability/status UI keeps its meaning while adopting EMS orange. */
body.ems-shell-active :is(
	.stock.in-stock,
	.in-stock,
	.availability,
	.product_meta .stock,
	.woocommerce-variation-availability
) {
	color: var(--ems-ui-orange-dark) !important;
}

/* Navigation, links, active states and standard WooCommerce controls. */
body.ems-shell-active :is(
	.woodmart-nav-link.is-active,
	.woodmart-nav-link:hover,
	.woodmart-nav-link:focus-visible,
	.nav-link-text.is-active,
	.nav-link-text:hover,
	.nav-link-text:focus-visible,
	.page-numbers.current,
	.shipping-calculator-button,
	.showcoupon,
	.woocommerce-info a,
	.woocommerce-message a,
	.woocommerce a.remove:hover
) {
	color: var(--ems-ui-orange-dark) !important;
}

body.ems-shell-active :is(
	.page-numbers.current,
	.wd-nav-product-cat .current-menu-item > a,
	.wd-nav-product-cat .menu-item:hover > a
) {
	background-color: var(--ems-ui-orange) !important;
	border-color: var(--ems-ui-orange) !important;
	color: #17191c !important;
}

body.ems-shell-active :is(
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce .button,
	button.btn-accent,
	.button.alt,
	.checkout-button,
	.single_add_to_cart_button,
	.add_to_cart_button,
	.buy-now-button,
	.ems-buy-now,
	.ems-cart-drawer__checkout,
	.ems-cart-drawer__view-cart,
	.ems-shell-search__submit
) {
	background-color: var(--ems-ui-orange) !important;
	border-color: var(--ems-ui-orange) !important;
	color: #fff !important;
}

body.ems-shell-active :is(
	.woocommerce a.button:hover,
	.woocommerce a.button:focus-visible,
	.woocommerce button.button:hover,
	.woocommerce button.button:focus-visible,
	.woocommerce input.button:hover,
	.woocommerce input.button:focus-visible,
	.woocommerce .button:hover,
	.woocommerce .button:focus-visible,
	button.btn-accent:hover,
	button.btn-accent:focus-visible,
	.button.alt:hover,
	.button.alt:focus-visible,
	.checkout-button:hover,
	.checkout-button:focus-visible,
	.single_add_to_cart_button:hover,
	.single_add_to_cart_button:focus-visible,
	.add_to_cart_button:hover,
	.add_to_cart_button:focus-visible,
	.buy-now-button:hover,
	.buy-now-button:focus-visible,
	.ems-buy-now:hover,
	.ems-buy-now:focus-visible,
	.ems-cart-drawer__checkout:hover,
	.ems-cart-drawer__checkout:focus-visible,
	.ems-cart-drawer__view-cart:hover,
	.ems-cart-drawer__view-cart:focus-visible,
	.ems-shell-search__submit:hover,
	.ems-shell-search__submit:focus-visible
) {
	background-color: var(--ems-ui-orange-hover) !important;
	border-color: var(--ems-ui-orange-hover) !important;
	color: #fff !important;
}

/* Sliders, form controls and focus indicators use one shared accent. */
body.ems-shell-active :is(input[type="checkbox"], input[type="radio"], progress, meter) {
	accent-color: var(--ems-ui-orange);
}

body.ems-shell-active :is(
	input[type="range"]::-webkit-slider-thumb,
	input[type="range"]::-moz-range-thumb,
	.wd-price-slider .ui-slider-handle,
	.price_slider .ui-slider-handle
) {
	background: var(--ems-ui-orange) !important;
	border-color: var(--ems-ui-orange) !important;
}

body.ems-shell-active :is(
	input[type="range"]::-webkit-slider-runnable-track,
	input[type="range"]::-moz-range-track,
	.wd-price-slider .ui-slider-range,
	.price_slider .ui-slider-range
) {
	background: var(--ems-ui-orange) !important;
}

body.ems-shell-active :is(
	.woocommerce-message,
	.ems-page-message--success,
	.ems-contact-status.is-success,
	.ems-hp-form-message--success,
	.ems-workflow-status--success,
	.ems-form-state--success
) {
	border-color: var(--ems-ui-orange) !important;
	border-left-color: var(--ems-ui-orange) !important;
	background-color: var(--ems-ui-orange-soft) !important;
	color: var(--ems-ui-orange-dark) !important;
}

body.ems-shell-active :is(
	.woocommerce-message::before,
	.ems-page-message--success::before,
	.ems-contact-status.is-success::before,
	.ems-hp-form-message--success::before,
	.ems-workflow-status--success::before,
	.ems-form-state--success::before
) {
	color: var(--ems-ui-orange-dark) !important;
}

/* Covers inline/theme-generated green declarations without touching image
 * pixels or third-party iframe content. */
body.ems-shell-active [style*="#83b735"],
body.ems-shell-active [style*="#15803d"],
body.ems-shell-active [style*="rgb(131, 183, 53)"],
body.ems-shell-active [style*="rgb(21, 128, 61)"] {
	color: var(--ems-ui-orange-dark) !important;
}

body.ems-shell-active [style*="#83b735"]:is(button, a),
body.ems-shell-active [style*="rgb(131, 183, 53)"]:is(button, a) {
	background-color: var(--ems-ui-orange) !important;
	border-color: var(--ems-ui-orange) !important;
}

/* Filled actions never inherit orange link text. Keep every state readable
 * on the EMS-orange surface, including WooCommerce fragments. */
body.ems-shell-active :is(
	.ems-hp-button,
	.bd-el-btn-red,
	.bd-el-warranty-btn,
	.bd-el-buy-with-btn,
	.ems-contact-submit,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce .button,
	button.btn-accent,
	.button.alt,
	.checkout-button,
	.single_add_to_cart_button,
	.add_to_cart_button,
	.buy-now-button,
	.ems-buy-now,
	.ems-cart-drawer__checkout,
	.ems-cart-drawer__view-cart,
	.ems-cart-empty__button,
	.ems-shell-search__submit
):is(:link, :visited, :hover, :focus, :focus-visible, :active) {
	color: #fff !important;
}

/* Current/sale prices use the badge's exact orange. Original prices remain
 * neutral gray and crossed out. */
body.ems-shell-active :is(
	.ems-price-current,
	.price ins,
	.price ins .woocommerce-Price-amount,
	.woocommerce-Price-amount.amount,
	.woocommerce-cart-form .product-subtotal .amount,
	.woocommerce-cart-form .product-price ins .amount,
	.cart_totals .amount,
	.woocommerce-checkout-review-order-table ins .amount,
	.woocommerce-mini-cart__total .amount,
	.widget_shopping_cart ins .amount,
	.ems-mini-cart-price ins .amount
) {
	color: var(--ems-accent) !important;
}

body.ems-shell-active :is(
	.ems-price-comparison,
	.ems-price-comparison-amount,
	.price del,
	.price del .woocommerce-Price-amount,
	.woocommerce-cart-form del .amount,
	.cart_totals del .amount,
	.woocommerce-checkout-review-order-table del .amount,
	.woocommerce-mini-cart del .amount,
	.widget_shopping_cart del .amount,
	.ems-mini-cart-price del .amount
) {
	color: #888 !important;
	text-decoration: line-through !important;
}

/* Some card templates wrap the compare-at amount in an additional
 * WooCommerce amount span. Target the complete <del> subtree explicitly so
 * no inherited current-price color can turn the original price orange. */
body.ems-shell-active .ems-price-stack del,
body.ems-shell-active .ems-price-stack del *,
body.ems-shell-active .price del,
body.ems-shell-active .price del *,
body.ems-shell-active .woocommerce-mini-cart del,
body.ems-shell-active .woocommerce-mini-cart del *,
body.ems-shell-active .widget_shopping_cart del,
body.ems-shell-active .widget_shopping_cart del *,
body.ems-shell-active .woocommerce-cart-form del,
body.ems-shell-active .woocommerce-cart-form del *,
body.ems-shell-active .cart_totals del,
body.ems-shell-active .cart_totals del *,
body.ems-shell-active .woocommerce-checkout-review-order-table del,
body.ems-shell-active .woocommerce-checkout-review-order-table del *,
body.ems-shell-active .product-card__price del,
body.ems-shell-active .product-card__price del *,
body.ems-shell-active .ems-hp-product__price del,
body.ems-shell-active .ems-hp-product__price del *,
body.ems-shell-active .ems-archive-related__price del,
body.ems-shell-active .ems-archive-related__price del *,
body.ems-shell-active .ems-related-carousel .product-card__price del,
body.ems-shell-active .ems-related-carousel .product-card__price del *,
body.ems-shell-active .ems-related-products .price del,
body.ems-shell-active .ems-related-products .price del * {
	color: #888 !important;
	text-decoration: line-through !important;
}

/* Final product-price authority. Keep compare-at values neutral gray even
 * when a parent price wrapper or WoodMart rule supplies the EMS accent. */
:root {
	--ems-current-price: #F6A51C;
	--ems-original-price: #8A8A8A;
}

body.ems-shell-active :is(
	.price ins,
	.price ins .woocommerce-Price-amount,
	.price ins .woocommerce-Price-currencySymbol,
	.ems-price-current,
	.ems-price-current *,
	.ems-price-stack .ems-price-current *,
	.product-card__price ins,
	.product-card__price ins *,
	.ems-hp-product__price ins,
	.ems-hp-product__price ins *,
	.ems-mini-cart-price ins,
	.ems-mini-cart-price ins *,
	.woocommerce-mini-cart ins,
	.woocommerce-mini-cart ins *,
	.widget_shopping_cart ins,
	.widget_shopping_cart ins *,
	.woocommerce-cart-form .product-price ins,
	.woocommerce-cart-form .product-price ins *,
	.woocommerce-cart-form .product-subtotal ins,
	.woocommerce-cart-form .product-subtotal ins *,
	.cart_totals ins,
	.cart_totals ins *,
	.woocommerce-checkout-review-order-table ins,
	.woocommerce-checkout-review-order-table ins *,
	.ems-archive-related__price ins,
	.ems-archive-related__price ins *,
	.ems-related-carousel .product-card__price ins,
	.ems-related-carousel .product-card__price ins *,
	.ems-quick-view-dialog .price ins,
	.ems-quick-view-dialog .price ins *
) {
	color: var(--ems-current-price) !important;
	text-decoration: none !important;
	text-decoration-color: transparent !important;
}

body.ems-shell-active :is(
	del,
	del .woocommerce-Price-amount,
	del .woocommerce-Price-currencySymbol,
	.price del,
	.price del .woocommerce-Price-amount,
	.price del .woocommerce-Price-currencySymbol,
	.ems-price-comparison,
	.ems-price-comparison *,
	.ems-price-stack del,
	.ems-price-stack del *,
	.product-card__price del,
	.product-card__price del *,
	.ems-hp-product__price del,
	.ems-hp-product__price del *,
	.ems-mini-cart-price del,
	.ems-mini-cart-price del *,
	.woocommerce-mini-cart del,
	.woocommerce-mini-cart del *,
	.widget_shopping_cart del,
	.widget_shopping_cart del *,
	.woocommerce-cart-form del,
	.woocommerce-cart-form del *,
	.cart_totals del,
	.cart_totals del *,
	.woocommerce-checkout-review-order-table del,
	.woocommerce-checkout-review-order-table del *,
	.ems-archive-related__price del,
	.ems-archive-related__price del *,
	.ems-related-carousel .product-card__price del,
	.ems-related-carousel .product-card__price del *,
	.ems-related-products .price del,
	.ems-related-products .price del *,
	.ems-quick-view-dialog .price del,
	.ems-quick-view-dialog .price del *
) {
	color: var(--ems-original-price) !important;
	opacity: 1 !important;
	text-decoration-line: line-through !important;
	text-decoration-color: currentColor !important;
}

body.ems-shell-active :is(
	.price del,
	.ems-price-stack del,
	.product-card__price del,
	.ems-hp-product__price del,
	.ems-mini-cart-price del,
	.woocommerce-mini-cart del,
	.widget_shopping_cart del,
	.woocommerce-cart-form del,
	.cart_totals del,
	.woocommerce-checkout-review-order-table del,
	.ems-archive-related__price del,
	.ems-related-carousel .product-card__price del,
	.ems-related-products .price del,
	.ems-quick-view-dialog .price del
) {
	font-size: .88em !important;
}

/* Keep every nested node in a compare-at price neutral gray. WooCommerce
 * commonly nests currency symbols, bdi elements, and amount spans several
 * levels deep inside <del>. */
body.ems-shell-active :is(
	.price del,
	.woocommerce-mini-cart del,
	.widget_shopping_cart del,
	.woocommerce-cart-form del,
	.cart_totals del,
	.woocommerce-checkout-review-order-table del,
	.product-card__price del,
	.ems-hp-product__price del,
	.ems-archive-related__price del,
	.ems-related-carousel .product-card__price del,
	.ems-related-products .price del,
	.ems-quick-view-dialog .price del,
	.ems-price-stack del
) * {
	color: #8A8A8A !important;
	text-decoration-color: currentColor !important;
}

/* Related-product components are intentionally removed on mobile only. The
 * selectors name the EMS wrappers and WooCommerce/WoodMart related sections;
 * ordinary product grids, upsells, and cross-sells remain untouched. */
@media (max-width: 767px) {
	body.ems-shell-active:not(.ems-product-page) :is(
		.ems-related-products,
		.ems-related-carousel,
		.ems-archive-related-sidebar,
		section.related.products,
		div.related.products,
		.related.products,
		.wd-single-related-products,
		.wd-related-products,
		.wd-products-related
	) {
		display: none !important;
		width: 0 !important;
		max-width: 0 !important;
		min-height: 0 !important;
		max-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		box-shadow: none !important;
		overflow: hidden !important;
	}
}

/* Price authority for the plain WooCommerce/simple-product markup used by
 * the block-theme catalog. Keep every compare-at amount gray and every
 * current customer price EMS orange, including nested amount spans. */
body.ems-shell-active .product-card__price,
body.ems-shell-active .product-card__price .ems-price-stack,
body.ems-shell-active .product-card__price .ems-price-current,
body.ems-shell-active .product-card__price .woocommerce-Price-amount,
body.ems-shell-active .product-card__price .woocommerce-Price-currencySymbol,
body.ems-shell-active .ems-hp-product__price,
body.ems-shell-active .ems-hp-product__price .ems-price-current,
body.ems-shell-active .ems-hp-product__price .woocommerce-Price-amount,
body.ems-shell-active .ems-hp-product__price .woocommerce-Price-currencySymbol,
body.ems-shell-active .price > .woocommerce-Price-amount,
body.ems-shell-active .price > .woocommerce-Price-amount .woocommerce-Price-currencySymbol {
	color: #F6A51C !important;
}
body.ems-shell-active .product-card__price del,
body.ems-shell-active .product-card__price del *,
body.ems-shell-active .ems-hp-product__price del,
body.ems-shell-active .ems-hp-product__price del *,
body.ems-shell-active .price del,
body.ems-shell-active .price del *,
body.ems-shell-active .woocommerce-Price-amount del,
body.ems-shell-active .woocommerce-Price-amount del * {
	color: #8A8A8A !important;
	text-decoration-color: #8A8A8A !important;
}

/* Single-product Related Products pagination.  The numbered controls are
 * scoped to the product page and replace the retired dots/loose arrow block. */
body.ems-product-page .ems-related-carousel__dots,
body.ems-product-page .ems-related-carousel__dot {
	display: none !important;
}

body.ems-product-page .ems-related-carousel__controls[hidden],
body.ems-product-page .ems-related-carousel__arrow[hidden] {
	display: none !important;
}

body.ems-product-page .ems-related-carousel__controls {
	display: flex;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 32px 0 0;
	padding: 0;
}

/* Restore the earlier EMS product-page hierarchy: a prominent, borderless
 * Related Products heading followed by a generous but controlled card gap. */
body.ems-product-page .ems-related-products > .ems-product-section-header {
	margin: 0 0 32px !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.ems-product-page .ems-related-products > .ems-product-section-header h2 {
	margin: 0 !important;
	color: #111 !important;
	font-family: Oswald, "Arial Narrow", Arial, Helvetica, sans-serif !important;
	font-size: clamp(34px, 3.5vw, 48px) !important;
	font-weight: 800 !important;
	line-height: 1.08 !important;
	letter-spacing: 0 !important;
	text-align: left !important;
}

body.ems-product-page .ems-related-carousel .product-card__title {
	font-family: Oswald, "Arial Narrow", Arial, Helvetica, sans-serif !important;
	font-size: clamp(17px, 1.35vw, 22px) !important;
	font-weight: 800 !important;
	line-height: 1.28 !important;
	color: #111 !important;
}

body.ems-product-page .ems-related-carousel .product-card__term {
	font-size: clamp(14px, 1vw, 17px) !important;
	color: #a0a0a0 !important;
}

body.ems-product-page .ems-related-carousel .product-card__price {
	font-size: clamp(19px, 1.45vw, 25px) !important;
	color: #F6A51C !important;
}

body.ems-product-page .ems-related-carousel .product-card__price .ems-price-current,
body.ems-product-page .ems-related-carousel .product-card__price .ems-price-current *,
body.ems-product-page .ems-related-carousel .product-card__price ins,
body.ems-product-page .ems-related-carousel .product-card__price ins * {
	color: #F6A51C !important;
}

body.ems-product-page .ems-related-carousel .product-card__price del,
body.ems-product-page .ems-related-carousel .product-card__price del *,
body.ems-product-page .ems-related-carousel .product-card__price .ems-price-comparison,
body.ems-product-page .ems-related-carousel .product-card__price .ems-price-comparison * {
	color: #8A8A8A !important;
	text-decoration-line: line-through !important;
	text-decoration-color: currentColor !important;
}

body.ems-product-page .ems-related-carousel .product-card__badge {
	background: #F6A51C !important;
	color: #17191c !important;
}

/* The block-theme shell can otherwise inherit WoodMart's smaller brown
 * price rule.  Keep only the payable amount orange and the compare amount
 * neutral gray, including every nested WooCommerce span. */
body.ems-product-page .ems-product-commerce-state .price,
body.ems-product-page .ems-product-commerce-state .price ins,
body.ems-product-page .ems-product-commerce-state .price ins * {
	color: #F6A51C !important;
}

body.ems-product-page .ems-product-commerce-state .price del,
body.ems-product-page .ems-product-commerce-state .price del * {
	color: #8A8A8A !important;
	text-decoration-line: line-through !important;
	text-decoration-color: currentColor !important;
}

body.ems-product-page .ems-related-carousel__pagination {
	display: block;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

body.ems-product-page .ems-related-carousel__pages {
	display: flex;
	max-width: 100%;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

body.ems-product-page .ems-related-carousel__page,
body.ems-product-page .ems-related-carousel__ellipsis,
body.ems-product-page .ems-related-carousel__arrow {
	display: inline-flex;
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 1px solid #d7d7d7;
	border-radius: 4px;
	background: #fff;
	color: #111;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

body.ems-product-page .ems-related-carousel__page {
	cursor: pointer;
}

body.ems-product-page .ems-related-carousel__page.is-active,
body.ems-product-page .ems-related-carousel__page:hover,
body.ems-product-page .ems-related-carousel__page:focus-visible,
body.ems-product-page .ems-related-carousel__arrow:hover:not(:disabled),
body.ems-product-page .ems-related-carousel__arrow:focus-visible:not(:disabled) {
	border-color: #F6A51C;
	background: #F6A51C;
	color: #111;
}

body.ems-product-page .ems-related-carousel__page:focus-visible,
body.ems-product-page .ems-related-carousel__arrow:focus-visible {
	outline: 2px solid #111;
	outline-offset: 2px;
}

body.ems-product-page .ems-related-carousel__ellipsis {
	border-color: transparent;
	background: transparent;
	font-size: 18px;
	font-weight: 700;
}

body.ems-product-page .ems-related-carousel__arrow {
	position: static;
	transform: none;
	cursor: pointer;
}

body.ems-product-page .ems-related-carousel__arrow svg {
	display: block;
	width: 22px;
	height: 22px;
}

body.ems-product-page .ems-related-carousel__arrow:disabled {
	opacity: .4;
	cursor: default;
}

@media (max-width: 767px) {
	body.ems-product-page .ems-related-carousel__controls {
		gap: 8px;
		margin-top: 24px;
	}

	body.ems-product-page .ems-related-carousel__page,
	body.ems-product-page .ems-related-carousel__ellipsis,
	body.ems-product-page .ems-related-carousel__arrow {
		width: 48px;
		height: 48px;
		flex-basis: 48px;
	}

	body.ems-product-page .ems-related-carousel__pagination {
		flex: 1 1 auto;
	}

	body.ems-product-page .ems-related-products > .ems-product-section-header {
		margin-bottom: 24px !important;
	}

	body.ems-product-page .ems-related-products > .ems-product-section-header h2 {
		font-size: clamp(34px, 9vw, 42px) !important;
	}
}
