/* ==========================================================================
   Nyxo Site 0.1.0: design system for Nyxo Labs (WooCommerce + Astra).
   Everything is scoped under body.nyxo, so deactivating the plugin restores the old look.
   Contested selectors start with "html body.nyxo:not(#nx1):not(#nx2):not(#nx3)" (three ID-weights) so they
   outrank the live snippets, which use "html body:not(#mx):not(#my)" and print after this stylesheet.
   Order: tokens > base > layout > header > buttons > product cards > product page
          > cart/checkout > content pages > legacy snippet overrides > homepage > footer
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
body.nyxo {
	--nx-cream: #FBF8F3;
	--nx-cream-2: #F4EFE6;
	--nx-white: #FFFFFF;
	--nx-line: #E6DFD3;
	--nx-line-2: #EEE8DD;
	--nx-midnight: #1B2A4E;
	--nx-navy-2: #31447A;
	--nx-slate: #4A5568;
	--nx-ink-3: #5F6B85;
	--nx-blue: #306DFB;
	--nx-blue-ink: #2559DB;
	--nx-blue-ink-2: #1E4BC0;
	--nx-ice: #EEF2FF;
	--nx-on-dark: #8FB0FF;
	--nx-on-dark-2: #C9D1E6;
	--nx-ok: #1F7A4D;
	--nx-ok-bg: #E8F3EC;
	--nx-grad: linear-gradient(160deg, #31447A 0%, #1B2A4E 70%);

	--nx-font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--nx-mono: "Fragment Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--nx-serif: "Instrument Serif", Georgia, "Times New Roman", serif;

	--nx-fs-display: clamp(2.5rem, 1.6rem + 3.4vw, 4.5rem);
	--nx-fs-h1: clamp(2.125rem, 1.6rem + 2.2vw, 3.25rem);
	--nx-fs-h2: clamp(1.75rem, 1.35rem + 1.6vw, 2.625rem);
	--nx-fs-h3: clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);
	--nx-fs-body: 1.0625rem;
	--nx-fs-small: .875rem;
	--nx-fs-eyebrow: .75rem;
	--nx-fs-data: .8125rem;

	--nx-s1: 4px; --nx-s2: 8px; --nx-s3: 12px; --nx-s4: 16px; --nx-s5: 24px;
	--nx-s6: 32px; --nx-s7: 48px; --nx-s8: 64px; --nx-s9: 96px; --nx-s10: 128px;
	--nx-section: clamp(56px, 4.5vw + 32px, 112px);
	--nx-gutter: clamp(16px, 4vw, 48px);
	--nx-max: 1200px;

	--nx-r-xs: 4px; --nx-r-sm: 10px; --nx-r-md: 16px; --nx-r-lg: 24px; --nx-r-pill: 999px;
	--nx-sh-1: 0 1px 2px rgba(27, 42, 78, .06);
	--nx-sh-2: 0 10px 30px -12px rgba(27, 42, 78, .18);
	--nx-sh-3: 0 30px 60px -30px rgba(27, 42, 78, .35);
	--nx-ease: cubic-bezier(.33, 1, .68, 1);
	--nx-t: 180ms;

	/* Remap the legacy snippet tokens that read from custom properties. */
	--molprem-serif: var(--nx-font);
	--molprem-sans: var(--nx-font);
	--mq-serif: var(--nx-font);
	--mq-sans: var(--nx-font);
	--mq-mono: var(--nx-mono);
	--mq-navy: #1B2A4E;
	--mq-ink: #1B2A4E;
	--mq-copper: #2559DB;
	--mq-copper2: #2559DB;
	--mq-kick: #2559DB;
	--mq-paper: #FBF8F3;
	--mq-line: #E6DFD3;
	--mq-mute: #4A5568;
	--ag-text-color: #1B2A4E;
}

/* ---------- 2. Base ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3),
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).ast-separate-container,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).ast-plain-container {
	background: var(--nx-cream) !important;
	color: var(--nx-midnight);
	font-family: var(--nx-font) !important;
	font-size: var(--nx-fs-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
@media (max-width: 600px) {
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) { font-size: 1rem; }
}
body.nyxo,
body.nyxo button,
body.nyxo input,
body.nyxo select,
body.nyxo textarea,
body.nyxo .entry-content,
body.nyxo .woocommerce,
body.nyxo .wc-block-components-text-input input {
	font-family: var(--nx-font);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h1, html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h2, html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h3,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h4, html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h5, html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h6,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .entry-title, html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .product_title {
	font-family: var(--nx-font) !important;
	color: var(--nx-midnight);
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.12;
}
body.nyxo h1 em, body.nyxo h2 em, body.nyxo h3 em { font-style: normal; color: inherit; }
body.nyxo .nyxo-serif,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h1 em.nyxo-serif,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) h2 em.nyxo-serif {
	font-family: var(--nx-serif) !important;
	font-style: italic;
	font-weight: 400;
	letter-spacing: -.01em;
}
body.nyxo a { color: var(--nx-blue-ink); transition: color var(--nx-t) ease; }
body.nyxo a:hover { color: var(--nx-blue-ink-2); }
body.nyxo ::selection { background: var(--nx-ice); color: var(--nx-midnight); }
body.nyxo :focus-visible {
	outline: 3px solid var(--nx-blue) !important;
	outline-offset: 2px;
	border-radius: 6px;
}
body.nyxo [tabindex="-1"]:focus,
body.nyxo [tabindex="-1"]:focus-visible { outline: none !important; }
body.nyxo .nyxo-mono,
body.nyxo .sku,
body.nyxo code {
	font-family: var(--nx-mono);
	font-variant-numeric: tabular-nums;
}
body.nyxo .woocommerce-Price-amount,
body.nyxo .price,
body.nyxo .amount { font-variant-numeric: tabular-nums; }

/* ---------- 3. Layout ---------- */
body.nyxo .site-content,
body.nyxo #content,
body.nyxo .ast-separate-container .ast-article-single,
body.nyxo .ast-separate-container .ast-article-post,
body.nyxo.ast-separate-container .ast-article-single,
body.nyxo.ast-separate-container .ast-article-post,
body.nyxo.ast-separate-container .comments-area,
body.nyxo .ast-woocommerce-container {
	background-color: transparent !important;
}
body.nyxo.ast-separate-container .ast-article-single,
body.nyxo.ast-separate-container .ast-article-post { padding-left: 0; padding-right: 0; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3):not(.nyxo-home) .site-content > .ast-container {
	max-width: calc(var(--nx-max) + 2 * var(--nx-gutter)) !important;
	padding-left: var(--nx-gutter) !important;
	padding-right: var(--nx-gutter) !important;
	box-sizing: border-box;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).woocommerce-cart .wp-block-woocommerce-cart,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).woocommerce-checkout .wp-block-woocommerce-checkout { margin-left: 0 !important; margin-right: 0 !important; max-width: 100% !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3):not(.nyxo-home) .site-content #primary { margin-top: clamp(28px, 4vw, 56px) !important; }
body.nyxo .nyxo-container {
	width: 100%;
	max-width: calc(var(--nx-max) + 2 * var(--nx-gutter));
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nx-gutter);
	padding-right: var(--nx-gutter);
	box-sizing: border-box;
}
body.nyxo .woocommerce-breadcrumb {
	font-family: var(--nx-mono);
	font-size: .75rem;
	letter-spacing: .04em;
	color: var(--nx-ink-3);
	text-transform: uppercase;
}
body.nyxo .woocommerce-breadcrumb a { color: var(--nx-ink-3); text-decoration: none; }
body.nyxo .woocommerce-breadcrumb a:hover { color: var(--nx-blue-ink); }

/* Page titles on ordinary pages */
body.nyxo .entry-header .entry-title,
body.nyxo .woocommerce-products-header__title,
body.nyxo .molban__title {
	font-size: var(--nx-fs-h1) !important;
	letter-spacing: -.025em !important;
}

