/**
 * The Parfum Vault design-token foundation.
 *
 * Phase 1: ivory surfaces, editorial type, and restrained warm gold.
 * Homepage components are scoped; native Storefront and WooCommerce content
 * receives presentation-only styling below, without template overrides.
 *
 * Breakpoint registry (mobile-first min-width; rem assumes browser defaults):
 *   sm:  40rem  (640px)
 *   md:  48rem  (768px; matches Storefront's primary layout breakpoint)
 *   lg:  64rem  (1024px)
 *   xl:  80rem  (1280px)
 *
 * CSS custom properties cannot be used in media-query conditions. Keep literal
 * min-width values in future queries aligned with this registry. No build step
 * or unsupported @custom-media syntax is required.
 */

:root {
	/* Local fonts only. */
	--tpv-font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
	--tpv-font-display: "Iowan Old Style", Baskerville, "Times New Roman", Georgia, serif;
	--tpv-font-size-xs: 0.75rem;
	--tpv-font-size-sm: 0.875rem;
	--tpv-font-size-md: 1rem;
	--tpv-font-size-lg: 1.25rem;
	--tpv-font-size-xl: 1.5rem;
	--tpv-font-size-2xl: 2rem;
	--tpv-font-size-3xl: 3rem;
	--tpv-font-weight-regular: 400;
	--tpv-font-weight-medium: 500;
	--tpv-font-weight-bold: 700;
	--tpv-line-height-tight: 1.15;
	--tpv-line-height-normal: 1.5;
	--tpv-line-height-relaxed: 1.7;
	--tpv-letter-spacing-normal: 0;
	--tpv-letter-spacing-wide: 0.08em;

	/* Spacing scale: quarter-rem base with larger editorial intervals. */
	--tpv-space-0: 0;
	--tpv-space-1: 0.25rem;
	--tpv-space-2: 0.5rem;
	--tpv-space-3: 0.75rem;
	--tpv-space-4: 1rem;
	--tpv-space-5: 1.25rem;
	--tpv-space-6: 1.5rem;
	--tpv-space-8: 2rem;
	--tpv-space-12: 3rem;
	--tpv-space-16: 4rem;
	--tpv-space-24: 6rem;

	/* Container caps exclude gutters; future layouts should use border-box. */
	--tpv-container-reading: 42rem;
	--tpv-container-content: 75rem;
	--tpv-container-wide: 90rem;
	--tpv-container-gutter: var(--tpv-space-4);
	--tpv-section-space: var(--tpv-space-12);

	/* Semantic surface and text palette. */
	--tpv-color-surface: #ffffff;
	--tpv-color-surface-subtle: #f7f4ee;
	--tpv-color-cream: #eee7db;
	--tpv-color-warm-white: #fbfaf7;
	--tpv-color-stone: #d9cfbf;
	--tpv-color-category-women: #eee2db;
	--tpv-color-category-unisex: #e5e5dc;
	--tpv-color-gold: #b8955a;
	--tpv-color-gold-dark: #6f5630;
	--tpv-color-surface-inverse: #171717;
	--tpv-color-text: #171717;
	--tpv-color-text-muted: #595959;
	--tpv-color-text-inverse: #ffffff;
	--tpv-color-border: #d9d2c7;
	--tpv-color-border-strong: #737373;
	--tpv-color-focus: #171717;
	--tpv-color-error: #8a3b32;

	/* Decorative borders are not a substitute for accessible control outlines. */
	--tpv-border-width: 1px;
	--tpv-border-default: var(--tpv-border-width) solid var(--tpv-color-border);
	--tpv-radius-none: 0;
	--tpv-radius-sm: 0.25rem;
	--tpv-radius-pill: 999px;
	--tpv-shadow-none: none;
	--tpv-shadow-soft: 0 0.25rem 1rem rgb(0 0 0 / 8%);
	--tpv-focus-width: 2px;
	--tpv-focus-offset: 3px;

	/* Future motion must also respect prefers-reduced-motion. */
	--tpv-duration-fast: 150ms;
	--tpv-duration-normal: 250ms;
	--tpv-easing-standard: ease-out;
	--tpv-touch-target: 2.75rem;
	--tpv-heading-hero: clamp(3rem, 5.4vw, 5.5rem);
	--tpv-heading-section: clamp(2rem, 3.2vw, 3rem);
	--tpv-header-layer: 30;
	--tpv-header-logo-width-mobile: 6.5rem;
	--tpv-header-logo-height-mobile: 2.75rem;
	--tpv-header-logo-width: 10rem;
	--tpv-header-logo-height: 4.75rem;
	--tpv-header-announcement-height: 1.875rem;
	--tpv-header-height-mobile: 4.5rem;
	--tpv-header-height-desktop: 5.75rem;
	--tpv-header-control-size: 2.75rem;
	--tpv-header-navigation-gap: clamp(1.1rem, 2.1vw, 2.35rem);
	--tpv-product-card-min: 12rem;
}

@media (min-width: 48rem) {
	:root {
		--tpv-container-gutter: var(--tpv-space-8);
		--tpv-section-space: var(--tpv-space-16);
	}
}

@media (min-width: 80rem) {
	:root {
		--tpv-container-gutter: var(--tpv-space-12);
		--tpv-section-space: var(--tpv-space-24);
	}
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--tpv-duration-fast: 0ms;
		--tpv-duration-normal: 0ms;
	}
}

