/* ==========================================================================
   COVETI ACCOUNT SUITE — porcelain design system (#FFFFFF → #FAFAFA)
   Scope: account pages only (the stylesheet is enqueued solely there).
   File : {child-theme}/assets/coveti-account.css

   Palette: white-to-soft-white shell, obsidian ink typography, champagne
   gold accents. The VIP pass remains an obsidian card by design — a dark
   object on porcelain reads as the luxury artefact of the page.
   ========================================================================== */

:root {
	--cvt-paper: #ffffff;
	--cvt-paper-soft: #fafafa;
	--cvt-ink: #0b0b0d;
	--cvt-muted: rgba(11, 11, 13, 0.56);
	--cvt-faint: rgba(11, 11, 13, 0.34);
	--cvt-line: rgba(11, 11, 13, 0.1);
	--cvt-line-strong: rgba(11, 11, 13, 0.26);
	--cvt-gold: #c8a963;
	--cvt-gold-deep: #a8894e;
	--cvt-gold-soft: rgba(200, 169, 99, 0.45);
	--cvt-gold-faint: rgba(200, 169, 99, 0.12);
	--cvt-error: #a8554c;
	--cvt-card-obsidian: #0b0b0d;
	--cvt-card-ivory: #f4f1ea;
	--cvt-font-display: "Cormorant Garamond", "Didot", Georgia, serif;
	--cvt-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
	--cvt-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* --------------------------------------------------------------------------
   FULL-BLEED PORCELAIN SHELL
   Breaks the WooCommerce wrapper out of any theme container so the account
   surface is edge-to-edge white-to-soft-white regardless of parent layout.
   -------------------------------------------------------------------------- */

body.woocommerce-account {
	overflow-x: clip;
	background: var(--cvt-paper-soft);
}

/*
 * Contained, theme-safe layout. The earlier 100vw full-bleed fought the
 * WoodMart/WPBakery column (which clips to ~800px and caused overflow), so
 * the suite now presents as a centered porcelain canvas that reads as
 * intentional and never triggers horizontal scroll. Width is forced wider
 * than WoodMart's column so the experience isn't cramped.
 */
.woocommerce-account div.woocommerce {
	box-sizing: border-box;
	width: 100%;
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
	background:
		radial-gradient(1200px 500px at 50% -200px, rgba(200, 169, 99, 0.07), transparent 70%),
		linear-gradient(180deg, #ffffff 0%, #fafafa 42%, #fafafa 100%);
	color: var(--cvt-ink);
	font-family: var(--cvt-font-body);
	font-weight: 300;
	padding: clamp(24px, 5vw, 56px) clamp(18px, 5vw, 56px) 96px;
}

/* Neutralise the WoodMart/WPBakery column constraints so the suite gets the
   full content width on every breakpoint. */
.woocommerce-account .wpb_column > .vc_column-inner,
.woocommerce-account .vc_column-inner,
.woocommerce-account .wpb_column,
.woocommerce-account .wd-page-content,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-account-content {
	width: 100% !important;
	max-width: none !important;
	margin: 0 auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	float: none !important;
	background: transparent !important;
}

.woocommerce-account div.woocommerce > * {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}

.woocommerce-account div.woocommerce *,
.woocommerce-account div.woocommerce *::before,
.woocommerce-account div.woocommerce *::after {
	box-sizing: border-box;
}

/* Suppress any theme sidebar layout for the account area. */
.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
}

/* --------------------------------------------------------------------------
   TYPOGRAPHY
   -------------------------------------------------------------------------- */

.font-display,
.cvt-h1,
.cvt-h2 {
	font-family: var(--cvt-font-display);
}

.cvt-h1 {
	margin: 0 0 8px;
	font-size: clamp(34px, 7vw, 52px);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: 0.01em;
	color: var(--cvt-ink);
}

.cvt-h2 {
	margin: 0 0 6px;
	font-size: clamp(24px, 5vw, 32px);
	font-weight: 500;
	line-height: 1.15;
	color: var(--cvt-ink);
}

.cvt-eyebrow {
	margin: 0 0 10px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--cvt-gold-deep);
}

.cvt-sub {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--cvt-muted);
}

.cvt-muted {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--cvt-muted);
}

.cvt-link {
	color: var(--cvt-ink);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: var(--cvt-gold-soft);
	transition: color 0.3s var(--cvt-ease), text-decoration-color 0.3s var(--cvt-ease);
}

.cvt-link:hover,
.cvt-link:focus-visible {
	color: var(--cvt-gold-deep);
	text-decoration-color: var(--cvt-gold-deep);
}

.cvt-optional {
	margin-left: 6px;
	font-size: 9px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cvt-faint);
}

.cvt-fineprint {
	margin: 18px 0 0;
	font-size: 11px;
	line-height: 1.7;
	color: var(--cvt-faint);
}

/* Focus ring — visible, luxurious, never default blue. */
.woocommerce-account div.woocommerce :focus-visible {
	outline: 1px solid var(--cvt-gold-deep);
	outline-offset: 3px;
	border-radius: 1px;
}

/* --------------------------------------------------------------------------
   PRE-LOGIN — AUTH SHELL & THUMB ZONE
   -------------------------------------------------------------------------- */

.cvt-auth {
	display: flex;
	flex-direction: column;
	max-width: 430px;
	margin: 0 auto;
	min-height: max(540px, calc(100svh - 220px));
}

.cvt-auth__brand {
	padding: clamp(20px, 6vh, 64px) 0 28px;
	text-align: center;
}

/* The house mark — the gold leopard-C symbol from the brand package.
   Mobile base 76px; enlarged at the lg: breakpoint. */
.cvt-brandmark {
	display: block;
	width: 76px;
	height: auto;
	margin: 0 auto 12px;
	filter: drop-shadow(0 6px 14px rgba(171, 150, 78, 0.25));
}

@media (min-width: 1024px) {
	.cvt-brandmark {
		width: 92px;
	}
}

/* Forms ride the lower two-thirds of the viewport — the ergonomic
   thumb zone — by pushing the panel stack toward the fold. */
.cvt-auth .cvt-panels {
	margin-top: auto;
	padding-bottom: clamp(24px, 6vh, 64px);
}

/* --------------------------------------------------------------------------
   SEGMENTED CONTROL — sticky, light glass, sliding obsidian indicator
   -------------------------------------------------------------------------- */

.cvt-seg {
	position: sticky;
	top: 10px;
	z-index: 40;
	display: grid;
	grid-template-columns: 1fr 1fr;
	padding: 4px;
	border: 1px solid var(--cvt-line);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.8);
	-webkit-backdrop-filter: blur(18px) saturate(1.4);
	backdrop-filter: blur(18px) saturate(1.4);
	box-shadow: 0 6px 24px -16px rgba(11, 11, 13, 0.25);
}

.cvt-seg__btn {
	position: relative;
	z-index: 1;
	min-height: 44px;
	padding: 4px 10px;
	border: 0;
	background: none;
	font-family: var(--cvt-font-body);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--cvt-muted);
	cursor: pointer;
	transition: color 0.35s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-seg__btn.is-on {
	color: var(--cvt-paper-soft);
}

.cvt-seg__indicator {
	position: absolute;
	top: 4px;
	bottom: 4px;
	left: 0;
	width: calc(50% - 4px);
	border-radius: 999px;
	background: var(--cvt-ink);
	transform: translateX(4px) translateZ(0);
	transition: transform 0.45s var(--cvt-ease), width 0.45s var(--cvt-ease), opacity 0.3s var(--cvt-ease);
	will-change: transform;
}

.cvt-seg__indicator.is-hidden {
	opacity: 0;
}

/* --------------------------------------------------------------------------
   PANEL STACK — hardware-accelerated crossfade, no vertical stacking
   Panels share one grid cell; opacity + translateY transition, with
   visibility deferred so the outgoing panel finishes its fade. The inert
   attribute (set by JS) removes hidden panels from focus order and from
   password-manager scanning.
   -------------------------------------------------------------------------- */

.cvt-panels {
	display: grid;
}

.cvt-panel {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px) translateZ(0);
	pointer-events: none;
	transition:
		opacity 0.4s var(--cvt-ease),
		transform 0.4s var(--cvt-ease),
		visibility 0s linear 0.4s;
	will-change: opacity, transform;
}

.cvt-panel.is-active {
	opacity: 1;
	visibility: visible;
	transform: translateZ(0);
	pointer-events: auto;
	transition:
		opacity 0.4s var(--cvt-ease) 0.08s,
		transform 0.4s var(--cvt-ease) 0.08s,
		visibility 0s;
}

/* --------------------------------------------------------------------------
   FIELDS
   -------------------------------------------------------------------------- */

.cvt-form {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
}

.cvt-field {
	margin-bottom: 22px;
}

.cvt-label {
	display: block;
	margin-bottom: 4px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cvt-muted);
}

.cvt-control {
	position: relative;
}

.cvt-input,
.woocommerce-account div.woocommerce .input-text,
.woocommerce-account div.woocommerce select,
.woocommerce-account div.woocommerce textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--cvt-line-strong);
	border-radius: 0;
	background: transparent;
	color: var(--cvt-ink);
	font-family: var(--cvt-font-body);
	font-size: 16px; /* >= 16px prevents iOS focus zoom */
	font-weight: 300;
	line-height: 1.4;
	transition: border-color 0.3s var(--cvt-ease);
	-webkit-appearance: none;
	appearance: none;
}

.cvt-input:focus,
.woocommerce-account div.woocommerce .input-text:focus,
.woocommerce-account div.woocommerce select:focus,
.woocommerce-account div.woocommerce textarea:focus {
	outline: none;
	border-bottom-color: var(--cvt-gold-deep);
}

.cvt-input::placeholder,
.woocommerce-account div.woocommerce .input-text::placeholder {
	color: var(--cvt-faint);
}

