/*
Theme Name: Embodied Peptides Redesign
Description: Private local redesign of the Embodied Peptides storefront.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.5-dev
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: embodied-peptides-redesign
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* === reset === */
*, *::before, *::after { box-sizing: border-box; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
.wp-site-blocks { padding: 0 !important; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* === header === */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #ffffff;
	border-bottom: 1px solid #e2e0dc;
}
.site-header__top { padding-block: 0; }
.site-header__inner { padding: 1.25rem 1.5rem; }

.site-wordmark a,
.wp-block-site-title.site-wordmark a {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #0d0d0d;
	text-decoration: none;
	border: 2px solid #0d0d0d;
	padding: 0.6rem 1rem;
	display: inline-block;
	line-height: 1;
	transition: background-color 0.18s ease, color 0.18s ease;
}
.site-wordmark a:hover,
.wp-block-site-title.site-wordmark a:hover {
	background: #0d0d0d;
	color: #ffffff;
}

.site-nav .wp-block-navigation a {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #0d0d0d;
	text-decoration: none;
	transition: color 0.2s ease;
}
.site-nav .wp-block-navigation a:hover { color: #6e8b68; }
.site-nav .wp-block-navigation .wp-block-navigation-item { padding: 0 0.125rem; }

/* Mobile nav overlay — centre links, make them easy to tap */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	padding: 2rem 1.5rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100% !important;
	text-align: center !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	display: block !important;
	padding: 1rem !important;
	font-size: 1.125rem !important;
	letter-spacing: 0.1em !important;
}

/* Account + cart controls use the same compact text role as primary navigation. */
.site-account-icon .wc-block-customer-account,
.site-cart-icon .wc-block-customer-account {
	display: flex;
	align-items: center;
}
.site-account-icon a,
.site-account-icon .wc-block-customer-account a,
.site-cart-icon .wc-block-mini-cart__button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	margin: 0;
	padding: 0.625rem 0.25rem;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #0d0d0d;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-decoration: none;
	cursor: pointer;
	transition: color 0.16s ease;
}
.site-header__right { gap: 1.25rem; }