/* Shared shell. Preserve all parent content wrappers on commerce pages. */
.tpv-site #masthead { padding: 0; margin-bottom: 0; border: 0; background: var(--tpv-color-surface-subtle); color: var(--tpv-color-text); z-index: var(--tpv-header-layer); }
.tpv-site #masthead, .tpv-site #colophon, .tpv-home { font-family: var(--tpv-font-body); }
.tpv-site #masthead *, .tpv-site #colophon *, .tpv-home * { box-sizing: border-box; }
.tpv-container { width: min(100% - 2 * var(--tpv-container-gutter), var(--tpv-container-content)); margin-inline: auto; }
.tpv-site #masthead a { color: var(--tpv-color-text); }
.tpv-site :where(.tpv-home, #masthead, #colophon) a { text-decoration: none; }
.tpv-site :where(.tpv-home, #masthead, #colophon) :is(a, button, input, summary):focus-visible { outline: var(--tpv-focus-width) solid currentColor; outline-offset: var(--tpv-focus-offset); }
.tpv-site :where(.tpv-home, #masthead, #colophon) a:hover { text-decoration: underline; text-underline-offset: 0.25em; }
.tpv-announcement { position: relative; padding: 0.45rem var(--tpv-space-4); background: var(--tpv-color-surface-inverse); color: var(--tpv-color-cream); text-align: center; font-size: 0.625rem; letter-spacing: 0.14em; }
.tpv-announcement p { margin: 0; }
.tpv-header { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: var(--tpv-space-2); min-height: 4.25rem; padding-block: var(--tpv-space-3); }
.tpv-branding { flex: 1; min-width: 0; }
.tpv-wordmark { display: inline-block; font-family: var(--tpv-font-display); font-size: clamp(1.1rem, 2.5vw, 1.6rem); line-height: var(--tpv-line-height-tight); letter-spacing: -0.04em; }
.tpv-branding .custom-logo-link { display: block; }
.tpv-branding .custom-logo { display: block; width: auto; height: auto; max-width: 4.75rem; max-height: 3.25rem; object-fit: contain; object-position: left center; }
.tpv-menu-toggle, .tpv-account, .tpv-cart { display: inline-flex; align-items: center; justify-content: center; min-width: var(--tpv-touch-target); min-height: var(--tpv-touch-target); }
.tpv-menu-toggle { padding: 0; border: 0; color: inherit; background: transparent; font-size: var(--tpv-font-size-lg); }
.tpv-menu-toggle:hover { background: var(--tpv-color-cream); color: inherit; }
.tpv-nav[hidden], .tpv-menu-toggle[hidden] { display: none; }
.tpv-utilities { display: flex; align-items: center; gap: var(--tpv-space-1); }
.tpv-cart { position: relative; }
.tpv-count { font-family: var(--tpv-font-body); font-size: var(--tpv-font-size-xs); margin-left: var(--tpv-space-1); }
.tpv-nav { order: 3; width: 100%; border-top: var(--tpv-border-default); padding-top: var(--tpv-space-3); }
.tpv-nav ul { list-style: none; padding: 0; margin: 0; }
.tpv-menu { display: flex; flex-wrap: wrap; column-gap: var(--tpv-space-5); }
.tpv-nav a { display: inline-flex; align-items: center; min-height: var(--tpv-touch-target); font-size: var(--tpv-font-size-sm); letter-spacing: 0.01em; }
.tpv-nav .sub-menu { padding-left: var(--tpv-space-4); }
.tpv-nav .current-menu-item > a { text-decoration: underline; text-underline-offset: 0.35em; }
.tpv-search summary { display: flex; align-items: center; min-height: var(--tpv-touch-target); cursor: pointer; font-size: var(--tpv-font-size-xs); }
.tpv-search summary::after { content: '+'; padding-left: var(--tpv-space-1); }
.tpv-search[open] summary::after { content: '−'; }
.tpv-search-panel { position: absolute; z-index: 2; top: 100%; left: 0; width: 100%; padding: var(--tpv-space-4); background: var(--tpv-color-surface); border: var(--tpv-border-default); }
.tpv-search-panel form { margin: 0; display: flex; gap: var(--tpv-space-2); }
.tpv-search-panel form::before { display: none; }
.tpv-search-panel input[type="search"] { width: 100%; min-width: 0; padding: var(--tpv-space-3); background: var(--tpv-color-surface-subtle); box-shadow: none; border: var(--tpv-border-default); }
.tpv-search-panel button, .tpv-search-panel input[type="submit"] { position: static; width: auto; height: auto; clip: auto; clip-path: none; padding: var(--tpv-space-3); background: var(--tpv-color-surface-inverse); color: var(--tpv-color-surface); }

/* Homepage typography and layout: no archive/product/checkout selectors. */
.tpv-front #content > .col-full { max-width: none; margin: 0; padding: 0; }
.tpv-home { background: var(--tpv-color-surface-subtle); color: var(--tpv-color-text); }
.tpv-home :is(h1, h2, h3, p) { margin: 0; }
.tpv-home :is(h1, h2, h3) { color: inherit; font-family: var(--tpv-font-display); font-weight: var(--tpv-font-weight-regular); letter-spacing: -0.025em; line-height: var(--tpv-line-height-tight); }
.tpv-home h1 { font-size: var(--tpv-heading-hero); max-width: 14ch; }
.tpv-home h2 { font-size: var(--tpv-heading-section); }
.tpv-home p { line-height: var(--tpv-line-height-relaxed); }
.tpv-home .tpv-eyebrow, .tpv-eyebrow { font-family: var(--tpv-font-body); font-size: var(--tpv-font-size-xs); font-weight: var(--tpv-font-weight-medium); line-height: var(--tpv-line-height-normal); letter-spacing: 0.16em; text-transform: uppercase; }
.tpv-home .tpv-eyebrow { margin-bottom: var(--tpv-space-3); }
.tpv-section { padding-block: var(--tpv-space-12); }
.tpv-section-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--tpv-space-4); margin-bottom: var(--tpv-space-6); }
.tpv-section-heading--center { justify-content: center; text-align: center; }
.tpv-home .tpv-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--tpv-space-6); min-height: var(--tpv-touch-target); padding: var(--tpv-space-4) var(--tpv-space-6); color: var(--tpv-color-text); background: var(--tpv-color-gold); border: 1px solid transparent; border-radius: 0; font-family: var(--tpv-font-body); font-weight: var(--tpv-font-weight-medium); font-size: var(--tpv-font-size-xs); text-transform: uppercase; letter-spacing: var(--tpv-letter-spacing-wide); line-height: var(--tpv-line-height-normal); text-align: center; box-shadow: none; }
.tpv-home a.tpv-button:hover { background: var(--tpv-color-text); color: var(--tpv-color-surface); text-decoration: none; }
.tpv-text-link { display: inline-flex; align-items: center; gap: var(--tpv-space-3); min-height: var(--tpv-touch-target); color: var(--tpv-color-text); font-size: var(--tpv-font-size-xs); letter-spacing: var(--tpv-letter-spacing-wide); text-transform: uppercase; }
.tpv-hero { display: grid; background: var(--tpv-color-cream); border-bottom: var(--tpv-border-default); }
.tpv-hero-copy { position: relative; z-index: 1; padding: var(--tpv-space-12) var(--tpv-container-gutter); align-self: center; }
.tpv-hero-copy .tpv-eyebrow { color: var(--tpv-color-gold-dark); }
.tpv-home .tpv-lead { max-width: 38ch; margin-block: var(--tpv-space-6); font-size: var(--tpv-font-size-md); }
.tpv-hero-visual, .tpv-editorial-visual { min-width: 0; overflow: hidden; }
.tpv-feature-image { display: block; width: 100%; height: 100%; min-height: 22rem; object-fit: cover; border-radius: 0; }
.tpv-placeholder { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: var(--tpv-space-4); min-height: 22rem; height: 100%; padding: var(--tpv-space-8); overflow: hidden; background: var(--tpv-color-stone); text-align: center; }
.tpv-placeholder::before, .tpv-placeholder::after { content: ""; position: absolute; border: 1px solid rgb(111 86 48 / 25%); border-radius: 50%; pointer-events: none; }
.tpv-placeholder::before { width: min(70%, 23rem); aspect-ratio: 1; }
.tpv-placeholder::after { width: min(52%, 17rem); aspect-ratio: 1; }
.tpv-placeholder__rule { width: 1px; height: var(--tpv-space-12); background: var(--tpv-color-gold-dark); }
.tpv-placeholder :is(.tpv-placeholder__rule, .tpv-placeholder__monogram, .tpv-eyebrow) { position: relative; z-index: 1; }
.tpv-placeholder__monogram { font-family: var(--tpv-font-display); font-size: clamp(4.5rem, 10vw, 8rem); font-weight: 400; line-height: 1; letter-spacing: -0.09em; color: var(--tpv-color-gold-dark); }
.tpv-categories { display: grid; gap: var(--tpv-space-4); }
.tpv-category { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 13rem; overflow: hidden; background: var(--tpv-color-cream); border: 1px solid transparent; }
.tpv-category--women { background: var(--tpv-color-category-women); }
.tpv-category--unisex { background: var(--tpv-color-category-unisex); }
.tpv-category-visual { grid-column: 2; grid-row: 1; height: 100%; display: grid; place-items: center; overflow: hidden; }
.tpv-category-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.tpv-category-visual > span { font-family: var(--tpv-font-display); font-size: 6.5rem; line-height: 1; color: var(--tpv-color-gold-dark); opacity: 0.28; }
.tpv-category-copy { grid-column: 1; grid-row: 1; padding: var(--tpv-space-6); }
.tpv-home .tpv-category h3 { font-size: var(--tpv-font-size-2xl); }
.tpv-category-pending { display: block; margin-top: var(--tpv-space-3); font-size: var(--tpv-font-size-xs); color: var(--tpv-color-text-muted); }
.tpv-home .tpv-empty { padding: var(--tpv-space-8); border: var(--tpv-border-default); background: var(--tpv-color-surface); text-align: center; color: var(--tpv-color-text-muted); }

