/*
 Theme Name:   Woodmart Child
 Description:  UNSEEN — luxury sneaker boutique. Design system child theme.
 Author:       UNSEEN
 Template:     woodmart
 Version:      2.0.0
 Text Domain:  woodmart
*/

/* =====================================================
   01. SELF-HOSTED FONTS (latin + latin-ext, variable woff2)
   Bodoni Moda — display · Instrument Sans — body · IBM Plex Mono — data
   ===================================================== */
@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/bodonimoda-2.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/bodonimoda-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/bodonimoda-3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/bodonimoda-4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/bodonimoda-3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/bodonimoda-4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/bodonimoda-3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/bodonimoda-4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibmplexmono-6.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibmplexmono-5.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibmplexmono-7.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibmplexmono-8.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrumentsans-10.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* =====================================================
   02. UNSEEN DESIGN TOKENS
   Monochrome luxury system: Ink / Paper / Smoke / Seam / Brass
   ===================================================== */
:root {
	--un-ink: #141414;
	--un-charcoal: #1c1b1a;
	--un-paper: #ffffff;
	--un-bone: #faf9f7;
	--un-body-color: #595551;
	--un-smoke: #8a8580;
	--un-seam: #e8e6e2;
	--un-brass: #a8905f;
	--un-brass-deep: #7a6844;

	--un-font-display: "Bodoni Moda", "Didot", "Bodoni MT", serif;
	--un-font-body: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
	--un-font-data: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

	--un-track-caps: 0.14em;
	--un-track-wide: 0.22em;

	--un-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--un-dur: 0.35s;
	--un-dur-slow: 0.7s;

	--un-space-1: 8px;
	--un-space-2: 16px;
	--un-space-3: 24px;
	--un-space-4: 40px;
	--un-space-5: 64px;
	--un-space-6: 104px;
	--un-space-7: 168px;
}

/* =====================================================
   03. BASE / TYPE RENDERING
   ===================================================== */
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-kerning: normal;
	font-feature-settings: "kern" 1, "liga" 1;
}

::selection {
	background: var(--un-ink);
	color: var(--un-paper);
}

/* Display serif for the editorial tier only: page titles,
   product title, and any element opted in via .un-display */
h1,
.page-title .entry-title,
.product_title.wd-entities-title,
.un-display {
	font-family: var(--un-font-display);
	font-weight: 500;
	letter-spacing: 0.005em;
	text-transform: none;
}

h1 { line-height: 1.12; }

/* Editorial italic accent — used sparingly */
.un-italic {
	font-family: var(--un-font-display);
	font-style: italic;
	font-weight: 400;
}

/* Eyebrow label: small caps line that introduces every section */
.un-eyebrow {
	display: inline-block;
	font-family: var(--un-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--un-track-wide);
	text-transform: uppercase;
	color: var(--un-smoke);
}

/* Product data belongs to the mono tier: prices, SKU, sizes, stock */
.woocommerce-Price-amount,
.wd-product-sku,
.sku_wrapper,
.un-data {
	font-family: var(--un-font-data);
	font-weight: 400;
	letter-spacing: -0.01em;
}

.woocommerce-Price-amount { font-size: 0.95em; }

/* =====================================================
   04. LINKS & FOCUS
   ===================================================== */
a {
	transition: color var(--un-dur) var(--un-ease),
		border-color var(--un-dur) var(--un-ease),
		background-color var(--un-dur) var(--un-ease);
}

:focus-visible {
	outline: 2px solid var(--un-ink);
	outline-offset: 2px;
	border-radius: 0;
}

.color-scheme-light :focus-visible,
.whb-color-light :focus-visible {
	outline-color: var(--un-paper);
}

/* =====================================================
   05. BUTTONS — square, quiet, uppercase
   ===================================================== */
.btn,
button,
input[type="submit"],
.button,
.woocommerce .button {
	border-radius: 0;
	font-family: var(--un-font-body);
	font-weight: 500;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	transition: background-color var(--un-dur) var(--un-ease),
		color var(--un-dur) var(--un-ease),
		border-color var(--un-dur) var(--un-ease),
		box-shadow var(--un-dur) var(--un-ease);
}