.site-account-icon a::after { content: 'Account'; }
.site-cart-icon .wc-block-mini-cart__button::after { content: 'Cart'; }
.site-account-icon svg,
.site-cart-icon .wc-block-mini-cart__quantity-badge,
.site-cart-icon .wc-block-mini-cart__amount { display: none !important; }
.site-account-icon a:hover,
.site-account-icon a:focus-visible,
.site-cart-icon .wc-block-mini-cart__button:hover,
.site-cart-icon .wc-block-mini-cart__button:focus-visible { color: #6e8b68; }

/* === shop hero (top of homepage) === */
.ep-shop-hero {
	padding: 2.5rem 1.25rem 1.5rem;
	background: #ffffff;
}
/* "All Products" H1 is kept in the DOM for SEO/accessibility but hidden visually. */
.ep-shop-title {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ep-shop-sub {
	font-size: 1rem;
	color: #5a5a5a;
	margin: 0;
	line-height: 1.6;
}

/* === store hero: small dithered free-shipping bar === */
.ep-shop-freeship {
	margin: 0.9rem 0 0;
}
.ep-shop-freeship__track {
	width: 340px;
	max-width: 100%;
	position: relative;
	height: 10px;
	background: #f0efec;
	border: 1.5px solid #0d0d0d;
	overflow: hidden;
}
.ep-shop-freeship__fill {
	height: 100%;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background-color: #c9a227;
	background-image:
		radial-gradient(rgba(13,13,13,0.35) 42%, transparent 45%),
		radial-gradient(rgba(13,13,13,0.35) 42%, transparent 45%);
	background-size: 5px 5px, 5px 5px;
	background-position: 0 0, 2.5px 2.5px;
	transition: transform 0.5s ease;
}
.ep-shop-freeship--done .ep-shop-freeship__fill { background-color: #1f7a3d; }
.ep-shop-freeship__label {
	margin-top: 0.4rem;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.01em;
	color: #5a5a5a;
}
.ep-shop-freeship__label strong { color: #0d0d0d; font-weight: 600; }
.ep-shop-freeship--done .ep-shop-freeship__label { color: #1f7a3d; }
.ep-shop-freeship--done .ep-shop-freeship__label strong { color: #1f7a3d; }
@media (prefers-reduced-motion: reduce) {
	.ep-shop-freeship__fill { transition: none; }
}

/* === category pills === */
.ep-category-strip {
	background: #ffffff;
	padding: 1.75rem 1.5rem 0;
	border-bottom: 1px solid #e2e0dc;
}
.ep-cats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.625rem !important;
	padding-bottom: 1.5rem;
}
.ep-cat-pill {
	margin: 0;
	line-height: 1;
}
.ep-cat-pill a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #5a5a5a;
	border: 1px solid #e2e0dc;
	padding: 0.55rem 1.125rem;
	text-decoration: none;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.ep-cat-pill a:hover,
.ep-cat-pill a.current-cat,
.ep-cat-pill a.ep-pill-active,
.ep-cat-pill--active a {
	background: #0d0d0d;
	color: #ffffff;
	border-color: #0d0d0d;
}

/* AJAX category filtering: brief dim while the next grid loads in place. */
.ep-main-products.ep-grid-loading {
	opacity: 0.45;
	transition: opacity 0.15s ease;
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.ep-main-products.ep-grid-loading { transition: none; }
}

/* Category strip scroll arrows (desktop) */
.ep-cats-wrapper {
	position: relative;
	overflow: hidden;
}
.ep-cats-arrow {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-60%);
	z-index: 2;
	background: #ffffff;
	border: 1.5px solid #0d0d0d;
	border-radius: 0;
	width: 2rem;
	height: 2rem;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	line-height: 1;
	color: #0d0d0d;
	font-size: 1rem;
	font-weight: 700;
	transition: opacity 0.2s ease, background 0.2s ease, color 0.2s ease;
	box-shadow: 0 1px 6px rgba(0,0,0,0.10);
}
.ep-cats-arrow:hover { background: #0d0d0d; color: #ffffff; }
.ep-cats-arrow--left { left: 0; }
.ep-cats-arrow--right { right: 0; }
.ep-cats-arrow.ep-arrow-hidden { opacity: 0; pointer-events: none; }
.ep-cats-scrollable .ep-cats-arrow { display: flex; }

/* === main product grid === */
.ep-main-products {
	background: #ffffff;
	padding: 2.5rem 3rem 4rem;
}
.ep-all-products ul.wp-block-post-template,
.ep-all-products ul.wc-block-product-template {
	gap: 2.5rem 2rem !important;
}
/* Center every card's content (name, price, buttons) like the reference layout. */
.ep-all-products ul.wp-block-post-template > li,
.ep-all-products ul.wc-block-product-template > li {
	text-align: center;
	background: var(--ep-surface);
	border: 1px solid var(--ep-border);
	padding: 1rem;
	display: flex;
	flex-direction: column;
	height: 100%;
}
/* === Layout stability (no shifting / "spassing" as content loads or scrolls) ===
   1. Kill any WooCommerce load/scroll fade or transform animation on the grid.
   2. Reserve the square image area up-front so rows don't jump while images load.
   3. Give the product name a fixed 2-line min-height so a 1-line vs 2-line name
      never pushes the price/buttons up or down between cards. */
.ep-all-products ul.wp-block-post-template > li,
.ep-all-products ul.wp-block-post-template > li *,
.ep-all-products ul.wc-block-product-template > li,
.ep-all-products ul.wc-block-product-template > li * {
	animation: none !important;
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}
/* Re-allow the deliberate image hover fade (overridden by the rule above). */
.ep-product-img a:hover img { transition: opacity 0.25s ease !important; }
.ep-product-img,
.ep-product-img a {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	background: #f5f4f2;
}
.ep-product-img a,
.ep-product-img img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	background: #f5f4f2;
}
.ep-product-img a:hover img { opacity: 0.85; }
.ep-product-name {
	margin-top: 1rem !important;
	margin-bottom: 0.35rem !important;
	text-align: center !important;
	/* Reserve room for up to two lines so short and long names align the same. */
	min-height: 3.4em;
	display: flex;
	align-items: flex-start;
	justify-content: center;
}
.ep-product-name a {
	font-family: 'DM Sans', sans-serif;
	font-size: 1.5rem;
	font-weight: 900;
	line-height: 1.2;
	color: #0d0d0d;
	text-decoration: none;
	letter-spacing: -0.02em;
}
.ep-product-name a:hover { text-decoration: underline; }
/* Price: keep its size, just center it. */
.ep-product-price { text-align: center !important; }
.ep-product-price .wc-block-components-product-price,
.ep-product-price ins,
.ep-product-price .woocommerce-Price-amount {
	font-family: 'DM Sans', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #5a5a5a;
}
.ep-product-btn {
	width: 100%;
	display: block;
}
.ep-product-btn .wp-element-button,
.ep-product-btn a.wp-element-button,
.ep-product-btn button.wp-element-button {
	margin-top: 0.75rem;
	display: flex !important;
	width: 100% !important;
	max-width: none !important;
	flex: 1 1 100% !important;
	box-sizing: border-box;
	text-align: center;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	padding: 1.15rem 2rem !important;
}

/* === ADD TO CART — gold border animation on hover === */
/* Base: black fill with a transparent gold-width border so hover doesn't shift layout */
.ep-product-btn a.add_to_cart_button.wp-element-button,
.ep-product-btn button.add_to_cart_button.wp-element-button {
	border: 2px solid transparent !important;
	box-shadow: 0 0 0 0 rgba(201, 162, 39, 0);
	transition: border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease, background-color 0.3s ease;
}
.ep-product-btn a.add_to_cart_button.wp-element-button:hover,
.ep-product-btn button.add_to_cart_button.wp-element-button:hover {
	background-color: #0d0d0d !important;
	color: #d9b850 !important;
	border-color: #c9a227 !important;
	box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.18);
}
@media (prefers-reduced-motion: reduce) {
	.ep-product-btn a.add_to_cart_button.wp-element-button,
	.ep-product-btn button.add_to_cart_button.wp-element-button {
		transition: none;
	}
}

/* WooCommerce's fallback "READ MORE" button (shown on products with no price)
   is redundant — our custom MORE INFO button already links to the product page.
   Hide the whole product-button wrapper when it is the read-more variant
   (i.e. it contains a link that is NOT an add-to-cart button). */
.wc-block-product:not(.outofstock) .ep-product-btn:has(a.wc-block-components-product-button__button:not(.add_to_cart_button)) {
	display: none !important;
}
/* Fallback for engines without :has() — hide the read-more link itself.
   Out-of-stock cards are excluded: their button is intentionally kept and
   relabelled "OUT OF STOCK" (see the .outofstock rules below). */
.wc-block-product:not(.outofstock) .ep-product-btn a.wc-block-components-product-button__button:not(.add_to_cart_button) {
	display: none !important;
}

/* === MORE INFO button (always shown, above ADD TO CART) === */
.ep-more-info {
	display: block !important;
	width: 100%;
	margin-top: 0.875rem !important;
	margin-bottom: 0 !important;
	padding: 1.15rem 2rem;
	border: 1.5px solid #0d0d0d;
	background: transparent;
	color: #0d0d0d;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease;
}
.ep-more-info:hover {
	background: #0d0d0d;
	color: #ffffff;
}

/* WooCommerce uses its own reduced checkout header. Match the boxed wordmark. */
.woocommerce-checkout header.wp-block-template-part .wp-block-site-title a {
	display: inline-block;
	padding: 0.6rem 1rem;
	border: 2px solid currentColor;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.ep-more-info .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* === OUT OF STOCK button === */
/* An out-of-stock simple product renders as a "Read more" link. Grey it out and
   relabel it "OUT OF STOCK" via a pseudo-element. */
.wc-block-product.outofstock .ep-product-btn a.wc-block-components-product-button__button {
	position: relative;
	background-color: #e2e0dc !important;
	/* Ordered-dither dot matrix: two offset dot grids create a fine halftone texture */
	background-image:
		radial-gradient(#b6b2aa 42%, transparent 45%),
		radial-gradient(#b6b2aa 42%, transparent 45%) !important;
	background-size: 6px 6px, 6px 6px !important;
	background-position: 0 0, 3px 3px !important;
	color: #6f6f6f !important;
	border: 1.5px solid #cfccc5 !important;
	cursor: not-allowed;
	pointer-events: none;
}
.wc-block-product.outofstock .ep-product-btn a.wc-block-components-product-button__button span {
	display: none;
}
.wc-block-product.outofstock .ep-product-btn a.wc-block-components-product-button__button::after {
	content: "OUT OF STOCK";
	position: relative;
	z-index: 1;
	padding: 0.2em 0.6em;
	background: rgba(226, 224, 220, 0.8);
}

/* === trust strip (above footer) === */
.ep-trust-strip {
	background: #f5f4f2;
	padding: 3.5rem 1.5rem;
	border-top: 1px solid #e2e0dc;
}
.ep-trust-cols { gap: 3rem !important; }
.ep-trust-item { padding: 0; }
.ep-trust-stat {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 0.625rem;
	color: #0d0d0d;
}
.ep-trust-desc {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: #5a5a5a;
	margin: 0;
}

/* Hide auto post-title on pages that have their own heading in content */
.page-id-10 .ep-page-title,
.page-id-38 .ep-page-title,
.page-id-207 .ep-page-title {
	display: none;
}

/* === policy pages (refund, terms, privacy) === */
.ep-policy-intro {
	padding: 3rem 1.5rem 2rem;
	border-bottom: 1px solid #e2e0dc;
}
.ep-policy-heading {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 0 0 0.5rem;
}
.ep-policy-meta {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #b8c4b2;
	margin: 0 0 1.5rem;
}
.ep-policy-lead {
	font-size: 1rem;
	line-height: 1.75;
	color: #5a5a5a;
	max-width: 72ch;
	margin: 0;
	padding: 1.25rem 1.5rem;
	background: #f5f4f2;
	border-left: 3px solid #0d0d0d;
}
.ep-policy-body {
	padding: 3rem 1.5rem 5rem;
}
.ep-policy-section-title {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: #0d0d0d !important;
	margin: 2.5rem 0 1rem !important;
	padding-bottom: 0.625rem;
	border-bottom: 2px solid #0d0d0d;
}
.ep-policy-body > .wp-block-heading.ep-policy-section-title:first-child { margin-top: 0 !important; }
.ep-policy-divider {
	margin: 2.5rem 0 !important;
	border: none !important;
	height: 1px !important;
}
.ep-policy-list {
	padding-left: 1.25rem;
	margin: 1rem 0 1.25rem;
}
.ep-policy-list li {
	margin-bottom: 0.5rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: #0d0d0d;
}
.ep-policy-callout {
	margin: 1.5rem 0;
	padding: 1.5rem 1.75rem;
	background: #0d0d0d;
	border-radius: 0;
}
.ep-policy-callout-text {
	font-size: 0.9375rem;
	line-height: 1.75;
	color: #b8c4b2;
	margin: 0;
	font-style: italic;
}

/* === FAQ page === */
.ep-faq-intro {
	padding: 3rem 1.5rem 2rem;
	background: #ffffff;
	border-bottom: 1px solid #e2e0dc;
}
.ep-faq-heading {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 0 0 0.5rem;
}
.ep-faq-sub {
	font-size: 1rem;
	color: #5a5a5a;
	margin: 0;
}
.ep-faq-body {
	padding: 2.5rem 1.5rem 5rem;
	background: #ffffff;
}
.ep-faq-cat {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #5a5a5a;
	margin: 2.5rem 0 0.5rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid #0d0d0d;
}
.ep-faq-cat:first-child { margin-top: 0; }

/* Accordion items */
.ep-accordion {
	margin-bottom: 0;
}
.ep-accordion-item {
	border-bottom: 1px solid #e2e0dc;
}
.ep-accordion-item .wp-block-accordion-heading {
	margin: 0;
}
.ep-accordion-item .wp-block-accordion-heading__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	padding: 1.125rem 0;
	cursor: pointer;
	text-align: left;
	font-family: 'DM Sans', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #0d0d0d;
	line-height: 1.4;
}
.ep-accordion-item .wp-block-accordion-heading__toggle:hover {
	color: #6e8b68;
}
.ep-accordion-item .wp-block-accordion-heading__toggle-title {
	flex: 1;
}
.ep-accordion-item .wp-block-accordion-heading__toggle-icon {
	margin-left: 1.5rem;
	font-size: 1.25rem;
	font-weight: 300;
	color: #5a5a5a;
	line-height: 1;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}
.ep-accordion-item .wp-block-accordion-panel {
	padding: 0 0 1.25rem;
}
.ep-accordion-item .wp-block-accordion-panel p {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #5a5a5a;
	margin: 0;
}

/* === sale badge === */
.woocommerce span.onsale,
.wc-block-components-product-sale-badge,
.wc-block-components-sale-badge {
	position: relative;
	background: #0d0d0d !important;
	color: #ffffff !important;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
	padding: 0.4rem 0.7rem !important;
	min-height: auto !important;
	min-width: auto !important;
	border: 1px solid #c9a227 !important;
	animation: ep-sale-halo 2.4s ease-out infinite;
}
@keyframes ep-sale-halo {
	0%   { box-shadow: 0 0 0 0 rgba(201, 162, 39, 0.55); }
	70%  { box-shadow: 0 0 0 9px rgba(201, 162, 39, 0); }
	100% { box-shadow: 0 0 0 0 rgba(201, 162, 39, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce span.onsale,
	.wc-block-components-product-sale-badge,
	.wc-block-components-sale-badge {
		animation: none;
	}
}
/* Let the halo radiate past the image bounds instead of being clipped */
.ep-product-img,
.ep-product-img > a,
.ep-product-img .wp-block-woocommerce-product-sale-badge {
	overflow: visible !important;
}

/* === LOW STOCK badge (mirrors the SALE badge, red, top-left) === */
.ep-lowstock-badge {
	position: absolute;
	top: 4px;
	left: 4px;
	z-index: 2;
	background: #0d0d0d;
	color: #ffffff;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 0.4rem 0.7rem;
	border: 1px solid #c0392b;
	animation: ep-lowstock-halo 2.4s ease-out infinite;
	pointer-events: none;
}
@keyframes ep-lowstock-halo {
	0%   { box-shadow: 0 0 0 0 rgba(192, 57, 43, 0.55); }
	70%  { box-shadow: 0 0 0 9px rgba(192, 57, 43, 0); }
	100% { box-shadow: 0 0 0 0 rgba(192, 57, 43, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.ep-lowstock-badge { animation: none; }
}

/* === Product meta (SKU / Category / Tags) at very bottom of single product === */
.ep-product-meta {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid #e5e3de;
	gap: 0.6rem;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.9rem;
	line-height: 1.6;
	color: #555;
}
/* Each row (SKU, Category, Tags) sits on its own line, label + values inline. */
.ep-product-meta .wp-block-woocommerce-product-sku,
.ep-product-meta .wp-block-post-terms {
	display: block;
	margin: 0;
}
/* The "Category:" / "Tags:" prefix in a muted uppercase label style. */
.ep-product-meta .wp-block-post-terms {
	color: #777;
}
.ep-product-meta .wp-block-post-terms a {
	color: #0d0d0d;
	text-decoration: none;
	border-bottom: 1px solid #d8d4cc;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.ep-product-meta .wp-block-post-terms a:hover {
	color: #c9a227;
	border-color: #c9a227;
}

/* === min height (prevent footer float on sparse pages) === */
.ep-page-wrap {
	min-height: 60vh;
	padding: 3rem 1.5rem 5rem;
}

/* Cart and Checkout pages: ensure footer stays low */
.woocommerce-cart .wp-site-blocks,
.woocommerce-checkout .wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
.woocommerce-cart .wp-site-blocks > *:not(header):not(footer),
.woocommerce-checkout .wp-site-blocks > *:not(header):not(footer) {
	flex: 1 1 auto;
}
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
	min-height: 55vh;
	padding-bottom: 5rem;
}

/* ===================================================================
   CHECKOUT — storefront look: sharp corners, black/gold, serif headings
   =================================================================== */
/* Section headings (Contact information, Shipping address, etc.) */
.wc-block-checkout .wc-block-components-checkout-step__title {
	font-family: 'DM Serif Display', serif !important;
	font-weight: 400 !important;
	letter-spacing: 0.005em;
	color: #0d0d0d !important;
	letter-spacing: 0.005em;
}
/* Sharp, bordered form fields with gold focus */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input .components-form-token-field__input,
.wc-block-checkout select,
.wc-block-checkout .wc-blocks-components-select__container {
	border-radius: 0 !important;
	border: 1.5px solid #0d0d0d !important;
	background: #ffffff !important;
}
.wc-block-checkout .wc-block-components-text-input.is-active input,
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout select:focus {
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(201,162,39,0.85) !important;
	border-color: #c9a227 !important;
}
/* Floating field labels */
.wc-block-checkout .wc-block-components-text-input label {
	color: #5a5a5a;
	font-family: 'DM Sans', sans-serif;
}
/* Order summary panel */
.wc-block-checkout .wc-block-components-sidebar .wc-block-components-checkout-order-summary {
	border: 1.5px solid #0d0d0d !important;
	border-radius: 0 !important;
	background: #f5f4f2;
}
.wc-block-checkout .wc-block-components-checkout-order-summary__title {
	font-family: 'DM Serif Display', serif !important;
	font-weight: 400 !important;
	color: #0d0d0d !important;
}
/* Selectable option rows (shipping + payment) */
.wc-block-checkout .wc-block-components-radio-control__option,
.wc-block-checkout .wc-block-components-shipping-rates-control__package {
	border-radius: 0 !important;
}
.wc-block-checkout .wc-block-components-radio-control-accordion-option,
.wc-block-checkout .wc-block-components-radio-control > .wc-block-components-radio-control__option {
	border: 1.5px solid #d6d3cd !important;
	border-radius: 0 !important;
}
.wc-block-checkout .wc-block-components-radio-control__option.wc-block-components-radio-control__option-checked,
.wc-block-checkout .wc-block-components-radio-control-accordion-option:has(input:checked) {
	border-color: #0d0d0d !important;
	box-shadow: inset 0 0 0 1px #0d0d0d;
}
/* Selected radio dot in brand gold */
.wc-block-checkout .wc-block-components-radio-control__input:checked {
	accent-color: #c9a227;
}
/* SAVE badge: keep it square like the storefront */
.wc-block-checkout .wc-block-components-sale-badge,
.wc-block-checkout .wc-block-components-product-badge {
	border-radius: 0 !important;
}
/* Grand total emphasis */
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: 'DM Serif Display', serif;
	color: #0d0d0d;
}
/* PLACE ORDER button: storefront black w/ gold hover border */
.wc-block-checkout .wc-block-components-checkout-place-order-button {
	border-radius: 0 !important;
	background: #0d0d0d !important;
	color: #ffffff !important;
	font-family: 'DM Sans', sans-serif !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase;
	border: 2px solid transparent !important;
	transition: color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
}
.wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
	background: #0d0d0d !important;
	color: #d9b850 !important;
	border-color: #c9a227 !important;
	box-shadow: 0 0 0 3px rgba(201,162,39,0.18) !important;
}
@media (prefers-reduced-motion: reduce) {
	.wc-block-checkout .wc-block-components-checkout-place-order-button { transition: none !important; }
}

/* Cart page: title size, padding, and free shipping note */
.woocommerce-cart h1.wp-block-post-title {
	font-family: 'DM Serif Display', serif;
	font-size: 2.25rem;
	font-weight: 400;
	color: #0d0d0d;
	padding: 2.5rem 0 0.5rem;
	margin-bottom: 0;
}
.woocommerce-cart h1.wp-block-post-title::after {
	content: 'Free shipping on orders over $250';
	display: block;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	color: #6e8b68;
	letter-spacing: 0.01em;
	margin-top: 0.5rem;
}

/* === page title (applies to all pages using page.html) === */
.ep-page-title.wp-block-post-title {
	font-family: 'DM Serif Display', serif;
	font-size: clamp(1.75rem, 3.5vw, 2.75rem) !important;
	font-weight: 400;
	line-height: 1.15;
	margin-bottom: 1.5rem;
	color: #0d0d0d;
}

/* === my account === */
.woocommerce-account .ep-page-wrap {
	padding-top: clamp(2.25rem, 5vw, 4.5rem);
}
.woocommerce-account .ep-page-wrap > .ep-page-title,
.woocommerce-account .ep-page-wrap > .wp-block-post-content {
	width: min(100%, 1120px) !important;
	max-width: 1120px !important;
}
.woocommerce-account .ep-page-title.wp-block-post-title {
	font-family: 'DM Sans', sans-serif !important;
	font-size: clamp(2rem, 4vw, 3.25rem) !important;
	font-weight: 650 !important;
	letter-spacing: -0.035em !important;
	margin: 0 0 1.75rem !important;
}
.woocommerce-account .ep-page-wrap .woocommerce {
	width: 100%;
	max-width: none;
	font-family: 'DM Sans', sans-serif !important;
}
.woocommerce-account .ep-page-wrap .woocommerce :where(button, input, select, textarea, table) {
	font-family: inherit !important;
}
.woocommerce-account.logged-in .ep-page-wrap .woocommerce {
	display: block;
}
.woocommerce-account .woocommerce-notices-wrapper {
	width: 100%;
	margin-bottom: 1rem;
}

/* A single horizontal account rail replaces WooCommerce's default sidebar. */
.ep-page-wrap .woocommerce-MyAccount-navigation {
	float: none !important;
	width: 100% !important;
	margin: 0 0 1.5rem;
	border: 1px solid var(--ep-border);
	background: var(--ep-surface);
}
.ep-page-wrap .woocommerce-MyAccount-navigation ul {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li {
	min-width: 0;
	margin: 0;
	padding: 0 !important;
	border-right: 1px solid var(--ep-border);
	float: none !important;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li:last-child {
	border-right: 0;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.25rem;
	padding: 0.75rem 0.625rem;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.075em;
	text-align: center;
	text-transform: uppercase;
	color: var(--ep-text-muted) !important;
	border: 0 !important;
	text-decoration: none !important;
	transition: background-color 0.16s ease, color 0.16s ease;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li a:hover,
.ep-page-wrap .woocommerce-MyAccount-navigation li a:focus-visible {
	background: var(--ep-surface-raised) !important;
	color: var(--ep-text) !important;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--ep-control) !important;
	color: var(--ep-control-text) !important;
}

/* The account content is one calm work surface, not a stack of nested cards. */
.ep-page-wrap .woocommerce-MyAccount-content {
	float: none !important;
	width: 100% !important;
	min-width: 0;
	min-height: 22rem;
	padding: clamp(1.5rem, 4vw, 3rem) !important;
	background: var(--ep-surface);
	border: 1px solid var(--ep-border);
}
.ep-page-wrap .woocommerce-MyAccount-content > :first-child {
	margin-top: 0 !important;
}
.ep-page-wrap .woocommerce-MyAccount-content > :last-child {
	margin-bottom: 0 !important;
}

/* Account type hierarchy */
.ep-page-wrap .woocommerce h2,
.ep-page-wrap .woocommerce h3,
.ep-page-wrap .woocommerce legend {
	font-family: 'DM Sans', sans-serif !important;
	font-size: clamp(1.25rem, 2.5vw, 1.6rem) !important;
	font-weight: 650 !important;
	line-height: 1.2;
	letter-spacing: -0.025em !important;
	color: var(--ep-text) !important;
}
.ep-page-wrap .woocommerce h2,
.ep-page-wrap .woocommerce h3 {
	margin: 2rem 0 1rem;
}
.ep-page-wrap .woocommerce p,
.ep-page-wrap .woocommerce table,
.ep-page-wrap .woocommerce td,
.ep-page-wrap .woocommerce th,
.ep-page-wrap .woocommerce address {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--ep-text) !important;
}
.ep-page-wrap .woocommerce-MyAccount-content p {
	max-width: 68ch;
}
.ep-page-wrap .woocommerce-MyAccount-content a:not(.button) {
	color: var(--ep-text) !important;
	text-decoration: underline;
	text-decoration-color: #777;
	text-underline-offset: 0.22em;
}
.ep-page-wrap .woocommerce-MyAccount-content a:not(.button):hover {
	text-decoration-color: var(--ep-text);
}

/* Forms */
.ep-page-wrap .woocommerce form .form-row {
	float: none;
	width: 100%;
	margin: 0 0 1.125rem;
	padding: 0;
}
.ep-page-wrap .woocommerce label {
	display: block;
	margin-bottom: 0.45rem;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--ep-text-muted) !important;
}
.ep-page-wrap .woocommerce input[type='text'],
.ep-page-wrap .woocommerce input[type='email'],
.ep-page-wrap .woocommerce input[type='password'],
.ep-page-wrap .woocommerce input[type='tel'],
.ep-page-wrap .woocommerce select,
.ep-page-wrap .woocommerce textarea,
.ep-page-wrap .woocommerce .select2-container .select2-selection {
	width: 100%;
	min-height: 3rem;
	padding: 0.75rem 0.875rem;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--ep-text) !important;
	background: var(--ep-canvas) !important;
	border: 1px solid #555 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none;
	transition: border-color 0.16s ease, background-color 0.16s ease;
}
.ep-page-wrap .woocommerce textarea {
	min-height: 8rem;
	resize: vertical;
}
.ep-page-wrap .woocommerce input:focus,
.ep-page-wrap .woocommerce select:focus,
.ep-page-wrap .woocommerce textarea:focus,
.ep-page-wrap .woocommerce .select2-container--focus .select2-selection {
	border-color: var(--ep-text) !important;
}
.ep-page-wrap .woocommerce .select2-selection__rendered {
	padding: 0 !important;
	line-height: 1.45 !important;
	color: var(--ep-text) !important;
}
.ep-page-wrap .woocommerce .select2-selection__arrow {
	top: 0.65rem !important;
	right: 0.5rem !important;
}
.ep-page-wrap .woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 1rem;
}
.ep-page-wrap .woocommerce-address-fields__field-wrapper .form-row {
	grid-column: 1 / -1;
}
.ep-page-wrap .woocommerce-address-fields__field-wrapper .form-row-first {
	grid-column: 1;
}
.ep-page-wrap .woocommerce-address-fields__field-wrapper .form-row-last {
	grid-column: 2;
}
.ep-page-wrap .woocommerce-EditAccountForm {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 1rem;
}
.ep-page-wrap .woocommerce-EditAccountForm > .form-row-wide,
.ep-page-wrap .woocommerce-EditAccountForm > fieldset,
.ep-page-wrap .woocommerce-EditAccountForm > p:last-child {
	grid-column: 1 / -1;
}
.ep-page-wrap .woocommerce fieldset {
	margin: 1.25rem 0 1.5rem;
	padding: 1.25rem;
	border: 1px solid var(--ep-border) !important;
}
.ep-page-wrap .woocommerce fieldset legend {
	padding: 0 0.5rem;
}

/* Address overview */
.ep-page-wrap .woocommerce .u-columns.woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.5rem;
}
.ep-page-wrap .woocommerce .woocommerce-Address {
	float: none !important;
	width: 100% !important;
	margin: 0;
	padding: 1.25rem;
	border: 1px solid var(--ep-border);
}
.ep-page-wrap .woocommerce .woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}
.ep-page-wrap .woocommerce .woocommerce-Address-title h3 {
	margin: 0 0 1rem;
}
.ep-page-wrap .woocommerce .woocommerce-Address-title .edit {
	float: none;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}
.ep-page-wrap .woocommerce .woocommerce-Address address {
	margin: 0;
	font-style: normal;
	color: var(--ep-text-muted) !important;
}

/* Orders and downloads */
.ep-page-wrap .woocommerce table.shop_table {
	width: 100%;
	margin: 0;
	border: 1px solid var(--ep-border) !important;
	border-collapse: collapse !important;
	border-radius: 0 !important;
}
.ep-page-wrap .woocommerce table.shop_table th,
.ep-page-wrap .woocommerce table.shop_table td {
	padding: 0.9rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--ep-border);
	text-align: left;
}
.ep-page-wrap .woocommerce table.shop_table th {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--ep-text-muted) !important;
	background: var(--ep-canvas);
}
.ep-page-wrap .woocommerce table.shop_table tr:last-child td {
	border-bottom: 0;
}
.ep-page-wrap .woocommerce table.shop_table .button {
	min-height: 2.4rem;
	padding: 0.55rem 0.8rem !important;
	font-size: 0.68rem !important;
}