.cvt-textarea {
	resize: vertical;
	min-height: 84px;
}

/* Keep iOS / Chrome autofill legible on porcelain — never the yellow flash. */
.cvt-input:-webkit-autofill,
.cvt-input:-webkit-autofill:hover,
.cvt-input:-webkit-autofill:focus,
.woocommerce-account div.woocommerce .input-text:-webkit-autofill {
	-webkit-text-fill-color: var(--cvt-ink);
	-webkit-box-shadow: 0 0 0 1000px var(--cvt-paper) inset;
	caret-color: var(--cvt-ink);
	transition: background-color 99999s ease-out;
}

.cvt-control--password .cvt-input {
	padding-right: 52px;
}

.cvt-eye {
	position: absolute;
	top: 50%;
	right: 0;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: none;
	color: var(--cvt-muted);
	cursor: pointer;
	transition: color 0.3s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-eye:hover,
.cvt-eye[aria-pressed="true"] {
	color: var(--cvt-gold-deep);
}

.cvt-eye svg {
	width: 20px;
	height: 20px;
}

.cvt-hint {
	margin: 8px 0 0;
	font-size: 11px;
	line-height: 1.6;
	color: var(--cvt-faint);
}

.cvt-field-error {
	margin: 8px 0 0;
	min-height: 0;
	font-size: 11.5px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: var(--cvt-error);
}

.cvt-field-error:empty {
	display: none;
}

.cvt-form-error {
	margin: 0 0 20px;
	padding: 12px 16px;
	border: 1px solid rgba(168, 85, 76, 0.35);
	border-left: 2px solid var(--cvt-error);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--cvt-ink);
	background: rgba(168, 85, 76, 0.05);
}

.cvt-form-success {
	margin: 0 0 20px;
	padding: 12px 16px;
	border: 1px solid var(--cvt-gold-soft);
	border-left: 2px solid var(--cvt-gold);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--cvt-ink);
	background: var(--cvt-gold-faint);
}

[hidden] {
	display: none !important;
}

.cvt-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 26px;
}

/* Custom checkbox — 44px touch target via padded label. */
.cvt-check {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.cvt-check__input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.cvt-check__mark {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	border: 1px solid var(--cvt-line-strong);
	background: var(--cvt-paper);
	transition: border-color 0.3s var(--cvt-ease), background 0.3s var(--cvt-ease);
}

.cvt-check__input:checked + .cvt-check__mark {
	border-color: var(--cvt-gold-deep);
	background:
		linear-gradient(var(--cvt-gold-deep), var(--cvt-gold-deep)) center / 8px 8px no-repeat,
		var(--cvt-paper);
}

.cvt-check__input:focus-visible + .cvt-check__mark {
	outline: 1px solid var(--cvt-gold-deep);
	outline-offset: 3px;
}

.cvt-check__label {
	font-size: 11.5px;
	letter-spacing: 0.04em;
	color: var(--cvt-muted);
}

/* Honeypot — anti-bot trap field, removed from view and from the
   accessibility tree. This is spam defence, not content cloaking. */
.cvt-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* --------------------------------------------------------------------------
   BUTTONS
   -------------------------------------------------------------------------- */

.cvt-btn,
.woocommerce-account div.woocommerce button.button,
.woocommerce-account div.woocommerce a.button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 52px;
	padding: 14px 24px;
	border: 1px solid var(--cvt-ink);
	border-radius: 2px;
	background: var(--cvt-ink);
	color: var(--cvt-paper-soft);
	font-family: var(--cvt-font-body);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.35s var(--cvt-ease), color 0.35s var(--cvt-ease), transform 0.15s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-btn:hover,
.woocommerce-account div.woocommerce button.button:hover,
.woocommerce-account div.woocommerce a.button:hover {
	background: transparent;
	color: var(--cvt-ink);
}

.cvt-btn:active {
	transform: scale(0.985);
}

.cvt-btn[disabled],
.cvt-btn.is-busy {
	opacity: 0.75;
	cursor: default;
}

.cvt-btn--ghost {
	margin-top: 18px;
	background: transparent;
	border-color: var(--cvt-line-strong);
	color: var(--cvt-ink);
}

.cvt-btn--ghost:hover {
	border-color: var(--cvt-gold-deep);
	color: var(--cvt-gold-deep);
	background: transparent;
}

.cvt-btn__spinner {
	display: none;
	width: 14px;
	height: 14px;
	border: 1.5px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	animation: cvt-spin 0.7s linear infinite;
}

.cvt-btn.is-busy .cvt-btn__spinner {
	display: inline-block;
}

@keyframes cvt-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Inline table buttons (e.g. Acquisitions list) stay compact. */
.woocommerce-account div.woocommerce table .button {
	width: auto;
	min-height: 40px;
	padding: 10px 18px;
	font-size: 10px;
	background: transparent;
	border-color: var(--cvt-line-strong);
	color: var(--cvt-ink);
}

.woocommerce-account div.woocommerce table .button:hover {
	border-color: var(--cvt-gold-deep);
	color: var(--cvt-gold-deep);
}

/* --------------------------------------------------------------------------
   CHIP NAVIGATION (endpoint pages)
   -------------------------------------------------------------------------- */

.cvt-nav {
	margin: 0 0 34px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.cvt-nav::-webkit-scrollbar {
	display: none;
}

.cvt-nav__list {
	display: flex;
	gap: 8px;
	min-width: max-content;
	margin: 0;
	padding: 0 0 4px;
	list-style: none;
}

.cvt-nav__item {
	margin: 0;
	list-style: none;
}

.cvt-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 999px;
	background: var(--cvt-paper);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	color: var(--cvt-muted);
	transition: color 0.3s var(--cvt-ease), border-color 0.3s var(--cvt-ease), background 0.3s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-nav__link .cvt-icon {
	width: 16px;
	height: 16px;
}

.cvt-nav__item.is-active .cvt-nav__link {
	background: var(--cvt-ink);
	border-color: var(--cvt-ink);
	color: var(--cvt-paper-soft);
}

.cvt-nav__link:hover {
	border-color: var(--cvt-gold-deep);
	color: var(--cvt-ink);
}

.cvt-nav__item.is-active .cvt-nav__link:hover {
	color: var(--cvt-paper-soft);
}

/* --------------------------------------------------------------------------
   DASHBOARD
   -------------------------------------------------------------------------- */

.cvt-dash__head {
	margin-bottom: 36px;
}

.cvt-dash__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	margin: 34px 0 48px;
	background: var(--cvt-line);
	border: 1px solid var(--cvt-line);
}

.cvt-stat {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 16px;
	background: var(--cvt-paper);
}

.cvt-stat__value {
	font-family: var(--cvt-font-display);
	font-size: clamp(16px, 4vw, 22px);
	font-weight: 500;
	color: var(--cvt-ink);
}

.cvt-stat__label {
	font-size: 9px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cvt-faint);
}

.cvt-suite {
	margin-bottom: 56px;
}

.cvt-suite .cvt-h2 {
	margin-bottom: 20px;
}

.cvt-tiles {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.cvt-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-height: 128px;
	padding: 20px 18px 18px;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
	color: var(--cvt-ink);
	text-decoration: none;
	transition: border-color 0.35s var(--cvt-ease), transform 0.35s var(--cvt-ease), box-shadow 0.35s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-tile:hover {
	border-color: var(--cvt-gold-soft);
	transform: translateY(-3px) translateZ(0);
	box-shadow: 0 14px 32px -20px rgba(11, 11, 13, 0.25);
}

.cvt-tile .cvt-icon {
	width: 22px;
	height: 22px;
	color: var(--cvt-gold-deep);
}

.cvt-tile__label {
	margin-top: auto;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.5;
	padding-right: 22px;
}

.cvt-tile__arrow {
	position: absolute;
	right: 16px;
	bottom: 16px;
	font-size: 14px;
	color: var(--cvt-faint);
	transition: color 0.3s var(--cvt-ease), transform 0.3s var(--cvt-ease);
}

.cvt-tile:hover .cvt-tile__arrow {
	color: var(--cvt-gold-deep);
	transform: translateX(3px);
}

.cvt-tile--exit {
	border-style: dashed;
	background: transparent;
	box-shadow: none;
}

.cvt-tile--exit .cvt-icon {
	color: var(--cvt-faint);
}

.cvt-tile--shop {
	background: linear-gradient(160deg, var(--cvt-gold-faint), var(--cvt-paper) 70%);
	border-color: var(--cvt-gold-soft);
}

.cvt-dash__latest-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}

/* --------------------------------------------------------------------------
   SUITE MOOD — the dashboard morphs to the shopper's recorded taste.
   Mobile base styles; the mood variants re-skin the layout blocks.
   -------------------------------------------------------------------------- */

.cvt-mood {
	margin: 0 0 34px;
	padding: clamp(22px, 5vw, 36px);
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
}

.cvt-mood__title {
	margin: 0 0 8px;
	font-size: clamp(30px, 8vw, 46px);
	font-weight: 500;
	line-height: 1.05;
	color: var(--cvt-ink);
}

.cvt-mood__line {
	margin: 0;
	max-width: 460px;
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--cvt-muted);
}

.cvt-mood__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.cvt-mood__chip {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 4px 12px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 999px;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cvt-muted);
}

/* ── NOIR: deep obsidian blocks, heavy graphic type ── */