/* Primary: ink block, brass seam appears on hover */
.btn.btn-color-primary,
.button.alt,
.single_add_to_cart_button,
.checkout-button,
button[name="apply_coupon"] + .button,
.woocommerce-form-login__submit {
	background-color: var(--un-ink);
	color: var(--un-paper);
	border: 1px solid var(--un-ink);
	box-shadow: inset 0 0 0 0 transparent;
}

.btn.btn-color-primary:hover,
.button.alt:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover,
.woocommerce-form-login__submit:hover {
	background-color: var(--un-charcoal);
	color: var(--un-paper);
	border-color: var(--un-brass);
	box-shadow: inset 0 0 0 1px var(--un-brass);
}

/* =====================================================
   06. FORMS — hairline fields, generous height
   ===================================================== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
input[type="search"],
select,
textarea {
	border-radius: 0;
	border-width: 1px;
	border-color: var(--un-seam);
	background-color: var(--un-paper);
	font-family: var(--un-font-body);
	transition: border-color var(--un-dur) var(--un-ease);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
select:focus,
textarea:focus {
	border-color: var(--un-ink);
	box-shadow: none;
}

/* =====================================================
   07. PRODUCT LABELS — mono ticket, no lozenges
   ===================================================== */
.wd-product-label,
.product-label,
.onsale {
	border-radius: 0;
	font-family: var(--un-font-data);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background-color: var(--un-paper);
	color: var(--un-ink);
	border: 1px solid var(--un-ink);
	box-shadow: none;
}

/* =====================================================
   08. HAIRLINES & SECTION RHYTHM
   ===================================================== */
.un-hairline {
	border: 0;
	border-top: 1px solid var(--un-seam);
	margin: 0;
}

.un-hairline--brass { border-top-color: var(--un-brass); }

/* =====================================================
   09. IMAGE VEIL — the signature reveal, resting state
   Applied per-section in later phases via .un-veil
   ===================================================== */
.un-veil img {
	filter: saturate(0.82) contrast(0.98);
	transition: filter var(--un-dur-slow) var(--un-ease),
		transform var(--un-dur-slow) var(--un-ease);
}

.un-veil:hover img,
.un-veil:focus-within img {
	filter: saturate(1) contrast(1);
}

/* =====================================================
   10. REDUCED MOTION — every animation collapses to state change
   ===================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* =====================================================
   11. HEADER — utility bar, wordmark, hairline
   ===================================================== */
.whb-top-bar .whb-row-wrapp,
.whb-top-bar {
	background-color: var(--un-ink);
}

.un-announce {
	font-family: var(--un-font-data);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 78%);
}

.un-wordmark,
a.wd-logo.un-wordmark {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: 27px;
	letter-spacing: 0.32em;
	text-indent: 0.32em; /* optically recenter the tracked caps */
	color: var(--un-ink);
	line-height: 1;
	white-space: nowrap;
}

a.wd-logo.un-wordmark:hover {
	color: var(--un-ink);
	opacity: 0.75;
}

.whb-general-header {
	border-bottom: 1px solid var(--un-seam);
}

.whb-general-header .wd-nav-main > li > a {
	letter-spacing: var(--un-track-caps);
}

/* =====================================================
   12. FOOTER — ink editorial block
   ===================================================== */
.wd-footer {
	background-color: var(--un-ink);
	color: rgb(255 255 255 / 62%);
}

.wd-footer .main-footer {
	padding-top: var(--un-space-6);
	padding-bottom: var(--un-space-5);
}

.un-footer-wordmark {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: 30px;
	letter-spacing: 0.3em;
	color: #ffffff;
	margin-bottom: 18px;
}

.un-footer-statement {
	font-size: 14px;
	line-height: 1.75;
	max-width: 300px;
	color: rgb(255 255 255 / 62%);
}

.un-footer-contact a {
	color: #ffffff;
	font-size: 13px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	border-bottom: 1px solid var(--un-brass);
	padding-bottom: 3px;
}

.un-footer-contact a:hover {
	color: var(--un-brass);
}

.wd-footer .widget-title,
.wd-footer .widget .widget-title {
	font-size: 12px;
	letter-spacing: var(--un-track-wide);
	text-transform: uppercase;
	color: #ffffff;
	margin-bottom: 22px;
}