/* ---------- 4. Header ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 990;
	background: rgba(251, 248, 243, .88) !important;
	-webkit-backdrop-filter: saturate(140%) blur(12px);
	backdrop-filter: saturate(140%) blur(12px);
	border-bottom: 1px solid rgba(27, 42, 78, .08);
	box-shadow: none !important;
}
@media (max-width: 600px) {
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead { top: 0; }
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead::after,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead::before { display: none !important; content: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-bar,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-primary-header-bar,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-mobile-header-wrap .main-header-bar,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-above-header-bar,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-below-header-bar {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-primary-header-wrap { min-height: 72px; }
@media (max-width: 921px) {
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-primary-header-wrap,
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-mobile-header-wrap .ast-primary-header-bar { min-height: 60px; }
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-branding { padding: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-logo-img { display: inline-flex; align-items: center; padding: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-logo-img img.nyxo-logo,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead img.custom-logo.nyxo-logo {
	height: 30px !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
	display: block;
}
@media (max-width: 921px) {
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-logo-img img.nyxo-logo { height: 26px !important; }
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-title,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .site-description { display: none !important; }

html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item > .menu-link,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
	font-family: var(--nx-font) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nx-midnight) !important;
	padding: 0 14px !important;
	line-height: 72px;
	background: transparent !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item > .menu-link::after,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item > .menu-link::before { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item > .menu-link:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item.current-menu-item > .menu-link,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item.current_page_item > .menu-link {
	color: var(--nx-blue-ink) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu > .menu-item.current-menu-item > .menu-link {
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 8px;
}
/* CTA item */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu .menu-item.mol-menu-cta { margin-left: 10px; display: flex; align-items: center; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu .menu-item.mol-menu-cta > .menu-link {
	background: var(--nx-blue-ink) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--nx-r-pill) !important;
	line-height: 1 !important;
	height: 42px;
	padding: 0 20px !important;
	display: inline-flex !important;
	align-items: center;
	font-weight: 600 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	transition: background-color var(--nx-t) ease;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .main-header-menu .menu-item.mol-menu-cta > .menu-link:hover { background: var(--nx-blue-ink-2) !important; }
/* Account + cart icons (legacy snippet markup) */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .mol-icon-link,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-site-header-cart a,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-header-account a { color: var(--nx-midnight) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .mol-icon-link svg { stroke: currentColor; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .mol-icon-link:hover { color: var(--nx-blue-ink) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .mol-cart-count,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-count-text,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .count {
	background: var(--nx-blue-ink) !important;
	color: #fff !important;
	font-family: var(--nx-mono);
	border: 0 !important;
}
/* Mobile menu panel */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-mobile-header-content,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-mobile-header-content .main-header-bar-navigation {
	background: var(--nx-cream) !important;
	border-top: 1px solid var(--nx-line);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .ast-mobile-header-content .main-header-menu > .menu-item > .menu-link {
	font-family: var(--nx-font) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	color: var(--nx-midnight) !important;
	background: transparent !important;
	border-bottom: 1px solid var(--nx-line) !important;
	padding: 16px var(--nx-gutter) !important;
	text-transform: none !important;
	letter-spacing: -.01em !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .ast-mobile-header-content .main-header-menu .menu-item.mol-menu-cta > .menu-link {
	background: var(--nx-blue-ink) !important;
	color: #fff !important;
	border-radius: var(--nx-r-pill) !important;
	margin: 16px var(--nx-gutter) !important;
	text-align: center;
	justify-content: center;
	border: 0 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .ast-mobile-header-content .main-header-menu > .menu-item > .menu-link::after,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .ast-mobile-header-content .main-header-menu::before { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .menu-toggle,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .ast-mobile-menu-trigger-minimal {
	color: var(--nx-midnight) !important;
	background: transparent !important;
	border: 0 !important;
	min-width: 44px;
	min-height: 44px;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .menu-toggle .ast-mobile-svg,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #masthead .menu-toggle svg { fill: var(--nx-midnight) !important; }

/* ---------- 5. Buttons ---------- */
body.nyxo .nyxo-btn,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce a.button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce button.button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce input.button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce #respond input#submit,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) a.button.wc-forward,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-button__link,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-button:not(.is-link),
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce .single_add_to_cart_button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .single_add_to_cart_button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) button.single_add_to_cart_button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-buy .single_add_to_cart_button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__submit-button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-checkout-place-order-button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-mini-cart__buttons .checkout,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-page .single_add_to_cart_button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .single-product .summary form.cart button.single_add_to_cart_button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .checkout-button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .ast-button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) input[type="submit"]:not(.age-gate__submit),
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-btn--solid,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molrev__btn--solid,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban__cta {
	font-family: var(--nx-font) !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	line-height: 1.1 !important;
	border-radius: var(--nx-r-pill) !important;
	background: var(--nx-blue-ink) !important;
	background-image: none !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
	min-height: 48px;
	padding: 14px 24px !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none !important;
	transition: background-color var(--nx-t) ease, transform var(--nx-t) var(--nx-ease), box-shadow var(--nx-t) ease;
	text-shadow: none !important;
}
body.nyxo .nyxo-btn:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce a.button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce button.button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-button__link:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-button:not(.is-link):hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce .single_add_to_cart_button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .single_add_to_cart_button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-buy .single_add_to_cart_button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__submit-button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-checkout-place-order-button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .single-product .summary form.cart button.single_add_to_cart_button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .checkout-button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) input[type="submit"]:not(.age-gate__submit):hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-btn--solid:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molrev__btn--solid:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban__cta:hover {
	background: var(--nx-blue-ink-2) !important;
	color: #fff !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce .single_add_to_cart_button.disabled,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce .single_add_to_cart_button:disabled {
	background: #A9B8DD !important;
	cursor: not-allowed;
}
/* Secondary / ghost */
body.nyxo .nyxo-btn--ghost,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product a.button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molrev__btn--ghost,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-btn:not(.mol-btn--solid) {
	background: transparent !important;
	color: var(--nx-midnight) !important;
	box-shadow: inset 0 0 0 1.5px var(--nx-midnight) !important;
}
body.nyxo .nyxo-btn--ghost:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product a.button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molrev__btn--ghost:hover {
	background: var(--nx-midnight) !important;
	color: var(--nx-cream) !important;
}
body.nyxo .nyxo-btn--cream {
	background: var(--nx-cream) !important;
	color: var(--nx-midnight) !important;
}
body.nyxo .nyxo-btn--cream:hover {
	background: #fff !important;
	color: var(--nx-blue-ink-2) !important;
	transform: translateY(-1px);
}
body.nyxo .nyxo-btn--sm { min-height: 40px; padding: 10px 18px !important; font-size: 14px !important; }
/* Text links */
body.nyxo .nyxo-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	color: var(--nx-blue-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
body.nyxo .nyxo-link .nyxo-ic { transition: transform var(--nx-t) var(--nx-ease); }
body.nyxo .nyxo-link:hover .nyxo-ic { transform: translateX(2px); }
body.nyxo .nyxo-link--dark { color: var(--nx-on-dark); }
body.nyxo .nyxo-link--dark:hover { color: #fff; }
body.nyxo .nyxo-link--muted { color: var(--nx-slate); }

/* Chips */
body.nyxo .nyxo-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	border-radius: var(--nx-r-pill);
	font-family: var(--nx-mono);
	font-size: 11px;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	background: var(--nx-ice);
	color: var(--nx-midnight);
}
body.nyxo .nyxo-chip i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; display: inline-block; }
body.nyxo .nyxo-chip--in { background: var(--nx-ok-bg); color: var(--nx-ok); }
body.nyxo .nyxo-chip--ok { background: var(--nx-ok-bg); color: var(--nx-ok); }
body.nyxo .nyxo-chip--wait { background: var(--nx-cream-2); color: var(--nx-slate); }

/* Eyebrows, headings, lede used by plugin markup */
body.nyxo .nyxo-eyebrow {
	font-family: var(--nx-mono);
	font-size: var(--nx-fs-eyebrow);
	line-height: 1.2;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--nx-blue-ink);
	margin: 0 0 var(--nx-s3);
	display: flex;
	align-items: center;
	gap: 8px;
}
body.nyxo .nyxo-eyebrow--dark { color: var(--nx-on-dark); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-h2 {
	font-size: var(--nx-fs-h2);
	line-height: 1.12;
	letter-spacing: -.025em;
	margin: 0 0 var(--nx-s4);
	max-width: 20ch;
}
body.nyxo .nyxo-lede { font-size: 1.0625rem; color: var(--nx-slate); margin: 0; max-width: 52ch; }
body.nyxo .nyxo-fine { font-size: var(--nx-fs-small); color: var(--nx-slate); margin: var(--nx-s4) 0 0; }

/* ---------- 6. Product cards (Woo loop + Astra + legacy molgrid) ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px !important;
	margin: 0 0 var(--nx-s8) !important;
	padding: 0 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products::before,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products::after { display: none !important; }
@media (max-width: 1100px) { html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) { html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px !important; } }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--nx-white) !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r-md) !important;
	box-shadow: none !important;
	overflow: hidden;
	display: flex !important;
	flex-direction: column;
	position: relative;
	transition: transform 220ms var(--nx-ease), box-shadow 220ms ease, border-color 220ms ease;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product:hover {
	transform: translateY(-2px);
	box-shadow: var(--nx-sh-2) !important;
	border-color: #DCD3C4 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .astra-shop-thumbnail-wrap {
	background: var(--nx-cream-2);
	margin: 0 !important;
	position: relative;
	aspect-ratio: 4 / 5;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .astra-shop-thumbnail-wrap > a { display: flex !important; width: 100%; height: 100%; align-items: center; justify-content: center; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .astra-shop-thumbnail-wrap img,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product a img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	padding: 8% 10% !important;
	margin: 0 !important;
	background: transparent !important;
	mix-blend-mode: multiply;
	transition: transform 400ms var(--nx-ease);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product:hover .astra-shop-thumbnail-wrap img { transform: scale(1.03); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .astra-shop-summary-wrap {
	padding: 18px 18px 20px !important;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
	text-align: left !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .ast-woo-product-category {
	font-family: var(--nx-mono);
	font-size: 11px !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nx-ink-3) !important;
	opacity: 1 !important;
	margin: 0 !important;
	line-height: 1.3;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--nx-font) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	letter-spacing: -.01em !important;
	color: var(--nx-midnight) !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.3 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .price {
	font-family: var(--nx-font) !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	color: var(--nx-midnight) !important;
	margin: 4px 0 0 !important;
	display: block;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .price del { color: var(--nx-ink-3) !important; font-weight: 500; font-size: .8em; opacity: 1; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .price ins { text-decoration: none; background: none; color: var(--nx-midnight) !important; }
body.nyxo .nyxo-permg {
	display: block;
	font-family: var(--nx-mono);
	font-size: 12px;
	font-weight: 400;
	color: var(--nx-slate);
	letter-spacing: 0;
	margin-top: 2px;
}
body.nyxo .nyxo-permg .woocommerce-Price-amount { font-weight: 400; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product a.button {
	margin-top: auto !important;
	width: 100% !important;
	min-height: 44px;
	padding: 11px 16px !important;
	font-size: 14px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center !important;
	text-align: center !important;
	border-radius: var(--nx-r-pill) !important;
	background: transparent !important;
	color: var(--nx-midnight) !important;
	border: 0 !important;
	box-shadow: inset 0 0 0 1.5px var(--nx-midnight) !important;
	line-height: 1.1 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .button:hover,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product a.button:hover { background: var(--nx-midnight) !important; color: var(--nx-cream) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .button.added::after { margin-left: 6px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .astra-shop-summary-wrap .price { margin-bottom: 14px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .added_to_cart { font-size: 13px; text-align: center; margin-top: 6px; color: var(--nx-blue-ink); }
/* Astra out-of-stock overlay -> one quiet chip */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .ast-shop-product-out-of-stock {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	width: auto !important;
	z-index: 2;
	padding: 5px 10px !important;
	border-radius: var(--nx-r-pill) !important;
	font-family: var(--nx-mono) !important;
	font-size: 10.5px !important;
	font-weight: 400 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	background: rgba(255, 255, 255, .92) !important;
	color: var(--nx-slate) !important;
	border: 1px solid var(--nx-line) !important;
	line-height: 1.2 !important;
	text-align: left !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .molgrid-badge ~ .ast-shop-product-out-of-stock { display: none !important; }
/* Hide on-image add buttons and "Sale!" bubbles: one badge per card at most. */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product .ast-on-card-button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .ast-onsale-card,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) span.onsale,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-onsale,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-product-sale-badge { display: none !important; }
/* Stock badge (legacy molgrid / mkg) as one quiet chip */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molgrid-badge,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mkg-badge {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	z-index: 2;
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 5px 10px !important;
	border-radius: var(--nx-r-pill) !important;
	font-family: var(--nx-mono) !important;
	font-size: 10.5px !important;
	font-weight: 400 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	background: rgba(255, 255, 255, .92) !important;
	color: var(--nx-ok) !important;
	border: 1px solid rgba(31, 122, 77, .18) !important;
	box-shadow: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molgrid-badge--pre { color: var(--nx-slate) !important; border-color: var(--nx-line) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molgrid-dot { width: 6px !important; height: 6px !important; border-radius: 50% !important; background: currentColor !important; box-shadow: none !important; }
/* Out-of-stock cards: calm, not shouty */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product.outofstock .astra-shop-thumbnail-wrap img { opacity: .7; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mle-oos-card a.mle-notify-btn { background: transparent !important; color: var(--nx-midnight) !important; box-shadow: inset 0 0 0 1.5px var(--nx-line) !important; border: 0 !important; }

/* Legacy homepage carousel cards (.molf) if still present */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molf__card { background: #fff !important; border: 1px solid var(--nx-line) !important; border-radius: var(--nx-r-md) !important; box-shadow: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molf__rule { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molf__btn--solid { background: var(--nx-blue-ink) !important; color: #fff !important; border-radius: var(--nx-r-pill) !important; }

/* Shop toolbar */
body.nyxo .woocommerce-result-count { font-family: var(--nx-mono); font-size: 12px; color: var(--nx-ink-3); letter-spacing: .04em; }
body.nyxo .woocommerce-ordering select,
body.nyxo .mol-shop-search input,
body.nyxo .mol-search-input {
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r-sm) !important;
	background: #fff !important;
	color: var(--nx-midnight) !important;
	font-family: var(--nx-font) !important;
	min-height: 44px;
	box-shadow: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mfb__seg,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mfb__cats button {
	font-family: var(--nx-font) !important;
	border-radius: var(--nx-r-pill) !important;
	border: 1px solid var(--nx-line) !important;
	background: #fff !important;
	color: var(--nx-midnight) !important;
	box-shadow: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mfb__seg.is-on,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mfb__cats button.is-on {
	background: var(--nx-midnight) !important;
	color: var(--nx-cream) !important;
	border-color: var(--nx-midnight) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-pagination ul.page-numbers { border: 0 !important; display: flex; gap: 6px; justify-content: center; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-pagination ul.page-numbers li { border: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-pagination .page-numbers a,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-pagination .page-numbers span {
	border-radius: var(--nx-r-pill);
	min-width: 40px;
	min-height: 40px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-family: var(--nx-mono);
	color: var(--nx-midnight);
	background: #fff;
	border: 1px solid var(--nx-line);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-pagination .page-numbers span.current { background: var(--nx-midnight); color: var(--nx-cream); border-color: var(--nx-midnight); }

/* Shop banner (legacy .molban): keep the title and one line, drop the deal clutter. */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) section.molban {
	background: transparent !important;
	color: var(--nx-midnight) !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: var(--nx-s6) 0 var(--nx-s5) !important;
	margin: 0 0 var(--nx-s5) !important;
	width: auto !important;
	max-width: none !important;
	left: auto !important;
	right: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	border-bottom: 1px solid var(--nx-line) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) section.molban::before,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) section.molban::after,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban__title::after { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__in { padding: 0 !important; max-width: none !important; text-align: left !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__title { color: var(--nx-midnight) !important; margin: 0 0 8px !important; text-align: left !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .mh6-shop,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__six,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__chips,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__eyebrow,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__promo,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__actions .molban__cta { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__lede { color: var(--nx-slate) !important; font-size: 1rem !important; max-width: 60ch; margin: 0 !important; text-align: left !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__actions { justify-content: flex-start !important; margin-top: 8px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molban .molban__fine { color: var(--nx-blue-ink) !important; font-size: 14px !important; }

/* ---------- 7. Product page ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	column-gap: clamp(24px, 5vw, 72px);
	align-items: start;
	margin-top: var(--nx-s6);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product > * { grid-column: 1 / -1; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product > .woocommerce-product-gallery { grid-column: 1; width: 100% !important; float: none !important; margin: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product > .summary { grid-column: 2; width: 100% !important; float: none !important; margin: 0 !important; }
@media (max-width: 921px) {
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product { grid-template-columns: minmax(0, 1fr); margin-top: var(--nx-s4); }
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product > .woocommerce-product-gallery,
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product > .summary { grid-column: 1; }
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product div.product > .summary { margin-top: var(--nx-s5) !important; }
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery {
	background: var(--nx-cream-2);
	border-radius: var(--nx-r-lg);
	overflow: hidden;
	opacity: 1 !important;
	position: sticky;
	top: 96px;
}
@media (max-width: 921px) {
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery { position: relative; top: 0; }
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery__image img,
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery img.wp-post-image { max-height: 460px; }
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery__image img,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery img.wp-post-image {
	object-fit: contain;
	padding: 6% 12%;
	max-height: 640px;
	width: 100%;
	box-sizing: border-box;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery .flex-control-thumbs { padding: 12px; display: flex; gap: 8px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery .flex-control-thumbs li { width: 64px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 10px; background: #fff; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .woocommerce-product-gallery__trigger { background: #fff !important; border-radius: 50% !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary .single-product-category,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary .single-product-category a {
	font-family: var(--nx-mono) !important;
	font-size: 12px !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: var(--nx-blue-ink) !important;
	text-decoration: none !important;
	display: block;
	margin-bottom: 8px;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary .product_title {
	font-size: var(--nx-fs-h1) !important;
	line-height: 1.06 !important;
	letter-spacing: -.03em !important;
	margin: 0 0 var(--nx-s4) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary > .price,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary p.price {
	font-family: var(--nx-font) !important;
	font-size: 28px !important;
	font-weight: 700 !important;
	color: var(--nx-midnight) !important;
	letter-spacing: -.01em;
	margin: 0 0 2px !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary p.price del { color: var(--nx-ink-3) !important; font-size: .6em; font-weight: 500; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary p.price ins { text-decoration: none; }
body.nyxo .nyxo-permg-row { margin: 0 0 var(--nx-s5); }
body.nyxo .nyxo-permg-row .nyxo-permg { font-size: 13px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-product-details__short-description { color: var(--nx-slate); margin: var(--nx-s4) 0; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-pills { display: flex !important; flex-wrap: wrap; gap: 6px !important; margin: var(--nx-s4) 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-pills br { display: none; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-pill {
	font-family: var(--nx-mono) !important;
	font-size: 12px !important;
	font-weight: 400 !important;
	letter-spacing: .02em !important;
	padding: 6px 10px !important;
	border-radius: var(--nx-r-xs) !important;
	background: var(--nx-ice) !important;
	color: var(--nx-midnight) !important;
	border: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .price ins,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .price ins bdi,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .price ins .woocommerce-Price-amount,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) div.product p.price ins,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-unit,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-total { color: var(--nx-midnight) !important; background: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .single_add_to_cart_button * { color: #fff !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-chip,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-strip__it { font-family: var(--nx-font) !important; border-color: var(--nx-line) !important; background: #fff !important; color: var(--nx-midnight) !important; box-shadow: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-coa-h,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpp-lab { font-family: var(--nx-mono) !important; }
/* Variation + quantity */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product form.cart table.variations th.label,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product form.cart table.variations th.label label {
	font-family: var(--nx-mono) !important;
	font-size: 12px !important;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--nx-slate) !important;
	font-weight: 400 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .variable-items-wrapper .variable-item:not(.radio-variable-item) {
	border-radius: var(--nx-r-pill) !important;
	box-shadow: inset 0 0 0 1px var(--nx-line) !important;
	background: #fff !important;
	color: var(--nx-midnight) !important;
	font-family: var(--nx-mono) !important;
	min-height: 40px;
	padding: 0 14px !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .variable-items-wrapper .variable-item.selected:not(.radio-variable-item) {
	box-shadow: inset 0 0 0 2px var(--nx-blue-ink) !important;
	color: var(--nx-blue-ink) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .quantity input.qty,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .quantity .qty {
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r-sm) !important;
	min-height: 52px;
	font-family: var(--nx-mono) !important;
	color: var(--nx-midnight) !important;
	background: #fff !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary form.cart { margin: var(--nx-s5) 0 var(--nx-s4) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary form.cart:not(.variations_form),
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).single-product .summary form.cart .single_add_to_cart_button {
	flex: 1 1 220px;
	min-height: 52px !important;
	font-size: 16px !important;
}
/* Bundle selector tiles (legacy .mol-bundle-*) */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-select { gap: 8px !important; width: 100%; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-option {
	background: #fff !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	color: var(--nx-midnight) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-option.active {
	border-color: var(--nx-blue-ink) !important;
	box-shadow: 0 0 0 1px var(--nx-blue-ink) !important;
	background: #fff !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-badge {
	font-family: var(--nx-mono) !important;
	font-size: 10px !important;
	letter-spacing: .08em !important;
	background: var(--nx-ice) !important;
	color: var(--nx-blue-ink) !important;
	border-radius: var(--nx-r-pill) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-qty { font-weight: 600 !important; color: var(--nx-midnight) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-price { font-family: var(--nx-font) !important; color: var(--nx-midnight) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-bundle-save { font-family: var(--nx-mono) !important; color: var(--nx-ok) !important; font-size: 11px !important; }
/* Stock / cutoff / shipping lines */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .stock,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-stock {
	font-family: var(--nx-mono) !important;
	font-size: 13px !important;
	color: var(--nx-ok) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .stock.out-of-stock { color: var(--nx-slate) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molsl,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-cutoff {
	font-family: var(--nx-mono) !important;
	font-size: 13px !important;
	color: var(--nx-slate) !important;
	letter-spacing: 0 !important;
	margin: 10px 0 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molsl strong { color: var(--nx-midnight) !important; font-weight: 400 !important; }
/* Lot Passport panel (plugin) */
body.nyxo .nyxo-pdp-pass {
	margin: var(--nx-s5) 0;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid var(--nx-line);
	border-radius: var(--nx-r-md);
}
body.nyxo .nyxo-pdp-pass__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
body.nyxo .nyxo-pdp-pass__title {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--nx-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-midnight);
}
body.nyxo .nyxo-pdp-pass__lots { list-style: none; margin: 0; padding: 0; }
body.nyxo .nyxo-pdp-pass__lots li { padding: 12px 0; border-top: 1px solid var(--nx-line-2); }
body.nyxo .nyxo-pdp-pass__lots li:first-child { border-top: 0; padding-top: 0; }
body.nyxo .nyxo-pdp-pass__row { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--nx-midnight); }
body.nyxo .nyxo-pdp-pass__lot { font-weight: 400; color: var(--nx-blue-ink); }
body.nyxo .nyxo-pdp-pass__meta { margin: 4px 0 6px; font-size: 13px; color: var(--nx-slate); }
body.nyxo .nyxo-pdp-pass__links { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; }
body.nyxo .nyxo-pdp-pass__links a { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; display: inline-flex; align-items: center; gap: 4px; }
body.nyxo .nyxo-pdp-pass__none { margin: 0; color: var(--nx-slate); font-size: 14px; }
body.nyxo .nyxo-pdp-pass__promise {
	display: flex; gap: 10px; align-items: flex-start;
	margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--nx-line-2);
	font-size: 14px; color: var(--nx-slate);
}
body.nyxo .nyxo-pdp-pass__promise .nyxo-ic { flex: 0 0 auto; color: var(--nx-blue); width: 20px; height: 20px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-pdp .molecula-coa-wrap { display: none !important; }
/* Legacy Discord/review boxes and PeptidePrices link: quiet cards */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molrev {
	background: #fff !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r-md) !important;
	box-shadow: none !important;
	color: var(--nx-midnight) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molrv-pp { background: #fff !important; border: 1px solid var(--nx-line) !important; border-radius: var(--nx-r-md) !important; color: var(--nx-midnight) !important; box-shadow: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .product_meta { font-family: var(--nx-mono); font-size: 12px; color: var(--nx-ink-3); }
/* Tabs and description */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs { margin-top: var(--nx-s8) !important; padding-top: var(--nx-s6); border-top: 1px solid var(--nx-line); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 var(--nx-s5) !important; border: 0 !important; display: flex; gap: 8px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs::before { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs li { border: 0 !important; background: transparent !important; margin: 0 !important; padding: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs li a {
	font-family: var(--nx-font) !important; font-size: 15px !important; font-weight: 600 !important;
	color: var(--nx-slate) !important; padding: 10px 18px !important; border-radius: var(--nx-r-pill);
	background: transparent; text-transform: none !important; letter-spacing: 0 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs li.active a { background: var(--nx-midnight) !important; color: var(--nx-cream) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs li::before,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-tabs ul.tabs li::after { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-Tabs-panel { max-width: 760px; color: var(--nx-midnight); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-spec,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-Tabs-panel table,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) table.shop_attributes {
	width: 100%;
	border-collapse: collapse !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r-xs) !important;
	background: #fff !important;
	font-size: 14px;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-spec th,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-spec td,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) table.shop_attributes th,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) table.shop_attributes td {
	border: 0 !important;
	border-top: 1px solid var(--nx-line-2) !important;
	padding: 10px 14px !important;
	background: transparent !important;
	text-align: left;
	color: var(--nx-midnight) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-spec th,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) table.shop_attributes th { font-family: var(--nx-mono) !important; font-weight: 400 !important; color: var(--nx-slate) !important; width: 34%; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-spec td,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) table.shop_attributes td { font-family: var(--nx-mono) !important; font-style: normal !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-cap { caption-side: top; text-align: left; font-family: var(--nx-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-slate); padding-bottom: 8px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-ruo,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molpd-lede { color: var(--nx-slate) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molseo-faq details,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molseo-faq__item { border: 0 !important; border-top: 1px solid var(--nx-line) !important; background: transparent !important; border-radius: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molseo-faq__q { font-size: 16px !important; font-weight: 600 !important; display: inline; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) section.related.products > h2,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) section.up-sells > h2 { font-size: var(--nx-fs-h2) !important; margin: var(--nx-s8) 0 var(--nx-s5) !important; }
/* Sticky mobile buy bar (legacy) */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-buybar { background: rgba(251, 248, 243, .96) !important; border-top: 1px solid var(--nx-line) !important; box-shadow: 0 -10px 30px -18px rgba(27, 42, 78, .3) !important; }

/* ---------- 8. Cart, mini-cart, checkout (cosmetic only) ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-woocommerce-cart,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-woocommerce-checkout { font-family: var(--nx-font); color: var(--nx-midnight); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__totals-title,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-title,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-checkout-step__title {
	font-family: var(--nx-font) !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: -.01em !important;
	color: var(--nx-midnight) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__totals-title { font-family: var(--nx-mono) !important; font-weight: 400 !important; font-size: 12px !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: var(--nx-slate) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-woocommerce-cart-totals-block,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-woocommerce-checkout-order-summary-block {
	background: #fff;
	border: 1px solid var(--nx-line);
	border-radius: var(--nx-r-md);
	padding: 20px !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart-items { border: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart-items th { font-family: var(--nx-mono) !important; font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-slate) !important; font-weight: 400 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart-items td { border-top: 1px solid var(--nx-line) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart-item__image img { border-radius: 12px; background: var(--nx-cream-2); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-product-name { font-weight: 700 !important; color: var(--nx-midnight) !important; text-decoration: none !important; font-size: 16px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-product-metadata,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-product-details { color: var(--nx-slate) !important; font-size: 13px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-totals-item__label { color: var(--nx-slate); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 800 !important; color: var(--nx-midnight) !important; font-size: 18px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-text-input input,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-combobox .wc-block-components-combobox-control input,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-blocks-components-select .wc-blocks-components-select__select,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce form .form-row input.input-text,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce form .form-row textarea,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce form .form-row select {
	border: 1px solid #D9D1C3 !important;
	border-radius: var(--nx-r-sm) !important;
	background: #fff !important;
	color: var(--nx-midnight) !important;
	box-shadow: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-text-input input:focus,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce form .form-row input.input-text:focus { border-color: var(--nx-blue-ink) !important; box-shadow: 0 0 0 3px rgba(48, 109, 251, .18) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-quantity-selector { border-radius: var(--nx-r-pill) !important; border: 1px solid var(--nx-line) !important; overflow: hidden; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-quantity-selector::after { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-quantity-selector input { font-family: var(--nx-mono) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__submit-button,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-checkout-place-order-button { width: 100%; min-height: 54px !important; font-size: 16px !important; }
/* Payment area: visibly boxed off (perceived security), no logic touched */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-checkout__payment-method .wc-block-components-radio-control,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-checkout #payment {
	background: #F7F9FF !important;
	border: 1px solid #D6DFF5 !important;
	border-radius: var(--nx-r-md) !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-checkout #payment ul.payment_methods { border-bottom-color: #D6DFF5 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-checkout #payment div.payment_box { background: #fff !important; border-radius: var(--nx-r-sm); color: var(--nx-midnight); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-checkout #payment div.payment_box::before { display: none; }
/* Classic notices */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-message,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-info,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-error,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-notice-banner {
	border-radius: var(--nx-r-md) !important;
	border: 1px solid var(--nx-line) !important;
	border-left: 3px solid var(--nx-blue-ink) !important;
	background: #fff !important;
	color: var(--nx-midnight) !important;
	box-shadow: none !important;
	font-family: var(--nx-font);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-error,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-components-notice-banner.is-error { border-left-color: #B42318 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-message::before,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-info::before { color: var(--nx-blue-ink) !important; }
/* Slide-out cart drawer (legacy .mol-drawer) */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-drawer { background: var(--nx-cream) !important; font-family: var(--nx-font) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-drawer__head { background: var(--nx-midnight) !important; color: var(--nx-cream) !important; font-family: var(--nx-font) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-drawer__head span { font-family: var(--nx-font) !important; font-weight: 700 !important; letter-spacing: -.01em; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-drawer__foot { font-family: var(--nx-mono) !important; font-size: 12px !important; color: var(--nx-slate) !important; background: var(--nx-cream-2) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-prog__bar { background: var(--nx-blue-ink) !important; }

/* Empty-cart "new in store" grid (block) */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 !important; }
@media (max-width: 820px) { html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product { width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r-md); padding: 0 0 16px !important; overflow: hidden; text-align: left !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-image { background: var(--nx-cream-2); aspect-ratio: 4 / 5; display: flex !important; align-items: center; justify-content: center; margin: 0 0 12px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-image img { max-height: 100%; width: auto !important; object-fit: contain; padding: 10%; box-sizing: border-box; mix-blend-mode: multiply; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-title,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-price { padding: 0 14px; font-size: 15px !important; font-weight: 700; color: var(--nx-midnight); text-decoration: none; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-link { text-decoration: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-add-to-cart { padding: 10px 14px 0; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-grid__product-add-to-cart .wp-block-button__link { width: 100%; min-height: 42px; font-size: 14px !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__empty-cart__title { font-size: var(--nx-fs-h2) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wc-block-cart__empty-cart__title.with-empty-cart-icon::before { background-color: var(--nx-ink-3) !important; width: 3em; height: 3em; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .wp-block-separator.is-style-dots::before { color: var(--nx-line); }

/* ---------- 9. Content and policy pages ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).page:not(.nyxo-home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content > p,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).page:not(.nyxo-home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content > ul,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).page:not(.nyxo-home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content > ol,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).page:not(.nyxo-home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content > h2,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).page:not(.nyxo-home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content > h3 {
	max-width: 68ch;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .entry-content h2 { font-size: var(--nx-fs-h2); margin: 1.6em 0 .5em; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .entry-content h3 { font-size: var(--nx-fs-h3); margin: 1.4em 0 .4em; }
body.nyxo :where(.entry-content) :where(p, li) { color: var(--nx-midnight); }
body.nyxo :where(.entry-content p, .entry-content li) > a:where(:not(.nyxo-btn):not(.button)) { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .entry-content details { border-top: 1px solid var(--nx-line); padding: 14px 0; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .entry-content summary { cursor: pointer; font-weight: 600; }
/* COA library (legacy .mol-coa) */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__card {
	background: #fff !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r-md) !important;
	box-shadow: none !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__card:hover { box-shadow: var(--nx-sh-2) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__card h3 { font-family: var(--nx-font) !important; font-weight: 700 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__size,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__tilelbl,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__tilesub,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__lab,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__eyebrow,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__rule span { font-family: var(--nx-mono) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__tile { background: var(--nx-cream) !important; border-radius: var(--nx-r-xs) !important; border: 1px solid var(--nx-line-2) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__tileval { font-family: var(--nx-font) !important; color: var(--nx-midnight) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__tileval--num { font-family: var(--nx-mono) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__badge { background: var(--nx-ok-bg) !important; color: var(--nx-ok) !important; border: 0 !important; font-family: var(--nx-mono) !important; border-radius: var(--nx-r-pill) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__accent { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__btn { border-radius: var(--nx-r-pill) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-coa__hero h1 { font-size: var(--nx-fs-h1) !important; }
/* Account */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--nx-line); border-radius: var(--nx-r-md); background: #fff; overflow: hidden; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; color: var(--nx-midnight); text-decoration: none; border-top: 1px solid var(--nx-line-2); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-MyAccount-navigation li:first-child a { border-top: 0; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .woocommerce-MyAccount-navigation li.is-active a { background: var(--nx-ice); color: var(--nx-blue-ink); font-weight: 600; }

/* ---------- 10. Legacy snippet overrides ---------- */
/* Seasonal clutter from the old homepage/shop snippets: the Nyx Night layer replaces it. */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mkh-bar,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mh6-bat,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mol-hw .mh6-deal__ic { display: none !important; }
/* Emoji in legacy deal pills */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mh6-deal__ic { display: none !important; }
/* Bottom-left floating pill and the treat-basket card keep working, restyled by the palette remap. */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molds-pill { font-family: var(--nx-font) !important; }
/* Legacy footers: replaced by .nyxo-footer */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .mpf,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .molft,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) #colophon.site-footer,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .site-footer { display: none !important; }
/* Age gate: type only, the plugin's logic and colours are untouched (palette remap recolours copper). */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .age-gate,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .age-gate * { font-family: var(--nx-font) !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .age-gate__heading-title { letter-spacing: -.02em !important; }

/* ---------- 11. Homepage ([nyxo_home]) ---------- */
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .entry-header,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .ast-breadcrumbs-wrapper,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .page-header { display: none !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home #primary,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .site-main,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home article.page,
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .entry-content { margin: 0 !important; padding: 0 !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .site-content > .ast-container { max-width: none !important; padding: 0 !important; display: block; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3).nyxo-home .entry-content > p:empty { display: none; }
body.nyxo .nyxo-home-wrap {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	position: relative;
}
body.nyxo .nyxo-section { padding: var(--nx-section) 0; }
body.nyxo .nyxo-head { margin-bottom: clamp(28px, 3vw, 48px); }
body.nyxo .nyxo-head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
body.nyxo .nyxo-head__more { white-space: nowrap; }

/* Hero */
body.nyxo .nyxo-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: var(--nx-grad);
	color: var(--nx-cream);
}
body.nyxo .nyxo-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(60% 70% at 78% 45%, rgba(48, 109, 251, .28), transparent 62%),
		radial-gradient(40% 50% at 12% 110%, rgba(143, 176, 255, .10), transparent 70%);
}
body.nyxo .nyxo-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: .5;
	background-image: linear-gradient(rgba(201, 209, 230, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(201, 209, 230, .05) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(70% 80% at 70% 40%, #000 20%, transparent 75%);
	mask-image: radial-gradient(70% 80% at 70% 40%, #000 20%, transparent 75%);
}
body.nyxo .nyxo-hero__in {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	align-items: center;
	gap: clamp(24px, 5vw, 64px);
	min-height: clamp(520px, 72vh, 700px);
	padding-top: clamp(40px, 6vw, 88px);
	padding-bottom: clamp(40px, 6vw, 88px);
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-hero__h {
	font-size: var(--nx-fs-display) !important;
	line-height: 1.02 !important;
	letter-spacing: -.035em !important;
	color: #fff !important;
	margin: 0 0 22px !important;
	max-width: 13ch;
	font-weight: 700 !important;
}
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-hero__h .nyxo-serif { color: #DCE6FF; font-size: 1.06em; letter-spacing: -.015em; }
body.nyxo .nyxo-hero__sub {
	font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
	line-height: 1.55;
	color: var(--nx-on-dark-2);
	max-width: 40ch;
	margin: 0 0 34px;
}
body.nyxo .nyxo-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; }
body.nyxo .nyxo-hero__actions .nyxo-btn { min-height: 52px; padding: 16px 28px !important; font-size: 16px !important; }
body.nyxo .nyxo-hero__art {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 420px;
}
body.nyxo .nyxo-hero__halo {
	position: absolute;
	width: min(420px, 90%);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(48, 109, 251, .45) 0%, rgba(48, 109, 251, .12) 45%, transparent 70%);
	filter: blur(6px);
}
body.nyxo .nyxo-hero__art::before {
	content: "";
	position: absolute;
	width: min(360px, 80%);
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid rgba(201, 209, 230, .16);
	box-shadow: 0 0 0 46px rgba(201, 209, 230, .03), 0 0 0 47px rgba(201, 209, 230, .08);
}
body.nyxo img.nyxo-hero__vial {
	position: relative;
	z-index: 1;
	width: auto;
	max-width: 100%;
	height: clamp(320px, 46vh, 480px);
	object-fit: contain;
	filter: drop-shadow(0 30px 40px rgba(6, 12, 30, .55));
}
body.nyxo .nyxo-hero__floor {
	position: absolute;
	bottom: 6%;
	width: 46%;
	height: 22px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(6, 12, 30, .55), transparent);
	z-index: 0;
}
@media (max-width: 860px) {
	body.nyxo .nyxo-hero__in { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: 8px; padding-top: 40px; padding-bottom: 32px; }
	body.nyxo .nyxo-hero__art { order: -1; min-height: 0; height: 230px; margin-bottom: 4px; }
	body.nyxo img.nyxo-hero__vial { height: 220px; }
	body.nyxo .nyxo-hero__halo { width: 240px; }
	body.nyxo .nyxo-hero__art::before { width: 190px; box-shadow: 0 0 0 26px rgba(201, 209, 230, .03), 0 0 0 27px rgba(201, 209, 230, .08); }
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-hero__h { font-size: clamp(2.375rem, 9.6vw, 3rem) !important; margin-bottom: 16px !important; }
	body.nyxo .nyxo-hero__sub { margin-bottom: 24px; }
	body.nyxo .nyxo-hero__actions .nyxo-btn { width: 100%; }
	body.nyxo .nyxo-hero__actions { gap: 16px; justify-content: center; }
}

/* Proof bar */
body.nyxo .nyxo-proof { background: var(--nx-cream); border-bottom: 1px solid var(--nx-line); }
body.nyxo .nyxo-proof__list {
	list-style: none;
	margin: 0 auto !important;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.nyxo .nyxo-proof__item {
	padding: 30px 24px 30px 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 !important;
}
body.nyxo .nyxo-proof__item + .nyxo-proof__item { padding-left: 24px; border-left: 1px solid var(--nx-line); }
body.nyxo .nyxo-proof__num {
	font-family: var(--nx-font);
	font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem);
	font-weight: 600;
	letter-spacing: -.02em;
	color: var(--nx-midnight);
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}
body.nyxo .nyxo-proof__lbl { font-size: 14px; color: var(--nx-slate); line-height: 1.4; }
@media (max-width: 860px) {
	body.nyxo .nyxo-proof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.nyxo .nyxo-proof__item { padding: 20px 14px 20px 0; }
	body.nyxo .nyxo-proof__item + .nyxo-proof__item { padding-left: 14px; }
	body.nyxo .nyxo-proof__item:nth-child(3) { padding-left: 0; border-left: 0; border-top: 1px solid var(--nx-line); }
	body.nyxo .nyxo-proof__item:nth-child(4) { border-top: 1px solid var(--nx-line); }
}

/* Featured cards */
body.nyxo .nyxo-cards {
	list-style: none;
	margin: 0 !important;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 1024px) { body.nyxo .nyxo-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { body.nyxo .nyxo-cards { gap: 12px; } }
body.nyxo .nyxo-card {
	margin: 0 !important;
	background: var(--nx-white);
	border: 1px solid var(--nx-line);
	border-radius: var(--nx-r-md);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 220ms var(--nx-ease), box-shadow 220ms ease;
}
body.nyxo .nyxo-card:hover { transform: translateY(-2px); box-shadow: var(--nx-sh-2); }
body.nyxo .nyxo-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	background: var(--nx-cream-2);
	overflow: hidden;
}
body.nyxo .nyxo-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 9% 12%;
	box-sizing: border-box;
	mix-blend-mode: multiply;
	transition: transform 400ms var(--nx-ease);
}
body.nyxo .nyxo-card:hover .nyxo-card__media img { transform: scale(1.03); }
body.nyxo .nyxo-card__body { padding: 18px 18px 18px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
body.nyxo .nyxo-card__cat { margin: 0; font-family: var(--nx-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--nx-ink-3); }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-card__name { margin: 0 !important; font-size: 18px !important; line-height: 1.25 !important; letter-spacing: -.015em !important; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-card__name a { color: var(--nx-midnight); text-decoration: none; }
body.nyxo .nyxo-card__name a:hover { color: var(--nx-blue-ink); }
body.nyxo .nyxo-card__spec { margin: 0; font-family: var(--nx-mono); font-size: 12px; color: var(--nx-slate); font-variant-numeric: tabular-nums; }
body.nyxo .nyxo-card__price { margin-top: 10px; font-size: 18px; font-weight: 700; color: var(--nx-midnight); }
body.nyxo .nyxo-card__price del { color: var(--nx-ink-3); font-weight: 500; font-size: .8em; }
body.nyxo .nyxo-card__price ins { text-decoration: none; }
body.nyxo .nyxo-card__foot { margin-top: auto; padding-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
@media (max-width: 600px) {
	body.nyxo .nyxo-card__body { padding: 14px 12px 14px; }
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-card__name { font-size: 16px !important; }
	body.nyxo .nyxo-card__spec { font-size: 11px; }
	body.nyxo .nyxo-card__foot { flex-direction: column; align-items: stretch; }
	body.nyxo .nyxo-card__foot .nyxo-chip { align-self: flex-start; }
	body.nyxo .nyxo-card__foot .nyxo-btn { width: 100%; }
}
body.nyxo .nyxo-catlinks { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
body.nyxo .nyxo-catlinks__lbl { font-family: var(--nx-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-ink-3); }
body.nyxo .nyxo-catlinks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.nyxo .nyxo-catlinks a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border-radius: var(--nx-r-pill);
	border: 1px solid var(--nx-line);
	background: #fff;
	color: var(--nx-midnight);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
}
body.nyxo .nyxo-catlinks a:hover { border-color: var(--nx-midnight); color: var(--nx-midnight); }

/* Lot passport */
body.nyxo .nyxo-passport { background: var(--nx-white); border-top: 1px solid var(--nx-line); border-bottom: 1px solid var(--nx-line); }
body.nyxo .nyxo-passport__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
@media (max-width: 900px) { body.nyxo .nyxo-passport__grid { grid-template-columns: minmax(0, 1fr); } }
body.nyxo .nyxo-steps { list-style: none; margin: 32px 0 28px; padding: 0; display: grid; gap: 0; }
body.nyxo .nyxo-steps li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 16px 0; border-top: 1px solid var(--nx-line-2); margin: 0; }
body.nyxo .nyxo-steps li:last-child { border-bottom: 1px solid var(--nx-line-2); }
body.nyxo .nyxo-steps__n { font-family: var(--nx-mono); font-size: 13px; color: var(--nx-blue-ink); padding-top: 3px; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-steps h3 { font-size: 17px !important; margin: 0 0 2px !important; letter-spacing: -.01em !important; }
body.nyxo .nyxo-steps p { margin: 0; color: var(--nx-slate); font-size: 15px; }
body.nyxo .nyxo-lookup {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 6px 6px 16px;
	border: 1px solid #D9D1C3;
	border-radius: var(--nx-r-pill);
	background: var(--nx-cream);
	max-width: 480px;
	transition: border-color var(--nx-t) ease, box-shadow var(--nx-t) ease;
}
body.nyxo .nyxo-lookup:focus-within { border-color: var(--nx-blue-ink); box-shadow: 0 0 0 3px rgba(48, 109, 251, .18); }
body.nyxo .nyxo-lookup__ic { color: var(--nx-ink-3); display: inline-flex; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) input.nyxo-lookup__input {
	flex: 1;
	min-width: 0;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	padding: 10px 4px !important;
	font-family: var(--nx-mono) !important;
	font-size: 15px !important;
	color: var(--nx-midnight) !important;
	text-transform: uppercase;
}
body.nyxo input.nyxo-lookup__input::placeholder { text-transform: none; color: var(--nx-ink-3); }
body.nyxo .nyxo-lookup .nyxo-btn { min-height: 44px; padding: 10px 20px !important; }
/* the passport card */
body.nyxo .nyxo-pass {
	margin: 0;
	background: linear-gradient(180deg, #FFFFFF 0%, #FDFBF8 100%);
	border: 1px solid var(--nx-line);
	border-radius: var(--nx-r-lg);
	padding: 26px 26px 22px;
	box-shadow: var(--nx-sh-3);
	position: relative;
	transform: rotate(-1.2deg);
	max-width: 460px;
	justify-self: center;
	width: 100%;
	box-sizing: border-box;
}
body.nyxo .nyxo-pass::before {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1px dashed rgba(27, 42, 78, .10);
	border-radius: 18px;
	pointer-events: none;
}
body.nyxo .nyxo-pass__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
body.nyxo .nyxo-pass__brand { display: inline-flex; align-items: center; gap: 8px; font-family: var(--nx-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--nx-midnight); }
body.nyxo .nyxo-pass__name { margin: 0 0 14px; font-size: 26px; font-weight: 700; letter-spacing: -.02em; color: var(--nx-midnight); }
body.nyxo .nyxo-pass__name span { font-family: var(--nx-mono); font-size: 14px; font-weight: 400; color: var(--nx-slate); margin-left: 6px; letter-spacing: 0; }
body.nyxo .nyxo-pass__rows { margin: 0; display: grid; }
body.nyxo .nyxo-pass__rows > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--nx-line-2); }
body.nyxo .nyxo-pass__rows dt { margin: 0; font-family: var(--nx-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-ink-3); font-weight: 400; padding-top: 2px; }
body.nyxo .nyxo-pass__rows dd { margin: 0; font-family: var(--nx-mono); font-size: 14px; color: var(--nx-midnight); text-align: right; font-variant-numeric: tabular-nums; }
body.nyxo .nyxo-pass__actions { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--nx-line-2); font-size: 14px; }
@media (max-width: 600px) { body.nyxo .nyxo-pass { transform: none; padding: 20px 18px 18px; } }

/* Offer (one, two versions; CSS shows exactly one) */
body.nyxo .nyxo-offer__card {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
	gap: clamp(24px, 5vw, 64px);
	align-items: center;
	padding: clamp(28px, 5vw, 64px);
	border-radius: var(--nx-r-lg);
	background: var(--nx-midnight);
	color: var(--nx-cream);
}
body.nyxo .nyxo-offer__card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(50% 80% at 100% 0%, rgba(48, 109, 251, .35), transparent 70%);
}
@media (max-width: 900px) { body.nyxo .nyxo-offer__card { grid-template-columns: minmax(0, 1fr); } }
body.nyxo .nyxo-offer__card--night { display: none; }
body.nyxo.nyxo-night .nyxo-offer__card--night { display: grid; }
body.nyxo.nyxo-night .nyxo-offer__card--day { display: none; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-offer__h { color: #fff !important; max-width: 16ch; }
body.nyxo .nyxo-offer__terms { color: var(--nx-on-dark-2); max-width: 54ch; margin: 0 0 28px; font-size: 1rem; }
body.nyxo .nyxo-offer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
body.nyxo .nyxo-offer__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--nx-on-dark); display: inline-block; }
body.nyxo .nyxo-offer__also { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid rgba(201, 209, 230, .16); }
body.nyxo .nyxo-offer__also li { margin: 0; padding: 14px 0; border-bottom: 1px solid rgba(201, 209, 230, .16); display: grid; gap: 2px; }
body.nyxo .nyxo-offer__also b { font-family: var(--nx-mono); font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-on-dark); }
body.nyxo .nyxo-offer__also span { color: var(--nx-cream); font-size: 15px; }
body.nyxo .nyxo-offer__also a { color: var(--nx-cream); text-decoration: underline; text-underline-offset: 3px; }
body.nyxo .nyxo-offer__also a:hover { color: #fff; }
@media (max-width: 600px) { body.nyxo .nyxo-offer__actions .nyxo-btn { width: 100%; } }

/* Who runs Nyxo */
body.nyxo .nyxo-who { background: var(--nx-cream-2); }
body.nyxo .nyxo-who__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
@media (max-width: 900px) { body.nyxo .nyxo-who__grid { grid-template-columns: minmax(0, 1fr); } }
body.nyxo .nyxo-who__quote { margin: 8px 0 0; padding: 0; border: 0 !important; quotes: none; font-style: normal; background: none; }
body.nyxo .nyxo-who__quote p { font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); line-height: 1.6; color: var(--nx-midnight); margin: 0 0 18px; max-width: 54ch; }
body.nyxo .nyxo-who__quote footer { display: flex; flex-direction: column; gap: 2px; }
body.nyxo .nyxo-who__sig { font-family: var(--nx-serif); font-style: italic; font-size: 26px; color: var(--nx-midnight); line-height: 1.1; }
body.nyxo .nyxo-who__role { font-family: var(--nx-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-ink-3); }
body.nyxo .nyxo-who__note .nyxo-fine { margin: 22px 0 22px; }
body.nyxo .nyxo-who__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
body.nyxo .nyxo-who__facts li { margin: 0; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 20px; background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r-md); }
body.nyxo .nyxo-who__ic { width: 44px; height: 44px; border-radius: 12px; background: var(--nx-ice); color: var(--nx-blue); display: inline-flex; align-items: center; justify-content: center; }
html body.nyxo:not(#nx1):not(#nx2):not(#nx3) .nyxo-who__facts h3 { font-size: 16px !important; margin: 0 0 4px !important; letter-spacing: -.01em !important; }
body.nyxo .nyxo-who__facts p { margin: 0; font-size: 14px; color: var(--nx-slate); }

/* FAQ */
body.nyxo .nyxo-faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
@media (max-width: 900px) { body.nyxo .nyxo-faq__grid { grid-template-columns: minmax(0, 1fr); } }
body.nyxo .nyxo-faq__list { border-top: 1px solid var(--nx-line); }
body.nyxo .nyxo-faq__item { border-bottom: 1px solid var(--nx-line); }
body.nyxo .nyxo-faq__item summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	font-weight: 600;
	font-size: 17px;
	color: var(--nx-midnight);
	min-height: 44px;
}
body.nyxo .nyxo-faq__item summary::-webkit-details-marker { display: none; }
body.nyxo .nyxo-faq__item summary:hover { color: var(--nx-blue-ink); }
body.nyxo .nyxo-faq__pm { position: relative; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--nx-line); }
body.nyxo .nyxo-faq__pm::before,
body.nyxo .nyxo-faq__pm::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform var(--nx-t) var(--nx-ease); }
body.nyxo .nyxo-faq__pm::after { transform: translate(-50%, -50%) rotate(90deg); }
body.nyxo .nyxo-faq__item[open] .nyxo-faq__pm::after { transform: translate(-50%, -50%) rotate(0deg); }
body.nyxo .nyxo-faq__a { padding: 0 44px 22px 0; }
body.nyxo .nyxo-faq__a p { margin: 0; color: var(--nx-slate); font-size: 16px; max-width: 62ch; }

/* ---------- 12. Footer ---------- */
body.nyxo .nyxo-footer {
	background: var(--nx-grad);
	color: var(--nx-cream);
	padding: clamp(56px, 6vw, 96px) 0 28px;
	position: relative;
	overflow: hidden;
	font-size: 15px;
}
body.nyxo .nyxo-footer::before {
	content: "";
	position: absolute;
	right: -120px;
	top: -160px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	border: 70px solid rgba(48, 109, 251, .08);
	pointer-events: none;
}
body.nyxo .nyxo-footer a { color: var(--nx-cream); text-decoration: none; }
body.nyxo .nyxo-footer a:hover { color: var(--nx-on-dark); }
body.nyxo .nyxo-footer__top { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 32px; padding-bottom: 40px; border-bottom: 1px solid rgba(201, 209, 230, .16); position: relative; }
@media (max-width: 900px) { body.nyxo .nyxo-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.nyxo .nyxo-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { body.nyxo .nyxo-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; } }
body.nyxo .nyxo-footer__logo { display: inline-block; margin-bottom: 18px; }
body.nyxo .nyxo-footer__logo img { height: 34px; width: auto; display: block; }
body.nyxo .nyxo-footer__blurb { color: var(--nx-on-dark-2); max-width: 36ch; margin: 0 0 16px; font-size: 15px; }
body.nyxo .nyxo-footer__mail { font-family: var(--nx-mono); font-size: 14px; color: var(--nx-on-dark) !important; text-decoration: underline !important; text-underline-offset: 4px; }
body.nyxo .nyxo-footer__h { font-family: var(--nx-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--nx-on-dark); margin: 4px 0 14px; }
body.nyxo .nyxo-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
body.nyxo .nyxo-footer__col li { margin: 0; }
body.nyxo .nyxo-footer__col a { display: inline-flex; align-items: center; min-height: 32px; color: var(--nx-cream); }
body.nyxo .nyxo-footer__legal { padding: 28px 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 32px; border-bottom: 1px solid rgba(201, 209, 230, .16); position: relative; }
@media (max-width: 900px) { body.nyxo .nyxo-footer__legal { grid-template-columns: minmax(0, 1fr); gap: 16px; } }
body.nyxo .nyxo-footer__entity { margin: 0; color: var(--nx-cream); font-size: 14px; line-height: 1.7; }
body.nyxo .nyxo-footer__entity a { color: var(--nx-on-dark); }
body.nyxo .nyxo-footer__ruo { margin: 0; color: var(--nx-on-dark-2); font-size: 13px; line-height: 1.6; }
body.nyxo .nyxo-footer__ruo strong { color: var(--nx-cream); font-weight: 600; }
body.nyxo .nyxo-footer__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 22px; position: relative; }
body.nyxo .nyxo-footer__bar p { margin: 0; font-size: 13px; color: var(--nx-on-dark-2); }
body.nyxo .nyxo-footer__sign { font-family: var(--nx-serif); font-style: italic; font-size: 16px; color: var(--nx-cream); margin-left: 8px; }
body.nyxo .nyxo-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; }
body.nyxo .nyxo-footer__links li { margin: 0; }
body.nyxo .nyxo-footer__links a { font-size: 13px; color: var(--nx-on-dark-2); min-height: 32px; display: inline-flex; align-items: center; }
@media (max-width: 560px) { body.nyxo .nyxo-footer__sign { display: block; margin: 6px 0 0; } }

/* Icons */
body.nyxo .nyxo-ic { flex: 0 0 auto; vertical-align: middle; }
body.nyxo .nyxo-mark { flex: 0 0 auto; }

/* ---------- 13. Motion ---------- */
@media (prefers-reduced-motion: reduce) {
	body.nyxo *,
	body.nyxo *::before,
	body.nyxo *::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
	body.nyxo .nyxo-card:hover,
	html body.nyxo:not(#nx1):not(#nx2):not(#nx3) ul.products li.product:hover { transform: none; }
}

/* Admin bar: keep the toolbar search submit hidden (our button styles were un-hiding it). */
#wpadminbar #adminbarsearch .adminbar-button{display:none!important}
/* Transparent Nyxo cutouts need no blending; the legacy multiply rule made the white diluent vial vanish. */
.nyxo img[src*="nyxo-cutout"],.nyxo img[srcset*="nyxo-cutout"]{mix-blend-mode:normal!important}
/* Product page: studio photo fills the gallery frame (4:5), no white matte. */
.nyxo .woocommerce-product-gallery__image img.wp-post-image[src*="nyxo-photo"]{display:block;width:100%!important;height:auto!important;aspect-ratio:4/5;object-fit:cover!important;object-position:50% 50%!important;padding:0!important;max-height:none!important;border-radius:14px}
.nyxo .woocommerce-product-gallery__image:has(img[src*="nyxo-photo"]){height:auto!important;background:none!important}