/* Notices and logged-out form */
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message {
	margin: 0 0 1rem !important;
	padding: 1rem 1.125rem !important;
	color: var(--ep-text) !important;
	background: var(--ep-surface) !important;
	border: 1px solid #666 !important;
	border-radius: 0 !important;
}
.woocommerce-account .woocommerce-error::before,
.woocommerce-account .woocommerce-info::before,
.woocommerce-account .woocommerce-message::before {
	display: none;
}
.woocommerce-account:not(.logged-in) .ep-page-wrap .woocommerce {
	max-width: 34rem;
	margin-inline: auto;
}
.woocommerce-account:not(.logged-in) .ep-page-wrap .woocommerce h2 {
	margin: 0 0 1rem;
}
.woocommerce-account:not(.logged-in) .woocommerce-form-login,
.woocommerce-account:not(.logged-in) .woocommerce-form-register {
	width: 100%;
	margin: 0;
	padding: clamp(1.5rem, 5vw, 2.5rem);
	background: var(--ep-surface);
	border: 1px solid var(--ep-border) !important;
	border-radius: 0 !important;
}
.woocommerce-account .woocommerce-form-login__rememberme {
	display: flex !important;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem;
}
.woocommerce-account .woocommerce-form-login__rememberme input {
	margin: 0;
}
.woocommerce-account .lost_password {
	margin: 1.25rem 0 0 !important;
}