.wd-footer .menu a,
.wd-footer .widget_nav_menu a {
	color: rgb(255 255 255 / 62%);
	font-size: 14px;
	line-height: 2.1;
}

.wd-footer .menu a:hover,
.wd-footer .widget_nav_menu a:hover {
	color: var(--un-brass);
}

.un-footer-news-title {
	font-family: var(--un-font-display);
	font-style: italic;
	font-size: 21px;
	color: #ffffff;
	margin-bottom: 8px;
}

.un-footer-news-sub {
	font-size: 13px;
	color: rgb(255 255 255 / 55%);
	margin-bottom: 18px;
}

.un-news-form {
	display: flex;
	border-bottom: 1px solid rgb(255 255 255 / 35%);
	transition: border-color var(--un-dur) var(--un-ease);
}

.un-news-form:focus-within {
	border-bottom-color: var(--un-brass);
}

.un-news-form input[type="email"] {
	flex: 1 1 auto;
	background: transparent;
	border: 0;
	color: #ffffff;
	padding-inline-start: 0;
}

.un-news-form input[type="email"]::placeholder {
	color: rgb(255 255 255 / 45%);
}

.un-news-form input[type="submit"] {
	background: transparent;
	border: 0;
	color: var(--un-brass);
	font-size: 12px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	padding-inline-end: 0;
}

.un-news-form input[type="submit"]:hover {
	color: #ffffff;
	background: transparent;
}

.wd-footer .wpcf7 form .wpcf7-response-output {
	border: 1px solid var(--un-brass);
	color: #ffffff;
	font-size: 12px;
	margin: 12px 0 0;
	padding: 8px 12px;
}

.wd-copyrights.copyrights-wrapper {
	border-top: 1px solid rgb(255 255 255 / 14%);
	font-size: 12px;
	color: rgb(255 255 255 / 45%);
}