.cvt-dash[data-mood="noir"] .cvt-mood {
	background: linear-gradient(150deg, #16161a 0%, #0b0b0d 60%);
	border-color: rgba(244, 241, 234, 0.16);
}

.cvt-dash[data-mood="noir"] .cvt-mood .cvt-eyebrow {
	color: var(--cvt-gold);
}

.cvt-dash[data-mood="noir"] .cvt-mood__title {
	color: #f4f1ea;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.cvt-dash[data-mood="noir"] .cvt-mood__line {
	color: rgba(244, 241, 234, 0.6);
}

.cvt-dash[data-mood="noir"] .cvt-mood__chip {
	border-color: rgba(244, 241, 234, 0.3);
	color: rgba(244, 241, 234, 0.8);
}

.cvt-dash[data-mood="noir"] .cvt-dash__stats {
	background: rgba(244, 241, 234, 0.16);
	border-color: rgba(244, 241, 234, 0.16);
}

.cvt-dash[data-mood="noir"] .cvt-stat {
	background: #101013;
}

.cvt-dash[data-mood="noir"] .cvt-stat__value {
	color: #f4f1ea;
}

.cvt-dash[data-mood="noir"] .cvt-stat__label {
	color: rgba(244, 241, 234, 0.45);
}

.cvt-dash[data-mood="noir"] .cvt-tile {
	background: #101013;
	border-color: rgba(244, 241, 234, 0.14);
	color: #f4f1ea;
	box-shadow: none;
}

.cvt-dash[data-mood="noir"] .cvt-tile:hover {
	border-color: var(--cvt-gold-soft);
}

.cvt-dash[data-mood="noir"] .cvt-tile .cvt-icon {
	color: var(--cvt-gold);
}

.cvt-dash[data-mood="noir"] .cvt-tile__arrow {
	color: rgba(244, 241, 234, 0.4);
}

.cvt-dash[data-mood="noir"] .cvt-tile--shop {
	background: linear-gradient(160deg, rgba(200, 169, 99, 0.18), #101013 70%);
	border-color: var(--cvt-gold-soft);
}

.cvt-dash[data-mood="noir"] .cvt-tile--exit {
	background: transparent;
	border-color: rgba(244, 241, 234, 0.22);
}

/* ── ATELIER: architectural cream, double-rule calm ── */

.cvt-dash[data-mood="atelier"] .cvt-mood {
	background: #f4f1ea;
	border-color: rgba(11, 11, 13, 0.08);
	border-top: 3px double rgba(11, 11, 13, 0.3);
}

.cvt-dash[data-mood="atelier"] .cvt-stat {
	background: #f7f5f0;
}

.cvt-dash[data-mood="atelier"] .cvt-tile {
	background: #f7f5f0;
}

.cvt-dash[data-mood="atelier"] .cvt-tile--shop {
	background: linear-gradient(160deg, var(--cvt-gold-faint), #f7f5f0 70%);
}

/* ── ROMANCE: blush warmth, softened rules ── */

.cvt-dash[data-mood="romance"] .cvt-mood {
	background: linear-gradient(165deg, #faf3f1, #ffffff 70%);
	border-color: rgba(168, 85, 76, 0.18);
}

.cvt-dash[data-mood="romance"] .cvt-mood .cvt-eyebrow {
	color: #a8554c;
}

.cvt-dash[data-mood="romance"] .cvt-mood__title {
	font-style: italic;
}

.cvt-dash[data-mood="romance"] .cvt-mood__chip {
	border-color: rgba(168, 85, 76, 0.3);
	color: rgba(11, 11, 13, 0.65);
}

.cvt-dash[data-mood="romance"] .cvt-tile:hover {
	border-color: rgba(168, 85, 76, 0.35);
}

/* --------------------------------------------------------------------------
   THE HIDDEN RUNWAY — a private rail behind a parting silk curtain
   -------------------------------------------------------------------------- */

.cvt-runway {
	margin: 0 0 56px;
}

.cvt-runway__head {
	margin-bottom: 18px;
}

.cvt-runway__stage {
	position: relative;
	overflow: hidden;
	padding: clamp(18px, 4vw, 28px);
	border: 1px solid rgba(244, 241, 234, 0.1);
	border-radius: 4px;
	background:
		radial-gradient(420px 200px at 50% 0%, rgba(200, 169, 99, 0.1), transparent 70%),
		linear-gradient(160deg, #111114, #1a1a1f);
}

.cvt-runway__rail {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

@media (min-width: 768px) {
	.cvt-runway__rail {
		grid-template-columns: repeat(4, 1fr);
	}
}

.cvt-runway__card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 10px 10px 12px;
	border: 1px solid rgba(244, 241, 234, 0.12);
	border-radius: 3px;
	background: #15151a;
	color: #f4f1ea;
	text-decoration: none;
	transition: border-color 0.3s var(--cvt-ease), transform 0.3s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-runway__card:hover {
	border-color: var(--cvt-gold-soft);
	transform: translateY(-2px);
}

.cvt-runway__img {
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: 2px;
	background: #1f1f24;
}

.cvt-runway__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cvt-runway__brand {
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cvt-gold);
}

.cvt-runway__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 11.5px;
	line-height: 1.45;
	color: #f4f1ea;
}

.cvt-runway__price {
	font-size: 11px;
	letter-spacing: 0.06em;
	color: rgba(244, 241, 234, 0.7);
}

.cvt-runway__price del {
	color: rgba(244, 241, 234, 0.4);
}

.cvt-runway__tag {
	margin-top: auto;
	padding-top: 4px;
	font-size: 8.5px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(244, 241, 234, 0.45);
}

/* Silk curtains — folds drawn with repeating gradients, a gold seam of
   light between them; they part on the first visit only. */
.cvt-runway__curtain {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 51%;
	z-index: 5;
	background:
		linear-gradient(100deg, rgba(255, 255, 255, 0.05), transparent 35%),
		repeating-linear-gradient(95deg, #15151a 0px, #1d1d23 11px, #131317 22px, #1b1b21 34px),
		#15151a;
	transition: transform 1.9s cubic-bezier(0.77, 0, 0.18, 1);
	will-change: transform;
}

.cvt-runway__curtain--l {
	left: 0;
}

.cvt-runway__curtain--r {
	right: 0;
}

.cvt-runway__curtain--l::after,
.cvt-runway__curtain--r::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
}

.cvt-runway__curtain--l::after {
	right: 0;
	background: linear-gradient(rgba(200, 169, 99, 0), rgba(200, 169, 99, 0.85), rgba(200, 169, 99, 0));
}

.cvt-runway__curtain--r::before {
	left: 0;
	background: linear-gradient(rgba(200, 169, 99, 0), rgba(200, 169, 99, 0.45), rgba(200, 169, 99, 0));
}

.cvt-runway.is-open .cvt-runway__curtain--l {
	transform: translateX(-102%);
}

.cvt-runway.is-open .cvt-runway__curtain--r {
	transform: translateX(102%);
}

/* --------------------------------------------------------------------------
   THE FIT INSTRUMENT — three sliders, one sealed  Luxury Handbags Fit Code
   -------------------------------------------------------------------------- */

.cvt-fitcode {
	margin: 34px 0 26px;
	padding-top: 28px;
	border-top: 1px solid var(--cvt-line);
}

.cvt-fitcode__head {
	margin-bottom: 8px;
}

.cvt-fitq {
	margin: 24px 0;
}

.cvt-fitq .cvt-label {
	margin-bottom: 10px;
}

.cvt-range {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	height: 44px;
	margin: 0;
	background: transparent;
	cursor: pointer;
}

.cvt-range:focus {
	outline: none;
}

.cvt-range::-webkit-slider-runnable-track {
	height: 2px;
	background: var(--cvt-line-strong);
}

.cvt-range::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 22px;
	height: 22px;
	margin-top: -10px;
	border: 1.5px solid var(--cvt-gold-deep);
	border-radius: 50%;
	background: var(--cvt-paper);
	box-shadow: 0 2px 8px rgba(11, 11, 13, 0.22);
}

.cvt-range::-moz-range-track {
	height: 2px;
	background: var(--cvt-line-strong);
}

.cvt-range::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border: 1.5px solid var(--cvt-gold-deep);
	border-radius: 50%;
	background: var(--cvt-paper);
	box-shadow: 0 2px 8px rgba(11, 11, 13, 0.22);
}

.cvt-range:focus-visible::-webkit-slider-thumb {
	outline: 1px solid var(--cvt-gold-deep);
	outline-offset: 3px;
}

.cvt-fitq__scale {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-top: 4px;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cvt-faint);
}

.cvt-fitq__scale [data-fit-word] {
	color: var(--cvt-gold-deep);
}

.cvt-fitcode__seal {
	width: auto;
	min-height: 48px;
	padding: 13px 28px;
	margin-top: 4px;
}

.cvt-fitplaque {
	margin: 24px 0 6px;
	padding: clamp(22px, 5vw, 32px);
	border: 1px solid var(--cvt-gold-soft);
	border-radius: 4px;
	text-align: center;
	background:
		radial-gradient(320px 150px at 50% 0%, var(--cvt-gold-faint), transparent 70%),
		var(--cvt-paper);
}

.cvt-fitplaque__eyebrow {
	margin: 0 0 4px;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--cvt-gold-deep);
}

.cvt-fitplaque__code {
	margin: 4px 0 10px;
	font-size: clamp(42px, 13vw, 58px);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
	color: var(--cvt-ink);
}

.cvt-fitplaque__desc {
	margin: 0 0 6px;
	font-size: 12px;
	line-height: 1.7;
	letter-spacing: 0.04em;
	color: var(--cvt-muted);
}

.cvt-fitplaque__date {
	margin: 0;
	font-size: 9.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cvt-faint);
}

.cvt-fitplaque.is-sealed {
	animation: cvt-seal 0.9s var(--cvt-ease);
}

@keyframes cvt-seal {
	0% {
		opacity: 0;
		transform: scale(0.96) translateY(8px);
	}
	100% {
		opacity: 1;
		transform: scale(1) translateY(0);
	}
}

.cvt-fitcode__status {
	margin-top: 14px;
}