/* Native WooCommerce cards: one shared treatment for both homepage loops. */
.tpv-home .tpv-products ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tpv-space-4); margin: 0; padding: 0; justify-content: start; }
.tpv-home .tpv-products ul.products::before, .tpv-home .tpv-products ul.products::after { display: none; }
.tpv-home .tpv-products ul.products li.product { display: flex; flex-direction: column; width: auto; float: none; margin: 0; padding: 0 0 var(--tpv-space-4); text-align: left; background: var(--tpv-color-warm-white); border: var(--tpv-border-default); min-width: 0; }
.tpv-home .tpv-products .woocommerce-loop-product__link { display: flex; flex-direction: column; flex: 1; color: var(--tpv-color-text); }
.tpv-home .tpv-products ul.products li.product img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: contain; border-radius: 0; margin: 0 0 var(--tpv-space-4); background: var(--tpv-color-surface); }
.tpv-home .tpv-products ul.products li.product :is(h2, .price, .star-rating, .tpv-product-brand) { margin-inline: var(--tpv-space-3); }
.tpv-home .tpv-products ul.products li.product h2 { font-family: var(--tpv-font-body); font-size: var(--tpv-font-size-sm); font-weight: 400; letter-spacing: 0; line-height: var(--tpv-line-height-normal); margin-bottom: var(--tpv-space-3); overflow-wrap: anywhere; }
.tpv-product-brand { display: block; color: var(--tpv-color-text-muted); font-size: var(--tpv-font-size-xs); letter-spacing: var(--tpv-letter-spacing-wide); text-transform: uppercase; margin-bottom: var(--tpv-space-2); }
.tpv-home .tpv-products ul.products li.product .price { font-size: var(--tpv-font-size-sm); margin-bottom: var(--tpv-space-3); color: var(--tpv-color-text); }
.tpv-home .tpv-products .star-rating { font-size: var(--tpv-font-size-xs); margin-bottom: var(--tpv-space-3); }
.tpv-home .tpv-products .star-rating span::before { color: var(--tpv-color-gold-dark); }
.tpv-home .tpv-products ul.products li.product .button { margin: var(--tpv-space-3) var(--tpv-space-3) 0; min-height: var(--tpv-touch-target); display: flex; align-items: center; justify-content: center; padding: var(--tpv-space-3) var(--tpv-space-2); background: var(--tpv-color-text); color: var(--tpv-color-surface); font-size: var(--tpv-font-size-xs); font-weight: 400; text-transform: uppercase; letter-spacing: 0.04em; border-radius: 0; }
.tpv-home .tpv-products .added_to_cart { margin: var(--tpv-space-3); text-align: center; }
.tpv-home .tpv-products .onsale { align-self: flex-start; margin: var(--tpv-space-3); border-color: var(--tpv-color-border); border-radius: 0; }
.tpv-brands { padding-block: var(--tpv-space-8) var(--tpv-space-12); text-align: center; border-top: var(--tpv-border-default); }
.tpv-home .tpv-brands h2 { font-family: var(--tpv-font-body); font-size: var(--tpv-font-size-xs); }
.tpv-brands ul { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--tpv-space-4) var(--tpv-space-8); margin: var(--tpv-space-6) 0 0; padding: var(--tpv-space-5) 0 0; list-style: none; border-top: var(--tpv-border-default); }
.tpv-brands a { display: inline-block; padding-block: var(--tpv-space-2); font-family: var(--tpv-font-display); font-size: clamp(1.1rem, 1.8vw, var(--tpv-font-size-xl)); color: var(--tpv-color-text); }
.tpv-editorial { display: grid; background: var(--tpv-color-cream); border-block: var(--tpv-border-default); }
.tpv-editorial-copy { padding: var(--tpv-space-12) var(--tpv-container-gutter); align-self: center; }
.tpv-editorial-copy h2 { max-width: 15ch; }
.tpv-editorial-copy > p:not(.tpv-eyebrow) { margin-block: var(--tpv-space-6); max-width: 42ch; }
.tpv-editorial .tpv-placeholder { background: var(--tpv-color-surface-inverse); color: var(--tpv-color-cream); }
.tpv-editorial .tpv-placeholder__monogram { color: var(--tpv-color-gold); }
.tpv-trust { display: grid; padding-block: var(--tpv-space-8); border-top: var(--tpv-border-default); }
.tpv-trust > div { display: flex; align-items: center; gap: var(--tpv-space-4); padding: var(--tpv-space-4); }
.tpv-trust svg { width: var(--tpv-space-8); height: var(--tpv-space-8); flex-shrink: 0; }
.tpv-home .tpv-trust h2 { font-size: var(--tpv-font-size-xl); }
.tpv-newsletter { background: var(--tpv-color-cream); padding-block: var(--tpv-space-12); }
.tpv-newsletter-inner { display: grid; gap: var(--tpv-space-6); }
.tpv-newsletter p:not(.tpv-eyebrow) { max-width: 44ch; margin-top: var(--tpv-space-3); font-size: var(--tpv-font-size-sm); }
.tpv-newsletter-form { margin: 0; }
.tpv-newsletter fieldset { margin: 0; padding: 0; border: 0; background: none; }
.tpv-newsletter label { display: block; margin-bottom: var(--tpv-space-2); font-size: var(--tpv-font-size-sm); }
.tpv-newsletter-fields { display: flex; flex-wrap: wrap; gap: var(--tpv-space-2); }
.tpv-newsletter input[type="email"] { flex: 1; width: 100%; min-width: 10rem; border: var(--tpv-border-default); padding: var(--tpv-space-3); background: var(--tpv-color-surface); box-shadow: none; border-radius: 0; font-size: var(--tpv-font-size-sm); }
.tpv-newsletter button:disabled { opacity: 0.65; cursor: not-allowed; }
.tpv-home .tpv-note { color: var(--tpv-color-text-muted); font-size: var(--tpv-font-size-xs); }

/* Footer shares the parent shell but has its own menu locations. */
.tpv-site #colophon { background: var(--tpv-color-surface-inverse); color: var(--tpv-color-cream); padding-block: var(--tpv-space-12) var(--tpv-space-6); border-top: 2px solid var(--tpv-color-gold-dark); }
.tpv-site #colophon > .col-full { width: min(100% - 2 * var(--tpv-container-gutter), var(--tpv-container-content)); margin-inline: auto; padding: 0; max-width: none; }
.tpv-site #colophon a { color: var(--tpv-color-cream); }
.tpv-footer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tpv-space-8) var(--tpv-space-6); }
.tpv-footer-brand { grid-column: 1 / -1; }
.tpv-footer-brand p { margin-top: var(--tpv-space-4); max-width: 25ch; color: var(--tpv-color-gold); font-size: var(--tpv-font-size-xs); letter-spacing: var(--tpv-letter-spacing-wide); text-transform: uppercase; }
.tpv-footer-group h2 { color: var(--tpv-color-cream); font-family: var(--tpv-font-display); font-size: var(--tpv-font-size-lg); font-weight: 400; margin-bottom: var(--tpv-space-3); }
.tpv-footer-group ul { display: block; list-style: none; margin: 0; padding: 0; }
.tpv-footer-group li, .tpv-footer-group p, .tpv-footer-group > a { margin: 0; font-size: var(--tpv-font-size-sm); line-height: var(--tpv-line-height-relaxed); }
.tpv-footer-group a { display: inline-block; padding-block: var(--tpv-space-2); }
.tpv-footer-group span, .tpv-footer-group p { color: var(--tpv-color-stone); }
.tpv-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--tpv-space-4); border-top: 1px solid var(--tpv-color-border-strong); padding-top: var(--tpv-space-6); margin-top: var(--tpv-space-8); font-size: var(--tpv-font-size-xs); }
.tpv-footer-bottom p { margin: 0; }

@media (min-width: 48rem) {
	.tpv-hero, .tpv-editorial { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpv-hero-copy { padding-block: var(--tpv-space-16); padding-left: max(var(--tpv-container-gutter), calc((100vw - var(--tpv-container-content)) / 2)); }
	.tpv-editorial-copy { padding: var(--tpv-space-12); }
	.tpv-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpv-category { grid-template-columns: 1fr; }
	.tpv-category-visual { grid-column: 1; height: 10rem; }
	.tpv-category-copy { grid-row: 2; padding: var(--tpv-space-4); }
	.tpv-home .tpv-products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.tpv-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpv-trust > div + div { border-left: var(--tpv-border-default); }
	.tpv-home .tpv-trust h2 { font-size: var(--tpv-font-size-lg); }
	.tpv-newsletter-inner { grid-template-columns: 1fr 1fr; align-items: center; }
	.tpv-footer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 64rem) {
	.tpv-header { display: grid; grid-template-columns: minmax(7.25rem, 10rem) 1fr auto; flex-wrap: nowrap; gap: var(--tpv-space-6); min-height: 6.25rem; padding-block: var(--tpv-space-4); }
	.tpv-branding { min-width: 0; }
	.tpv-branding .custom-logo { max-width: var(--tpv-header-logo-width); max-height: var(--tpv-header-logo-height); }
	.tpv-nav { flex: 1; width: auto; order: 0; border: 0; padding: 0; }
	.tpv-menu { justify-content: center; gap: clamp(1rem, 2vw, 2rem); }
	.tpv-menu > li { position: relative; }
	.tpv-nav .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 12rem; padding: var(--tpv-space-3); background: var(--tpv-color-surface); border: var(--tpv-border-default); z-index: 3; }
	.tpv-menu > li:hover > .sub-menu, .tpv-menu > li:focus-within > .sub-menu { display: block; }
	.tpv-search-panel { left: auto; right: 0; width: 24rem; }
	.tpv-section { padding-block: var(--tpv-space-16); }
	.tpv-hero { min-height: 35rem; }
	.tpv-hero-copy { padding-block: var(--tpv-space-16); }
	.tpv-feature-image, .tpv-placeholder { min-height: 35rem; }
	.tpv-category { grid-template-columns: 1fr 1fr; min-height: 14rem; }
	.tpv-category-visual { grid-column: 2; height: 100%; }
	.tpv-category-copy { grid-row: 1; }
	.tpv-footer-grid { grid-template-columns: 1.6fr repeat(4, minmax(0, 1fr)); }
	.tpv-footer-brand { grid-column: auto; }
}
@media (min-width: 80rem) {
	.tpv-hero { min-height: 38rem; }
	.tpv-feature-image, .tpv-placeholder { min-height: 38rem; }
	.tpv-home .tpv-products ul.products { grid-template-columns: repeat(4, minmax(0, 17.5rem)); }
}