.un-payments {
	font-family: var(--un-font-data);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* =====================================================
   13. HOMEPAGE — THE UNVEILING
   ===================================================== */
.elementor-896 .e-con.e-con-boxed {
	--content-width: min(1264px, calc(100% - 48px));
}

.elementor-896 .e-con > .e-con-inner {
	max-width: var(--content-width);
}

/* ---------- buttons ---------- */
.un-btn {
	display: inline-block;
	padding: 15px 34px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	line-height: 1;
	border: 1px solid var(--un-ink);
	transition: background-color var(--un-dur) var(--un-ease),
		color var(--un-dur) var(--un-ease),
		border-color var(--un-dur) var(--un-ease),
		box-shadow var(--un-dur) var(--un-ease);
}

.un-btn--ink { background: var(--un-ink); color: var(--un-paper); }
.un-btn--ink:hover { background: var(--un-charcoal); color: var(--un-paper); border-color: var(--un-brass); box-shadow: inset 0 0 0 1px var(--un-brass); }
.un-btn--ghost { background: transparent; color: var(--un-ink); }
.un-btn--ghost:hover { background: var(--un-ink); color: var(--un-paper); }
.un-btn--paper { border-color: rgb(255 255 255 / 85%); color: #ffffff; }
.un-btn--paper:hover { background: #ffffff; color: var(--un-ink); border-color: #ffffff; }

/* ---------- hero ---------- */
.un-c-hero { padding: 0; }

.un-hero {
	background: #f2efe9;
	overflow: hidden;
}

.un-hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	align-items: center;
	min-height: min(88vh, 860px);
	max-width: 1480px;
	margin-inline: auto;
	padding-inline: 48px;
	gap: 48px;
}

.un-hero-copy {
	padding-block: 72px;
	container-type: inline-size;
}

.un-hero-eyebrow {
	margin-bottom: 26px;
	animation: un-rise 0.7s var(--un-ease) 0.15s backwards;
}

.un-hero-title {
	margin: 0 0 18px;
	/* vw fallback sized to the copy column's share of the viewport, not
	   the full viewport — a plain vw value here overflows into the media
	   column on any browser without container-query support. The
	   container-query version that supersedes this lives at the end of
	   the responsive section so it wins the cascade at every breakpoint. */
	font-size: clamp(56px, 9.6vw, 148px);
	line-height: 0.94;
	letter-spacing: 0.06em;
	color: var(--un-ink);
}

.un-hero-letters { display: inline-flex; }

.un-hero-letters span {
	display: inline-block;
	animation: un-rise 0.8s var(--un-ease) backwards;
}

.un-hero-letters span:nth-child(1) { animation-delay: 0.05s; }
.un-hero-letters span:nth-child(2) { animation-delay: 0.11s; }
.un-hero-letters span:nth-child(3) { animation-delay: 0.17s; }
.un-hero-letters span:nth-child(4) { animation-delay: 0.23s; }
.un-hero-letters span:nth-child(5) { animation-delay: 0.29s; }
.un-hero-letters span:nth-child(6) { animation-delay: 0.35s; }

.un-hero-sub {
	font-family: var(--un-font-display);
	font-size: clamp(20px, 2.2vw, 28px);
	color: var(--un-body-color);
	margin-bottom: 40px;
	animation: un-rise 0.7s var(--un-ease) 0.45s backwards;
}

.un-hero-sub em { font-style: italic; color: var(--un-ink); }

.un-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 40px;
	animation: un-rise 0.7s var(--un-ease) 0.55s backwards;
}

.un-hero-data {
	font-size: 12px;
	color: var(--un-smoke);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	animation: un-rise 0.7s var(--un-ease) 0.65s backwards;
}

.un-hero-media {
	align-self: stretch;
	display: flex;
	align-items: center;
}

.un-hero-media img {
	width: 100%;
	height: min(74vh, 720px);
	object-fit: cover;
	animation: un-unveil-img 1.3s var(--un-ease) 0.2s backwards;
}

@keyframes un-rise {
	from { opacity: 0; transform: translateY(26px); }
	to   { opacity: 1; transform: translateY(0); }
}

@keyframes un-unveil-img {
	from { clip-path: inset(0 100% 0 0); filter: saturate(0.4); }
	60%  { clip-path: inset(0 0 0 0); }
	to   { clip-path: inset(0 0 0 0); filter: saturate(1); }
}

/* ---------- marquee ---------- */
.un-c-marquee { padding: 0; }

.un-marquee {
	overflow: hidden;
	border-block: 1px solid var(--un-seam);
	padding-block: 18px;
	background: var(--un-paper);
}

.un-marquee-track {
	display: inline-flex;
	white-space: nowrap;
	animation: un-marquee 48s linear infinite;
}

.un-marquee:hover .un-marquee-track { animation-play-state: paused; }

.un-marquee-item {
	font-family: var(--un-font-display);
	font-style: italic;
	font-size: 19px;
	color: var(--un-smoke);
	padding-inline: 34px;
	position: relative;
}

.un-marquee-item::after {
	content: "";
	position: absolute;
	inset-inline-end: -2px;
	top: 50%;
	width: 4px;
	height: 4px;
	transform: translateY(-50%) rotate(45deg);
	background: var(--un-brass);
}

@keyframes un-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.un-marquee-track { animation: none; }
}

/* ---------- section rhythm & headers ---------- */
.un-c-products,
.un-c-maisons,
.un-c-editions,
.un-c-why,
.un-c-feed {
	padding-block: var(--un-space-6);
}

.un-sec-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 44px;
}

.un-sec-head .un-eyebrow { margin-bottom: 10px; }

.un-sec-title {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.08;
	margin: 0;
	color: var(--un-ink);
}

.un-sec-link {
	flex-shrink: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	color: var(--un-ink);
	border-bottom: 1px solid var(--un-brass);
	padding-bottom: 4px;
}

.un-sec-link:hover { color: var(--un-brass-deep); }

/* ---------- duo ---------- */
.un-c-duo { padding: 0; }

.un-duo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	padding: 8px;
	background: var(--un-paper);
}

.un-duo-card {
	position: relative;
	display: block;
	overflow: hidden;
}

.un-duo-card img {
	width: 100%;
	height: min(78vh, 760px);
	object-fit: cover;
	transition: transform 1.1s var(--un-ease);
}

.un-duo-card:hover img { transform: scale(1.03); }