/* --------------------------------------------------------------------------
   THE GYROSCOPE VIP PASS — deliberately kept obsidian on porcelain
   -------------------------------------------------------------------------- */

.cvt-pass-scene {
	max-width: 420px;
	margin: 0 auto 14px;
	perspective: 1200px;
	-webkit-perspective: 1200px;
}

.cvt-pass {
	position: relative;
	aspect-ratio: 1.586 / 1;
	border-radius: 18px;
	border: 1px solid var(--cvt-gold-soft);
	background: linear-gradient(135deg, #16161a 0%, #0c0c0e 45%, #1a1a1f 100%);
	box-shadow:
		0 34px 70px -28px rgba(11, 11, 13, 0.45),
		inset 0 0 0 1px rgba(255, 255, 255, 0.03);
	transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	transform: translateZ(0);
	will-change: transform;
}

.cvt-pass__inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(18px, 5vw, 28px);
	border-radius: inherit;
	overflow: hidden;
	transform: translateZ(30px);
	-webkit-transform: translateZ(30px);
	background: rgba(255, 255, 255, 0.015);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

/* Gold glow tracks the tilt origin via --gx / --gy custom properties. */
.cvt-pass__glow {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(
		420px circle at var(--gx, 50%) var(--gy, 38%),
		rgba(255, 236, 190, 0.22),
		rgba(200, 169, 99, 0.08) 38%,
		transparent 65%
	);
	mix-blend-mode: screen;
	pointer-events: none;
}

/* Travelling specular sheen, driven by --gxn (normalised -1..1). */
.cvt-pass__sheen {
	position: absolute;
	inset: -45%;
	background: linear-gradient(
		105deg,
		transparent 42%,
		rgba(255, 245, 215, 0.14) 49%,
		rgba(255, 255, 255, 0.3) 50%,
		rgba(255, 245, 215, 0.14) 51%,
		transparent 58%
	);
	transform: translateX(calc(var(--gxn, 0) * 42%)) translateZ(0);
	mix-blend-mode: screen;
	pointer-events: none;
}

.cvt-pass__row {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.cvt-pass__wordmark {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.42em;
	color: var(--cvt-card-ivory);
}

.cvt-pass__tier {
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--cvt-gold);
	white-space: nowrap;
}

.cvt-pass__centre {
	position: relative;
	z-index: 1;
}

.cvt-pass__name {
	font-size: clamp(22px, 6vw, 30px);
	font-style: italic;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--cvt-card-ivory);
}

.cvt-pass__meta {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.cvt-pass__meta--right {
	text-align: right;
}

.cvt-pass__meta-label {
	font-size: 8px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: rgba(244, 241, 234, 0.4);
}

.cvt-pass__meta-value {
	font-size: 11px;
	letter-spacing: 0.12em;
	color: rgba(244, 241, 234, 0.85);
}

.cvt-gyro-btn {
	display: block;
	margin: 14px auto 0;
	min-height: 44px;
	padding: 10px 22px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 999px;
	background: var(--cvt-paper);
	color: var(--cvt-muted);
	font-family: var(--cvt-font-body);
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color 0.3s var(--cvt-ease), border-color 0.3s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-gyro-btn:hover {
	border-color: var(--cvt-gold-deep);
	color: var(--cvt-gold-deep);
}

/* --------------------------------------------------------------------------
   ATELIER PREVIEW — vertical luxury timeline
   -------------------------------------------------------------------------- */

.cvt-atelier {
	margin: 0 0 40px;
	padding: clamp(20px, 4vw, 32px);
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
}

.cvt-atelier--compact {
	margin-bottom: 0;
}

.cvt-atelier__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 26px;
}

.cvt-atelier__title {
	margin: 0 0 6px;
	font-family: var(--cvt-font-display);
	font-size: clamp(20px, 4.5vw, 26px);
	font-weight: 500;
	color: var(--cvt-ink);
}

.cvt-atelier__thumbs {
	display: flex;
	flex: 0 0 auto;
}

.cvt-atelier__thumb {
	display: block;
	width: 46px;
	height: 60px;
	margin-left: -12px;
	border: 1px solid var(--cvt-paper);
	border-radius: 2px;
	overflow: hidden;
	background: #efede8;
	box-shadow: 0 8px 18px -10px rgba(11, 11, 13, 0.35);
}

.cvt-atelier__thumb:first-child {
	margin-left: 0;
}

.cvt-atelier__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cvt-atelier__terminated {
	margin: 0;
	font-size: 13px;
	line-height: 1.7;
	color: var(--cvt-muted);
}

.cvt-tl {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cvt-tl::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 7px;
	width: 1px;
	background: var(--cvt-line);
}

.cvt-tl__step {
	position: relative;
	padding: 0 0 26px 34px;
	margin: 0;
	list-style: none;
}

.cvt-tl__step:last-child {
	padding-bottom: 0;
}

.cvt-tl__node {
	position: absolute;
	top: 3px;
	left: 0;
	width: 15px;
	height: 15px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 50%;
	background: var(--cvt-paper);
}

.cvt-tl__step.is-done .cvt-tl__node {
	border-color: var(--cvt-gold);
	background: var(--cvt-gold);
}

.cvt-tl__step.is-current .cvt-tl__node {
	border-color: var(--cvt-gold-deep);
}

.cvt-tl__step.is-current .cvt-tl__node::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--cvt-gold);
	animation: cvt-pulse 2.2s var(--cvt-ease) infinite;
}

@keyframes cvt-pulse {
	0%,
	100% {
		transform: scale(0.65);
		opacity: 0.65;
	}
	50% {
		transform: scale(1);
		opacity: 1;
	}
}

.cvt-tl__step.is-next {
	opacity: 0.45;
}

.cvt-tl__label {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cvt-ink);
}

.cvt-tl__desc {
	margin: 0 0 4px;
	font-size: 12.5px;
	line-height: 1.65;
	color: var(--cvt-muted);
}

.cvt-tl__date {
	margin: 0;
	font-size: 10.5px;
	letter-spacing: 0.1em;
	color: var(--cvt-gold-deep);
}

.cvt-atelier__open {
	display: inline-block;
	margin-top: 20px;
}

/* --------------------------------------------------------------------------
   THE STYLE VAULT
   -------------------------------------------------------------------------- */

.cvt-vault__head {
	margin-bottom: 30px;
}

.cvt-vault__updated {
	margin-top: 10px;
}

.cvt-unit-seg {
	display: inline-grid;
	grid-template-columns: 1fr 1fr;
	margin-bottom: 28px;
	padding: 4px;
	border: 1px solid var(--cvt-line);
	border-radius: 999px;
	background: var(--cvt-paper);
}

.cvt-unit-seg__btn {
	min-height: 40px;
	padding: 6px 22px;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--cvt-muted);
	font-family: var(--cvt-font-body);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.3s var(--cvt-ease), color 0.3s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-unit-seg__btn.is-on {
	background: var(--cvt-ink);
	color: var(--cvt-paper-soft);
}

.cvt-vault__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 24px;
}

.cvt-unit-echo {
	margin-left: 6px;
	color: var(--cvt-gold-deep);
	letter-spacing: 0.1em;
	text-transform: none;
}

.cvt-vault__status:empty {
	display: none;
}

.cvt-vault__status {
	margin-top: 18px;
}

/* --------------------------------------------------------------------------
   STYLE PASSPORT — Overview summary card ( Luxury Handbags AI Stylist integration)
   -------------------------------------------------------------------------- */

.cvt-passport {
	margin: 0 0 56px;
	padding: clamp(20px, 4vw, 32px);
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background:
		radial-gradient(360px 160px at 100% 0%, var(--cvt-gold-faint), transparent 70%),
		var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
}

.cvt-passport__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
}

.cvt-passport__intro {
	min-width: 0;
}

.cvt-passport__meter {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
	flex: 0 0 auto;
	min-width: 96px;
}

.cvt-passport__pct {
	font-family: var(--cvt-font-display);
	font-size: 32px;
	font-weight: 500;
	line-height: 1;
	color: var(--cvt-ink);
}

.cvt-passport__pct small {
	margin-left: 2px;
	font-size: 15px;
	color: var(--cvt-gold-deep);
}

.cvt-passport__meter-track {
	display: block;
	width: 96px;
	height: 2px;
	background: var(--cvt-line);
	overflow: hidden;
}

.cvt-passport__meter-fill {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--cvt-gold-deep), var(--cvt-gold));
	transition: width 0.6s var(--cvt-ease);
}

.cvt-passport__meter-label {
	font-size: 8.5px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--cvt-faint);
}

.cvt-passport__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 14px;
}

.cvt-passport__chip {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: 5px 14px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 999px;
	background: var(--cvt-paper-soft);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cvt-ink);
}

.cvt-passport__sizes {
	margin: 0 0 8px;
	font-size: 12.5px;
	letter-spacing: 0.06em;
	color: var(--cvt-muted);
}

.cvt-passport__empty {
	margin-bottom: 8px;
}

.cvt-passport__cta {
	width: auto;
	min-height: 46px;
	margin-top: 12px;
	padding: 12px 26px;
}

.cvt-passport__chips:empty {
	display: none;
}

/* ---- accordion drawers ---- */

.cvt-acc {
	margin-top: 20px;
	border-top: 1px solid var(--cvt-line);
}

.cvt-acc__item {
	border-bottom: 1px solid var(--cvt-line);
}

.cvt-acc__btn {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 56px;
	padding: 16px 2px;
	border: 0;
	background: none;
	color: var(--cvt-ink);
	cursor: pointer;
	text-align: left;
	-webkit-tap-highlight-color: transparent;
}

.cvt-acc__title {
	font-family: var(--cvt-font-body);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cvt-acc__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	margin-left: auto;
	padding: 0 8px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 999px;
	font-size: 10px;
	font-weight: 500;
	color: var(--cvt-muted);
}