/* Phase 2: native WooCommerce and Storefront presentation. No templates are overridden. */
.tpv-branding .custom-logo { max-width: var(--tpv-header-logo-width-mobile); max-height: var(--tpv-header-logo-height-mobile); }
.tpv-hero-copy { padding-block: var(--tpv-space-8); }
.tpv-hero-visual .tpv-placeholder { min-height: 20rem; background: #d8ccba; }
.tpv-hero-visual .tpv-feature-image { min-height: 20rem; }
.tpv-hero-visual .tpv-placeholder::before { width: min(74%, 20rem); }
.tpv-hero-visual .tpv-placeholder__rule { height: var(--tpv-space-8); }
.tpv-hero-visual .tpv-placeholder__monogram { font-size: clamp(4rem, 12vw, 6.5rem); }

/* Full-width commerce contexts retain Storefront's content shell but no sidebar. */
.tpv-commerce-full-width #primary.content-area { width: 100%; float: none; margin: 0; }
.tpv-commerce-full-width #secondary.widget-area { display: none; }
.tpv-commerce-full-width .site-main { width: min(100% - 2 * var(--tpv-container-gutter), var(--tpv-container-wide)); margin-inline: auto; padding-block: var(--tpv-space-6) var(--tpv-section-space); }
.tpv-commerce-full-width .site-main > :first-child { margin-top: 0; }
.tpv-commerce-full-width .woocommerce-breadcrumb { width: min(100% - 2 * var(--tpv-container-gutter), var(--tpv-container-wide)); margin: var(--tpv-space-5) auto 0; color: var(--tpv-color-text-muted); font-size: var(--tpv-font-size-xs); letter-spacing: 0.04em; }
.tpv-commerce-full-width .woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
.tpv-commerce-full-width .woocommerce-breadcrumb a:hover { color: var(--tpv-color-text); text-decoration: underline; text-underline-offset: 0.25em; }

/* Shared native controls, links and notices. */
.tpv-site .woocommerce :is(button.button, a.button, input.button, input[type="submit"], .wc-forward),
.tpv-site .woocommerce-page :is(button.button, a.button, input.button, input[type="submit"], .wc-forward) { display: inline-flex; align-items: center; justify-content: center; min-height: var(--tpv-touch-target); padding: 0.7rem 1rem; border: 1px solid var(--tpv-color-surface-inverse); border-radius: var(--tpv-radius-none); background: var(--tpv-color-surface-inverse); color: var(--tpv-color-text-inverse); box-shadow: none; font-family: var(--tpv-font-body); font-size: var(--tpv-font-size-xs); font-weight: var(--tpv-font-weight-medium); letter-spacing: 0.1em; line-height: 1.2; text-transform: uppercase; text-decoration: none; }
.tpv-site .woocommerce :is(button.button, a.button, input.button, input[type="submit"], .wc-forward):hover,
.tpv-site .woocommerce-page :is(button.button, a.button, input.button, input[type="submit"], .wc-forward):hover { border-color: var(--tpv-color-gold-dark); background: var(--tpv-color-gold-dark); color: var(--tpv-color-text-inverse); }
.tpv-site .woocommerce :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select, textarea),
.tpv-site .woocommerce-page :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select, textarea) { min-height: var(--tpv-touch-target); padding: 0.7rem 0.8rem; border: var(--tpv-border-default); border-radius: var(--tpv-radius-none); background: var(--tpv-color-surface); box-shadow: none; color: var(--tpv-color-text); font-family: var(--tpv-font-body); }
.tpv-site .woocommerce :is(input, select, textarea):focus,
.tpv-site .woocommerce-page :is(input, select, textarea):focus { border-color: var(--tpv-color-text); outline: var(--tpv-focus-width) solid var(--tpv-color-focus); outline-offset: 2px; box-shadow: none; }
.tpv-site .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
.tpv-site .woocommerce-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { display: flex; align-items: center; gap: var(--tpv-space-4); margin: 0 0 var(--tpv-space-6); padding: var(--tpv-space-5); border: var(--tpv-border-default); border-left: 3px solid var(--tpv-color-gold-dark); border-radius: 0; background: var(--tpv-color-warm-white); color: var(--tpv-color-text); box-shadow: none; }
.tpv-site .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before,
.tpv-site .woocommerce-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { position: static; color: var(--tpv-color-gold-dark); }
.tpv-site .woocommerce .woocommerce-error,
.tpv-site .woocommerce-page .woocommerce-error { border-left-color: var(--tpv-color-error); }
.tpv-site .woocommerce .woocommerce-error::before,
.tpv-site .woocommerce-page .woocommerce-error::before { color: var(--tpv-color-error); }
.tpv-site .woocommerce :is(.woocommerce-message, .woocommerce-info) .button,
.tpv-site .woocommerce-page :is(.woocommerce-message, .woocommerce-info) .button { margin-left: auto; }

/* Shop and category archives: intentional empty state and product-card system. */
.tpv-commerce-full-width.woocommerce :is(.woocommerce-products-header, .woocommerce-products-header__title) { margin-bottom: var(--tpv-space-6); }
.tpv-commerce-full-width.woocommerce .woocommerce-products-header__title,
.tpv-commerce-full-width.woocommerce-page .entry-header h1 { color: var(--tpv-color-text); font-family: var(--tpv-font-display); font-size: clamp(2.25rem, 4vw, 4rem); font-weight: var(--tpv-font-weight-regular); letter-spacing: -0.035em; line-height: var(--tpv-line-height-tight); }
.tpv-commerce-full-width.woocommerce .term-description { max-width: var(--tpv-container-reading); color: var(--tpv-color-text-muted); font-size: var(--tpv-font-size-sm); line-height: var(--tpv-line-height-relaxed); }
.tpv-commerce-full-width.woocommerce .woocommerce-result-count { margin: 0 0 var(--tpv-space-5); color: var(--tpv-color-text-muted); font-size: var(--tpv-font-size-xs); letter-spacing: 0.06em; text-transform: uppercase; }
.tpv-commerce-full-width.woocommerce .woocommerce-ordering { margin: 0 0 var(--tpv-space-5); }
.tpv-commerce-full-width.woocommerce .woocommerce-ordering select { max-width: 100%; font-size: var(--tpv-font-size-sm); }
.tpv-commerce-full-width.woocommerce .woocommerce-info { min-height: 9rem; justify-content: center; padding: var(--tpv-space-8); text-align: center; }
.tpv-commerce-full-width.woocommerce .woocommerce-info::before { display: none; }
.tpv-commerce-full-width.woocommerce ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tpv-space-4); margin: 0; padding: 0; }
.tpv-commerce-full-width.woocommerce ul.products::before,
.tpv-commerce-full-width.woocommerce ul.products::after { display: none; }
.tpv-commerce-full-width.woocommerce ul.products li.product { display: flex; flex-direction: column; width: auto; min-width: 0; margin: 0; padding: 0 0 var(--tpv-space-4); float: none; border: var(--tpv-border-default); background: var(--tpv-color-warm-white); text-align: left; }
.tpv-commerce-full-width.woocommerce ul.products li.product .woocommerce-loop-product__link { display: flex; flex: 1; flex-direction: column; color: var(--tpv-color-text); text-decoration: none; }
.tpv-commerce-full-width.woocommerce ul.products li.product img { width: 100%; aspect-ratio: 1 / 1.08; margin: 0 0 var(--tpv-space-4); border-radius: 0; background: var(--tpv-color-surface); object-fit: contain; }
.tpv-commerce-full-width.woocommerce ul.products li.product :is(h2, .price, .star-rating, .tpv-product-brand) { margin-right: var(--tpv-space-3); margin-left: var(--tpv-space-3); }
.tpv-commerce-full-width.woocommerce ul.products li.product h2 { margin-bottom: var(--tpv-space-3); color: var(--tpv-color-text); font-family: var(--tpv-font-body); font-size: var(--tpv-font-size-sm); font-weight: var(--tpv-font-weight-regular); line-height: var(--tpv-line-height-normal); }
.tpv-commerce-full-width.woocommerce ul.products li.product .price { margin-bottom: var(--tpv-space-3); color: var(--tpv-color-text); font-size: var(--tpv-font-size-sm); }
.tpv-commerce-full-width.woocommerce ul.products li.product .price del { color: var(--tpv-color-text-muted); }
.tpv-commerce-full-width.woocommerce ul.products li.product .price ins { color: var(--tpv-color-gold-dark); text-decoration: none; }
.tpv-commerce-full-width.woocommerce ul.products li.product .star-rating { margin-bottom: var(--tpv-space-3); font-size: var(--tpv-font-size-xs); }
.tpv-commerce-full-width.woocommerce ul.products li.product .star-rating span::before { color: var(--tpv-color-gold-dark); }
.tpv-commerce-full-width.woocommerce ul.products li.product .button { margin: var(--tpv-space-3) var(--tpv-space-3) 0; }
.tpv-commerce-full-width.woocommerce ul.products li.product .added_to_cart { margin: var(--tpv-space-3); color: var(--tpv-color-text); font-size: var(--tpv-font-size-xs); text-align: center; }
.tpv-commerce-full-width.woocommerce .woocommerce-pagination { margin-top: var(--tpv-space-8); }
.tpv-commerce-full-width.woocommerce .woocommerce-pagination .page-numbers { border: 0; }
.tpv-commerce-full-width.woocommerce .woocommerce-pagination .page-numbers li { border: var(--tpv-border-default); }
.tpv-commerce-full-width.woocommerce .woocommerce-pagination .page-numbers a,
.tpv-commerce-full-width.woocommerce .woocommerce-pagination .page-numbers span { min-width: var(--tpv-touch-target); min-height: var(--tpv-touch-target); padding: var(--tpv-space-3); color: var(--tpv-color-text); }
.tpv-commerce-full-width.woocommerce .woocommerce-pagination .page-numbers .current { background: var(--tpv-color-surface-inverse); color: var(--tpv-color-text-inverse); }