.un-duo-label {
	position: absolute;
	inset-inline-start: 0;
	bottom: 0;
	background: var(--un-paper);
	padding: 20px 30px 20px 26px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.un-duo-kicker {
	font-size: 11px;
	letter-spacing: var(--un-track-wide);
	text-transform: uppercase;
	color: var(--un-smoke);
}

.un-duo-name {
	font-family: var(--un-font-display);
	font-size: 30px;
	color: var(--un-ink);
}

/* ---------- editorial band ---------- */
.un-c-editorial { padding: 0; }

.un-editorial {
	background: var(--un-charcoal);
	text-align: center;
	padding: clamp(90px, 14vh, 150px) 24px;
}

.un-editorial-line {
	font-family: var(--un-font-display);
	font-weight: 400;
	font-size: clamp(28px, 4.4vw, 52px);
	line-height: 1.25;
	color: #ffffff;
	max-width: 20em;
	margin: 0 auto 44px;
}

.un-editorial-line em {
	font-style: italic;
	color: var(--un-brass);
}

/* ---------- maisons ---------- */
.un-maisons {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0 40px;
}

.un-maison {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 22px 2px;
	border-top: 1px solid var(--un-seam);
	transition: border-color var(--un-dur) var(--un-ease);
}

.un-maison:hover { border-top-color: var(--un-brass); }

.un-maison-name {
	font-family: var(--un-font-display);
	font-size: 22px;
	color: var(--un-ink);
	transition: color var(--un-dur) var(--un-ease);
}

.un-maison:hover .un-maison-name { color: var(--un-brass-deep); font-style: italic; }

.un-maison-count {
	font-size: 11px;
	color: var(--un-smoke);
	white-space: nowrap;
}

/* ---------- editions ---------- */
.un-editions {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}

.un-edition { display: block; }

.un-edition img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	margin-bottom: 16px;
}

.un-edition-name {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	color: var(--un-ink);
	border-bottom: 1px solid transparent;
	padding-bottom: 3px;
	transition: border-color var(--un-dur) var(--un-ease);
}

.un-edition:hover .un-edition-name { border-bottom-color: var(--un-brass); }

/* ---------- why ---------- */
.un-why {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
}

.un-why-item {
	border-top: 1px solid var(--un-ink);
	padding-top: 26px;
}

.un-why-title {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: 22px;
	margin-bottom: 12px;
}

.un-why-item p {
	font-size: 14.5px;
	line-height: 1.75;
	color: var(--un-body-color);
	margin: 0;
}

/* ---------- quotes ---------- */
.un-c-quotes { padding: 0; }

.un-quotes {
	background: var(--un-bone);
	padding: var(--un-space-6) 48px;
	text-align: center;
}

.un-quotes-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 56px;
	max-width: 1264px;
	margin: 40px auto 0;
	text-align: start;
}

.un-quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.un-quote p {
	font-family: var(--un-font-display);
	font-style: italic;
	font-size: 19px;
	line-height: 1.55;
	color: var(--un-ink);
	margin-bottom: 18px;
}

.un-quote footer {
	font-size: 11px;
	color: var(--un-smoke);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ---------- feed ---------- */
.un-feed {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
}

.un-feed-tile {
	margin: 0;
	overflow: hidden;
}

.un-feed-tile img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	transition: transform 0.9s var(--un-ease);
}

.un-feed-tile:hover img { transform: scale(1.05); }

/* ---------- newsletter band ---------- */
.un-c-news {
	background: var(--un-ink);
	padding-block: var(--un-space-6);
}

.un-c-news .e-con-inner,
.un-c-news > div {
	max-width: 620px;
	margin-inline: auto;
	text-align: center;
}

.un-news-band-title {
	font-family: var(--un-font-display);
	font-style: italic;
	font-size: clamp(28px, 3.4vw, 38px);
	color: #ffffff;
	margin-bottom: 12px;
}

.un-news-band-sub {
	font-size: 14px;
	color: rgb(255 255 255 / 60%);
	margin-bottom: 8px;
}

.un-c-news .un-news-form {
	max-width: 460px;
	margin-inline: auto;
}