.cvt-acc__chev {
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	margin-right: 4px;
	border-right: 1px solid var(--cvt-line-strong);
	border-bottom: 1px solid var(--cvt-line-strong);
	transform: rotate(45deg);
	transition: transform 0.35s var(--cvt-ease);
}

.cvt-acc__item.is-open .cvt-acc__chev {
	transform: rotate(225deg);
}

.cvt-acc__panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.45s var(--cvt-ease);
}

.cvt-acc__item.is-open .cvt-acc__panel {
	grid-template-rows: 1fr;
}

.cvt-acc__inner {
	overflow: hidden;
	min-height: 0;
}

.cvt-acc__pad {
	padding: 2px 2px 22px;
}

.cvt-acc__pad .cvt-hint {
	margin: 0 0 14px;
}

/* ---- brand typeahead ---- */

.cvt-typeahead {
	position: relative;
	margin-bottom: 14px;
}

.cvt-typeahead__list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 30;
	max-height: 224px;
	overflow-y: auto;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	box-shadow: 0 18px 40px -22px rgba(11, 11, 13, 0.3);
}

.cvt-typeahead__opt {
	display: block;
	width: 100%;
	min-height: 44px;
	padding: 12px 16px;
	border: 0;
	border-bottom: 1px solid var(--cvt-line);
	background: none;
	color: var(--cvt-ink);
	font-family: var(--cvt-font-body);
	font-size: 13px;
	text-align: left;
	cursor: pointer;
	transition: background 0.2s var(--cvt-ease);
}

.cvt-typeahead__opt:last-child {
	border-bottom: 0;
}

.cvt-typeahead__opt:hover {
	background: var(--cvt-gold-faint);
}

.cvt-typeahead__none {
	margin: 0;
	padding: 14px 16px;
	font-size: 12px;
	color: var(--cvt-muted);
}

/* removable chip (button form of the chip) */
.cvt-passport__chip--x {
	gap: 8px;
	border: 1px solid var(--cvt-line-strong);
	background: var(--cvt-paper-soft);
	font-family: var(--cvt-font-body);
	cursor: pointer;
	min-height: 34px;
	transition: border-color 0.25s var(--cvt-ease), color 0.25s var(--cvt-ease);
}

.cvt-passport__chip--x:hover {
	border-color: var(--cvt-error);
}

.cvt-chip-x {
	margin-left: 6px;
	font-size: 13px;
	line-height: 1;
	color: var(--cvt-faint);
}

.cvt-passport__chip--x:hover .cvt-chip-x {
	color: var(--cvt-error);
}

/* ---- "people you dress toward" cover: fanned deck invitation ---- */

.cvt-pp-hero {
	padding: 28px 18px 34px;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background:
		radial-gradient(420px 220px at 50% 0%, var(--cvt-gold-faint), transparent 75%),
		var(--cvt-paper-soft);
	text-align: center;
}

.cvt-fan {
	position: relative;
	max-width: 320px;
	height: 158px;
	margin: 4px auto 22px;
}

.cvt-fan__card {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 84px;
	aspect-ratio: 3 / 4.1;
	border: 1px solid rgba(11, 11, 13, 0.18);
	border-radius: 10px;
	overflow: hidden;
	background: #efede8;
	box-shadow: 0 16px 30px -16px rgba(11, 11, 13, 0.5);
	transform-origin: 50% 140%;
}

.cvt-fan__card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cvt-fan__card--0 {
	transform: translate(-50%, -55%) rotate(-18deg);
	z-index: 1;
}

.cvt-fan__card--1 {
	transform: translate(-50%, -55%) rotate(-9deg);
	z-index: 2;
}

.cvt-fan__card--2 {
	transform: translate(-50%, -58%);
	z-index: 5;
}

.cvt-fan__card--3 {
	transform: translate(-50%, -55%) rotate(9deg);
	z-index: 2;
}

.cvt-fan__card--4 {
	transform: translate(-50%, -55%) rotate(18deg);
	z-index: 1;
}

.cvt-fan__card.is-front {
	width: 96px;
	border: 2px solid var(--cvt-gold-deep);
	box-shadow: 0 22px 40px -18px rgba(11, 11, 13, 0.55);
}

.cvt-fan__name {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 18px 6px 8px;
	background: linear-gradient(transparent, rgba(11, 11, 13, 0.72));
	color: #ffffff;
	font-family: var(--cvt-font-body);
	font-size: 8px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.4;
}

.cvt-pp-hero__eyebrow {
	margin: 0 0 10px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--cvt-gold-deep);
}

.cvt-pp-hero__eyebrow span {
	margin-right: 4px;
	letter-spacing: 0;
}

.cvt-pp-hero__title {
	margin: 0 0 10px;
	font-size: clamp(24px, 5.6vw, 32px);
	font-weight: 500;
	line-height: 1.15;
	color: var(--cvt-ink);
}

.cvt-pp-hero__sub {
	max-width: 400px;
	margin: 0 auto 22px;
	font-size: 13px;
	line-height: 1.65;
	color: var(--cvt-muted);
}

.cvt-pp-hero__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	padding: 14px 24px;
	border: 1px solid var(--cvt-ink);
	border-radius: 999px;
	background: var(--cvt-ink);
	color: var(--cvt-paper-soft);
	font-family: var(--cvt-font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.3s var(--cvt-ease), color 0.3s var(--cvt-ease), transform 0.15s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-pp-hero__btn:hover {
	background: transparent;
	color: var(--cvt-ink);
}

.cvt-pp-hero__btn:active {
	transform: scale(0.985);
}

/* ---- style icon grid ---- */

.cvt-inspos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

@media (min-width: 768px) {
	.cvt-inspos {
		grid-template-columns: repeat(6, 1fr);
	}
}

.cvt-inspo {
	position: relative;
	padding: 8px 8px 10px;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	text-align: center;
	cursor: pointer;
	transition: border-color 0.3s var(--cvt-ease), box-shadow 0.3s var(--cvt-ease), transform 0.3s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-inspo:hover {
	border-color: var(--cvt-gold-soft);
	transform: translateY(-2px);
}

.cvt-inspo.is-picked {
	border-color: var(--cvt-gold-deep);
	box-shadow: 0 0 0 1px var(--cvt-gold-deep);
}

.cvt-inspo__img {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 4;
	margin-bottom: 8px;
	border-radius: 3px;
	overflow: hidden;
	background: #efede8;
}

.cvt-inspo__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.92);
}

.cvt-inspo__fallback {
	font-size: 22px;
	font-style: italic;
	color: var(--cvt-gold-deep);
}

.cvt-inspo__name {
	display: block;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.35;
	color: var(--cvt-ink);
}

.cvt-inspo__check {
	position: absolute;
	top: 6px;
	right: 6px;
	display: none;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--cvt-gold-deep);
	color: #ffffff;
	font-size: 10px;
	line-height: 1;
}

.cvt-inspo.is-picked .cvt-inspo__check {
	display: inline-flex;
}

/* ---- closet budget ---- */

.cvt-budget-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
}

.cvt-budget-row__label {
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--cvt-muted);
}

.cvt-budget-seg {
	display: inline-grid;
	grid-template-columns: repeat(4, 1fr);
	padding: 3px;
	border: 1px solid var(--cvt-line);
	border-radius: 999px;
	background: var(--cvt-paper);
}

.cvt-budget-seg button {
	min-width: 50px;
	min-height: 38px;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--cvt-muted);
	font-family: var(--cvt-font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.05em;
	cursor: pointer;
	transition: background 0.25s var(--cvt-ease), color 0.25s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-budget-seg button.is-on {
	background: var(--cvt-ink);
	color: var(--cvt-paper-soft);
}

.cvt-price-range {
	display: flex;
	gap: 20px;
}

.cvt-price-range .cvt-field {
	flex: 1;
	margin-bottom: 0;
}

/* ---- style channels (taste imports from the AI Stylist) ---- */

.cvt-channels {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cvt-channel {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 0;
	margin: 0;
	border-bottom: 1px solid var(--cvt-line);
}

.cvt-channel:last-child {
	border-bottom: 0;
	padding-bottom: 4px;
}

.cvt-channel__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--cvt-line);
	border-radius: 50%;
	background: var(--cvt-paper);
	color: var(--cvt-gold-deep);
}

.cvt-channel__icon svg {
	width: 20px;
	height: 20px;
}

.cvt-channel__meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	flex: 1;
}

.cvt-channel__title {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cvt-ink);
}

.cvt-channel__sub {
	font-size: 12px;
	line-height: 1.6;
	color: var(--cvt-muted);
}

.cvt-channel__status {
	font-size: 11px;
	line-height: 1.5;
	color: var(--cvt-gold-deep);
}

.cvt-channel__status:empty {
	display: none;
}

.cvt-channel__status.is-error {
	color: var(--cvt-error);
}

.cvt-channel__connect {
	flex: 0 0 auto;
	align-self: center;
	min-height: 44px;
	min-width: 44px;
	padding: 12px 20px;
	border: 1px solid var(--cvt-line-strong);
	border-radius: 999px;
	background: var(--cvt-paper);
	color: var(--cvt-ink);
	font-family: var(--cvt-font-body);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: border-color 0.25s var(--cvt-ease), color 0.25s var(--cvt-ease);
	-webkit-tap-highlight-color: transparent;
}

.cvt-channel__connect:hover {
	border-color: var(--cvt-gold-deep);
	color: var(--cvt-gold-deep);
}

.cvt-channel__connect[disabled] {
	opacity: 0.55;
	cursor: default;
}

.cvt-channel--note .cvt-channel__icon {
	color: var(--cvt-faint);
}

/* ---- actions row ---- */

.cvt-passport__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 22px;
}