/* My Account: native endpoints with a calm, editorial navigation panel. */
.tpv-account-page .entry-header { margin-bottom: var(--tpv-space-6); }
.tpv-account-page .entry-title { color: var(--tpv-color-text); font-family: var(--tpv-font-display); font-size: clamp(2.25rem, 4vw, 4rem); font-weight: var(--tpv-font-weight-regular); letter-spacing: -0.035em; }
.tpv-account-page .woocommerce-MyAccount-navigation { width: 100%; margin: 0 0 var(--tpv-space-6); float: none; }
.tpv-account-page .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; overflow: hidden; border: var(--tpv-border-default); list-style: none; background: var(--tpv-color-warm-white); }
.tpv-account-page .woocommerce-MyAccount-navigation li { margin: 0; border-right: var(--tpv-border-default); border-bottom: var(--tpv-border-default); }
.tpv-account-page .woocommerce-MyAccount-navigation li:nth-child(2n) { border-right: 0; }
.tpv-account-page .woocommerce-MyAccount-navigation li:nth-last-child(-n + 2) { border-bottom: 0; }
.tpv-account-page .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 3.25rem; padding: var(--tpv-space-3) var(--tpv-space-4); color: var(--tpv-color-text); font-size: var(--tpv-font-size-xs); letter-spacing: 0.04em; text-decoration: none; }
.tpv-account-page .woocommerce-MyAccount-navigation a:hover,
.tpv-account-page .woocommerce-MyAccount-navigation .is-active a { background: var(--tpv-color-surface-inverse); color: var(--tpv-color-text-inverse); }
.tpv-account-page .woocommerce-MyAccount-content { width: 100%; float: none; padding: var(--tpv-space-6); border: var(--tpv-border-default); background: var(--tpv-color-warm-white); }
.tpv-account-page .woocommerce-MyAccount-content > :first-child { margin-top: 0; }
.tpv-account-page .woocommerce-MyAccount-content > :last-child { margin-bottom: 0; }
.tpv-account-page .woocommerce-MyAccount-content :is(h2, h3) { color: var(--tpv-color-text); font-family: var(--tpv-font-display); font-weight: var(--tpv-font-weight-regular); }
.tpv-account-page .woocommerce-MyAccount-content a { color: var(--tpv-color-text); text-decoration-color: var(--tpv-color-gold-dark); text-underline-offset: 0.2em; }
.tpv-account-page .woocommerce-MyAccount-content .woocommerce-Address { margin-bottom: var(--tpv-space-6); padding: var(--tpv-space-5); border: var(--tpv-border-default); background: var(--tpv-color-surface); }

/* Native data tables and account forms. */
.tpv-site .woocommerce :is(table.shop_table, table.woocommerce-table),
.tpv-site .woocommerce-page :is(table.shop_table, table.woocommerce-table) { border: var(--tpv-border-default); border-radius: 0; border-collapse: collapse; background: var(--tpv-color-surface); font-size: var(--tpv-font-size-sm); }
.tpv-site .woocommerce :is(table.shop_table, table.woocommerce-table) :is(th, td),
.tpv-site .woocommerce-page :is(table.shop_table, table.woocommerce-table) :is(th, td) { padding: var(--tpv-space-4); border-color: var(--tpv-color-border); }
.tpv-site .woocommerce :is(table.shop_table, table.woocommerce-table) th,
.tpv-site .woocommerce-page :is(table.shop_table, table.woocommerce-table) th { font-size: var(--tpv-font-size-xs); font-weight: var(--tpv-font-weight-medium); letter-spacing: 0.08em; text-transform: uppercase; }
.tpv-site .woocommerce form .form-row label { color: var(--tpv-color-text); font-size: var(--tpv-font-size-sm); font-weight: var(--tpv-font-weight-medium); }
.tpv-site .woocommerce form .form-row .required { color: var(--tpv-color-gold-dark); }
.tpv-site .woocommerce .select2-container--default .select2-selection--single { min-height: var(--tpv-touch-target); border: var(--tpv-border-default); border-radius: 0; }
.tpv-site .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { padding-left: 0.8rem; line-height: var(--tpv-touch-target); }

@media (min-width: 48rem) {
	.tpv-commerce-full-width.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpv-account-page .woocommerce-MyAccount-content { padding: var(--tpv-space-8); }
}

@media (min-width: 64rem) {
	.tpv-branding .custom-logo { max-width: var(--tpv-header-logo-width); max-height: var(--tpv-header-logo-height); }
	.tpv-hero { min-height: 29rem; }
	.tpv-hero-copy { padding-block: var(--tpv-space-12); }
	.tpv-hero-visual .tpv-feature-image,
	.tpv-hero-visual .tpv-placeholder { min-height: 29rem; }
	.tpv-commerce-full-width.woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.tpv-account-page .woocommerce-MyAccount { display: grid; grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr); gap: var(--tpv-space-6); align-items: start; }
	.tpv-account-page .woocommerce-MyAccount-navigation { position: sticky; top: var(--tpv-space-6); margin: 0; }
	.tpv-account-page .woocommerce-MyAccount-navigation ul { display: block; }
	.tpv-account-page .woocommerce-MyAccount-navigation li,
	.tpv-account-page .woocommerce-MyAccount-navigation li:nth-child(2n),
	.tpv-account-page .woocommerce-MyAccount-navigation li:nth-last-child(-n + 2) { border-right: 0; border-bottom: var(--tpv-border-default); }
	.tpv-account-page .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
	.tpv-account-page .woocommerce-MyAccount-content { min-width: 0; }
}

@media (min-width: 80rem) {
	.tpv-hero { min-height: 32rem; }
	.tpv-hero-visual .tpv-feature-image,
	.tpv-hero-visual .tpv-placeholder { min-height: 32rem; }
}