.un-c-news .wpcf7 form .wpcf7-response-output {
	border: 1px solid var(--un-brass);
	color: #ffffff;
	font-size: 12px;
	margin: 12px 0 0;
	padding: 8px 12px;
}

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	.un-hero-inner { grid-template-columns: 1fr; gap: 0; padding-inline: 32px; min-height: 0; }
	.un-hero-copy { padding-block: 64px 40px; }
	.un-hero-media img { height: 56vh; }
	.un-maisons { grid-template-columns: repeat(2, 1fr); }
	.un-editions { grid-template-columns: repeat(2, 1fr); gap: 20px; }
	.un-quotes-row { grid-template-columns: 1fr; gap: 36px; }
	.un-feed { grid-template-columns: repeat(3, 1fr); }
	.un-feed-tile:nth-child(n+4) { display: none; }
}

@media (max-width: 767px) {
	:root { --un-space-6: 72px; }
	.un-hero-inner { padding-inline: 20px; }
	/* vw fallback only — sized to this breakpoint's actual copy-column
	   width (viewport minus the 20px side padding); superseded by the
	   cqi rule below in any browser with container-query support. */
	.un-hero-title { font-size: clamp(56px, calc(22vw - 9px), 110px); }
	.un-hero-media img { height: 44vh; }
	.un-duo { grid-template-columns: 1fr; }
	.un-duo-card img { height: 58vh; }
	.un-why { grid-template-columns: 1fr; gap: 28px; }
	.un-maisons { grid-template-columns: 1fr; gap: 0; }
	.un-sec-head { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 30px; }
	.un-quotes { padding-inline: 24px; }
	.un-feed { grid-template-columns: repeat(2, 1fr); }
	.un-feed-tile:nth-child(n+4) { display: none; }
	.un-feed-tile:nth-child(n+3) { display: block; }
	.un-feed-tile:nth-child(5) { display: none; }
}

/* Container-query sizing for the hero title — placed after the responsive
   block so it wins the cascade at every breakpoint. Ties the display size
   to the copy column's actual rendered width instead of guessed vw ratios,
   so it can never overflow into the hero image regardless of viewport. */
@supports (container-type: inline-size) {
	.un-hero-title {
		font-size: clamp(56px, 21cqi, 148px);
	}
}

/* =====================================================
   14. PRODUCT CARDS — quiet, editorial
   ===================================================== */
.wd-product {
	--un-card-ease: var(--un-ease);
}

.wd-product .product-element-top {
	background: var(--un-paper);
	margin-bottom: 14px;
}

.wd-product .product-image-link img {
	transition: transform 0.9s var(--un-card-ease);
}

.wd-product:hover .product-image-link img {
	transform: scale(1.02);
}

.wd-product .wd-entities-title {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.wd-product .wd-entities-title a { color: var(--un-ink); }
.wd-product .wd-entities-title a:hover { color: var(--un-brass-deep); }

.wd-product .price {
	font-size: 13.5px;
	color: var(--un-ink);
}

.wd-product .price del {
	color: var(--un-smoke);
	font-size: 12px;
}

.wd-product .price ins { text-decoration: none; }

/* category line above titles: quiet caps */
.wd-product .wd-product-cats a {
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--un-smoke);
}

/* hover actions */
.wd-product .wd-add-btn a,
.wd-product .wd-action-btn a {
	font-size: 12px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
}

/* =====================================================
   15. SHOP — sticky sidebar, quiet filters
   ===================================================== */
.wd-sidebar.sidebar-container {
	position: sticky;
	top: 96px;
	align-self: flex-start;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	scrollbar-width: thin;
	padding-inline-end: 20px;
}

.sidebar-widget {
	border-top: 1px solid var(--un-seam);
	padding-top: 22px;
	margin-bottom: 30px;
}

.sidebar-widget .widget-title {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--un-track-wide);
	text-transform: uppercase;
	color: var(--un-ink);
	margin-bottom: 16px;
}

.sidebar-widget ul li a {
	font-size: 13.5px;
	color: var(--un-body-color);
	line-height: 2;
}

.sidebar-widget ul li a:hover { color: var(--un-ink); }

.sidebar-widget .count {
	font-family: var(--un-font-data);
	font-size: 11px;
	color: var(--un-smoke);
}