/* === single product === */
/* Widen the product page main content so the layout breathes */
.single-product main.wp-block-group.is-layout-constrained {
	max-width: 1500px !important;
}
.single-product main.is-layout-constrained > * {
	max-width: 1500px !important;
}
.single-product main.is-layout-constrained > .alignwide {
	max-width: 1500px !important;
}
.single-product main.is-layout-constrained > .wp-block-columns.alignwide {
	max-width: 1500px !important;
	gap: 4rem;
}

/* Related products — even 4-up row (items had no width, so they collapsed to content width) */
.single-product .wp-block-woocommerce-product-collection ul.wc-block-product-template {
	flex-wrap: wrap;
	gap: 2rem 2.5rem;
}
.single-product .wp-block-woocommerce-product-collection ul.wc-block-product-template > li.wc-block-product {
	flex: 0 0 calc(25% - 1.875rem);
	max-width: calc(25% - 1.875rem);
	margin: 0;
}
@media (max-width: 768px) {
	.single-product .wp-block-woocommerce-product-collection ul.wc-block-product-template > li.wc-block-product {
		flex: 0 0 calc(50% - 1rem);
		max-width: calc(50% - 1rem);
	}
}

/* Product short description — spec list + disclaimer */
.woocommerce-product-details__short-description .ep-spec-list {
	list-style: none;
	padding: 0;
	margin: 0 0 1.25rem 0;
}
.woocommerce-product-details__short-description .ep-spec-list li {
	padding: 0.35rem 0;
	font-size: 0.9375rem;
	color: #3a3a3a;
	border-bottom: 1px solid #f0eeeb;
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
}
.woocommerce-product-details__short-description .ep-spec-list li::before {
	content: '\2022';
	color: #c9a227;
	font-weight: 700;
	flex-shrink: 0;
}
.woocommerce-product-details__short-description .ep-disclaimer {
	margin: 1.25rem 0 0;
	padding: 1rem;
	background: #f5f4f2;
	border-left: 3px solid #0d0d0d;
	font-size: 0.875rem;
	line-height: 1.6;
	color: #0d0d0d;
}
.woocommerce-product-details__short-description .ep-disclaimer a {
	color: #0d0d0d;
	text-decoration: underline;
}
/* COA availability line */
.woocommerce-product-details__short-description .ep-coa {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 1.25rem;
	font-family: ui-monospace, 'SFMono-Regular', 'Cascadia Code', Menlo, Consolas, monospace;
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
	color: #3a3a3a;
}
.woocommerce-product-details__short-description .ep-coa__tag {
	flex-shrink: 0;
	display: inline-block;
	padding: 0.2rem 0.5rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: #0d0d0d;
	background: #c9a227;
	border: 1.5px solid #0d0d0d;
}