/* Quiet Gallery header: a restrained, child-theme-only Storefront composition. */
.tpv-site #masthead { background: var(--tpv-color-surface-subtle); border-bottom: var(--tpv-border-default); }
.tpv-announcement { display: grid; min-height: var(--tpv-header-announcement-height); padding: var(--tpv-space-1) var(--tpv-container-gutter); place-items: center; background: var(--tpv-color-surface-inverse); color: var(--tpv-color-warm-white); font-size: 0.625rem; font-weight: var(--tpv-font-weight-medium); letter-spacing: 0.16em; line-height: 1.25; }
.tpv-header { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); flex-wrap: nowrap; gap: 0; min-height: var(--tpv-header-height-mobile); padding-block: var(--tpv-space-2); }
.tpv-menu-toggle { grid-column: 1; justify-self: start; width: var(--tpv-header-control-size); min-width: var(--tpv-header-control-size); height: var(--tpv-header-control-size); min-height: var(--tpv-header-control-size); transition: opacity var(--tpv-duration-fast) var(--tpv-easing-standard); }
.tpv-menu-toggle:hover { background: transparent; opacity: 0.6; }
.tpv-menu-toggle__icon,
.tpv-menu-toggle__icon::before,
.tpv-menu-toggle__icon::after { display: block; width: 1.05rem; height: 1px; background: currentColor; content: ""; }
.tpv-menu-toggle__icon { position: relative; }
.tpv-menu-toggle__icon::before { position: absolute; top: -0.32rem; left: 0; }
.tpv-menu-toggle__icon::after { position: absolute; top: 0.32rem; left: 0; }
.tpv-branding { grid-column: 2; display: grid; min-width: 0; place-items: center; }
.tpv-branding .custom-logo-link { display: grid; place-items: center; }
.tpv-branding .custom-logo { width: auto; height: auto; max-width: var(--tpv-header-logo-width-mobile); max-height: var(--tpv-header-logo-height-mobile); object-position: center; }
.tpv-wordmark { text-align: center; }
.tpv-utilities { grid-column: 3; justify-self: end; gap: 0; }
.tpv-utilities .tpv-account { display: none; }
.tpv-search summary,
.tpv-account,
.tpv-cart { width: var(--tpv-header-control-size); min-width: var(--tpv-header-control-size); height: var(--tpv-header-control-size); min-height: var(--tpv-header-control-size); transition: opacity var(--tpv-duration-fast) var(--tpv-easing-standard); }
.tpv-search summary { justify-content: center; padding: 0; }
.tpv-search summary::after { display: none; }
.tpv-search summary svg,
.tpv-account svg,
.tpv-cart svg { width: 1.125rem; height: 1.125rem; stroke-width: 1.2; }
.tpv-search summary:hover,
.tpv-account:hover,
.tpv-cart:hover { opacity: 0.6; }
.tpv-count { min-width: 0.8rem; margin-left: 0.12rem; font-size: 0.625rem; font-variant-numeric: tabular-nums; }
.tpv-nav { position: absolute; z-index: calc(var(--tpv-header-layer) + 1); top: 100%; right: 0; left: 0; order: initial; width: auto; margin: 0; padding: var(--tpv-space-4) var(--tpv-container-gutter) var(--tpv-space-5); border: var(--tpv-border-default); border-top: 0; background: var(--tpv-color-surface-subtle); }
.tpv-menu { display: grid; gap: 0; }
.tpv-nav a { display: flex; min-height: 3.25rem; align-items: center; justify-content: space-between; border-bottom: var(--tpv-border-default); font-size: 0.6875rem; font-weight: var(--tpv-font-weight-medium); letter-spacing: 0.12em; text-transform: uppercase; }
.tpv-nav a::after { content: "→"; color: var(--tpv-color-gold-dark); font-size: var(--tpv-font-size-sm); transition: transform var(--tpv-duration-fast) var(--tpv-easing-standard); }
.tpv-nav a:hover { text-decoration: none; }
.tpv-nav a:hover::after { transform: translateX(0.2rem); }
.tpv-nav .sub-menu { display: block; padding: 0 0 0 var(--tpv-space-4); }
.tpv-nav .current-menu-item > a { text-decoration: none; }
.tpv-mobile-account { margin-top: var(--tpv-space-3); }
.tpv-search-panel { z-index: calc(var(--tpv-header-layer) + 2); top: calc(100% + 1px); left: auto; right: 0; width: min(100vw - 2 * var(--tpv-container-gutter), 25rem); padding: var(--tpv-space-4); background: var(--tpv-color-surface-subtle); }
.tpv-search-panel button,
.tpv-search-panel input[type="submit"] { min-height: var(--tpv-header-control-size); padding-inline: var(--tpv-space-4); font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; }
.tpv-site #masthead :is(a, button, summary, input):focus-visible { outline: var(--tpv-focus-width) solid var(--tpv-color-focus); outline-offset: var(--tpv-focus-offset); }

@media (min-width: 64rem) {
	.tpv-header { grid-template-columns: minmax(7rem, 10rem) minmax(0, 1fr) auto; min-height: var(--tpv-header-height-desktop); gap: clamp(1.5rem, 3vw, 4.5rem); padding-block: var(--tpv-space-2); }
	.tpv-branding { grid-column: 1; justify-items: start; place-items: center start; }
	.tpv-branding .custom-logo-link { place-items: center start; }
	.tpv-branding .custom-logo { max-width: var(--tpv-header-logo-width); max-height: var(--tpv-header-logo-height); object-position: left center; }
	.tpv-menu-toggle { display: none; }
	.tpv-nav { position: static; grid-column: 2; display: block !important; width: auto; margin: 0; padding: 0; border: 0; background: transparent; }
	.tpv-menu { display: flex; align-items: center; justify-content: center; gap: var(--tpv-header-navigation-gap); }
	.tpv-nav a { position: relative; display: inline-flex; min-height: var(--tpv-header-control-size); justify-content: center; border: 0; color: var(--tpv-color-text); font-size: 0.625rem; font-weight: var(--tpv-font-weight-medium); letter-spacing: 0.13em; line-height: 1; text-transform: uppercase; transition: opacity var(--tpv-duration-fast) var(--tpv-easing-standard); }
	.tpv-nav a::after { position: absolute; bottom: 0.55rem; left: 50%; width: 0; height: 1px; background: currentColor; content: ""; transform: translateX(-50%); transition: width var(--tpv-duration-fast) var(--tpv-easing-standard); }
	.tpv-nav :is(a:hover, .current-menu-item > a)::after,
	.tpv-nav a:focus-visible::after { width: calc(100% - 0.1rem); }
	.tpv-nav a:hover { opacity: 0.72; }
	.tpv-nav .sub-menu { display: none; padding: var(--tpv-space-3); }
	.tpv-nav .tpv-mobile-account { display: none; }
	.tpv-utilities { grid-column: 3; }
	.tpv-utilities .tpv-account { display: inline-flex; }
	.tpv-search summary,
	.tpv-account,
	.tpv-cart { width: 2.5rem; min-width: 2.5rem; height: 2.5rem; min-height: 2.5rem; }
	.tpv-search-panel { top: calc(100% + var(--tpv-space-2)); }
}

/* Curated Vault: presentation consolidation for approved storefront surfaces. */
:root {
	--tpv-curated-ink: #161513;
	--tpv-curated-paper: #f5f2ec;
	--tpv-curated-card: #fcfbf8;
	--tpv-curated-rule: #d8d0c4;
	--tpv-curated-muted: #6a655d;
	--tpv-curated-quiet: #8d7b5d;
	--tpv-curated-content: 78rem;
	--tpv-curated-media: 1 / 1.16;
}

/* Stable, commerce-led header. The category row needs a true desktop width. */
.tpv-site #masthead { background: var(--tpv-curated-paper); border-bottom-color: var(--tpv-curated-rule); }
.tpv-announcement { background: var(--tpv-curated-ink); color: var(--tpv-color-warm-white); letter-spacing: 0.12em; }
.tpv-header { min-height: 4.25rem; }
.tpv-nav { box-shadow: none; }

@media (min-width: 64rem) {
	.tpv-header { grid-template-columns: minmax(5.5rem, 7.5rem) minmax(0, 1fr) max-content; min-height: 4.875rem; gap: clamp(1.25rem, 2.5vw, 3rem); }
	.tpv-branding { grid-column: 1; justify-items: start; place-items: center start; }
	.tpv-branding .custom-logo-link { place-items: center start; }
	.tpv-branding .custom-logo { width: auto; max-width: 4.25rem; max-height: 3.5rem; object-position: left center; }
	.tpv-menu-toggle { display: none; }
	.tpv-nav { position: static; grid-column: 2; display: block !important; width: auto; margin: 0; padding: 0; border: 0; background: transparent; }
	.tpv-menu { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: clamp(0.85rem, 1.8vw, 1.75rem); white-space: nowrap; }
	.tpv-menu > li { flex: 0 0 auto; }
	.tpv-nav a { position: relative; display: inline-flex; min-height: 2.75rem; justify-content: center; border: 0; color: var(--tpv-curated-ink); font-size: 0.625rem; font-weight: var(--tpv-font-weight-medium); letter-spacing: 0.115em; line-height: 1; text-transform: uppercase; }
	.tpv-nav a::after { position: absolute; bottom: 0.45rem; left: 50%; width: 0; height: 1px; background: currentColor; content: ""; transform: translateX(-50%); transition: width var(--tpv-duration-fast) var(--tpv-easing-standard); }
	.tpv-nav :is(a:hover, .current-menu-item > a, a:focus-visible)::after { width: calc(100% - 0.1rem); }
	.tpv-nav .sub-menu { display: none; }
	.tpv-nav .tpv-mobile-account { display: none; }
	.tpv-utilities { grid-column: 3; }
	.tpv-utilities .tpv-account { display: inline-flex; }
	.tpv-utilities { min-width: max-content; flex-shrink: 0; }
	.tpv-search summary, .tpv-account, .tpv-cart { width: 2.35rem; min-width: 2.35rem; height: 2.35rem; min-height: 2.35rem; }
}

/* The Search trigger is an icon; browser disclosure glyphs are not part of it. */
.tpv-search > summary { list-style: none; }
.tpv-search > summary::-webkit-details-marker { display: none; }
.tpv-search > summary::marker { content: ""; }