.cvt-passport__commit {
	width: auto;
	min-height: 48px;
	padding: 13px 28px;
}

.cvt-passport__status {
	margin: 14px 0 0;
}

/* Harmonize the AI Stylist passport studio (style-dna endpoint) when it
   renders inside the porcelain shell. Light touch only — the plugin owns
   its own UI. */
.woocommerce-account div.woocommerce .cais-sd {
	color: var(--cvt-ink);
}

.woocommerce-account div.woocommerce .cais-sd-title {
	font-family: var(--cvt-font-display);
}

/* --------------------------------------------------------------------------
   WOOCOMMERCE NATIVE ELEMENTS, RESTYLED
   -------------------------------------------------------------------------- */

.woocommerce-account div.woocommerce .woocommerce-message,
.woocommerce-account div.woocommerce .woocommerce-info,
.woocommerce-account div.woocommerce .woocommerce-error {
	margin: 0 0 28px;
	padding: 14px 18px;
	border: 1px solid var(--cvt-line);
	border-left: 2px solid var(--cvt-gold);
	border-radius: 0;
	background: var(--cvt-paper);
	color: var(--cvt-ink);
	font-size: 13px;
	line-height: 1.6;
	list-style: none;
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
}

.woocommerce-account div.woocommerce .woocommerce-error {
	border-left-color: var(--cvt-error);
}

.woocommerce-account div.woocommerce .woocommerce-error li {
	margin: 0;
	list-style: none;
}

.woocommerce-account div.woocommerce table.shop_table {
	width: 100%;
	margin: 0 0 32px;
	border: 0;
	border-collapse: collapse;
	background: transparent;
	font-size: 13.5px;
}

.woocommerce-account div.woocommerce table.shop_table th {
	padding: 12px 10px;
	border: 0;
	border-bottom: 1px solid var(--cvt-line-strong);
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-align: left;
	color: var(--cvt-faint);
	background: transparent;
}

.woocommerce-account div.woocommerce table.shop_table td {
	padding: 16px 10px;
	border: 0;
	border-bottom: 1px solid var(--cvt-line);
	color: var(--cvt-ink);
	background: transparent;
}

.woocommerce-account div.woocommerce table.shop_table a {
	color: var(--cvt-ink);
}

/* Mobile-first: the 390px base renders each acquisition as a stacked
   porcelain card. The columnar table is the desktop enhancement. */
.woocommerce-account div.woocommerce table.shop_table_responsive,
.woocommerce-account div.woocommerce table.shop_table_responsive tbody {
	display: block;
	width: 100%;
}

.woocommerce-account div.woocommerce table.shop_table_responsive thead {
	display: none;
}

.woocommerce-account div.woocommerce table.shop_table_responsive tr {
	display: block;
	margin-bottom: 14px;
	padding: 8px 16px;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
}

.woocommerce-account div.woocommerce table.shop_table_responsive td {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cvt-line);
	text-align: right;
}

.woocommerce-account div.woocommerce table.shop_table_responsive td:last-child {
	border-bottom: 0;
}

.woocommerce-account div.woocommerce table.shop_table_responsive td::before {
	content: attr(data-title);
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cvt-faint);
	text-align: left;
}

@media (min-width: 641px) {
	.woocommerce-account div.woocommerce table.shop_table_responsive {
		display: table;
	}

	.woocommerce-account div.woocommerce table.shop_table_responsive thead {
		display: table-header-group;
	}

	.woocommerce-account div.woocommerce table.shop_table_responsive tbody {
		display: table-row-group;
	}

	.woocommerce-account div.woocommerce table.shop_table_responsive tr {
		display: table-row;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.woocommerce-account div.woocommerce table.shop_table_responsive td {
		display: table-cell;
		padding: 16px 10px;
		border-bottom: 1px solid var(--cvt-line);
		text-align: left;
	}

	.woocommerce-account div.woocommerce table.shop_table_responsive td:last-child {
		border-bottom: 1px solid var(--cvt-line);
	}

	.woocommerce-account div.woocommerce table.shop_table_responsive td::before {
		content: none;
	}
}

/* Delivery Concierge address cards. */
.woocommerce-account div.woocommerce .woocommerce-Addresses {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	width: 100%;
}

@media (min-width: 768px) {
	.woocommerce-account div.woocommerce .woocommerce-Addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-account div.woocommerce .woocommerce-Address {
	float: none;
	width: 100%;
	max-width: none;
	padding: 24px;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.04);
}

.woocommerce-account div.woocommerce .woocommerce-Address-title h3 {
	font-family: var(--cvt-font-display);
	font-size: 20px;
	font-weight: 500;
	color: var(--cvt-ink);
}

.woocommerce-account div.woocommerce .woocommerce-Address address {
	font-style: normal;
	font-size: 13.5px;
	line-height: 1.8;
	color: var(--cvt-muted);
}

/* Identity & Blueprint fieldsets. */
.woocommerce-account div.woocommerce fieldset {
	margin: 32px 0;
	padding: 24px;
	border: 1px solid var(--cvt-line);
	border-radius: 4px;
	background: var(--cvt-paper);
}

.woocommerce-account div.woocommerce fieldset legend {
	padding: 0 10px;
	font-family: var(--cvt-font-display);
	font-size: 19px;
	color: var(--cvt-ink);
	background: transparent;
}

.woocommerce-account div.woocommerce form .form-row label {
	display: block;
	margin-bottom: 4px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cvt-muted);
}

.woocommerce-account div.woocommerce form .form-row {
	margin-bottom: 22px;
}

/* --------------------------------------------------------------------------
   DESKTOP REFINEMENTS
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {
	.cvt-tiles {
		grid-template-columns: repeat(3, 1fr);
	}

	.cvt-vault__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.cvt-auth {
		min-height: 0;
	}

	.cvt-auth .cvt-panels {
		margin-top: 0;
	}
}

/* --------------------------------------------------------------------------
   REDUCED MOTION
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.woocommerce-account div.woocommerce *,
	.woocommerce-account div.woocommerce *::before,
	.woocommerce-account div.woocommerce *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.cvt-pass {
		transform: none !important;
	}

	.cvt-pass__sheen,
	.cvt-pass__glow {
		display: none;
	}
}

/* ==========================================================================
   WOODMART / WOOCOMMERCE THEME HARDENING (must win the cascade)
   The WoodMart theme aggressively styles <button> and input.input-text,
   which (a) filled my fields with grey boxes, (b) painted over the segmented
   indicator so active white text sat on white, and (c) restyled my buttons.
   These rules are scoped to the account body and use !important deliberately
   to override theme specificity. Mobile-first; desktop refinements follow.
   ========================================================================== */

/* ---- Segmented control: indicator must show; active text legible ---- */
body.woocommerce-account .cvt-seg {
	background: rgba(255, 255, 255, 0.9) !important;
	border: 1px solid var(--cvt-line) !important;
	box-shadow: 0 6px 24px -16px rgba(0, 0, 0, 0.25) !important;
}

body.woocommerce-account .cvt-seg__btn {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--cvt-muted) !important;
	text-shadow: none !important;
	position: relative !important;
	z-index: 2 !important;
}

body.woocommerce-account .cvt-seg__btn.is-on {
	color: var(--cvt-paper-soft) !important;
}

body.woocommerce-account .cvt-seg__indicator {
	background: var(--cvt-ink) !important;
	z-index: 1 !important;
	opacity: 1 !important;
	display: block !important;
}

/* ---- Inputs: kill WoodMart's filled grey boxes; hairline underline only ---- */
body.woocommerce-account div.woocommerce .cvt-input,
body.woocommerce-account .cvt-input,
body.woocommerce-account .cvt-input.input-text,
body.woocommerce-account input.cvt-input,
body.woocommerce-account textarea.cvt-input {
	-webkit-appearance: none !important;
	appearance: none !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--cvt-line-strong) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--cvt-ink) !important;
	min-height: 50px !important;
	padding: 12px 0 !important;
	margin: 0 !important;
	font-size: 16px !important;
	line-height: 1.4 !important;
	width: 100% !important;
}

body.woocommerce-account .cvt-control--password .cvt-input {
	padding-right: 52px !important;
}

body.woocommerce-account .cvt-input:focus {
	border-bottom-color: var(--cvt-gold-deep) !important;
	outline: none !important;
	box-shadow: none !important;
}

body.woocommerce-account .cvt-input::placeholder {
	color: var(--cvt-faint) !important;
	opacity: 1 !important;
}

/* The reveal-eye is a control, never a themed button box */
body.woocommerce-account .cvt-eye {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	min-height: 0 !important;
	width: 44px !important;
	height: 44px !important;
}

/* ---- Panels: display-based (RUCSS-proof) — only the active one renders.
       The simple .is-active selector survives WP Rocket's unused-CSS removal,
       and display:none makes the register/reset overlap structurally
       impossible (this was the stray grey box + eye under Access Code). ---- */
body.woocommerce-account .cvt-panels {
	display: block !important;
	position: relative !important;
}

body.woocommerce-account .cvt-panel {
	display: none !important;
	grid-area: auto !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	pointer-events: auto !important;
}

body.woocommerce-account .cvt-panel.is-active {
	display: block !important;
	animation: cvt-panel-fade 0.35s var(--cvt-ease);
}