/* price slider in ink */
.widget_price_filter .ui-slider .ui-slider-range { background-color: var(--un-ink); }
.widget_price_filter .ui-slider .ui-slider-handle {
	background: var(--un-paper);
	border: 1px solid var(--un-ink);
	border-radius: 0;
}
.widget_price_filter .price_slider_amount .price_label {
	font-family: var(--un-font-data);
	font-size: 12px;
	color: var(--un-body-color);
}

/* toolbar */
.woocommerce-result-count {
	font-family: var(--un-font-data);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--un-smoke);
}

.woocommerce-ordering select {
	border: 0;
	border-bottom: 1px solid var(--un-seam);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* infinite-scroll loader button */
.wd-load-more {
	border: 1px solid var(--un-ink);
	background: transparent;
	color: var(--un-ink);
}

.wd-load-more:hover {
	background: var(--un-ink);
	color: var(--un-paper);
}

/* shop categories nav (above grid) */
.wd-shop-cats a,
.categories-menu a {
	font-size: 12px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
}

@media (max-width: 1024px) {
	.wd-sidebar.sidebar-container {
		position: static;
		max-height: none;
		overflow: visible;
	}
}

/* =====================================================
   16. PRODUCT PAGE — gallery grid + sticky summary
   ===================================================== */
.single-product .product_title.wd-entities-title {
	font-size: clamp(28px, 3.4vw, 40px);
	line-height: 1.12;
	margin-bottom: 10px;
}

.single-product .summary-inner > .price,
.single-product .entry-summary .price {
	font-size: 21px;
	color: var(--un-ink);
	margin-bottom: 18px;
}

.single-product .woocommerce-product-details__short-description {
	font-size: 14.5px;
	line-height: 1.8;
	color: var(--un-body-color);
}

/* stock indicator as mono ticket */
.single-product .stock {
	font-family: var(--un-font-data);
	font-size: 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.single-product .stock.in-stock { color: var(--un-brass-deep); }
.single-product .stock.out-of-stock { color: var(--un-smoke); }

/* swatches: square, quiet */
.single-product .wd-swatch {
	border-radius: 0;
}

/* trust notes */
.un-trust {
	list-style: none;
	margin: 22px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--un-seam);
}

.un-trust li {
	font-family: var(--un-font-data);
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--un-body-color);
	padding: 3px 0 3px 18px;
	position: relative;
}

.un-trust li::before {
	content: "";
	position: absolute;
	inset-inline-start: 2px;
	top: 50%;
	width: 5px;
	height: 5px;
	transform: translateY(-50%) rotate(45deg);
	background: var(--un-brass);
}

.un-trust li a { color: inherit; border-bottom: 1px solid var(--un-seam); }
.un-trust li a:hover { color: var(--un-ink); border-color: var(--un-brass); }

/* accordion sections */
.single-product .wd-accordion-title {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
}

/* sticky add-to-cart bar */
.wd-sticky-btn {
	border-top: 1px solid var(--un-seam);
	background: var(--un-paper);
}

.wd-sticky-btn .wd-entities-title { font-size: 14px; }

/* recently viewed strip */
.un-recent {
	padding-block: var(--un-space-5);
	border-top: 1px solid var(--un-seam);
	margin-top: var(--un-space-5);
}

/* related products heading inherits theme; quiet it */
.single-product .related-and-upsells .title,
.single-product .upsells.products > h2,
.single-product .related.products > h2 {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: clamp(26px, 3vw, 36px);
}

/* =====================================================
   17. CART & CHECKOUT — calm, large, trustworthy
   ===================================================== */
.wd-checkout-steps a,
.wd-checkout-steps span {
	font-size: 12px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
}

.wd-checkout-steps .wd-step-active,
.wd-checkout-steps li.active a {
	color: var(--un-ink);
}

/* cart table: hairlines only */
.woocommerce-cart-form .shop_table,
.woocommerce-cart-form .shop_table td,
.woocommerce-cart-form .shop_table th {
	border-color: var(--un-seam);
}

.woocommerce-cart-form .product-name a {
	font-weight: 500;
	color: var(--un-ink);
}