/* Product page title — scoped to main product column only, not related products */
.single-product .wp-block-columns.alignwide > .wp-block-column:last-child > .wp-block-post-title {
	font-family: 'DM Serif Display', serif !important;
	font-size: 2rem !important;
	line-height: 1.15 !important;
	font-weight: 400 !important;
	margin-top: 0.5rem !important;
	margin-bottom: 0.25rem !important;
}

/* Reduce top padding on single product layout */
.single-product main.wp-block-group > .wp-block-columns.alignwide {
	padding-top: 1rem !important;
	margin-top: 0 !important;
}

/* Related product titles + price — match the homepage product-card font */
.wc-block-product-template .wp-block-post-title,
.wc-block-product-template .wp-block-post-title a {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 1.0625rem !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
	color: #0d0d0d !important;
}
.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-price,
.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-price .woocommerce-Price-amount {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	color: #5a5a5a !important;
}

/* Product page price — smaller */
.single-product .wp-block-woocommerce-product-price .woocommerce-Price-amount {
	font-size: 1.25rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}

/* Hide WooCommerce zoom trigger + any PhotoSwipe remnants */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	display: none !important;
}
.pswp { display: none !important; }
.pswp__button { display: none !important; }

/* Hide the auto-generated "DESCRIPTION" h2 inside the product tab —
   there is already a visible heading in the product description content */
#tab-description > h2 {
	display: none;
}
.woocommerce div.product h1.product_title {
	font-family: 'DM Serif Display', serif;
	font-weight: 400;
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	line-height: 1.15;
	margin-bottom: 0.75rem;
	color: #0d0d0d;
}
.woocommerce div.product .price {
	font-family: 'DM Sans', sans-serif;
	font-size: 1.75rem;
	font-weight: 600;
	color: #0d0d0d;
	margin-bottom: 1rem;
}
.woocommerce div.product .woocommerce-product-details__short-description p {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #5a5a5a;
}
.woocommerce div.product form.cart { margin-top: 1.5rem; }
.woocommerce #content div.product,
.woocommerce div.product {
	padding: 2.5rem 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
}
.woocommerce-tabs .woocommerce-tabs__panel,
.woocommerce-tabs .panel { padding: 1.5rem 0; }
.woocommerce div.product .woocommerce-tabs h2 {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Related products heading */
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2,
.single-product .wp-block-woocommerce-product-collection > h2.wp-block-heading {
	font-family: 'DM Serif Display', serif;
	font-weight: 400;
	letter-spacing: -0.01em;
	font-size: 1.75rem;
	text-transform: none;
	color: #0d0d0d;
	margin-top: 3.5rem;
	margin-bottom: 1.75rem;
}

/* Shop page WC archive */
.woocommerce-page .woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: 'DM Sans', sans-serif;
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: #0d0d0d;
	padding: 0;
	margin: 0.75rem 0 0.25rem;
}
.woocommerce-page .woocommerce ul.products li.product .price {
	font-size: 1rem;
	font-weight: 500;
	color: #5a5a5a;
}