/* Home: composed discovery rather than a generic sequence of commerce blocks. */
.tpv-home { background: var(--tpv-curated-paper); color: var(--tpv-curated-ink); }
.tpv-home .tpv-eyebrow, .tpv-eyebrow { color: var(--tpv-curated-muted); font-size: 0.625rem; letter-spacing: 0.15em; }
.tpv-home h1 { max-width: 11ch; font-size: clamp(2.8rem, 5.2vw, 5rem); letter-spacing: -0.045em; }
.tpv-home h2 { letter-spacing: -0.04em; }
.tpv-home .tpv-lead { max-width: 34ch; color: var(--tpv-curated-muted); font-size: 1rem; }
.tpv-hero { background: var(--tpv-curated-paper); border-bottom-color: var(--tpv-curated-rule); }
.tpv-hero-copy { padding: clamp(3rem, 7vw, 6rem) var(--tpv-container-gutter); }
.tpv-hero-copy .tpv-eyebrow { color: var(--tpv-curated-quiet); }
.tpv-home .tpv-button { border-color: var(--tpv-curated-ink); background: var(--tpv-curated-ink); color: var(--tpv-color-text-inverse); font-size: 0.625rem; letter-spacing: 0.13em; }
.tpv-home a.tpv-button:hover { border-color: var(--tpv-curated-quiet); background: var(--tpv-curated-quiet); }
.tpv-hero-visual .tpv-placeholder { min-height: 22rem; background: #ded6ca; }
.tpv-hero-visual .tpv-placeholder::before, .tpv-hero-visual .tpv-placeholder::after { border-color: rgb(22 21 19 / 14%); }
.tpv-hero-visual .tpv-placeholder__monogram { color: var(--tpv-curated-ink); opacity: 0.78; }
.tpv-section { padding-block: clamp(3.75rem, 8vw, 7.5rem); }
.tpv-section-heading { margin-bottom: clamp(1.75rem, 3vw, 3rem); }
.tpv-text-link { color: var(--tpv-curated-ink); font-size: 0.625rem; letter-spacing: 0.13em; }
.tpv-categories { gap: var(--tpv-space-3); }
.tpv-category { min-height: 15rem; border-color: var(--tpv-curated-rule); background: var(--tpv-curated-card); transition: border-color var(--tpv-duration-fast) var(--tpv-easing-standard), background-color var(--tpv-duration-fast) var(--tpv-easing-standard); }
.tpv-category:hover { border-color: var(--tpv-curated-quiet); background: var(--tpv-color-surface); }
.tpv-category--women { background: #f1e8df; }
.tpv-category--unisex { background: #e8e8df; }
.tpv-category-copy { align-self: end; }
.tpv-home .tpv-category h3 { font-size: clamp(1.6rem, 2.2vw, 2.2rem); }
.tpv-category-visual > span { color: var(--tpv-curated-ink); font-size: clamp(5rem, 10vw, 8rem); opacity: 0.12; }
.tpv-home .tpv-products ul.products { gap: var(--tpv-space-3); }
.tpv-home .tpv-products ul.products li.product,
.tpv-commerce-full-width.woocommerce ul.products li.product { border-color: var(--tpv-curated-rule); background: var(--tpv-curated-card); transition: border-color var(--tpv-duration-fast) var(--tpv-easing-standard); }
.tpv-home .tpv-products ul.products li.product:hover,
.tpv-commerce-full-width.woocommerce ul.products li.product:hover { border-color: var(--tpv-curated-quiet); }
.tpv-home .tpv-products ul.products li.product img,
.tpv-commerce-full-width.woocommerce ul.products li.product img { aspect-ratio: var(--tpv-curated-media); background: var(--tpv-color-surface); }
.tpv-home .tpv-products ul.products li.product h2,
.tpv-commerce-full-width.woocommerce ul.products li.product h2 { color: var(--tpv-curated-ink); font-size: 0.8125rem; }
.tpv-product-brand { color: var(--tpv-curated-muted); font-size: 0.625rem; }
.tpv-home .tpv-products ul.products li.product .button { border: 1px solid var(--tpv-curated-ink); background: transparent; color: var(--tpv-curated-ink); font-size: 0.625rem; letter-spacing: 0.1em; }
.tpv-home .tpv-products ul.products li.product .button:hover { background: var(--tpv-curated-ink); color: var(--tpv-color-text-inverse); }
.tpv-home .tpv-empty { border-color: var(--tpv-curated-rule); background: transparent; color: var(--tpv-curated-muted); }
.tpv-brands { border-color: var(--tpv-curated-rule); }
.tpv-brands ul { border-color: var(--tpv-curated-rule); }
.tpv-brands a { color: var(--tpv-curated-ink); }
.tpv-editorial { background: #e7dfd3; border-color: var(--tpv-curated-rule); }
.tpv-editorial-copy { padding: clamp(3rem, 7vw, 6rem) var(--tpv-container-gutter); }
.tpv-editorial-copy > p:not(.tpv-eyebrow) { color: var(--tpv-curated-muted); }
.tpv-editorial .tpv-placeholder { background: var(--tpv-curated-ink); }
.tpv-trust { border-color: var(--tpv-curated-rule); }
.tpv-trust > div { padding: var(--tpv-space-5) var(--tpv-space-4); }
.tpv-home .tpv-trust h2 { font-size: 1rem; }
.tpv-newsletter { background: var(--tpv-curated-ink); color: var(--tpv-color-warm-white); }
.tpv-newsletter :is(h2, p, label) { color: inherit; }
.tpv-newsletter .tpv-eyebrow { color: #d8c8ad; }
.tpv-newsletter input[type="email"] { border-color: #57514a; background: transparent; color: inherit; }
.tpv-newsletter .tpv-button { border-color: var(--tpv-color-warm-white); background: var(--tpv-color-warm-white); color: var(--tpv-curated-ink); }

/* Native Shop/category archives: a collection room with functional WooCommerce controls. */
.tpv-commerce-full-width .site-main { max-width: var(--tpv-curated-content); padding-top: clamp(2.25rem, 5vw, 4.5rem); }
.tpv-commerce-full-width .woocommerce-breadcrumb { color: var(--tpv-curated-muted); font-size: 0.625rem; letter-spacing: 0.11em; text-transform: uppercase; }
.tpv-commerce-full-width.woocommerce .woocommerce-products-header { max-width: 43rem; margin-bottom: var(--tpv-space-8); }
.tpv-commerce-full-width.woocommerce .woocommerce-products-header__title,
.tpv-commerce-full-width.woocommerce-page .entry-header h1 { color: var(--tpv-curated-ink); font-size: clamp(2.5rem, 5vw, 4.75rem); letter-spacing: -0.055em; }
.tpv-commerce-full-width.woocommerce .term-description { color: var(--tpv-curated-muted); }
.tpv-commerce-full-width.woocommerce .woocommerce-result-count { color: var(--tpv-curated-muted); font-size: 0.625rem; letter-spacing: 0.11em; }
.tpv-commerce-full-width.woocommerce .woocommerce-ordering select { border-color: var(--tpv-curated-rule); background: transparent; color: var(--tpv-curated-ink); font-size: 0.75rem; }
.tpv-commerce-full-width.woocommerce .woocommerce-info { min-height: 7rem; border-color: var(--tpv-curated-rule); border-left-color: var(--tpv-curated-quiet); background: transparent; color: var(--tpv-curated-muted); }
.tpv-commerce-full-width.woocommerce ul.products { gap: var(--tpv-space-3); }
.tpv-commerce-full-width.woocommerce ul.products li.product .button { border-color: var(--tpv-curated-ink); background: var(--tpv-curated-ink); color: var(--tpv-color-text-inverse); font-size: 0.625rem; }
.tpv-commerce-full-width.woocommerce ul.products li.product .button:hover { border-color: var(--tpv-curated-quiet); background: var(--tpv-curated-quiet); }

/* My Account: compact service navigation plus unaltered native endpoints. */
.tpv-account-page .entry-title { color: var(--tpv-curated-ink); font-size: clamp(2.5rem, 5vw, 4.75rem); letter-spacing: -0.055em; }
.tpv-account-page .woocommerce-MyAccount-navigation ul { border-color: var(--tpv-curated-rule); background: transparent; }
.tpv-account-page .woocommerce-MyAccount-navigation li { border-color: var(--tpv-curated-rule); }
.tpv-account-page .woocommerce-MyAccount-navigation a { color: var(--tpv-curated-ink); font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; }
.tpv-account-page .woocommerce-MyAccount-navigation a:hover,
.tpv-account-page .woocommerce-MyAccount-navigation .is-active a { background: var(--tpv-curated-ink); color: var(--tpv-color-text-inverse); }
.tpv-account-page .woocommerce-MyAccount-content { border-color: var(--tpv-curated-rule); background: var(--tpv-curated-card); }
.tpv-account-page .woocommerce-MyAccount-content :is(h2, h3) { color: var(--tpv-curated-ink); }
.tpv-account-page .woocommerce-MyAccount-content .woocommerce-Address { border-color: var(--tpv-curated-rule); background: var(--tpv-color-surface); }
.tpv-site .woocommerce :is(table.shop_table, table.woocommerce-table),
.tpv-site .woocommerce-page :is(table.shop_table, table.woocommerce-table) { border-color: var(--tpv-curated-rule); background: var(--tpv-color-surface); }

@media (min-width: 48rem) {
	.tpv-hero { grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); }
	.tpv-hero-copy { padding-left: max(var(--tpv-container-gutter), calc((100vw - var(--tpv-curated-content)) / 2)); }
	.tpv-hero-visual .tpv-placeholder,
	.tpv-hero-visual .tpv-feature-image { min-height: 30rem; }
	.tpv-category { min-height: 19rem; }
	.tpv-editorial { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
	.tpv-editorial-copy { padding-right: max(var(--tpv-container-gutter), calc((100vw - var(--tpv-curated-content)) / 2)); }
	.tpv-account-page .woocommerce-MyAccount { display: grid; grid-template-columns: minmax(12.5rem, 14.5rem) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
	.tpv-account-page .woocommerce-MyAccount-navigation { position: sticky; top: var(--tpv-space-6); margin: 0; }
	.tpv-account-page .woocommerce-MyAccount-navigation ul { display: block; }
	.tpv-account-page .woocommerce-MyAccount-navigation li,
	.tpv-account-page .woocommerce-MyAccount-navigation li:nth-child(2n),
	.tpv-account-page .woocommerce-MyAccount-navigation li:nth-last-child(-n + 2) { border-right: 0; border-bottom: var(--tpv-border-default); }
	.tpv-account-page .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
	.tpv-account-page .woocommerce-MyAccount-content { min-width: 0; }
}

@media (min-width: 80rem) {
	.tpv-hero-visual .tpv-placeholder,
	.tpv-hero-visual .tpv-feature-image { min-height: 34rem; }
}

/* Motion is progressive: without JavaScript or with reduced motion, content is visible. */
.tpv-motion-ready .tpv-reveal { opacity: 0; transform: translateY(1.25rem); transition: opacity 500ms var(--tpv-easing-standard), transform 500ms var(--tpv-easing-standard); }
.tpv-motion-ready .tpv-reveal.tpv-is-revealed { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
	.tpv-motion-ready .tpv-reveal { opacity: 1; transform: none; transition: none; }
}

/* Launch purchase path: native WooCommerce markup on a quiet, full-width canvas. */
.tpv-commerce-full-width.single-product .site-main { max-width: var(--tpv-curated-content); }
.tpv-commerce-full-width.single-product div.product { margin-bottom: clamp(3.5rem, 8vw, 7rem); }
.tpv-commerce-full-width.single-product .woocommerce-product-gallery { margin-bottom: var(--tpv-space-6); background: var(--tpv-color-surface); }
.tpv-commerce-full-width.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
.tpv-commerce-full-width.single-product .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: contain; background: var(--tpv-color-surface); }
.tpv-commerce-full-width.single-product .summary { color: var(--tpv-curated-ink); }
.tpv-commerce-full-width.single-product .product_title { margin-bottom: var(--tpv-space-4); color: var(--tpv-curated-ink); font-family: var(--tpv-font-display); font-size: clamp(2.25rem, 4.25vw, 4.25rem); font-weight: var(--tpv-font-weight-regular); letter-spacing: -0.05em; line-height: 0.98; }
.tpv-commerce-full-width.single-product .summary .price { margin-bottom: var(--tpv-space-6); color: var(--tpv-curated-ink); font-size: 1rem; }
.tpv-commerce-full-width.single-product .summary .price ins { color: var(--tpv-curated-quiet); text-decoration: none; }
.tpv-commerce-full-width.single-product .woocommerce-product-details__short-description { max-width: 42rem; margin-bottom: var(--tpv-space-6); color: var(--tpv-curated-muted); line-height: var(--tpv-line-height-relaxed); }
.tpv-commerce-full-width.single-product form.cart { display: flex; flex-wrap: wrap; gap: var(--tpv-space-3); margin-bottom: var(--tpv-space-6); padding-block: var(--tpv-space-5); border-block: 1px solid var(--tpv-curated-rule); }
.tpv-commerce-full-width.single-product form.cart .quantity .qty { width: 4.25rem; min-height: var(--tpv-touch-target); border-color: var(--tpv-curated-rule); }
.tpv-commerce-full-width.single-product form.cart .single_add_to_cart_button { flex: 1 1 12rem; }
.tpv-commerce-full-width.single-product .stock { color: var(--tpv-curated-muted); font-size: 0.75rem; letter-spacing: 0.05em; }
.tpv-commerce-full-width.single-product .woocommerce-tabs { margin-top: var(--tpv-space-12); border-top: 1px solid var(--tpv-curated-rule); }
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0 var(--tpv-space-5); margin: 0; padding: 0; border-bottom: 1px solid var(--tpv-curated-rule); }
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs::before { display: none; }
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs li::before,
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs li::after { display: none; }
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs li a { display: block; padding: var(--tpv-space-4) 0; color: var(--tpv-curated-muted); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; }
.tpv-commerce-full-width.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--tpv-curated-ink); }
.tpv-commerce-full-width.single-product .woocommerce-Tabs-panel { max-width: 46rem; padding-top: var(--tpv-space-6); color: var(--tpv-curated-muted); line-height: var(--tpv-line-height-relaxed); }

.tpv-commerce-full-width.woocommerce-cart .entry-title,
.tpv-commerce-full-width.woocommerce-checkout .entry-title { color: var(--tpv-curated-ink); font-family: var(--tpv-font-display); font-size: clamp(2.25rem, 4.25vw, 4.25rem); font-weight: var(--tpv-font-weight-regular); letter-spacing: -0.05em; }
.tpv-commerce-full-width.woocommerce-cart :is(.woocommerce-cart-form, .cart-collaterals, #customer_details, #order_review) { min-width: 0; }
.tpv-commerce-full-width.woocommerce-cart .cart_totals,
.tpv-commerce-full-width.woocommerce-checkout #order_review { margin-top: var(--tpv-space-8); padding: var(--tpv-space-6); border: 1px solid var(--tpv-curated-rule); background: var(--tpv-curated-card); }
.tpv-commerce-full-width.woocommerce-cart table.cart { margin-bottom: 0; }
.tpv-commerce-full-width.woocommerce-cart table.cart :is(th, td) { vertical-align: middle; }
.tpv-commerce-full-width.woocommerce-cart table.cart img { width: 5rem; background: var(--tpv-color-surface); }
.tpv-commerce-full-width.woocommerce-cart .coupon { display: flex; flex-wrap: wrap; gap: var(--tpv-space-2); }
.tpv-commerce-full-width.woocommerce-cart .coupon .input-text { width: min(100%, 14rem); }
.tpv-commerce-full-width.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr; gap: var(--tpv-space-6); }
.tpv-commerce-full-width.woocommerce-checkout .col2-set::after { display: none; }
.tpv-commerce-full-width.woocommerce-checkout .col2-set :is(.col-1, .col-2) { width: auto; float: none; }
.tpv-commerce-full-width.woocommerce-checkout h3 { color: var(--tpv-curated-ink); font-family: var(--tpv-font-display); font-size: clamp(1.6rem, 2.5vw, 2.25rem); font-weight: var(--tpv-font-weight-regular); letter-spacing: -0.035em; }
.tpv-commerce-full-width.woocommerce-checkout #order_review_heading { margin-top: var(--tpv-space-12); }
.tpv-commerce-full-width.woocommerce-checkout #order_review { margin-top: var(--tpv-space-4); }
.tpv-commerce-full-width.woocommerce-checkout #payment { border-radius: 0; background: transparent; }
.tpv-commerce-full-width.woocommerce-checkout #payment :is(ul.payment_methods, div.form-row) { border-color: var(--tpv-curated-rule); }
.tpv-commerce-full-width.woocommerce-checkout #payment div.payment_box { background: #eee8de; color: var(--tpv-curated-muted); }
.tpv-commerce-full-width.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #eee8de; }

@media (min-width: 64rem) {
	.tpv-commerce-full-width.single-product div.product { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
	.tpv-commerce-full-width.single-product div.product :is(.woocommerce-product-gallery, .summary) { width: auto; float: none; margin: 0; }
	.tpv-commerce-full-width.single-product div.product > :is(.woocommerce-tabs, .related, .upsells) { grid-column: 1 / -1; }
	.tpv-commerce-full-width.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
	.tpv-commerce-full-width.woocommerce-cart .woocommerce > :is(.woocommerce-notices-wrapper, .woocommerce-form-coupon-toggle) { grid-column: 1 / -1; }
	.tpv-commerce-full-width.woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 2; }
	.tpv-commerce-full-width.woocommerce-cart .cart_totals { width: 100%; margin-top: 0; }
	.tpv-commerce-full-width.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.8fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
	.tpv-commerce-full-width.woocommerce-checkout #customer_details { grid-column: 1; }
	.tpv-commerce-full-width.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
	.tpv-commerce-full-width.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; margin: 0; }
}