.cart_totals h2,
#order_review_heading,
.woocommerce-billing-fields > h3,
.woocommerce-additional-fields > h3 {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: 24px;
}

.cart_totals .shop_table th {
	font-size: 12px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	font-weight: 600;
}

/* large checkout controls */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
	min-height: 52px;
	font-size: 15px;
}

.woocommerce-checkout .form-row label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--un-body-color);
}

/* coupon field */
.coupon .input-text {
	border: 1px solid var(--un-seam);
}

/* empty cart */
.cart-empty.wd-empty-block-title {
	font-family: var(--un-font-display);
	font-weight: 500;
	font-size: clamp(26px, 3vw, 36px);
	color: var(--un-ink);
}

.wd-empty-block-text {
	color: var(--un-body-color);
	max-width: 46ch;
	margin-inline: auto;
}

/* payment box: quiet */
.woocommerce-checkout #payment {
	background: var(--un-bone);
	border-radius: 0;
	border: 1px solid var(--un-seam);
}

.woocommerce-checkout #payment .payment_box {
	background: transparent;
	font-size: 13.5px;
	color: var(--un-body-color);
}

/* place order: full-weight moment */
.woocommerce-checkout #place_order {
	width: 100%;
	padding-block: 18px;
	font-size: 14px;
}

/* =====================================================
   18. PAGE TITLES, ACCOUNT, 404
   ===================================================== */
.wd-page-title .entry-title {
	font-family: var(--un-font-display);
	font-weight: 500;
	letter-spacing: 0.01em;
}

.wd-breadcrumbs,
.woocommerce-breadcrumb {
	font-family: var(--un-font-data);
	font-size: 11px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--un-smoke);
}

/* account navigation as quiet index */
.woocommerce-MyAccount-navigation ul {
	border-top: 1px solid var(--un-seam);
}

.woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--un-seam);
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 14px 2px;
	font-size: 13px;
	letter-spacing: var(--un-track-caps);
	text-transform: uppercase;
	color: var(--un-body-color);
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	color: var(--un-ink);
}

.woocommerce-MyAccount-navigation li.is-active a {
	border-inline-start: 2px solid var(--un-brass);
	padding-inline-start: 14px;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	font-family: var(--un-font-display);
	font-weight: 500;
}

.woocommerce-MyAccount-content .shop_table,
.woocommerce-MyAccount-content .shop_table td,
.woocommerce-MyAccount-content .shop_table th {
	border-color: var(--un-seam);
}

.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a {
	font-family: var(--un-font-data);
}

/* 404 */
.error404 .page-title,
.wd-page-404 .wd-entities-title {
	font-family: var(--un-font-display);
}

/* =====================================================
   19. MOTION — progressive scroll reveals
   Scroll-driven animations where supported; static elsewhere.
   ===================================================== */
html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.un-sec-head,
		.un-why-item,
		.un-quote,
		.un-maison,
		.un-edition {
			animation: un-view-rise linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 42%;
		}
	}
}

@keyframes un-view-rise {
	from { opacity: 0; transform: translateY(22px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* =====================================================
   20. ACCESSIBILITY PASS — AA contrast for small type
   Smoke (#8a8580) is reserved for large text and dark
   surfaces; small light-surface labels use smoke-text.
   ===================================================== */
:root { --un-smoke-text: #6f6a64; }

.un-eyebrow,
.un-hero-data,
.un-duo-kicker,
.un-maison-count,
.un-quote footer,
.woocommerce-result-count,
.sidebar-widget .count,
.wd-product .wd-product-cats a {
	color: var(--un-smoke-text);
}

/* =====================================================
   21. ARCHIVE TITLE BAND — bone field, ink serif
   ===================================================== */
.wd-page-title.page-title-default {
	background-color: var(--un-bone);
}

.wd-page-title.page-title-default .wd-page-title-bg {
	background-image: none;
}

.wd-page-title .entry-title {
	color: var(--un-ink);
	font-size: clamp(30px, 4vw, 46px);
}

.wd-page-title .wd-shop-cats a,
.wd-page-title .categories-menu a {
	color: var(--un-body-color);
}

.wd-page-title .wd-shop-cats a:hover,
.wd-page-title .categories-menu a:hover {
	color: var(--un-ink);
}