/* === mini-cart drawer === */
/* Fix: WC Blocks mini-cart renders two <img> tags per row — one bare img
   (for hidden-from-catalog products) and one inside an <a> link (for visible
   products). The Interactivity API should toggle [hidden] at runtime, but
   both can show simultaneously before JS resolves. Since all our products are
   visible in the catalog, we permanently hide the bare img (first child of the
   td) and show only the linked one. */
.wc-block-cart-item__image > img:first-child {
	display: none !important;
}
/* Ensure the image cell is a clean fixed-width column */
.wc-block-cart-item__image {
	width: 72px;
	min-width: 72px;
	padding-right: 12px;
}
.wc-block-cart-item__image a img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}
/* Hide the product short-description in cart & checkout line items — keep the row
   to the product name, variation, and price only. */
.wc-block-cart-item__wrap .wc-block-components-product-metadata__description,
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description {
	display: none !important;
}

/* === Cart free-shipping progress bar (dithered) === */
.ep-freeship {
	max-width: 1340px;
	margin: 0 auto 1.75rem;
	padding: 0 0 0.5rem;
}
.ep-freeship__label {
	display: inline-block;
	font-family: ui-monospace, 'SFMono-Regular', 'Cascadia Code', Menlo, Consolas, monospace;
	font-size: 0.8125rem;
	letter-spacing: 0.01em;
	color: #ffffff;
	background: #0d0d0d;
	border: 2px solid #000000;
	padding: 0.5rem 0.85rem;
	margin-bottom: 0.75rem;
}
.ep-freeship__label strong { color: #ffffff; font-weight: 700; }
.ep-freeship--done .ep-freeship__label { color: #ffffff; }

/* Coder/terminal frame: dark console track with corner brackets */
.ep-freeship__track {
	position: relative;
	height: 20px;
	background: #14140f;
	border: 1px solid #3a3a30;
	padding: 3px;
	overflow: visible;
}
/* faint scanline sheen across the console */
.ep-freeship__track::before {
	content: "";
	position: absolute;
	inset: 3px;
	pointer-events: none;
	z-index: 2;
	background: repeating-linear-gradient(
		to bottom,
		rgba(255,255,255,0.05) 0,
		rgba(255,255,255,0.05) 1px,
		transparent 1px,
		transparent 3px
	);
}
/* corner bracket reticle */
.ep-freeship__track::after {
	content: "";
	position: absolute;
	inset: -4px;
	pointer-events: none;
	background:
		linear-gradient(#c9a227,#c9a227) left top,
		linear-gradient(#c9a227,#c9a227) left top,
		linear-gradient(#c9a227,#c9a227) right top,
		linear-gradient(#c9a227,#c9a227) right top,
		linear-gradient(#c9a227,#c9a227) left bottom,
		linear-gradient(#c9a227,#c9a227) left bottom,
		linear-gradient(#c9a227,#c9a227) right bottom,
		linear-gradient(#c9a227,#c9a227) right bottom;
	background-repeat: no-repeat;
	background-size: 10px 2px, 2px 10px;
	background-position:
		left top, left top,
		right top, right top,
		left bottom, left bottom,
		right bottom, right bottom;
}
.ep-freeship__fill {
	position: relative;
	z-index: 1;
	height: 100%;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background-color: #c9a227;
	/* Dither dot-matrix over the gold fill */
	background-image:
		radial-gradient(rgba(13,13,13,0.45) 42%, transparent 45%),
		radial-gradient(rgba(13,13,13,0.45) 42%, transparent 45%);
	background-size: 6px 6px, 6px 6px;
	background-position: 0 0, 3px 3px;
	box-shadow: 0 0 6px rgba(201,162,39,0.5);
	transition: transform 0.5s ease;
}
.ep-freeship--done .ep-freeship__fill {
	background-color: #1f7a3d;
	box-shadow: 0 0 6px rgba(31,122,61,0.55);
}
@media (prefers-reduced-motion: reduce) {
	.ep-freeship__fill { transition: none; }
}

/* === woocommerce global === */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background: #0d0d0d;
	color: #ffffff;
	border-radius: 0;
	padding: 0.875rem 1.5rem;
	transition: background 0.2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: #2a2a2a;
	color: #ffffff;
}
.woocommerce-breadcrumb { font-size: 0.8125rem; color: #5a5a5a; }

/* === footer === */
.site-footer {
	background: #0d0d0d;
	padding: 3rem 1.5rem 2rem;
	border-top: 1px solid #1e1e1e;
}
.site-footer__top {
	margin-bottom: 2rem;
	gap: 1.5rem !important;
	align-items: center;
}
.footer-wordmark a,
.wp-block-site-title.footer-wordmark a {
	font-family: 'DM Sans', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #ffffff;
	border: none;
	padding: 0;
	display: inline-block;
	line-height: 1;
	text-decoration: none;
}
.site-footer__links {
	gap: 1.75rem !important;
	justify-content: center !important;
}
.footer-link-item { margin: 0; line-height: 1; }
.footer-link-item a {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #a0a0a0;
	text-decoration: none;
	transition: color 0.2s ease;
}
.footer-link-item a:hover { color: #ffffff; }
.site-footer__bottom {
	border-top: 1px solid #1e1e1e;
	padding-top: 1.5rem;
}
.footer-copy, .footer-disclaimer {
	font-size: 0.8125rem;
	color: #a0a0a0;
	margin: 0;
	line-height: 1.5;
}

/* === blog archive === */
.ep-blog-header {
	background: #ffffff;
	padding: 3rem 1.5rem 2rem;
	border-bottom: 1px solid #e2e0dc;
}
.ep-blog-header .ep-page-title {
	font-size: 2rem;
	font-weight: 700;
	font-family: 'DM Sans', sans-serif;
	margin: 0 0 0.5rem;
}
.ep-blog-header__sub {
	color: #6b6b6b;
	font-size: 0.9375rem;
	margin: 0;
}
.ep-blog-list {
	padding: 2.5rem 1.5rem 4rem;
	background: #ffffff;
}
.ep-blog-card {
	padding: 2rem 0;
	max-width: 720px;
}
.ep-blog-card__title .wp-block-post-title,
.ep-blog-card .wp-block-post-title {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	margin: 0 0 0.4rem !important;
	line-height: 1.3 !important;
}
.ep-blog-card .wp-block-post-title a {
	color: #0d0d0d;
	text-decoration: none;
}
.ep-blog-card .wp-block-post-title a:hover { color: #6e8b68; }
.ep-blog-card__date {
	font-size: 0.8125rem;
	color: #9a9a9a;
	margin: 0 0 0.75rem !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.ep-blog-card__excerpt { color: #4a4a4a; font-size: 0.9375rem; }
.ep-blog-card__excerpt .wp-block-post-excerpt__more-link {
	color: #0d0d0d;
	font-weight: 600;
	text-decoration: underline;
	font-size: 0.875rem;
}
.ep-blog-card__divider { margin: 0 !important; }

/* === responsive === */
@media (max-width: 768px) {
	.ep-trust-cols { flex-direction: column !important; }
	.ep-shop-hero { padding: 2rem 1.25rem 1.25rem; }
	/* Give the wordmark its own row. Keeping all header controls on one mobile
	   line forced WordPress to crush the logo even when the text itself fit. */
	.site-header__inner {
		flex-wrap: wrap !important;
		gap: 0.625rem !important;
		padding: 0.875rem 1rem;
	}
	.site-wordmark {
		flex: 0 0 100%;
		min-width: 0;
		margin: 0 !important;
	}
	.site-wordmark a,
	.wp-block-site-title.site-wordmark a {
		font-size: 0.8125rem;
		letter-spacing: 0.14em;
		line-height: 1;
		padding: 0.5rem 0.75rem;
		max-width: 100%;
		white-space: nowrap;
	}
	.site-header__right {
		width: 100%;
		gap: 0.75rem;
		justify-content: space-between !important;
	}
	.site-account-icon a,
	.site-cart-icon .wc-block-mini-cart__button {
		min-height: 2.75rem;
		font-size: 0.6875rem;
		letter-spacing: 0.08em;
	}
	/* Horizontal scroll pill strip on mobile */
	.ep-category-strip {
		padding: 1rem 0 0;
		position: relative;
	}
	.ep-category-strip::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 3rem;
		background: linear-gradient(to right, transparent, #ffffff);
		pointer-events: none;
		z-index: 1;
	}
	.ep-cats {
		overflow-x: auto !important;
		overflow-y: visible !important;
		flex-wrap: nowrap !important;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 0 1.25rem 1.25rem !important;
		margin: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	.ep-cats::-webkit-scrollbar { display: none; }
	.ep-cat-pill { flex-shrink: 0 !important; }
	.ep-main-products { padding: 2rem 1.25rem 3rem; }
	.site-footer__bottom { flex-direction: column; gap: 0.5rem; }
	.woocommerce-account .ep-page-wrap {
		padding: 2rem 1rem 4rem;
	}
	.woocommerce-account .ep-page-title.wp-block-post-title {
		margin-bottom: 1.25rem !important;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-MyAccount-navigation {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-MyAccount-navigation ul {
		display: flex;
		width: max-content;
		min-width: 100%;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-MyAccount-navigation li {
		flex: 0 0 auto;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-MyAccount-navigation li a {
		min-width: 8.75rem;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-MyAccount-content {
		min-height: 18rem;
		padding: 1.25rem !important;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-address-fields__field-wrapper,
	.woocommerce-account .ep-page-wrap .woocommerce-EditAccountForm,
	.woocommerce-account .ep-page-wrap .woocommerce .u-columns.woocommerce-Addresses {
		grid-template-columns: 1fr;
	}
	.woocommerce-account .ep-page-wrap .woocommerce-address-fields__field-wrapper .form-row-first,
	.woocommerce-account .ep-page-wrap .woocommerce-address-fields__field-wrapper .form-row-last,
	.woocommerce-account .ep-page-wrap .woocommerce-EditAccountForm > *,
	.woocommerce-account .ep-page-wrap .woocommerce .woocommerce-Address {
		grid-column: 1;
	}
}

/* === local dark-mode study: Codex-neutral palette === */
:root {
	color-scheme: dark;
	--ep-canvas: #171717;
	--ep-surface: #242424;
	--ep-surface-raised: #2b2b2b;
	--ep-text: #f2f2f2;
	--ep-text-muted: #b8b8b8;
	--ep-border: #383838;
	--ep-control: #ededed;
	--ep-control-text: #171717;
}

html[data-ep-theme="light"] {
	color-scheme: light;
	--ep-canvas: #ffffff;
	--ep-surface: #f5f4f2;
	--ep-surface-raised: #ebe9e5;
	--ep-text: #0d0d0d;
	--ep-text-muted: #5a5a5a;
	--ep-border: #e2e0dc;
	--ep-control: #0d0d0d;
	--ep-control-text: #ffffff;
}

.ep-theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	margin: 0;
	padding: 0;
	color: var(--ep-text);
	background: transparent;
	border: 0;
	cursor: pointer;
}
.ep-theme-toggle__track {
	position: relative;
	display: block;
	width: 2rem;
	height: 1rem;
	border: 1px solid currentColor;
}
.ep-theme-toggle__thumb {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 0.625rem;
	height: 0.625rem;
	background: currentColor;
	transition: transform 180ms cubic-bezier(.22, 1, .36, 1);
}
html[data-ep-theme="light"] .ep-theme-toggle__thumb {
	transform: translateX(1rem);
}
.ep-theme-toggle:hover { color: var(--ep-text-muted); }

html,
body,
.wp-site-blocks,
main,
.site-header,
.ep-shop-hero,
.ep-category-strip,
.ep-main-products,
.ep-page-wrap,
.ep-blog-header,
.ep-blog-list {
	background: var(--ep-canvas) !important;
	color: var(--ep-text) !important;
}

body,
p,
li,
label,
legend,
dt,
dd,
th,
td,
h1,
h2,
h3,
h4,
h5,
h6,
a {
	color: var(--ep-text);
}

::selection {
	background: var(--ep-control);
	color: var(--ep-control-text);
}

::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--ep-canvas); }
::-webkit-scrollbar-thumb { background: #494949; border: 3px solid var(--ep-canvas); }
::-webkit-scrollbar-thumb:hover { background: #5d5d5d; }

:focus-visible {
	outline: 2px solid var(--ep-text) !important;
	outline-offset: 3px;
}

.site-header,
.ep-category-strip,
.ep-blog-header {
	border-color: var(--ep-border) !important;
}

.site-wordmark a,
.wp-block-site-title.site-wordmark a {
	color: var(--ep-text) !important;
	border-color: var(--ep-text) !important;
}
.site-wordmark a:hover,
.wp-block-site-title.site-wordmark a:hover {
	background: var(--ep-control) !important;
	color: var(--ep-control-text) !important;
}

.site-nav .wp-block-navigation a,
.site-account-icon a,
.site-cart-icon a,
.site-account-icon .wc-block-customer-account a,
.site-cart-icon .wc-block-customer-account a,
.site-cart-icon .wc-block-mini-cart__button {
	color: var(--ep-text) !important;
}
.site-nav .wp-block-navigation a:hover { color: var(--ep-text-muted) !important; }
.site-account-icon a:hover,
.site-account-icon a:focus-visible,
.site-cart-icon .wc-block-mini-cart__button:hover,
.site-cart-icon .wc-block-mini-cart__button:focus-visible {
	color: var(--ep-text-muted) !important;
}
.site-account-icon svg,
.site-cart-icon svg { stroke: var(--ep-text) !important; }
.site-account-icon a:hover svg,
.site-cart-icon a:hover svg { stroke: var(--ep-text-muted) !important; }

.ep-shop-sub,
.ep-shop-freeship__label,
.ep-product-price .wc-block-components-product-price,
.ep-product-price ins,
.ep-product-price .woocommerce-Price-amount,
.ep-trust-desc,
.woocommerce-breadcrumb,
.ep-blog-header__sub,
.ep-blog-card__date,
.ep-blog-card__excerpt {
	color: var(--ep-text-muted) !important;
}
.ep-shop-freeship__label strong,
.ep-product-name a,
.ep-trust-stat,
.ep-blog-card .wp-block-post-title a {
	color: var(--ep-text) !important;
}
.ep-main-products .ep-all-products .ep-product-name a,
.ep-main-products .wp-block-post-title.ep-product-name a,
.ep-main-products .wp-block-post-title.ep-product-name {
	color: var(--ep-text) !important;
}
.ep-main-products .ep-product-name a {
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.02em !important;
}

.ep-shop-freeship__track {
	background: var(--ep-surface) !important;
	border-color: #666 !important;
}
.ep-shop-freeship__fill {
	background-color: var(--ep-control) !important;
	background-image: none !important;
}

.ep-cat-pill a {
	color: var(--ep-text-muted) !important;
	border-color: var(--ep-border) !important;
}
.ep-cat-pill a:hover,
.ep-cat-pill a.current-cat,
.ep-cat-pill a.ep-pill-active,
.ep-cat-pill--active a {
	background: var(--ep-control) !important;
	color: var(--ep-control-text) !important;
	border-color: var(--ep-control) !important;
}
.ep-cats-arrow {
	background: var(--ep-canvas) !important;
	color: var(--ep-text) !important;
	border-color: #666 !important;
}
.ep-cats-arrow:hover {
	background: var(--ep-control) !important;
	color: var(--ep-control-text) !important;
}

.ep-product-img,
.ep-product-img a,
.ep-product-img img {
	background-color: var(--ep-surface) !important;
}

.ep-more-info {
	border-color: #777 !important;
	background: transparent !important;
	color: var(--ep-text) !important;
}
.ep-more-info:hover {
	background: var(--ep-surface-raised) !important;
	color: var(--ep-text) !important;
}

.ep-product-btn .wp-element-button,
.ep-product-btn a.wp-element-button,
.ep-product-btn button.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wp-element-button {
	background: var(--ep-control) !important;
	color: var(--ep-control-text) !important;
	border-color: var(--ep-control) !important;
	box-shadow: none !important;
}
.ep-product-btn .wp-element-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wp-element-button:hover {
	background: #d7d7d7 !important;
	color: var(--ep-control-text) !important;
	border-color: #d7d7d7 !important;
}

.ep-trust-strip {
	background: var(--ep-surface) !important;
	border-color: var(--ep-border) !important;
}

input:not([type="checkbox"]):not([type="radio"]),
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	background: var(--ep-surface) !important;
	color: var(--ep-text) !important;
	border-color: #555 !important;
	caret-color: var(--ep-text);
}
input::placeholder,
textarea::placeholder { color: #999 !important; opacity: 1; }

.woocommerce table.shop_table,
.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.wc-block-mini-cart__drawer,
.wc-block-components-drawer,
.wc-block-mini-cart__footer {
	background: var(--ep-surface) !important;
	color: var(--ep-text) !important;
	border-color: var(--ep-border) !important;
}

.site-footer {
	background: #121212 !important;
	border-color: var(--ep-border) !important;
}
.site-footer__bottom { border-color: var(--ep-border) !important; }
.footer-wordmark a,
.wp-block-site-title.footer-wordmark a { color: var(--ep-text) !important; }
.footer-link-item a,
.footer-copy,
.footer-disclaimer { color: var(--ep-text-muted) !important; }
.footer-link-item a:hover { color: var(--ep-text) !important; }

html[data-ep-theme="light"] .site-footer {
	background: #f5f4f2 !important;
}
html[data-ep-theme="light"] ::-webkit-scrollbar-thumb {
	background: #b8b6b1;
}
html[data-ep-theme="light"] ::-webkit-scrollbar-thumb:hover {
	background: #96938d;
}

@media (max-width: 781px) {
	.ep-category-strip::after {
		background: linear-gradient(to right, transparent, var(--ep-canvas));
	}
}

/* Keep the catalog at the intended four-column desktop rhythm. WooCommerce may
   otherwise recalculate this block to three columns from the available width. */
.ep-all-products ul.wp-block-post-template,
.ep-all-products ul.wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 1024px) {
	.ep-all-products ul.wp-block-post-template,
	.ep-all-products ul.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 520px) {
	.ep-all-products ul.wp-block-post-template,
	.ep-all-products ul.wc-block-product-template {
		grid-template-columns: 1fr !important;
	}
	.ep-all-products ul.wc-block-product-template > li {
		padding: 1rem;
	}
	.ep-main-products .ep-all-products .ep-product-name a {
		font-size: 1.25rem !important;
		line-height: 1.25 !important;
	}
	.ep-all-products .ep-more-info,
	.ep-all-products .ep-product-btn .wp-element-button {
		padding-inline: 0.625rem !important;
		font-size: 0.7rem !important;
		letter-spacing: 0.08em !important;
	}
}

/* Complete the dark palette across secondary templates and WooCommerce UI. */
.ep-page-title.wp-block-post-title,
.woocommerce-cart h1.wp-block-post-title,
.ep-page-wrap .woocommerce h2,
.ep-page-wrap .woocommerce h3,
.woocommerce div.product h1.product_title,
.woocommerce div.product .woocommerce-tabs h2,
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2,
.single-product .wp-block-woocommerce-product-collection > h2.wp-block-heading,
.wc-block-checkout .wc-block-components-checkout-step__title,
.wc-block-checkout .wc-block-components-checkout-order-summary__title,
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--ep-text) !important;
}

.ep-page-wrap .woocommerce p,
.ep-page-wrap .woocommerce label,
.ep-page-wrap .woocommerce table,
.ep-page-wrap .woocommerce td,
.ep-page-wrap .woocommerce th,
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-product-details__short-description p,
.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar,
.wc-block-components-main,
.wc-block-components-order-summary-item,
.wc-block-components-totals-item,
.wc-block-components-radio-control__label,
.wc-block-components-checkbox__label,
.wc-block-components-address-form__address_2-toggle {
	color: var(--ep-text) !important;
}

.ep-page-wrap .woocommerce .required {
	color: #ff6b62 !important;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account fieldset,
.woocommerce table.shop_table,
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-sidebar-layout .wc-block-components-main {
	border-color: #666 !important;
}

.woocommerce-account .show-password-input::after,
.woocommerce-account .password-input .show-password-input::after,
.woocommerce-account .show-password-input::before,
.woocommerce-account .password-input .show-password-input::before,
.woocommerce-account .show-password-input {
	color: var(--ep-text-muted) !important;
	fill: var(--ep-text-muted) !important;
}

.ep-page-wrap .woocommerce-MyAccount-navigation li a {
	color: var(--ep-text-muted) !important;
	border-color: var(--ep-border) !important;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li:last-child a {
	border-bottom-color: var(--ep-border) !important;
}
.ep-page-wrap .woocommerce-MyAccount-navigation li.is-active a,
.ep-page-wrap .woocommerce-MyAccount-navigation li a:hover {
	background: var(--ep-control) !important;
	color: var(--ep-control-text) !important;
	border-color: var(--ep-control) !important;
}

.woocommerce-product-details__short-description .ep-coa,
.ep-product-meta,
.ep-product-meta .wp-block-post-terms,
.ep-product-meta .wp-block-post-terms__prefix,
.ep-product-meta .sku {
	color: var(--ep-text-muted) !important;
	border-color: var(--ep-border) !important;
}
.ep-product-meta .wp-block-post-terms a {
	color: var(--ep-text) !important;
	border-color: #666 !important;
}

.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input .components-form-token-field__input,
.wc-block-checkout select,
.wc-block-checkout .wc-blocks-components-select__container {
	background: var(--ep-surface) !important;
	color: var(--ep-text) !important;
	border-color: #666 !important;
}
.wc-block-checkout .wc-block-components-text-input label,
.wc-block-checkout .wc-blocks-components-select__label,
.wc-block-components-product-metadata,
.wc-block-components-product-details,
.wc-block-components-totals-item__description {
	color: var(--ep-text-muted) !important;
}
.wc-block-checkout .wc-block-components-sidebar .wc-block-components-checkout-order-summary,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control > .wc-block-components-radio-control__option,
.wc-block-components-shipping-rates-control__package,
.wc-block-components-order-summary,
.wc-block-cart-items {
	background: var(--ep-surface) !important;
	color: var(--ep-text) !important;
	border-color: var(--ep-border) !important;
}
.wc-block-checkout .wc-block-components-radio-control__option.wc-block-components-radio-control__option-checked,
.wc-block-checkout .wc-block-components-radio-control-accordion-option:has(input:checked) {
	border-color: #777 !important;
	box-shadow: inset 0 0 0 1px #777 !important;
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--ep-surface-raised) !important;
	color: var(--ep-text) !important;
	border-color: #666 !important;
}
.woocommerce-info a,
.woocommerce-message a,
.woocommerce-error a,
.wc-block-components-notice-banner a {
	color: var(--ep-text) !important;
}

.ep-policy-intro,
.ep-policy-body,
.ep-faq-intro,
.ep-faq-body {
	background: var(--ep-canvas) !important;
	color: var(--ep-text) !important;
	border-color: var(--ep-border) !important;
}
.ep-policy-heading,
.ep-policy-section-title,
.ep-faq-heading,
.ep-accordion-item .wp-block-accordion-heading__toggle {
	color: var(--ep-text) !important;
	border-color: var(--ep-text) !important;
}
.ep-policy-meta,
.ep-policy-lead,
.ep-faq-sub,
.ep-faq-cat,
.ep-accordion-item .wp-block-accordion-heading__toggle-icon,
.ep-accordion-item .wp-block-accordion-panel p {
	color: var(--ep-text-muted) !important;
}
.ep-policy-lead,
.ep-policy-callout {
	background: var(--ep-surface) !important;
	border-color: #777 !important;
}
.ep-policy-list li,
.ep-policy-callout-text {
	color: var(--ep-text) !important;
}
.ep-policy-divider,
.ep-accordion-item {
	border-color: var(--ep-border) !important;
}

/* === motion === */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