@keyframes cvt-panel-fade {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ---- WoodMart account layout: collapse the 2-column grid to full width ----
       WoodMart wraps the account in .wd-my-account-wrapper.wd-grid-g with a
       .wd-my-account-sidebar column (~199px), cramping the nav and narrowing
       content (screenshot: "MY ACCOUNT / OVERVIEW / ACQ" stuck in a sidebar).
       Force single-column full width and drop the native title. */
body.woocommerce-account .wd-my-account-wrapper,
body.woocommerce-account .wd-my-account-wrapper.wd-grid-g {
	display: block !important;
	grid-template-columns: none !important;
	grid-gap: 0 !important;
	gap: 0 !important;
}

body.woocommerce-account .wd-my-account-sidebar,
body.woocommerce-account .wd-my-account-sidebar.wd-grid-col {
	width: 100% !important;
	max-width: none !important;
	flex: 0 0 100% !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	float: none !important;
	position: static !important;
}

body.woocommerce-account .woocommerce-MyAccount-title {
	display: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ---- Buttons: keep the obsidian / sharp-corner language over WoodMart ---- */
body.woocommerce-account div.woocommerce .cvt-btn,
body.woocommerce-account .cvt-btn {
	background: var(--cvt-ink) !important;
	color: var(--cvt-paper-soft) !important;
	border: 1px solid var(--cvt-ink) !important;
	border-radius: 2px !important;
	box-shadow: none !important;
	text-shadow: none !important;
	min-height: 54px !important;
	letter-spacing: 0.2em !important;
}

body.woocommerce-account div.woocommerce .cvt-btn:hover,
body.woocommerce-account .cvt-btn:hover {
	background: transparent !important;
	color: var(--cvt-ink) !important;
}

body.woocommerce-account div.woocommerce .cvt-btn--ghost,
body.woocommerce-account .cvt-btn--ghost {
	background: transparent !important;
	color: var(--cvt-ink) !important;
	border-color: var(--cvt-line-strong) !important;
}

body.woocommerce-account div.woocommerce .cvt-btn--ghost:hover,
body.woocommerce-account .cvt-btn--ghost:hover {
	border-color: var(--cvt-gold-deep) !important;
	color: var(--cvt-gold-deep) !important;
}

/* ---- Identity Pass (passkey) button — prominent, sharp, legible ---- */
body.woocommerce-account #cvt-pk-login,
body.woocommerce-account .cvt-pk-btn {
	background: var(--cvt-paper) !important;
	color: var(--cvt-ink) !important;
	border: 1px solid var(--cvt-ink) !important;
	border-radius: 2px !important;
	min-height: 54px !important;
	box-shadow: none !important;
}

body.woocommerce-account #cvt-pk-login:hover,
body.woocommerce-account .cvt-pk-btn:hover {
	border-color: var(--cvt-gold-deep) !important;
	color: var(--cvt-gold-deep) !important;
	background: var(--cvt-paper) !important;
}

body.woocommerce-account #cvt-pk-login .cvt-pk-btn__icon {
	color: var(--cvt-gold-deep) !important;
}

/* ---- Labels / helper text always ink-on-porcelain (legibility) ---- */
body.woocommerce-account .cvt-label,
body.woocommerce-account .cvt-check__label {
	color: var(--cvt-muted) !important;
}

body.woocommerce-account .cvt-h1,
body.woocommerce-account .cvt-h2,
body.woocommerce-account .cvt-mood__title,
body.woocommerce-account .cvt-atelier__title,
body.woocommerce-account .cvt-fitplaque__code {
	color: var(--cvt-ink) !important;
}

/* Strip WoodMart link underlines/colours from our links, then reapply ours */
body.woocommerce-account .cvt-link {
	color: var(--cvt-ink) !important;
}
body.woocommerce-account .cvt-link:hover {
	color: var(--cvt-gold-deep) !important;
}

/* WoodMart sometimes injects its own account headings/return-to-shop —
   hide native account chrome that would duplicate the suite. */
body.woocommerce-account .woocommerce-MyAccount-navigation:not(.cvt-nav),
body.woocommerce-account .wd-reset-pass-msg,
body.woocommerce-account .woocommerce-account-fields__notice {
	display: none !important;
}

/* ---- Mobile-first thumb-zone + spacing refinements (base = 390px) ---- */
body.woocommerce-account .cvt-auth {
	padding-left: 2px;
	padding-right: 2px;
}

body.woocommerce-account .cvt-pk-or {
	margin: 20px 0 16px !important;
}

@media (min-width: 1024px) {
	body.woocommerce-account .cvt-auth {
		max-width: 460px;
	}
	body.woocommerce-account #cvt-pk-login,
	body.woocommerce-account .cvt-pk-btn {
		width: 100% !important;
		min-width: 0 !important;
	}
}

/* ==========================================================================
   v1.1.3 UX/UI POLISH (mobile-first, desktop enhanced)
   ========================================================================== */

/* Segmented control: graceful 2-line labels, taller pill, centred text */
body.woocommerce-account .cvt-seg {
	padding: 5px !important;
}
body.woocommerce-account .cvt-seg__btn {
	min-height: 52px !important;
	padding: 8px 8px !important;
	font-size: 10px !important;
	letter-spacing: 0.1em !important;
	line-height: 1.35 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}
body.woocommerce-account .cvt-seg__indicator {
	top: 5px !important;
	bottom: 5px !important;
	width: calc(50% - 5px) !important;
}

/* Auth column: comfortable reading width, generous thumb-zone bottom */
body.woocommerce-account .cvt-auth {
	max-width: 440px;
	margin: 0 auto;
	padding-bottom: 40px;
}
body.woocommerce-account .cvt-auth__brand {
	padding-top: clamp(16px, 5vh, 48px);
}

/* Field rhythm */
body.woocommerce-account .cvt-field {
	margin-bottom: 20px;
}

/* Identity Pass block — clearly separated, prominent, thumb-reachable */
body.woocommerce-account .cvt-pk-or {
	margin: 24px 0 16px !important;
}
body.woocommerce-account #cvt-pk-login {
	letter-spacing: 0.16em !important;
	gap: 12px !important;
}

/* Dashboard now spans full width — let the suite breathe on desktop */
@media (min-width: 1024px) {
	body.woocommerce-account .cvt-tiles {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}
	body.woocommerce-account .cvt-dash__head {
		margin-bottom: 44px;
	}
	body.woocommerce-account .cvt-pass-scene {
		max-width: 460px;
	}
	body.woocommerce-account .cvt-mood,
	body.woocommerce-account .cvt-passport,
	body.woocommerce-account .cvt-atelier {
		padding: 36px;
	}
}

/* Endpoint pages: chip-bar nav reads as a horizontal rail full width */
body.woocommerce-account .cvt-nav {
	width: 100% !important;
	margin-bottom: 28px !important;
}
body.woocommerce-account .cvt-nav__list {
	flex-wrap: nowrap !important;
}

/* Native WooCommerce notices restyled, never raw */
body.woocommerce-account .woocommerce-notices-wrapper:empty {
	display: none !important;
}

/* ---- v1.1.4: reset/lost-password screen + segmented safety ---- */
body.woocommerce-account .cvt-seg__indicator.is-hidden {
	display: none !important;
}
body.woocommerce-account .cvt-auth--reset {
	padding-top: clamp(20px, 6vh, 64px);
}
body.woocommerce-account .cvt-auth--reset .cvt-form {
	margin-top: 8px;
}

/* ==========================================================================
   v1.1.5 — nav-chip contrast, segmented containment, FaceID onboarding
   ========================================================================== */

/* Endpoint nav chips: force the pill shape + readable colours over WoodMart.
   (Active was computing to white text on light-grey — unreadable.) */
body.woocommerce-account .cvt-nav__list .cvt-nav__link,
body.woocommerce-account .woocommerce-MyAccount-navigation li a.cvt-nav__link {
	background: var(--cvt-paper) !important;
	color: var(--cvt-ink) !important;
	border: 1px solid var(--cvt-line-strong) !important;
	border-radius: 999px !important;
	min-height: 44px !important;
	padding: 0 18px !important;
}

body.woocommerce-account .cvt-nav__item.is-active .cvt-nav__link,
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a.cvt-nav__link {
	background: var(--cvt-ink) !important;
	color: var(--cvt-paper-soft) !important;
	border-color: var(--cvt-ink) !important;
	border-radius: 999px !important;
}

body.woocommerce-account .cvt-nav__item.is-active .cvt-nav__link .cvt-icon,
body.woocommerce-account .cvt-nav__item.is-active .cvt-nav__link span {
	color: var(--cvt-paper-soft) !important;
}

body.woocommerce-account .cvt-nav__link:hover {
	border-color: var(--cvt-gold-deep) !important;
	color: var(--cvt-ink) !important;
}
body.woocommerce-account .cvt-nav__item.is-active .cvt-nav__link:hover {
	color: var(--cvt-paper-soft) !important;
}

/* Kill any WoodMart-injected nav icons/markers (the stray ○ / person glyph) */
body.woocommerce-account .woocommerce-MyAccount-navigation a::before,
body.woocommerce-account .woocommerce-MyAccount-navigation a::after {
	content: none !important;
	display: none !important;
}

/* Segmented control: clip the indicator so the pill can never poke out */
body.woocommerce-account .cvt-seg {
	overflow: hidden !important;
}

/* ---- FaceID / Identity Pass onboarding card (dashboard, passkey-less users) ---- */
.cvt-pk-onboard {
	margin: 0 0 40px;
	padding: clamp(22px, 5vw, 34px);
	border: 1px solid var(--cvt-ink);
	border-radius: 4px;
	background:
		radial-gradient(420px 200px at 100% 0%, var(--cvt-gold-faint), transparent 70%),
		var(--cvt-paper);
	box-shadow: 0 1px 2px rgba(11, 11, 13, 0.05);
}

.cvt-pk-onboard__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 14px;
	border: 1px solid var(--cvt-gold-soft);
	border-radius: 50%;
	color: var(--cvt-gold-deep);
}
.cvt-pk-onboard__icon svg {
	width: 24px;
	height: 24px;
}

.cvt-pk-onboard__title {
	margin: 0 0 8px;
	font-family: var(--cvt-font-display);
	font-size: clamp(22px, 5vw, 28px);
	font-weight: 500;
	line-height: 1.15;
	color: var(--cvt-ink);
}

.cvt-pk-onboard__sub {
	margin: 0 0 20px;
	max-width: 520px;
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--cvt-muted);
}

.cvt-pk-onboard .cvt-pk-btn {
	width: auto;
	min-width: 280px;
}

@media (max-width: 600px) {
	.cvt-pk-onboard .cvt-pk-btn {
		width: 100%;
		min-width: 0;
	}
}

.cvt-pk-onboard__dismiss {
	display: inline-block;
	margin-top: 14px;
	margin-left: 4px;
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--cvt-faint);
	background: none;
	border: 0;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Register panel: small note that FaceID can be enabled after joining */
.cvt-reg-hint {
	margin: 0 0 18px;
	padding: 10px 14px;
	border-left: 2px solid var(--cvt-gold);
	background: var(--cvt-gold-faint);
	font-size: 11.5px;
	line-height: 1.55;
	color: var(--cvt-muted);
}

/* Solid Identity Pass CTA (onboarding + Activate) stays obsidian, not white */
body.woocommerce-account .cvt-pk-btn--solid {
	background: var(--cvt-ink) !important;
	color: var(--cvt-paper-soft) !important;
	border: 1px solid var(--cvt-ink) !important;
}
body.woocommerce-account .cvt-pk-btn--solid:hover {
	background: transparent !important;
	color: var(--cvt-ink) !important;
}
body.woocommerce-account .cvt-pk-btn--solid .cvt-pk-btn__icon {
	color: var(--cvt-gold) !important;
}
body.woocommerce-account .cvt-pk-btn--solid:hover .cvt-pk-btn__icon {
	color: var(--cvt-gold-deep) !important;
}

/* ==========================================================================
   v1.1.6 — runway price legibility on dark cards + remove WoodMart's
   duplicate native account-nav grid
   ========================================================================== */

/* Hidden Runway price: the WooCommerce amount span was inheriting the theme's
   black, invisible on the obsidian card. Force light ivory on every part. */
body.woocommerce-account .cvt-runway__price,
body.woocommerce-account .cvt-runway__price .woocommerce-Price-amount,
body.woocommerce-account .cvt-runway__price .woocommerce-Price-amount bdi,
body.woocommerce-account .cvt-runway__price .woocommerce-Price-currencySymbol {
	color: rgba(244, 241, 234, 0.92) !important;
}
body.woocommerce-account .cvt-runway__price del,
body.woocommerce-account .cvt-runway__price del .woocommerce-Price-amount,
body.woocommerce-account .cvt-runway__price del bdi {
	color: rgba(244, 241, 234, 0.42) !important;
}
body.woocommerce-account .cvt-runway__price ins {
	text-decoration: none !important;
}

/* WoodMart renders its own account-nav card grid (.wd-my-account-links) on
   every account page — a duplicate of the suite's own navigation (Digital
   Styling Suite tiles on the dashboard, chip bar on endpoints). Remove it. */
body.woocommerce-account .wd-my-account-links,
body.woocommerce-account .wd-nav-my-acc,
body.woocommerce-account ul.wd-nav-my-acc {
	display: none !important;
}

/* The WoodMart sidebar column now only holds the suite chip bar (or nothing
   on the dashboard) — let it sit flush with no reserved width. */
body.woocommerce-account .wd-my-account-sidebar:empty {
	display: none !important;
	margin: 0 !important;
}

/* ==========================================================================
   v1.1.7 — auth spacing: separate the segmented control from the first
   field, and clear the fixed bottom-left widget under Identity Pass
   ========================================================================== */

/* The segmented toggle was sticky and sat right on top of the first field.
   Make it static with a clear gap below it. */
body.woocommerce-account .cvt-seg {
	position: static !important;
	margin: 0 0 32px !important;
}

/* Remove the auto-push so panel fields keep a consistent gap under the toggle */
body.woocommerce-account .cvt-auth .cvt-panels {
	margin-top: 0 !important;
}

/* First field in each panel: a touch of breathing room from the toggle */
body.woocommerce-account .cvt-panel .cvt-form > .cvt-field:first-of-type,
body.woocommerce-account .cvt-panel .cvt-reg-hint {
	margin-top: 2px;
}

/* Bottom clearance so the Identity Pass button can scroll clear of the
   fixed bottom-left translate/security widget instead of sitting under it. */
body.woocommerce-account div.woocommerce {
	padding-bottom: 156px !important;
}
body.woocommerce-account .cvt-auth {
	padding-bottom: 56px;
}

/* Keep the Identity Pass button painting above any overlapping fixed widget */
body.woocommerce-account #cvt-pk-login,
body.woocommerce-account .cvt-pk-or {
	position: relative;
	z-index: 3;
}

/* ==========================================================================
   v1.1.8 — password reveal-eye alignment + hide native autofill grey box;
   Identity Pass leads the login panel (biometric-first)
   ========================================================================== */

/* Force the reveal-eye to the right-centre of the field, immune to RUCSS
   stripping the base rule or WoodMart resetting button position. */
body.woocommerce-account .cvt-control--password {
	position: relative !important;
}
body.woocommerce-account .cvt-control--password .cvt-eye {
	position: absolute !important;
	top: 50% !important;
	right: 0 !important;
	left: auto !important;
	bottom: auto !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
}

/* Hide the native iOS/Safari/Edge password reveal + autofill buttons — that
   was the stray grey box. Keychain still autofills via the keyboard bar. */
body.woocommerce-account .cvt-input::-webkit-credentials-auto-fill-button,
body.woocommerce-account .cvt-input::-webkit-contacts-auto-fill-button,
body.woocommerce-account .cvt-input::-webkit-strong-password-auto-fill-button,
body.woocommerce-account .cvt-input::-webkit-caps-lock-indicator,
body.woocommerce-account .cvt-input::-ms-reveal,
body.woocommerce-account .cvt-input::-ms-clear {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	pointer-events: none !important;
}

/* Biometric-first spacing now that Identity Pass sits above the form */
body.woocommerce-account #cvt-pk-login {
	margin: 0 0 4px !important;
}
body.woocommerce-account .cvt-pk-or {
	margin: 18px 0 22px !important;
}

/* ==========================================================================
   v1.1.9 — kill the native password autofill buttons (the grey box on mobile
   / grey line across fields on desktop), hide the reCAPTCHA badge that
   collides with the login UI, and constrain the desktop auth width.
   These target generic inputs, so the suite CSS is excluded from RUCSS
   (see bootstrap) to survive guest-page optimisation.
   ========================================================================== */

body.woocommerce-account input::-webkit-credentials-auto-fill-button,
body.woocommerce-account input::-webkit-contacts-auto-fill-button,
body.woocommerce-account input::-webkit-strong-password-auto-fill-button,
body.woocommerce-account input::-webkit-strong-password-and-autofill-button,
body.woocommerce-account input::-webkit-caps-lock-indicator,
body.woocommerce-account input::-webkit-textfield-decoration-container,
body.woocommerce-account input::-ms-reveal,
body.woocommerce-account input::-ms-clear {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
	width: 0 !important;
	max-width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	-webkit-margin-start: 0 !important;
	background: transparent !important;
}

/* reCAPTCHA v3 badge floats bottom-left and overlaps the login buttons. The
   suite's auth bypasses the reCAPTCHA authenticate gate, so on account pages
   the badge is hidden and replaced by the required text disclosure (template).*/
body.woocommerce-account .grecaptcha-badge {
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	z-index: -1 !important;
}

.cvt-recaptcha-note {
	margin: 18px 0 0;
	font-size: 10px;
	line-height: 1.6;
	color: var(--cvt-faint);
	text-align: center;
}
.cvt-recaptcha-note a {
	color: var(--cvt-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Desktop: keep the auth column to a tasteful centred width so the field
   underlines never stretch into long bare lines. */
@media (min-width: 768px) {
	body.woocommerce-account .cvt-auth {
		max-width: 420px !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* ==========================================================================
   v1.2.0 — definitive fix for the grey box + misaligned eye
   ========================================================================== */

/* (1) Restore right padding the eye needs. The generic .cvt-input shorthand
       `padding: 12px 0` was zeroing padding-right, so the eye overlapped the
       dots. This rule comes last, so it wins. */
body.woocommerce-account .cvt-control--password .cvt-input,
body.woocommerce-account .cvt-control--password input.cvt-input,
body.woocommerce-account .cvt-control--password input.cvt-input.input-text {
	padding-right: 52px !important;
}

/* (2) The grey box = the browser's native password autofill/reveal button.
       WebKit ignores display:none alone on this UA pseudo, so it must be
       paired with visibility:hidden AND zero size AND taken out of flow
       (position:absolute) so it can't add height that pushes the eye down.
       Keychain still autofills via the keyboard's QuickType bar. */
body.woocommerce-account input::-webkit-credentials-auto-fill-button,
body.woocommerce-account input::-webkit-contacts-auto-fill-button,
body.woocommerce-account input::-webkit-strong-password-auto-fill-button,
body.woocommerce-account input::-webkit-strong-password-and-autofill-button,
body.woocommerce-account input::-webkit-caps-lock-indicator,
body.woocommerce-account .cvt-input::-webkit-credentials-auto-fill-button,
body.woocommerce-account .cvt-input::-webkit-contacts-auto-fill-button {
	display: none !important;
	visibility: hidden !important;
	position: absolute !important;
	right: 0 !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	max-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Belt-and-braces: keep the password control's height tied to the input so a
   stray native control can never tip the eye out of centre. */
body.woocommerce-account .cvt-control--password {
	position: relative !important;
	min-height: 50px !important;
}
body.woocommerce-account .cvt-control--password .cvt-eye {
	position: absolute !important;
	top: 25px !important;
	right: 0 !important;
	left: auto !important;
	bottom: auto !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
}
