/*
Theme Name: Nexun
Theme URI: https://nexun.store
Description: FIELD STANDARD storefront theme for Nexun — the approved React campaign design rebuilt as a server-rendered WooCommerce theme. Hand-written CSS, no framework, no page builder. RTL-ready: logical properties only.
Author: Nexun
Version: 2.0.0
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 8.1
License: Proprietary
Text Domain: nexun
*/

/* ==========================================================================
   FIELD STANDARD design system (Phase 5R)

   Values are carried over from the React reference (Tailwind 4 tokens in
   src/index.css and the utility classes in each component): spacing scale,
   breakpoints (sm 640 / md 768 / lg 1024), type clamps, surface opacities
   and the expo easing. Logical properties only, so RTL is a `dir` flip.
   ========================================================================== */

/* ---- Self-hosted fonts (OFL, Fontsource) — see assets/fonts/licenses ---- */
@font-face {
	font-family: 'Archivo';
	font-style: normal; font-weight: 100 900; font-display: swap;
	src: url('assets/fonts/archivo-latin-wght-normal.woff2') format('woff2-variations'), url('assets/fonts/archivo-latin-wght-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Inter';
	font-style: normal; font-weight: 100 900; font-display: swap;
	src: url('assets/fonts/inter-latin-wght-normal.woff2') format('woff2-variations'), url('assets/fonts/inter-latin-wght-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2'); }
@font-face {
	font-family: 'IBM Plex Sans Arabic';
	font-style: normal; font-weight: 400; font-display: swap;
	src: url('assets/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2') format('woff2');
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: 'IBM Plex Sans Arabic';
	font-style: normal; font-weight: 600; font-display: swap;
	src: url('assets/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2') format('woff2');
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

/* ---- Tokens ---- */
:root {
	--ink:   #12120f;
	--coal:  #1a1a16;
	--soot:  #24241f;
	--paper: #edeae1;
	--bone:  #e0dccf;
	--fog:   #8f8a7a;
	--ash:   #67634f;
	--navy:  #202a3f;
	--olive: #5c5e45;
	--khaki: #b2a88c;
	--clay:  #9a7f68;

	--font-display: 'Archivo', 'IBM Plex Sans Arabic', ui-sans-serif, system-ui, sans-serif;
	--font-body:    'Inter', 'IBM Plex Sans Arabic', ui-sans-serif, system-ui, sans-serif;
	--font-mono:    'IBM Plex Mono', ui-monospace, 'SFMono-Regular', monospace;

	--ease: cubic-bezier(.16, 1, .3, 1);
	--maxw: 1440px;
	--gutter: 1.25rem;
	--header-h: 64px;

	/* Compatibility aliases for WooCommerce/Syria markup. */
	--ink-soft: color-mix(in srgb, var(--ink) 60%, transparent);
	--line: color-mix(in srgb, var(--ink) 15%, transparent);
}
@media (min-width: 640px) { :root { --gutter: 2rem; --header-h: 72px; } }

/* ---- Base ---- */
*, *::before, *::after { box-sizing: border-box; }
html {
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-h);
}
body {
	margin: 0;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.5;
	overflow-x: hidden;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
#main { flex: 1 0 auto; outline: 0; }
body.nx-page #main { padding-top: var(--header-h); background: var(--paper); }
img, svg, video { max-width: 100%; height: auto; display: block; }
img { user-select: none; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
dl, dd, figure, blockquote { margin: 0; }
::selection { background: var(--khaki); color: var(--ink); }
:focus-visible { outline: 2px solid var(--khaki); outline-offset: 3px; border-radius: 2px; }
.nx-light :focus-visible { outline-color: var(--olive); }
[hidden] { display: none !important; }
[dir="rtl"] body, :lang(ar) { font-family: var(--font-body); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.nx-skip:focus {
	clip: auto; width: auto; height: auto; margin: 0; z-index: 100;
	inset-block-start: .75rem; inset-inline-start: .75rem;
	padding: .75rem 1rem; background: var(--paper); color: var(--ink);
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
}

/* ---- Layout primitives ---- */
.nx-wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.nx-pad { padding-block: 6rem; }
@media (min-width: 640px) { .nx-pad { padding-block: 8rem; } }
@media (min-width: 1024px) { .nx-pad { padding-block: 10rem; } }

.nx-dark { position: relative; background: var(--ink); color: var(--paper); }
.nx-light { position: relative; background: var(--paper); color: var(--ink); }
.nx-sticky { position: relative; }
@media (min-width: 1024px) { .nx-sticky { position: sticky; top: 7rem; } }

.nx-split { display: grid; gap: 4rem; }
/* Grid tracks must be allowed to shrink so wide children (tables) scroll inside them. */
.nx-split > *, .nx-head > *, .nx-fit__sizing > *, .nx-manifesto__grid > *, .site-footer__grid > * { min-width: 0; }
@media (min-width: 1024px) {
	.nx-split { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; }
	.nx-split--5-7 > .nx-split__copy { grid-column: span 5; }
	.nx-split--5-7 > .nx-split__media { grid-column: span 7; }
	.nx-split--4-8 > .nx-split__copy { grid-column: span 4; }
	.nx-split--4-8 > .nx-split__media { grid-column: span 8; }
	.nx-split--6-6 > * { grid-column: span 6; }
}
.nx-split--4-8, .nx-split--6-6 { gap: 3.5rem; }
@media (min-width: 1024px) { .nx-split--4-8, .nx-split--6-6 { gap: 3rem; } }

.nx-head { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) {
	.nx-head { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; }
	.nx-head__main { grid-column: span 7; }
	.nx-head__aside { grid-column: span 5; margin-inline-start: auto; }
}

/* ---- Type ---- */
.nx-tag {
	display: flex; align-items: center; gap: .75rem;
	font-family: var(--font-mono); font-size: 11px; line-height: 1.5; letter-spacing: .3em; text-transform: uppercase;
	color: color-mix(in srgb, var(--ink) 55%, transparent);
}
.nx-tag > span, .nx-tag > a { white-space: nowrap; }
.nx-tag a:hover { color: var(--ink); }
.nx-tag--dark, .nx-dark .nx-tag { color: color-mix(in srgb, var(--paper) 50%, transparent); }
.nx-tag__rule { flex: 1 1 auto; height: 1px; background: currentColor; opacity: .2; }

.nx-h { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; line-height: .98; letter-spacing: -.03em; margin-top: 2rem; }
.nx-h--xl { font-size: clamp(2.2rem, 5vw, 4.5rem); }
.nx-h--lg { font-size: clamp(2.2rem, 4.5vw, 4rem); }
.nx-h--md { font-size: clamp(2.2rem, 4.5vw, 3.8rem); }
.nx-h--intro { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.02; letter-spacing: -.025em; }
.nx-voices .nx-h--xl, .nx-acquire .nx-h--xl { font-size: clamp(2.2rem, 5vw, 4.2rem); }
.nx-h--closing { font-size: clamp(2.6rem, 7.5vw, 7rem); line-height: .95; }
.nx-h--page { font-size: clamp(2.4rem, 6vw, 5rem); line-height: .95; margin: 0; }
.nx-h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; line-height: 1.2; text-transform: uppercase; letter-spacing: -.01em; }

.nx-accent--muted { color: color-mix(in srgb, currentColor 45%, transparent); }
.nx-dark .nx-accent--muted { color: color-mix(in srgb, var(--paper) 40%, transparent); }
.nx-accent--outline, .nx-outline {
	color: transparent;
	-webkit-text-stroke: 1.5px color-mix(in srgb, var(--paper) 45%, transparent);
}
.nx-light .nx-accent--outline { -webkit-text-stroke-color: color-mix(in srgb, var(--ink) 45%, transparent); }

.nx-body { font-size: 15px; line-height: 1.625; max-width: 28rem; color: color-mix(in srgb, var(--paper) 55%, transparent); }
.nx-body > p + p { margin-top: 1.25rem; }
.nx-body--ink { color: color-mix(in srgb, var(--ink) 65%, transparent); max-width: 32rem; margin-top: 1.75rem; }
.nx-body--sm { font-size: 14px; margin-top: 1rem; color: color-mix(in srgb, var(--paper) 50%, transparent); max-width: 24rem; }
.nx-note { font-family: var(--font-mono); font-size: 10px; line-height: 1.625; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, currentColor 45%, transparent); }
.nx-note--dim { color: color-mix(in srgb, currentColor 30%, transparent); margin-top: 1rem; }
.nx-mono-label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 50%, transparent); }
.nx-textlink {
	display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.5rem;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
	color: var(--khaki); transition: color .5s var(--ease);
}
.nx-textlink .nx-icon { width: 14px; height: 14px; transition: transform .5s var(--ease); }
.nx-textlink:hover { color: var(--paper); }
.nx-textlink:hover .nx-icon { transform: translateX(4px); }
[dir="rtl"] .nx-textlink .nx-icon, [dir="rtl"] .nx-btn__icon, [dir="rtl"] .nx-submit .nx-icon { transform: scaleX(-1); }
.nx-textlink--ink { margin-top: 0; color: color-mix(in srgb, var(--ink) 60%, transparent); letter-spacing: .2em; }
.nx-textlink--ink:hover { color: var(--ink); }

.nx-icon { width: 1em; height: 1em; flex: none; }

/* ---- Button: sharp editorial CTA with sliding arrow ---- */
.nx-btn {
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
	padding: 1rem 1.75rem; border: 1px solid transparent; border-radius: 999px; overflow: hidden;
	font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; line-height: 1.5;
	transition: background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
	cursor: pointer; white-space: nowrap;
}
.nx-btn__icon { width: 16px; height: 16px; transition: transform .5s var(--ease); }
.nx-btn:hover .nx-btn__icon { transform: translate(4px, -4px); }
.nx-btn--fill-ink { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.nx-btn--fill-ink:hover { background: var(--soot); border-color: var(--soot); }
.nx-btn--fill-paper { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.nx-btn--fill-paper:hover { background: var(--bone); border-color: var(--bone); }
.nx-btn--line-ink { background: transparent; color: var(--ink); border-color: color-mix(in srgb, var(--ink) 25%, transparent); }
.nx-btn--line-ink:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.nx-btn--line-paper { background: transparent; color: var(--paper); border-color: color-mix(in srgb, var(--paper) 25%, transparent); }
.nx-btn--line-paper:hover { border-color: var(--paper); background: var(--paper); color: var(--ink); }
.nx-btn--lg { padding: 1.25rem 2.5rem; }
.nx-btn--block { width: 100%; margin-top: 1.5rem; }

/* ---- Cells: hairline-divided grids (principles, features, notes, slots) ---- */
.nx-cells { display: grid; gap: 1px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); background: color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-cell { background: var(--ink); padding: 1.75rem; transition: background-color .5s var(--ease); }
.nx-cell:hover { background: color-mix(in srgb, var(--soot) 60%, var(--ink)); }
@media (min-width: 640px) {
	.nx-cell { padding: 2rem; }
	.nx-cells--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nx-cells--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) { .nx-cells--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nx-cells--ink { border-color: color-mix(in srgb, var(--ink) 15%, transparent); background: color-mix(in srgb, var(--ink) 15%, transparent); }
.nx-cells--ink .nx-cell { background: var(--paper); }
.nx-cells--ink .nx-cell:hover { background: color-mix(in srgb, var(--bone) 70%, var(--paper)); }
.nx-cell__num { font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em; color: color-mix(in srgb, var(--khaki) 80%, transparent); }
.nx-cell__title { margin-top: 1.25rem; font-weight: 700; font-size: 1.25rem; line-height: 1.4; text-transform: uppercase; letter-spacing: -.01em; }
.nx-cell__title--sm { margin-top: 1.5rem; font-size: 1.125rem; letter-spacing: .01em; }
.nx-cell__title--xs { margin-top: .75rem; font-size: 1rem; letter-spacing: 0; }
.nx-cell__body { margin-top: .75rem; font-size: 14px; line-height: 1.625; color: color-mix(in srgb, var(--paper) 50%, transparent); }
.nx-cells--ink .nx-cell__body { color: color-mix(in srgb, var(--ink) 55%, transparent); }
.nx-cell__icon { width: 20px; height: 20px; color: color-mix(in srgb, var(--ink) 55%, transparent); stroke-width: 1.5; transition: transform .5s var(--ease), color .5s var(--ease); }
.nx-cell:hover .nx-cell__icon { transform: translateY(-4px); color: var(--olive); }
.nx-cell--compact { padding: 1.5rem; }
@media (min-width: 640px) { .nx-cell--compact { padding: 1.75rem; } }
.nx-cell--compact .nx-cell__body { margin-top: .5rem; color: color-mix(in srgb, var(--paper) 45%, transparent); }

/* ---- Frame: clip-reveal editorial figure with film grade ---- */
.nx-frame { min-width: 0; }
.nx-frame__media { position: relative; overflow: hidden; background: var(--soot); aspect-ratio: 4 / 5; }
.nx-frame--square .nx-frame__media { aspect-ratio: 1; }
.nx-frame--landscape .nx-frame__media { aspect-ratio: 4 / 3; }
.nx-frame--wide .nx-frame__media { aspect-ratio: 16 / 10; }
.nx-frame--panorama .nx-frame__media { aspect-ratio: 16 / 10; }
@media (min-width: 640px) { .nx-frame--panorama .nx-frame__media { aspect-ratio: 21 / 9; } }
.nx-frame__img, .nx-frame__media img {
	width: 100%; height: 100%; object-fit: cover;
	filter: saturate(.82) contrast(1.02) brightness(.96);
	transition: transform 1.6s var(--ease);
}
.nx-frame:hover .nx-frame__img { transform: scale(1.04); }
.nx-frame__media::after {
	content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .7;
	background: linear-gradient(to top, color-mix(in srgb, var(--ink) 35%, transparent), transparent 50%, color-mix(in srgb, var(--ink) 10%, transparent));
}
.nx-frame figcaption {
	margin-top: .75rem; font-family: var(--font-mono); font-size: 10px; line-height: 1.5; letter-spacing: .24em; text-transform: uppercase;
	color: color-mix(in srgb, currentColor 45%, transparent); transition: color .5s var(--ease);
}
.nx-frame:hover figcaption { color: color-mix(in srgb, currentColor 70%, transparent); }

/* ---- Ambient washes, ghost numerals, grain ---- */
.nx-wash { position: absolute; inset: 0; pointer-events: none; }
.nx-wash--showcase { background: radial-gradient(90% 60% at 80% 0%, rgba(32, 42, 63, .35), transparent 60%); }
.nx-wash--voices { background: radial-gradient(80% 60% at 20% 100%, rgba(92, 94, 69, .22), transparent 60%); }
.nx-wash--acquire { background: radial-gradient(70% 60% at 85% 10%, rgba(32, 42, 63, .5), transparent 60%), radial-gradient(60% 50% at 10% 90%, rgba(92, 94, 69, .28), transparent 60%); }
.nx-wash--closing { background: radial-gradient(75% 65% at 50% 110%, rgba(32, 42, 63, .55), transparent 65%); }
.nx-ghost {
	position: absolute; pointer-events: none; user-select: none; line-height: 1;
	font-family: var(--font-display); font-weight: 800; color: transparent;
	-webkit-text-stroke: 1px color-mix(in srgb, currentColor 22%, transparent);
}
.nx-ghost--intro { display: none; inset-inline-end: -2.5rem; top: 2rem; font-size: 26rem; color: transparent; -webkit-text-stroke-color: color-mix(in srgb, var(--ink) 10%, transparent); }
@media (min-width: 1024px) { .nx-ghost--intro { display: block; } }
.nx-ghost--closing { left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 38vw; -webkit-text-stroke-color: color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-grain {
	position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .05; mix-blend-mode: soft-light;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 180px 180px;
}

/* ==========================================================================
   Header — React Navbar
   ========================================================================== */
.site-header {
	position: fixed; inset-inline: 0; top: 0; z-index: 50;
	border-bottom: 1px solid transparent; background: transparent;
	transition: background-color .7s var(--ease), border-color .7s var(--ease), backdrop-filter .7s var(--ease);
}
.site-header.is-scrolled, .site-header.is-solid, .has-menu-open .site-header {
	border-bottom-color: color-mix(in srgb, var(--paper) 10%, transparent);
	background: color-mix(in srgb, var(--ink) 80%, transparent);
	-webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
}
.site-header.is-solid { background: color-mix(in srgb, var(--ink) 92%, transparent); }
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	height: var(--header-h); max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter);
}
.site-brand { font-family: var(--font-display); font-size: 26px; font-weight: 800; line-height: 1; letter-spacing: -.04em; text-transform: lowercase; color: var(--paper); }
.site-nav { display: none; align-items: center; gap: 2rem; }
@media (min-width: 1024px) { .site-nav { display: flex; } }
.site-nav__link {
	position: relative; font-family: var(--font-mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
	color: color-mix(in srgb, var(--paper) 60%, transparent); transition: color .4s;
}
.site-nav__link::after {
	content: ''; position: absolute; bottom: -6px; inset-inline-start: 0; width: 100%; height: 1px; background: var(--khaki);
	transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease);
}
.site-nav__link:hover { color: var(--paper); }
.site-nav__link:hover::after { transform: scaleX(1); transform-origin: left; }
.site-header__actions { display: flex; align-items: center; gap: .75rem; }
.site-header__cta {
	display: none; align-items: center; gap: .5rem; padding: .625rem 1.25rem;
	border: 1px solid color-mix(in srgb, var(--paper) 25%, transparent); border-radius: 999px;
	font-family: var(--font-mono); font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--paper);
	transition: background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
}
.site-header__cta .nx-icon { width: 14px; height: 14px; transition: transform .5s; }
.site-header__cta:hover { border-color: var(--paper); background: var(--paper); color: var(--ink); }
.site-header__cta:hover .nx-icon { transform: translate(2px, -2px); }
@media (min-width: 640px) { .site-header__cta { display: inline-flex; } }
.cart-link {
	display: inline-flex; align-items: center; gap: .45rem;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
	color: color-mix(in srgb, var(--paper) 70%, transparent); transition: color .4s;
}
.cart-link:hover { color: var(--paper); }
.cart-link__icon { width: 16px; height: 16px; }
.cart-link__label { display: none; }
@media (min-width: 640px) { .cart-link__label { display: inline; } }
.cart-link__count {
	display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding-inline: 5px;
	border-radius: 999px; background: var(--khaki); color: var(--ink); font-size: 10px; font-weight: 600; letter-spacing: 0;
}
.cart-link__count[data-count="0"] { display: none; }
.cart-link--pill { padding: .625rem 1rem; border: 1px solid color-mix(in srgb, var(--paper) 25%, transparent); border-radius: 999px; color: var(--paper); }
.cart-link--pill .cart-link__label { display: inline; }
.cart-link--pill:hover { border-color: var(--paper); }
.nav-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0;
	border: 1px solid color-mix(in srgb, var(--paper) 20%, transparent); border-radius: 999px; background: transparent; color: var(--paper); cursor: pointer;
	transition: border-color .4s;
}
.nav-toggle:hover { border-color: color-mix(in srgb, var(--paper) 50%, transparent); }
.nav-toggle .nx-icon { width: 16px; height: 16px; }
.nav-toggle__close, .nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }
@media (min-width: 1024px) { .nav-toggle { display: none; } }

.mobile-menu {
	position: fixed; inset: 0; z-index: 40; display: flex; flex-direction: column; overflow-y: auto;
	background: var(--ink); color: var(--paper);
	background-image: radial-gradient(120% 80% at 50% 100%, rgba(92, 94, 69, .18), transparent 60%);
}
.mobile-menu__nav { display: flex; flex-direction: column; margin-top: 7rem; padding-inline: 2rem; }
.mobile-menu__link { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; border-bottom: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.mobile-menu__label { font-family: var(--font-display); font-size: 2.25rem; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; text-transform: uppercase; transition: color .4s; }
.mobile-menu__link:hover .mobile-menu__label { color: var(--khaki); }
.mobile-menu__num { font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em; color: color-mix(in srgb, var(--paper) 35%, transparent); }
.mobile-menu__meta { display: flex; justify-content: space-between; gap: 1rem; margin: auto 2rem 2.5rem; padding-top: 2.5rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .28em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 35%, transparent); }
.has-menu-open { overflow: hidden; }
@media (min-width: 1024px) { .mobile-menu { display: none !important; } }

/* ==========================================================================
   Campaign sections
   ========================================================================== */
.nx-campaign section[id] { scroll-margin-top: 0; }

/* ---- Hero ---- */
.nx-hero { position: relative; display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; overflow: hidden; background: var(--ink); color: var(--paper); }
.nx-hero__media { position: absolute; inset: 0; }
.nx-hero__media picture, .nx-hero__img { width: 100%; height: 100%; }
.nx-hero__img { object-fit: cover; object-position: center; filter: saturate(.82) contrast(1.02) brightness(.96); transform: translate3d(0, var(--hero-y, 0), 0) scale(1.12); will-change: transform; }
.nx-hero__shade { position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(to right, color-mix(in srgb, var(--ink) 70%, transparent), transparent 50%),
		linear-gradient(to top, var(--ink), color-mix(in srgb, var(--ink) 25%, transparent) 50%, color-mix(in srgb, var(--ink) 40%, transparent));
}
[dir="rtl"] .nx-hero__shade { background: linear-gradient(to left, color-mix(in srgb, var(--ink) 70%, transparent), transparent 50%), linear-gradient(to top, var(--ink), color-mix(in srgb, var(--ink) 25%, transparent) 50%, color-mix(in srgb, var(--ink) 40%, transparent)); }
.nx-hero__content { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 10rem; padding-bottom: 7rem; transform: translate3d(0, var(--hero-content-y, 0), 0); opacity: var(--hero-fade, 1); }
@media (min-width: 640px) { .nx-hero__content { padding-bottom: 8rem; } }
.nx-hero__kicker { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1.25rem; row-gap: .5rem; margin-bottom: 2rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 60%, transparent); }
@media (min-width: 640px) { .nx-hero__kicker { font-size: 11px; } }
.nx-hero__brand { color: var(--khaki); }
.nx-hero__dash { display: none; width: 2.5rem; height: 1px; background: color-mix(in srgb, var(--paper) 30%, transparent); }
@media (min-width: 640px) { .nx-hero__dash { display: block; } }
.nx-hero__title { font-family: var(--font-display); font-size: clamp(2.9rem, 9.2vw, 8.75rem); font-weight: 800; line-height: .94; letter-spacing: -.035em; text-transform: uppercase; color: var(--paper); }
.nx-hero__line { display: block; }
.nx-mask { display: inline-block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; vertical-align: top; }
.nx-rise { display: inline-block; }
.nx-hero__lede { margin-top: 2rem; max-width: 36rem; font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--paper) 70%, transparent); }
@media (min-width: 640px) { .nx-hero__lede { font-size: 16px; } }
.nx-hero__ctas { margin-top: 2.5rem; display: flex; flex-direction: column; gap: .75rem; }
@media (min-width: 640px) { .nx-hero__ctas { flex-direction: row; align-items: center; } }
.nx-hero__facts { position: absolute; bottom: 8rem; inset-inline-end: 2rem; display: none; flex-direction: column; align-items: flex-end; gap: .5rem; text-align: end; font-family: var(--font-mono); font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 45%, transparent); }
@media (min-width: 1024px) { .nx-hero__facts { display: flex; } }
.nx-hero__coords { margin-top: .75rem; display: flex; align-items: center; gap: .5rem; color: color-mix(in srgb, var(--khaki) 80%, transparent); }
.nx-hero__coords [lang="ar"] { font-family: var(--font-body); font-size: 12px; letter-spacing: 0; }
.nx-hero__scroll { position: relative; z-index: 1; display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 40%, transparent); opacity: var(--hero-fade, 1); }
.nx-hero__track { position: relative; flex: 1; height: 1px; overflow: hidden; background: color-mix(in srgb, var(--paper) 15%, transparent); }
.nx-hero__scrub { position: absolute; top: 0; inset-inline-start: 0; width: 4rem; height: 1px; background: var(--khaki); }
.nx-hero__arrow { width: 14px; height: 14px; }

/* ---- Marquee + manifesto ---- */
.nx-marquee { position: relative; overflow: hidden; padding-block: 1.25rem; border-block: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-marquee__track { display: flex; width: max-content; align-items: center; animation: nx-marquee 44s linear infinite; }
.nx-marquee:hover .nx-marquee__track { animation-play-state: paused; }
.nx-marquee__item { display: flex; align-items: center; gap: 2rem; padding-inline-end: 2rem; white-space: nowrap; font-family: var(--font-mono); font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 55%, transparent); }
.nx-marquee__plus { width: 14px; height: 14px; color: color-mix(in srgb, var(--khaki) 70%, transparent); stroke-width: 1.5; }
@keyframes nx-marquee { to { transform: translateX(-50%); } }
[dir="rtl"] .nx-marquee__track { animation-name: nx-marquee-rtl; }
@keyframes nx-marquee-rtl { to { transform: translateX(50%); } }

.nx-manifesto__grid { display: grid; gap: 3.5rem; }
@media (min-width: 1024px) {
	.nx-manifesto__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem; }
	.nx-manifesto__rail { grid-column: span 3; }
	.nx-manifesto__body { grid-column: span 9; }
	.nx-manifesto .nx-sticky { top: 8rem; }
}
.nx-manifesto__note { display: none; margin-top: 2.5rem; }
@media (min-width: 1024px) { .nx-manifesto__note { display: block; } }
.nx-manifesto__note p { max-width: 220px; font-size: 14px; line-height: 1.625; color: color-mix(in srgb, var(--paper) 45%, transparent); }
.nx-manifesto__note .nx-manifesto__native { margin-top: 1.5rem; color: color-mix(in srgb, var(--paper) 30%, transparent); }
.nx-manifesto__statement { font-family: var(--font-display); font-size: clamp(1.6rem, 3.6vw, 3.1rem); font-weight: 500; line-height: 1.28; letter-spacing: -.01em; color: var(--paper); }
.nx-sword { display: inline-block; }
.nx-manifesto__principles { margin-top: 4rem; }
@media (min-width: 1024px) { .nx-manifesto__principles { margin-top: 6rem; } }
.nx-manifesto .nx-cell__title { margin-top: 1.25rem; }

/* ---- Product intro ---- */
.nx-intro { overflow: hidden; }
.nx-intro .nx-sticky { z-index: 1; }
.nx-badge { margin-top: 2.5rem; max-width: 320px; color: var(--ink); }
.nx-badge svg { width: 100%; }
.nx-badge__arc { font-family: var(--font-display); font-weight: 800; font-size: 34px; letter-spacing: 1.5px; fill: currentColor; }
.nx-badge__code { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1.5px; fill: var(--paper); }
.nx-badge__sub { font-family: var(--font-mono); font-size: 10px; letter-spacing: 4px; fill: currentColor; opacity: .7; }
.nx-intro .nx-h { margin-top: 2rem; }
.nx-intro .nx-body--ink { margin-top: 1.5rem; }
.nx-specs { margin-top: 2.5rem; border-top: 1px solid var(--line); }
.nx-specs__row { display: grid; grid-template-columns: 110px 1fr; gap: 1rem; padding-block: .875rem; border-bottom: 1px solid var(--line); transition: background-color .4s; }
@media (min-width: 640px) { .nx-specs__row { grid-template-columns: 140px 1fr; } }
.nx-specs__row:hover { background: color-mix(in srgb, var(--ink) 3.5%, transparent); }
.nx-specs dt { padding-inline-start: .5rem; font-family: var(--font-mono); font-size: 10px; line-height: 1.25rem; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 45%, transparent); transition: transform .4s; }
.nx-specs__row:hover dt { transform: translateX(4px); }
.nx-specs dd { padding-inline-end: .5rem; font-size: 14px; font-weight: 500; color: color-mix(in srgb, var(--ink) 80%, transparent); }
.nx-intro__cta { margin-top: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.nx-intro__cta .nx-note { max-width: 200px; letter-spacing: .18em; }
.nx-intro__pair { margin-top: 2.5rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
@media (min-width: 640px) { .nx-intro__pair { gap: 2.5rem; } }
.nx-intro__quote { display: flex; flex-direction: column; justify-content: center; padding-inline: .25rem; }
@media (min-width: 640px) { .nx-intro__quote { padding-inline: 1rem; } }
.nx-intro__quote p { font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; line-height: 1.375; color: color-mix(in srgb, var(--ink) 75%, transparent); }
@media (min-width: 640px) { .nx-intro__quote p { font-size: 1.25rem; } }
.nx-intro__quote .nx-intro__by { margin-top: 1rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 40%, transparent); }

/* ---- Showcase ---- */
.nx-showcase { overflow: hidden; }
.nx-showcase .nx-wrap { position: relative; }
.nx-showcase__grid { margin-top: 4rem; display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .nx-showcase__grid { gap: 2.5rem; } }
@media (min-width: 1024px) {
	.nx-showcase__grid { margin-top: 6rem; grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.nx-showcase__a { grid-column: span 7; }
	.nx-showcase__b { grid-column: span 5; padding-top: 7rem; }
}
.nx-showcase__a, .nx-showcase__b { transform: translate3d(0, var(--py, 0), 0); will-change: transform; }
.nx-showcase__pull { margin-top: 5rem; padding-top: 3.5rem; border-top: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
@media (min-width: 1024px) { .nx-showcase__pull { margin-top: 8rem; } }
.nx-showcase__pull p { max-width: 64rem; font-family: var(--font-display); font-size: clamp(1.7rem, 4vw, 3.4rem); font-weight: 600; line-height: 1.15; letter-spacing: -.015em; }

/* ---- Craft ---- */
.nx-craft .nx-split { gap: 4rem; }
@media (min-width: 1024px) { .nx-craft .nx-split { gap: 3rem; } }
.nx-craft .nx-body--ink { max-width: 28rem; }
.nx-stat { margin-top: 2.5rem; display: flex; align-items: center; gap: 1rem; padding-block: 1.25rem; border-block: 1px solid var(--line); }
.nx-stat__value { font-family: var(--font-display); font-size: 3rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; }
.nx-stat__label { font-family: var(--font-mono); font-size: 10px; line-height: 1.625; letter-spacing: .24em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 50%, transparent); }
.nx-craft__media { display: grid; gap: 1.5rem; align-content: start; }
@media (min-width: 640px) { .nx-craft__media { gap: 2.5rem; } }
.nx-craft__pair { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .nx-craft__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; } }
.nx-craft__log { display: flex; flex-direction: column; justify-content: flex-end; padding-inline-start: 1.5rem; border-inline-start: 1px solid var(--line); }
@media (min-width: 640px) { .nx-craft__log { padding-inline-start: 2rem; } }
.nx-craft__log p:first-child { font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.nx-craft__log .nx-note { margin-top: 1.25rem; letter-spacing: .24em; color: color-mix(in srgb, var(--ink) 40%, transparent); }
.nx-craft__features { margin-top: 5rem; }
@media (min-width: 1024px) { .nx-craft__features { margin-top: 8rem; } }

/* ---- Fit ---- */
.nx-fit__top { padding-top: 6rem; }
@media (min-width: 640px) { .nx-fit__top { padding-top: 8rem; } }
@media (min-width: 1024px) { .nx-fit__top { padding-top: 10rem; } }
.nx-fit__band { margin-top: 3.5rem; }
@media (min-width: 1024px) { .nx-fit__band { margin-top: 5rem; } }
.nx-fit__notes { border-top: 0; }
.nx-fit__sizing { display: grid; gap: 3rem; padding-top: 4rem; padding-bottom: 6rem; }
@media (min-width: 640px) { .nx-fit__sizing { padding-bottom: 8rem; } }
@media (min-width: 1024px) {
	.nx-fit__sizing { grid-template-columns: repeat(12, minmax(0, 1fr)); padding-top: 6rem; padding-bottom: 10rem; }
	.nx-fit__advice { grid-column: span 4; }
	.nx-fit__chart { grid-column: span 8; }
}
.nx-table-scroll { overflow-x: auto; border: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-table { width: 100%; min-width: 520px; border-collapse: collapse; text-align: start; }
.nx-table th, .nx-table td { padding: 1rem; text-align: start; }
.nx-table thead tr { border-bottom: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-table thead th { font-family: var(--font-mono); font-size: 10px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 70%, transparent); }
.nx-table thead th:first-child { color: color-mix(in srgb, var(--paper) 40%, transparent); }
.nx-table tbody tr { border-bottom: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); transition: background-color .3s; }
.nx-table tbody tr:last-child { border-bottom: 0; }
.nx-table tbody tr:hover { background: color-mix(in srgb, var(--paper) 3%, transparent); }
.nx-table tbody th { font-size: 14px; font-weight: 500; color: color-mix(in srgb, var(--paper) 70%, transparent); }
.nx-table td { font-family: var(--font-mono); font-size: 14px; color: color-mix(in srgb, var(--paper) 70%, transparent); font-variant-numeric: tabular-nums; }
.nx-table td.is-empty { color: color-mix(in srgb, var(--paper) 30%, transparent); }
.nx-fit__chart .nx-note--dim { letter-spacing: .2em; }

/* ---- Colors ---- */
.nx-colors { overflow: hidden; }
.nx-colors__wash { position: absolute; inset-inline: 0; top: 0; height: 420px; opacity: .3; pointer-events: none; background: var(--wash); transition: background 1.2s var(--ease); }
.nx-colors .nx-wrap { position: relative; }
.nx-colors .nx-body--ink { max-width: 24rem; }
.nx-colors .nx-note { margin-top: 1.5rem; color: color-mix(in srgb, var(--ink) 40%, transparent); }
.nx-swatches { margin: 2.5rem 0 0; padding: 0; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.nx-split__media > .nx-swatches:first-child { margin-top: 0; }
@media (min-width: 640px) { .nx-swatches--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .nx-swatches--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nx-swatch { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1.25rem; background: var(--paper); cursor: pointer; transition: background-color .5s var(--ease), color .5s var(--ease); }
.nx-swatch:hover { background: var(--bone); }
.nx-swatch__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.nx-swatch:has(:checked) { background: var(--ink); color: var(--paper); }
.nx-swatch:has(:focus-visible) { outline: 2px solid var(--olive); outline-offset: -4px; }
.nx-swatch__dot { width: 36px; height: 36px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); transition: transform .5s var(--ease); }
.nx-swatch:hover .nx-swatch__dot { transform: scale(1.1); }
.nx-swatch:has(:checked) .nx-swatch__dot { border-color: color-mix(in srgb, var(--paper) 30%, transparent); }
.nx-swatch__name { display: block; font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.nx-swatch__code { display: block; margin-top: .25rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; color: color-mix(in srgb, currentColor 45%, transparent); }
.nx-readouts { margin-top: 1px; border: 1px solid var(--line); border-top: 0; overflow: hidden; }
.nx-readout { display: flex; flex-direction: column; gap: 1.5rem; padding: 1.5rem; animation: nx-readout .45s var(--ease); }
@media (min-width: 640px) { .nx-readout { flex-direction: row; align-items: center; justify-content: space-between; padding: 2rem; } }
@keyframes nx-readout { from { opacity: 0; transform: translateY(14px); } }
.nx-readout__copy { max-width: 28rem; }
.nx-readout__name { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; text-transform: uppercase; letter-spacing: -.01em; }
@media (min-width: 640px) { .nx-readout__name { font-size: 1.5rem; } }
.nx-readout__desc { margin-top: .5rem; font-size: 14px; line-height: 1.625; color: color-mix(in srgb, var(--ink) 60%, transparent); }

/* ---- Voices ---- */
.nx-voices { overflow: hidden; }
.nx-voices .nx-wrap { position: relative; }
.nx-voices__slots { margin-top: 4rem; }
@media (min-width: 1024px) { .nx-voices__slots { margin-top: 6rem; } }
.nx-voice { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 220px; }
.nx-voice:hover { background: color-mix(in srgb, var(--soot) 50%, var(--ink)); }
.nx-voice__icon { width: 20px; height: 20px; color: color-mix(in srgb, var(--paper) 25%, transparent); stroke-width: 1.5; transition: color .5s; }
.nx-voice:hover .nx-voice__icon { color: color-mix(in srgb, var(--khaki) 70%, transparent); }
.nx-voice__foot { margin-top: 2.5rem; }
.nx-voice__slot, .nx-voice__text { font-size: 14px; line-height: 1.625; color: color-mix(in srgb, var(--paper) 40%, transparent); }
.nx-voice__text { margin-top: 2.5rem; color: color-mix(in srgb, var(--paper) 75%, transparent); }
.nx-voice__foot .nx-note--dim { margin-top: 1.5rem; letter-spacing: .26em; }
.nx-voice__by { margin-top: 1.5rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 45%, transparent); }
.nx-voice__stars { display: block; margin-bottom: .5rem; color: var(--khaki); letter-spacing: .15em; }
.nx-voices__foot { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
@media (min-width: 640px) { .nx-voices__foot { flex-direction: row; align-items: center; } }
.nx-voices__line { max-width: 36rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; line-height: 1.375; color: color-mix(in srgb, var(--paper) 80%, transparent); }
@media (min-width: 640px) { .nx-voices__line { font-size: 1.5rem; } }

/* ---- Acquire / waitlist ---- */
.nx-acquire { overflow: hidden; }
.nx-acquire .nx-wrap { position: relative; }
.nx-acquire .nx-body { max-width: 32rem; margin-top: 1.75rem; color: color-mix(in srgb, var(--paper) 60%, transparent); }
.nx-dossier { margin-top: 2.5rem; max-width: 32rem; border-block: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-dossier__row { display: grid; grid-template-columns: 100px 1fr; gap: 1rem; padding-block: .75rem; border-bottom: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-dossier__row:last-child { border-bottom: 0; }
.nx-dossier dt { font-family: var(--font-mono); font-size: 10px; line-height: 1.25rem; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 40%, transparent); }
.nx-dossier dd { font-size: 14px; font-weight: 500; color: color-mix(in srgb, var(--paper) 80%, transparent); }
.nx-panel { position: relative; padding: 1.75rem; border: 1px solid color-mix(in srgb, var(--paper) 12%, transparent); background: color-mix(in srgb, var(--paper) 4.5%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
@media (min-width: 640px) { .nx-panel { padding: 2.5rem; } }
.nx-panel::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom right, color-mix(in srgb, var(--paper) 6%, transparent), transparent); }
.nx-panel > * { position: relative; }
.nx-panel__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; line-height: 1.2; }
.nx-panel__done { min-height: 380px; display: flex; flex-direction: column; justify-content: center; outline: 0; }
.nx-panel__done .nx-panel__title { margin-top: 1.75rem; font-size: 1.875rem; letter-spacing: -.02em; }
.nx-panel__done .nx-body { margin-top: 1rem; }
.nx-panel__done .nx-note--dim { margin-top: 2rem; letter-spacing: .24em; }
.nx-panel__check { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--khaki) 40%, transparent); background: color-mix(in srgb, var(--khaki) 10%, transparent); color: var(--khaki); }
.nx-panel__check .nx-icon { width: 20px; height: 20px; stroke-width: 2; }
.nx-benefits { list-style: none; margin-top: 1.75rem; display: grid; gap: .75rem; }
.nx-benefits li { display: flex; align-items: flex-start; gap: .75rem; font-size: 14px; color: color-mix(in srgb, var(--paper) 60%, transparent); }
.nx-benefits .nx-icon { width: 16px; height: 16px; margin-top: 2px; color: color-mix(in srgb, var(--khaki) 80%, transparent); }
.nx-form__label { display: block; margin-top: 2rem; padding: 0; font-family: var(--font-mono); font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 45%, transparent); }
.nx-form__line { margin-top: .625rem; display: flex; align-items: center; gap: .75rem; padding-bottom: .75rem; border-bottom: 1px solid color-mix(in srgb, var(--paper) 25%, transparent); transition: border-color .4s, box-shadow .4s; }
.nx-form__line:focus-within { border-bottom-color: var(--paper); box-shadow: 0 1px 0 var(--paper); }
.nx-form__line .nx-icon { width: 16px; height: 16px; color: color-mix(in srgb, var(--paper) 35%, transparent); stroke-width: 1.5; }
.nx-form__line input { width: 100%; background: transparent; border: 0; padding: 0; font-size: 16px; color: var(--paper); }
.nx-form__line input:focus { outline: none; }
.nx-form__line input::placeholder { color: color-mix(in srgb, var(--paper) 25%, transparent); }
.nx-form__line input[aria-invalid="true"] { color: var(--paper); }
.nx-form__line:has([aria-invalid="true"]) { border-bottom-color: var(--clay); }
.nx-form__error { margin-top: 1.25rem; display: flex; align-items: center; gap: .5rem; font-size: 12px; color: var(--clay); outline: 0; }
.nx-form__error .nx-icon { width: 14px; height: 14px; }
.nx-form__colors { margin: 2rem 0 0; padding: 0; border: 0; min-width: 0; }
.nx-form__colors > legend.nx-form__label { margin-top: 0; }
.nx-chips { margin-top: .75rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.nx-chip { position: relative; cursor: pointer; }
.nx-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.nx-chip span { display: inline-block; padding: .5rem 1rem; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--paper) 20%, transparent); font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 55%, transparent); transition: all .4s var(--ease); }
.nx-chip:hover span { border-color: color-mix(in srgb, var(--paper) 50%, transparent); color: var(--paper); }
.nx-chip input:checked + span { border-color: var(--khaki); background: color-mix(in srgb, var(--khaki) 15%, transparent); color: var(--khaki); }
.nx-chip input:focus-visible + span { outline: 2px solid var(--khaki); outline-offset: 2px; }
.nx-form__consent { margin-top: 1.75rem; display: flex; align-items: flex-start; gap: .75rem; font-size: 13px; line-height: 1.55; color: color-mix(in srgb, var(--paper) 55%, transparent); cursor: pointer; }
.nx-form__consent input { margin-top: .2rem; flex: none; width: 16px; height: 16px; accent-color: var(--khaki); }
.nx-submit { margin-top: 2.25rem; width: 100%; display: flex; align-items: center; justify-content: center; gap: .75rem; padding: 1rem 1.75rem; border: 0; border-radius: 999px; background: var(--paper); color: var(--ink); cursor: pointer; font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; transition: background-color .5s var(--ease), transform .2s; }
.nx-submit:hover { background: var(--bone); }
.nx-submit:active { transform: scale(.99); }
.nx-submit .nx-icon { width: 16px; height: 16px; stroke-width: 2; transition: transform .5s var(--ease); }
.nx-submit:hover .nx-icon { transform: translateX(4px); }
.nx-form__fine { margin-top: 1.25rem; text-align: center; font-family: var(--font-mono); font-size: 9px; line-height: 1.625; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 30%, transparent); }
.nexun-honeypot { position: absolute !important; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nx-buylist { list-style: none; margin-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-buylist__link { display: grid; grid-template-columns: 56px 1fr auto; grid-template-areas: 'img name go' 'img price go' 'img stock go'; column-gap: 1rem; align-items: center; padding-block: 1rem; border-bottom: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.nx-buylist__img { grid-area: img; width: 56px; height: 70px; object-fit: cover; background: var(--soot); }
.nx-buylist__name { grid-area: name; font-family: var(--font-display); font-weight: 700; text-transform: uppercase; }
.nx-buylist__price { grid-area: price; font-size: 14px; color: color-mix(in srgb, var(--paper) 75%, transparent); }
.nx-buylist__stock { grid-area: stock; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--khaki); }
.nx-buylist__stock.is-out { color: color-mix(in srgb, var(--paper) 35%, transparent); }
.nx-buylist__go { grid-area: go; width: 16px; height: 16px; transition: transform .5s var(--ease); }
.nx-buylist__link:hover .nx-buylist__go { transform: translate(3px, -3px); }

/* ---- FAQ ---- */
.nx-faq__intro { max-width: 20rem; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.nx-accordion { border-top: 1px solid var(--line); }
.nx-qa { border-bottom: 1px solid var(--line); }
.nx-qa__q { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding-block: 1.5rem; cursor: pointer; list-style: none; }
.nx-qa__q::-webkit-details-marker { display: none; }
.nx-qa__num { flex: none; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; color: color-mix(in srgb, var(--ink) 35%, transparent); }
.nx-qa__text { flex: 1; font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; line-height: 1.4; letter-spacing: -.01em; color: color-mix(in srgb, var(--ink) 75%, transparent); transition: color .4s; }
@media (min-width: 640px) { .nx-qa__text { font-size: 1.25rem; } }
.nx-qa__q:hover .nx-qa__text, .nx-qa[open] .nx-qa__text { color: var(--ink); }
.nx-qa__icon { display: flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); color: color-mix(in srgb, var(--ink) 60%, transparent); transition: all .5s var(--ease); }
.nx-qa__icon .nx-icon { width: 16px; height: 16px; }
.nx-qa__q:hover .nx-qa__icon { border-color: color-mix(in srgb, var(--ink) 50%, transparent); }
.nx-qa[open] .nx-qa__icon { transform: rotate(45deg); border-color: var(--ink); background: var(--ink); color: var(--paper); }
.nx-qa__a { max-width: 42rem; padding-bottom: 1.75rem; padding-inline-end: 1rem; font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--ink) 60%, transparent); }
@media (min-width: 640px) { .nx-qa__a { padding-inline-start: 3.1rem; } }
.nx-qa__a p + p { margin-top: .75rem; }
.nx-qa[open] .nx-qa__a { animation: nx-open .55s var(--ease); }
@keyframes nx-open { from { opacity: 0; transform: translateY(-6px); } }

/* ---- Closing CTA + 404 ---- */
.nx-closing, .nx-empty { overflow: hidden; }
.nx-closing__inner, .nx-empty__inner { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 78vh; min-height: 78svh; padding-block: 7rem; text-align: center; }
.nx-closing .nx-h, .nx-empty .nx-h { margin-top: 2rem; }
.nx-closing__body { margin: 1.75rem auto 0; max-width: 28rem; }
.nx-closing__cta { margin-top: 2.5rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.nx-closing__native { margin-top: 2.5rem; font-size: 14px; color: color-mix(in srgb, var(--paper) 30%, transparent); }
.nx-empty__inner { padding-top: calc(7rem + var(--header-h)); }

/* ==========================================================================
   Footer — React Closing footer
   ========================================================================== */
.site-footer { background: var(--ink); color: var(--paper); border-top: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); }
.site-footer__inner { padding-top: 4rem; padding-bottom: 2.5rem; }
@media (min-width: 640px) { .site-footer__inner { padding-top: 6rem; } }
.site-footer__feedback { scroll-margin-top: var(--header-h); display: grid; gap: 2.5rem; padding-bottom: clamp(4rem, 7vw, 7rem); margin-bottom: clamp(4rem, 7vw, 7rem); border-bottom: 1px solid color-mix(in srgb, var(--paper) 14%, transparent); }
@media (min-width: 900px) { .site-footer__feedback { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 7vw, 8rem); } }
.site-footer__feedback-intro { padding-top: .5rem; }
.site-footer__feedback-kicker { font: 500 10px var(--font-mono); letter-spacing: .25em; text-transform: uppercase; color: var(--khaki); }
.site-footer__feedback-intro h2 { max-width: 9ch; margin: 1.75rem 0 1.5rem; font-family: var(--font-display); font-size: clamp(3.5rem, 7vw, 7.5rem); font-weight: 800; line-height: .91; letter-spacing: -.065em; text-transform: uppercase; }
.site-footer__feedback-intro > p:last-child { max-width: 36ch; color: color-mix(in srgb, var(--paper) 58%, transparent); font-size: 15px; line-height: 1.7; }
.site-footer__feedback-panel { min-width: 0; padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid color-mix(in srgb, var(--paper) 15%, transparent); background: var(--coal); }
.nx-feedback-form { display: grid; gap: 1.4rem; }
.nx-feedback-field { display: grid; gap: .65rem; min-width: 0; }
.nx-feedback-form label { font: 500 10px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--khaki); }
.nx-feedback-form input, .nx-feedback-form textarea { width: 100%; min-width: 0; padding: .9rem 1rem; border: 1px solid color-mix(in srgb, var(--paper) 22%, transparent); border-radius: 0; background: var(--soot); color: var(--paper); font: 14px/1.6 var(--font-body); resize: vertical; }
.nx-feedback-form input::placeholder, .nx-feedback-form textarea::placeholder { color: color-mix(in srgb, var(--paper) 40%, transparent); }
.nx-feedback-form input:focus-visible, .nx-feedback-form textarea:focus-visible { outline: 2px solid var(--khaki); outline-offset: 2px; }
.nx-feedback-form__details { display: grid; gap: 1.4rem; }
@media (min-width: 640px) { .nx-feedback-form__details { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nx-feedback-form__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; }
.nx-feedback-form__bottom p { max-width: 26ch; color: color-mix(in srgb, var(--paper) 48%, transparent); font-size: 12px; line-height: 1.5; }
.nx-feedback-form button { display: inline-flex; align-items: center; gap: 1.5rem; padding: .9rem 1.1rem; border: 1px solid var(--khaki); background: var(--khaki); color: var(--ink); font: 600 11px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background .25s, color .25s; }
.nx-feedback-form button:hover { background: transparent; color: var(--paper); }
.nx-feedback-form button:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.nx-feedback-form button span { font-size: 16px; line-height: 1; }
.nx-feedback-trap { position: absolute; inset-inline-start: -10000px; width: 1px; height: 1px; overflow: hidden; }
.nx-feedback-notice { margin-bottom: 1.5rem; padding: .9rem 1rem; border: 1px solid var(--khaki); color: var(--paper); font-size: 13px; }
.nx-feedback-notice.is-error { border-color: #dc8e80; color: #f2b7aa; }
.site-footer__grid { display: grid; gap: 3.5rem; }
@media (min-width: 1024px) {
	.site-footer__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.site-footer__brand { grid-column: span 6; }
	.site-footer__col { grid-column: span 3; }
}
.site-footer__mark { font-family: var(--font-display); font-size: clamp(4.5rem, 13vw, 11rem); font-weight: 800; line-height: .85; letter-spacing: -.045em; text-transform: lowercase; transition: color .7s; }
.site-footer__mark:hover { color: var(--khaki); }
.site-footer__blurb { margin-top: 2rem; max-width: 20rem; font-size: 14px; line-height: 1.625; color: color-mix(in srgb, var(--paper) 45%, transparent); }
.site-footer__title { font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 35%, transparent); }
.site-footer__col ul { list-style: none; margin-top: 1.5rem; display: grid; gap: .875rem; }
.site-footer__link { display: inline-flex; align-items: center; gap: .5rem; font-size: 14px; color: color-mix(in srgb, var(--paper) 60%, transparent); transition: color .4s; }
.site-footer__link > span[aria-hidden] { width: 0; height: 1px; background: var(--khaki); transition: width .5s var(--ease); }
.site-footer__link:hover { color: var(--paper); }
.site-footer__link:hover > span[aria-hidden] { width: 1.25rem; }
.site-footer__ext { width: 12px; height: 12px; opacity: 0; transition: opacity .4s; }
.site-footer__link:hover .site-footer__ext { opacity: 1; }
.site-footer__link.is-soon { gap: .625rem; }
.site-footer__soon { padding: .125rem .5rem; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--paper) 15%, transparent); font-family: var(--font-mono); font-size: 8px; letter-spacing: .18em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 35%, transparent); }
.site-footer__note { margin-top: 2rem; max-width: 220px; font-size: 12px; line-height: 1.625; color: color-mix(in srgb, var(--paper) 35%, transparent); }
.site-footer__legal { margin-top: 5rem; padding-top: 2rem; border-top: 1px solid color-mix(in srgb, var(--paper) 10%, transparent); display: flex; flex-direction: column; gap: .75rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--paper) 30%, transparent); }
@media (min-width: 640px) { .site-footer__legal { flex-direction: row; align-items: center; justify-content: space-between; } }
.site-footer__legal-links { display: inline-flex; gap: 1.25rem; }
.site-footer__legal a:hover { color: var(--paper); }
.site-footer__native { font-family: var(--font-body); letter-spacing: 0; text-transform: none; }

/* ==========================================================================
   Commerce surfaces — shop, PDP, cart, checkout, account (paper)
   ========================================================================== */
.nx-page-body { background: var(--paper); color: var(--ink); }
.nx-page-head { padding-top: 3.5rem; padding-bottom: 2.5rem; }
@media (min-width: 640px) { .nx-page-head { padding-top: 5rem; } }
.nx-page-head__row { margin-top: 1.5rem; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; }
.nx-page-head__meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 45%, transparent); }
.nx-page-head__intro { margin-top: 1.25rem; max-width: 60ch; font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.nx-page-content { padding-bottom: 6rem; }
.nx-prose { max-width: 72ch; font-size: 16px; line-height: 1.7; color: color-mix(in srgb, var(--ink) 80%, transparent); }
.nx-prose > * + * { margin-top: 1.1em; }
.nx-prose h2, .nx-prose h3 { font-weight: 800; text-transform: uppercase; letter-spacing: -.02em; line-height: 1.1; color: var(--ink); margin-top: 2em; }
.nx-prose a { text-decoration: underline; text-underline-offset: 3px; }
.nx-prose ul, .nx-prose ol { padding-inline-start: 1.25rem; }
.nx-listing { padding-block: 1.5rem; border-bottom: 1px solid var(--line); }
.nx-emptybox { padding: 3rem 0 1rem; display: grid; justify-items: start; gap: 1rem; }
.nx-emptybox p { color: color-mix(in srgb, var(--ink) 60%, transparent); max-width: 40ch; }

/* Shop / collection archive -------------------------------------------
 * Compact head, sticky collection + sort bar, and cards whose image height
 * is capped on laptop screens so a full row (image, name, price, sizes)
 * fits above the fold.
 * -------------------------------------------------------------------- */
.nx-shop__head { padding-top: 2.5rem; padding-bottom: 1.5rem; }
@media (min-width: 640px) { .nx-shop__head { padding-top: 3rem; } }
.nx-shop__titlebar { margin-top: 1rem; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .5rem 2rem; }
.nx-shop__title { margin: 0; font-size: clamp(2.4rem, 4.6vw, 4.25rem); line-height: .92; }
.nx-shop__count { font-family: var(--font-mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 45%, transparent); padding-bottom: .35rem; }
.nx-shop__intro { margin-top: 1rem; max-width: 60ch; font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--ink) 65%, transparent); }

.nx-shopbar { position: relative; z-index: 30; border-block: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent); }
@media (min-width: 768px) {
	.nx-shopbar { position: sticky; top: var(--header-h); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: box-shadow .5s var(--ease); }
	.nx-shopbar.is-stuck { box-shadow: 0 10px 30px -18px rgb(18 18 15 / 35%); }
}
.nx-shopbar__inner { display: flex; align-items: center; justify-content: space-between; gap: .75rem 1rem; padding-block: .75rem; }
.nx-shopbar__chips { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; margin-inline: -.25rem; padding-inline: .25rem; }
.nx-shopbar__chips::-webkit-scrollbar { display: none; }
@media (max-width: 767px) { .nx-shopbar__inner { flex-direction: column; align-items: stretch; } .nx-shopbar__inner .woocommerce-ordering select { width: 100%; } }
.nx-chips--ink { margin-top: 0; }
.nx-chip-link {
	flex: none; display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent);
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 65%, transparent);
	transition: background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), transform .2s var(--ease);
}
.nx-chip-link:hover { border-color: var(--ink); color: var(--ink); }
.nx-chip-link:active { transform: scale(.96); }
.nx-chip-link.is-on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.nx-chip-link__n { font-size: 9px; letter-spacing: .1em; opacity: .55; }
.woocommerce-ordering { margin: 0; flex: none; }
.woocommerce-ordering select, .nx-select {
	appearance: none; padding: .55rem 2.25rem .55rem 1rem; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent);
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312120f' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center / 12px;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); cursor: pointer;
	transition: border-color .3s;
}
.woocommerce-ordering select:hover { border-color: var(--ink); }
[dir="rtl"] .woocommerce-ordering select { background-position: left .8rem center; padding: .55rem 1rem .55rem 2.25rem; }
.nx-shop__body { padding-top: 2rem; }

/* Product grid + card */
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 1rem; counter-reset: nx-card; }
@media (min-width: 768px) { .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem 1.5rem; } }
@media (min-width: 1024px) { .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3.5rem 2rem; } }
.card { position: relative; min-width: 0; counter-increment: nx-card; }
.card__media { position: relative; display: block; width: 100%; overflow: hidden; aspect-ratio: 4 / 5; background: var(--bone); }
@media (min-width: 1024px) {
	/* Laptop screens: cap the image so name, price and sizes stay above the fold. */
	.card__media { max-height: max(240px, calc(100vh - var(--header-h) - 24.5rem)); }
	@supports (height: 100svh) { .card__media { max-height: max(240px, calc(100svh - var(--header-h) - 24.5rem)); } }
}
.card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.02) brightness(.96); transition: transform 1.6s var(--ease), opacity .7s var(--ease); }
.card__img--alt { opacity: 0; transform: scale(1.06); }
.card__media::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .7; background: linear-gradient(to top, color-mix(in srgb, var(--ink) 25%, transparent), transparent 45%); }
.card__badge { position: absolute; z-index: 2; pointer-events: none; top: .75rem; inset-inline-start: .75rem; padding: .3rem .6rem; border-radius: 999px; background: var(--ink); color: var(--paper); font-family: var(--font-mono); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; }
.card__badge--out { background: var(--paper); color: color-mix(in srgb, var(--ink) 60%, transparent); }
.card__view {
	position: absolute; z-index: 2; pointer-events: none; bottom: .75rem; inset-inline-end: .75rem; display: inline-flex; align-items: center; gap: .4rem;
	padding: .45rem .8rem; border-radius: 999px; background: var(--paper); color: var(--ink);
	font-family: var(--font-mono); font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
	opacity: 0; transform: translateY(8px); transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.card__view .nx-icon { width: 12px; height: 12px; }
@media (hover: hover) {
	.card:hover .card__img { transform: scale(1.04); }
	.card--has-alt:hover .card__img:not(.card__img--alt) { opacity: 0; }
	.card--has-alt:hover .card__img--alt { opacity: 1; transform: scale(1); }
	.card:hover .card__view { opacity: 1; transform: none; }
}
.card:focus-within .card__view { opacity: 1; transform: none; }
.card__meta { margin-top: .9rem; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; font-family: var(--font-mono); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 45%, transparent); }
.card__index::before { content: counter(nx-card, decimal-leading-zero); color: var(--ink); }
.card__index::after { content: '—'; margin-inline-start: .75rem; }
.card__meta > span:last-child.card__index::after { content: none; }
.card__colours { margin-inline-start: auto; }
@media (max-width: 639px) { .card__colours { display: none; } } /* swatch dots carry it on narrow cards */
.card__title { margin-top: .4rem; font-family: var(--font-display); font-size: 1rem; font-weight: 700; line-height: 1.25; text-transform: uppercase; letter-spacing: -.005em; }
.card__title a { transition: color .4s; }
.card__title a:hover { color: var(--olive); }
.card__title a::after { content: ''; position: absolute; inset: 0; z-index: 1; } /* whole card is one link target */
.card__row { margin-top: .35rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.card__price { font-size: 14px; color: color-mix(in srgb, var(--ink) 75%, transparent); }
.card__swatches { display: inline-flex; flex: none; }
.card__swatch { width: 14px; height: 14px; border-radius: 999px; border: 1px solid var(--paper); box-shadow: 0 0 0 1px color-mix(in srgb, var(--ink) 18%, transparent); transition: transform .4s var(--ease); }
.card__swatch + .card__swatch { margin-inline-start: -4px; }
.card__sizes { margin-top: .55rem; display: flex; flex-wrap: wrap; gap: .5rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.card__sizes span.is-out { text-decoration: line-through; opacity: .45; }

/* Staggered reveal per row (rise + blur comes from the shared data-reveal rules). */
.grid > .card:nth-child(4n+2) { --d: .08s; }
.grid > .card:nth-child(4n+3) { --d: .16s; }
.grid > .card:nth-child(4n+4) { --d: .24s; }
.nx-motion .nx-enter { animation: nx-fade-up 1s var(--ease) backwards; animation-delay: calc(.1s + var(--i, 0) * .08s); }

.price, .woocommerce-Price-amount { font-variant-numeric: tabular-nums; }
del, del .woocommerce-Price-amount { color: color-mix(in srgb, var(--ink) 45%, transparent); font-weight: 400; }
ins { text-decoration: none; }

/* PDP ------------------------------------------------------------------
 * Mobile: full-width swipe gallery with dots. Desktop (>=900px): a sticky,
 * viewport-capped image stage with a thumbnail rail, beside a scrolling
 * detail column, so the whole image and the purchase controls fit a laptop
 * screen together.
 * -------------------------------------------------------------------- */
.nx-pdp-page { padding-bottom: 2rem; }
.nx-pdp-crumbs { padding-top: 2rem; padding-bottom: 1.5rem; }
.pdp { display: grid; gap: 2rem; padding-bottom: 5rem; }
.pdp__media, .pdp__info { min-width: 0; }

.pdp-media { position: relative; }
.pdp-stage { position: relative; overflow: hidden; background: var(--bone); }
.pdp-gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; outline-offset: -3px; }
.pdp-gallery::-webkit-scrollbar { display: none; }
.pdp-gallery__frame { flex: 0 0 100%; scroll-snap-align: center; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.pdp-gallery__frame img {
	width: 100%; height: 100%; object-fit: cover;
	filter: saturate(.82) contrast(1.02) brightness(.96);
	transition: transform 1.6s var(--ease), opacity .45s var(--ease), filter .45s var(--ease);
}
.pdp-gallery__frame img.is-swapping { opacity: .15; filter: saturate(.82) blur(6px); }
.pdp-gallery__empty { aspect-ratio: 4 / 5; background: var(--bone); }
.pdp-stage__bar, .pdp-thumbs { display: none; }
.pdp-dots { display: flex; justify-content: center; gap: .4rem; padding-block: .85rem; background: var(--paper); }
.pdp-dots__dot { width: 6px; height: 6px; border-radius: 999px; background: color-mix(in srgb, var(--ink) 20%, transparent); transition: width .5s var(--ease), background-color .5s; }
.pdp-dots__dot.is-on { width: 18px; background: var(--ink); }

@media (min-width: 900px) {
	.pdp {
		/* Height from the viewport, and from the width left beside the 340-480px detail column. */
		--pdp-stage-h: min(
			clamp(440px, calc(100vh - var(--header-h) - 8.5rem), 820px),
			calc((100vw - 2 * var(--gutter) - 440px - 4rem - 80px) * 1.25)
		);
		grid-template-columns: minmax(0, max-content) minmax(340px, 480px);
		justify-content: center;
		column-gap: clamp(3rem, 5vw, 6rem);
		align-items: start;
	}
	@supports (height: 100svh) {
		.pdp { --pdp-stage-h: min(clamp(440px, calc(100svh - var(--header-h) - 8.5rem), 820px), calc((100vw - 2 * var(--gutter) - 440px - 4rem - 80px) * 1.25)); }
	}
	.pdp__media { position: sticky; top: calc(var(--header-h) + 1.5rem); }
	.pdp-media.has-rail { display: grid; grid-template-columns: 64px auto; gap: 1rem; align-items: start; }
	.pdp-stage { width: calc(var(--pdp-stage-h) * .8); max-width: 100%; }
	.pdp-gallery__frame { aspect-ratio: auto; height: var(--pdp-stage-h); }
	.pdp-dots { display: none; }

	.pdp-thumbs { display: flex; flex-direction: column; gap: .625rem; max-height: var(--pdp-stage-h); overflow-y: auto; scrollbar-width: none; }
	.pdp-thumbs::-webkit-scrollbar { display: none; }
	.pdp-thumb { flex: none; padding: 0; border: 1px solid transparent; background: var(--bone); cursor: pointer; line-height: 0; opacity: .5; transition: opacity .4s var(--ease), border-color .4s var(--ease); }
	.pdp-thumb:hover { opacity: .85; }
	.pdp-thumb.is-on { opacity: 1; border-color: var(--ink); }
	.pdp-thumb img { width: 62px; height: 78px; object-fit: cover; }

	.pdp-stage__bar {
		position: absolute; inset-inline: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between;
		padding: 2.5rem 1.1rem 1rem; pointer-events: none; color: var(--paper);
		background: linear-gradient(to top, color-mix(in srgb, var(--ink) 55%, transparent), transparent);
	}
	.pdp-stage__count { font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em; }
	.pdp-stage__nav { display: flex; gap: .5rem; pointer-events: auto; }
	.pdp-stage__btn {
		display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 999px; cursor: pointer;
		border: 1px solid color-mix(in srgb, var(--paper) 35%, transparent); color: var(--paper);
		background: color-mix(in srgb, var(--ink) 25%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
		transition: background-color .4s var(--ease), color .4s var(--ease), border-color .4s, opacity .3s;
	}
	.pdp-stage__btn .nx-icon { width: 15px; height: 15px; }
	.pdp-stage__btn:hover:not(:disabled) { background: var(--paper); border-color: var(--paper); color: var(--ink); }
	.pdp-stage__btn:disabled { opacity: .35; cursor: default; }
	.pdp-stage__prev { transform: scaleX(-1); }
	[dir="rtl"] .pdp-stage__btn .nx-icon { transform: scaleX(-1); }
	[dir="rtl"] .pdp-stage__btn .pdp-stage__prev { transform: none; }
	.pdp-stage:hover .pdp-gallery__frame img { transform: scale(1.03); }
}

/* Detail column */
.pdp__info { padding-top: .25rem; }
@media (min-width: 900px) { .pdp__info { padding-top: .5rem; } }
.pdp-title { font-family: var(--font-display); font-size: clamp(2rem, 3vw, 3rem); font-weight: 800; line-height: 1; letter-spacing: -.025em; text-transform: uppercase; overflow-wrap: anywhere; }
.pdp-buyline { margin-top: 1.25rem; padding-bottom: 1.25rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; border-bottom: 1px solid var(--line); }
.pdp-price { display: flex; align-items: baseline; gap: .65rem; font-size: 1.375rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.pdp-stock { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 70%, transparent); }
.pdp-stock::before { content: ''; width: 7px; height: 7px; border-radius: 999px; background: var(--olive); }
.nx-motion .pdp-stock:not(.pdp-stock--out)::before { animation: pdp-pulse 2.4s ease-out 1.2s 2; }
.pdp-stock--low::before { background: var(--clay); }
.pdp-stock--out { color: color-mix(in srgb, var(--ink) 45%, transparent); }
.pdp-stock--out::before { background: color-mix(in srgb, var(--ink) 25%, transparent); }
.pdp-specline { padding-block: .95rem; border-bottom: 1px solid var(--line); font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.pdp-specline__sep { margin-inline: .6rem; }
.pdp-form { margin-top: 1.75rem; }
.pdp-choice { margin-bottom: 1.5rem; }
.pdp-choice__head { display: flex; align-items: baseline; gap: .75rem; margin-bottom: .75rem; }
.pdp-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.pdp-choice__value { font-size: 13px; font-weight: 500; color: var(--ink); }
.size-guide-open { margin-inline-start: auto; padding: 0; border: 0; background: none; cursor: pointer; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 60%, transparent); text-decoration: underline; text-underline-offset: 4px; transition: color .3s; }
.size-guide-open:hover { color: var(--ink); }
.nx-native-variation-selects { display: grid; gap: .55rem; margin-bottom: 1.5rem; }
.nx-native-variation-selects label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; }
.nx-native-variation-selects select { width: 100%; min-height: 46px; padding-inline: .9rem; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); background: transparent; color: var(--ink); }
.nx-native-variation-selects .reset_variations { font-size: 12px; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.has-js .nx-native-variation-selects, .woocommerce-variation.single_variation { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pdp-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.pdp-pill {
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-width: 52px; min-height: 44px; padding-inline: 1rem;
	border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 999px; background: transparent; color: var(--ink); cursor: pointer;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	transition: background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), opacity .3s, transform .2s var(--ease);
}
.pdp-pill:hover:not(:disabled) { border-color: var(--ink); }
.pdp-pill:active:not(:disabled) { transform: scale(.96); }
.pdp-pill.is-on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.pdp-pill:disabled { cursor: not-allowed; opacity: .35; text-decoration: line-through; }
.pdp-pill__swatch { width: 18px; height: 18px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); transition: transform .45s var(--ease); }
.pdp-pill:hover:not(:disabled) .pdp-pill__swatch { transform: scale(1.12); }
.pdp-pill.is-on .pdp-pill__swatch { border-color: color-mix(in srgb, var(--paper) 40%, transparent); }

/* Quantity and add to cart share one row (WooCommerce's own variations_button structure). */
.pdp-actions { margin-top: 1.75rem; }
.pdp-purchase { display: flex; align-items: stretch; gap: .75rem; }
.pdp-qty { flex: none; display: inline-flex; align-items: stretch; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 999px; overflow: hidden; }
.pdp-qty__btn { width: 42px; min-height: 56px; display: grid; place-items: center; border: 0; background: none; cursor: pointer; font-size: 17px; color: var(--ink); transition: background-color .3s; }
.pdp-qty__btn:hover { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.pdp-qty__btn:disabled { color: color-mix(in srgb, var(--ink) 25%, transparent); cursor: not-allowed; background: none; }
.pdp-qty__input { width: 42px; border: 0; background: none; color: var(--ink); text-align: center; font-family: var(--font-mono); font-size: 13px; -moz-appearance: textfield; }
.pdp-qty__input::-webkit-outer-spin-button, .pdp-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pdp-cta { flex: 1; min-height: 56px; }
.pdp-cta .pdp-cta__icon { width: 16px; height: 16px; transition: transform .5s var(--ease); }
.pdp-cta:hover:not(:disabled):not(.disabled) .pdp-cta__icon { transform: translate(4px, -4px); }
.pdp-cta.is-added { background: var(--olive); border-color: var(--olive); }
[dir="rtl"] .pdp-cta .pdp-cta__icon { transform: scaleX(-1); }
.pdp-note { margin-top: 1rem; display: flex; align-items: center; gap: .5rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.pdp-assure { list-style: none; margin-top: 1.25rem; display: grid; gap: .55rem; }
.pdp-assure li { display: flex; align-items: center; gap: .6rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.pdp-assure .nx-icon { width: 13px; height: 13px; color: var(--olive); stroke-width: 2; }

.pdp-acc { margin-top: 2.25rem; border-top: 1px solid var(--line); }
.pdp-acc__item { border-bottom: 1px solid var(--line); }
.pdp-acc__item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.15rem; cursor: pointer; list-style: none; font-family: var(--font-mono); font-size: 10px; letter-spacing: .24em; text-transform: uppercase; transition: color .3s; }
.pdp-acc__item summary:hover { color: color-mix(in srgb, var(--ink) 70%, transparent); }
.pdp-acc__item summary::-webkit-details-marker { display: none; }
.pdp-acc__item summary::after {
	content: '+'; display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); font-family: var(--font-body); font-size: 16px; line-height: 1; letter-spacing: 0;
	transition: transform .5s var(--ease), background-color .5s var(--ease), color .5s var(--ease), border-color .5s;
}
.pdp-acc__item[open] summary::after { transform: rotate(45deg); background: var(--ink); border-color: var(--ink); color: var(--paper); }
.pdp-acc__body { padding-bottom: 1.35rem; font-size: 14px; line-height: 1.65; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.pdp-acc__item[open] .pdp-acc__body { animation: nx-open .55s var(--ease); }
.pdp-acc__body ul { padding-inline-start: 1.1rem; }
.pdp-acc__body li { margin-bottom: .35rem; }
.nx-related { padding-block: 4rem 6rem; border-top: 1px solid var(--line); }
.nx-related .grid { margin-top: 2rem; }

/* PDP motion: entrance on first paint only; disabled under reduced motion. */
@keyframes pdp-reveal { from { opacity: 0; clip-path: inset(6% 5% 6% 5%); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes pdp-zoom { from { transform: scale(1.1); } }
@keyframes pdp-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--olive) 45%, transparent); } 100% { box-shadow: 0 0 0 9px transparent; } }
@keyframes nx-bump { 0% { transform: scale(1); } 40% { transform: scale(1.45); } 100% { transform: scale(1); } }
.nx-motion .nx-pdp-crumbs { animation: nx-fade-up .8s var(--ease) .05s backwards; }
.nx-motion .pdp-stage { animation: pdp-reveal 1.3s var(--ease) .1s backwards; }
.nx-motion .pdp-gallery__frame:first-child img { animation: pdp-zoom 2s var(--ease) .1s backwards; }
.nx-motion .pdp-thumb { animation: nx-fade-up .8s var(--ease) backwards; animation-delay: calc(.35s + var(--i, 0) * .06s); }
.nx-motion .pdp-in { animation: nx-fade-up 1s var(--ease) backwards; animation-delay: calc(.2s + var(--i, 0) * .08s); }
.cart-link__count.is-bump { animation: nx-bump .6s var(--ease); }

/* Buttons WooCommerce renders itself */
.btn, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .checkout-button, #place_order, .woocommerce-cart .actions button, .shamcash__form button {
	display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 52px; padding: .9rem 1.75rem;
	border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--paper); cursor: pointer;
	font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; line-height: 1.3; text-align: center;
	transition: background-color .5s var(--ease), border-color .5s var(--ease), color .5s var(--ease);
}
.btn { width: 100%; }
.btn:hover, .woocommerce .button:hover, .checkout-button:hover, #place_order:hover { background: var(--soot); border-color: var(--soot); }
.btn:disabled, .btn.disabled, .woocommerce .button:disabled, .woocommerce .button.disabled { background: transparent; color: color-mix(in srgb, var(--ink) 45%, transparent); border-color: color-mix(in srgb, var(--ink) 20%, transparent); cursor: not-allowed; }
.woocommerce .button[name="update_cart"], .woocommerce .button.wc-backward, .woocommerce-cart .coupon .button { background: transparent; color: var(--ink); border-color: color-mix(in srgb, var(--ink) 25%, transparent); }
.woocommerce .button[name="update_cart"]:hover, .woocommerce-cart .coupon .button:hover { background: var(--ink); color: var(--paper); }
.checkout-button, #place_order { width: 100%; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper > * {
	list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--line); border-inline-start: 3px solid var(--khaki);
	background: color-mix(in srgb, var(--bone) 60%, var(--paper)); font-size: 14px; color: var(--ink);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem;
}
.woocommerce-error { border-inline-start-color: var(--clay); flex-direction: column; align-items: flex-start; }
.woocommerce-message .button, .woocommerce-info .button { min-height: 40px; padding: .6rem 1.1rem; font-size: 10px; order: 2; }

/* Tables */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; font-size: 14px; border-top: 1px solid var(--line); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 1rem .5rem; text-align: start; vertical-align: middle; border-bottom: 1px solid var(--line); }
.woocommerce table.shop_table th { font-family: var(--font-mono); font-size: 10px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.woocommerce table.shop_table .product-thumbnail img { width: 72px; height: 90px; object-fit: cover; background: var(--bone); }
.woocommerce table.shop_table .product-name a { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; }
.woocommerce table.shop_table .product-remove a { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 999px; border: 1px solid var(--line); font-size: 16px; line-height: 1; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.woocommerce table.shop_table .product-remove a:hover { background: var(--ink); color: var(--paper); }
.woocommerce table.shop_table .quantity input { width: 64px; min-height: 40px; text-align: center; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 999px; background: transparent; font-family: var(--font-mono); }
.woocommerce table.shop_table tfoot th, .woocommerce .cart_totals th { color: var(--ink); }
.woocommerce .order-total .amount { font-family: var(--font-display); font-size: 1.25rem; font-weight: 800; }
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive tr { display: block; padding-block: .75rem; border-bottom: 1px solid var(--line); }
	.woocommerce table.shop_table_responsive th { display: none; }
	.woocommerce table.shop_table_responsive td { display: block; padding: .5rem 0; border: 0; text-align: end; overflow-wrap: anywhere; }
	.woocommerce table.shop_table_responsive td::before { content: attr(data-title); float: inline-start; margin-inline-end: 1rem; font-family: var(--font-mono); font-size: 10px; line-height: 2; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); text-align: start; }
	.woocommerce table.shop_table_responsive td.product-thumbnail { text-align: start; }
	.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: 13px; }
	.woocommerce table.shop_table_responsive td.product-remove::before, .woocommerce table.shop_table_responsive td.product-thumbnail::before, .woocommerce table.shop_table_responsive td.actions::before { content: none; }
	.woocommerce table.shop_table_responsive td.actions { display: block; }
}
/* Cart / bag -----------------------------------------------------------
 * Compact head with the step rail, editorial line items (photo, item,
 * quantity stepper, total) and a sticky summary whose checkout button sits
 * above the fold on laptop screens. WooCommerce's cart.js re-renders the
 * form and totals over AJAX; motion is keyed on classes nexun.js re-applies.
 * -------------------------------------------------------------------- */
.nx-bag-head { padding-bottom: 1.25rem; }
.nx-steps { list-style: none; margin-top: 1.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 0; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 45%, transparent); }
.nx-steps__item { display: inline-flex; align-items: center; gap: .5rem; }
.nx-steps__item + .nx-steps__item::before { content: ''; width: clamp(1.5rem, 4vw, 3.5rem); height: 1px; margin-inline: .75rem; background: color-mix(in srgb, var(--ink) 20%, transparent); }
.nx-steps__n { display: inline-grid; place-items: center; min-width: 26px; height: 20px; padding-inline: .35rem; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); font-size: 9px; letter-spacing: .08em; }
.nx-steps__item.is-current { color: var(--ink); }
.nx-steps__item.is-current .nx-steps__n { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.nx-bag-page .nx-page-content { padding-top: .5rem; }

/* Notices: WooCommerce focuses them for screen readers; no ring for that. The
   "View cart" link is redundant on the cart itself. */
.woocommerce-notices-wrapper [tabindex="-1"]:focus, .woocommerce-message[tabindex="-1"]:focus, .woocommerce-info[tabindex="-1"]:focus, .woocommerce-error[tabindex="-1"]:focus { outline: none; }
.nx-bag-page .woocommerce-message .wc-forward { display: none; }
.nx-bag-page .woocommerce-message, .nx-bag-page .woocommerce-info, .nx-bag-page .woocommerce-error { margin-bottom: 1rem; padding-block: .8rem; }
.woocommerce-message .restore-item { text-decoration: underline; text-underline-offset: 3px; }

/* Layout: bag + sticky summary */
.cart-collaterals { margin-top: 2.5rem; }
@media (min-width: 900px) {
	.woocommerce-cart .nx-page-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); column-gap: clamp(2.5rem, 4vw, 4.5rem); align-items: start; }
	.woocommerce-cart .nx-page-content > .woocommerce > .woocommerce-notices-wrapper,
	.woocommerce-cart .nx-page-content > .woocommerce > .nx-bag__more,
	.woocommerce-cart .nx-page-content > .woocommerce > .nx-bag-empty { grid-column: 1 / -1; }
	.cart-collaterals { margin-top: 0; position: sticky; top: calc(var(--header-h) + 1.25rem); }
}

/* Line items */
.woocommerce table.nx-bag__table { border-top: 0; }
.woocommerce table.nx-bag__table thead th { padding-block: 0 .75rem; font-size: 9px; }
.woocommerce table.nx-bag__table th.product-subtotal, .woocommerce table.nx-bag__table td.product-subtotal { text-align: end; }
.woocommerce table.nx-bag__table td { padding-block: 1.25rem; vertical-align: top; }
.woocommerce table.nx-bag__table td.product-thumbnail { width: 1%; padding-inline: 0 1.25rem; }
.woocommerce table.nx-bag__table .product-thumbnail a, .woocommerce table.nx-bag__table .product-thumbnail > img { display: block; overflow: hidden; background: var(--bone); }
.woocommerce table.nx-bag__table .product-thumbnail img { display: block; width: 104px; max-width: none; height: 130px; object-fit: cover; filter: saturate(.85) contrast(1.02); transition: transform 1.2s var(--ease); }
@media (hover: hover) { .woocommerce table.nx-bag__table .cart_item:hover .product-thumbnail img { transform: scale(1.05); } }
.nx-bag__title { display: block; font-family: var(--font-display); font-size: 15px; font-weight: 700; line-height: 1.25; text-transform: uppercase; letter-spacing: -.005em; }
.woocommerce table.nx-bag__table .nx-bag__title a { transition: color .4s; }
.woocommerce table.nx-bag__table .nx-bag__title a:hover { color: var(--olive); }
.nx-bag__attrs { margin-top: .5rem; display: flex; flex-wrap: wrap; gap: .35rem 1rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.nx-bag__attr { display: inline-flex; align-items: center; gap: .45rem; }
.nx-bag__dot { width: 11px; height: 11px; border-radius: 999px; box-shadow: 0 0 0 1px color-mix(in srgb, var(--ink) 18%, transparent); }
.nx-bag__table dl.variation { margin-top: .35rem; font-size: 12px; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.nx-bag__table dl.variation dt, .nx-bag__table dl.variation dd, .nx-bag__table dl.variation dd p { display: inline; margin: 0; }
.woocommerce table.nx-bag__table .nx-bag__unit { display: block; margin-top: .5rem; font-size: 13px; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.woocommerce table.nx-bag__table .product-remove { display: block; margin-top: .85rem; }
.woocommerce table.nx-bag__table .product-remove a.nx-bag__remove {
	display: inline; width: auto; height: auto; border: 0; border-radius: 0; background: none; padding: .25rem 0;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent);
	text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: color .3s, text-decoration-color .3s;
}
.woocommerce table.nx-bag__table .product-remove a.nx-bag__remove:hover { background: none; color: var(--clay); text-decoration-color: currentColor; }
.woocommerce table.nx-bag__table td.product-subtotal { font-family: var(--font-display); font-size: 15px; font-weight: 700; white-space: nowrap; }
.backorder_notification { margin-top: .35rem; font-size: 12px; color: var(--clay); }

/* Quantity stepper (buttons injected by nexun.js around WooCommerce's own input) */
.woocommerce table.nx-bag__table .quantity { display: inline-flex; align-items: stretch; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 999px; overflow: hidden; transition: border-color .3s; }
.woocommerce table.nx-bag__table .quantity:focus-within, .woocommerce table.nx-bag__table .quantity:hover { border-color: color-mix(in srgb, var(--ink) 45%, transparent); }
.woocommerce table.nx-bag__table .quantity input.qty { width: 44px; min-height: 40px; border: 0; border-radius: 0; background: none; text-align: center; font-family: var(--font-mono); font-size: 13px; -moz-appearance: textfield; }
.woocommerce table.nx-bag__table .quantity input.qty::-webkit-outer-spin-button, .woocommerce table.nx-bag__table .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nx-step { width: 36px; display: grid; place-items: center; border: 0; background: none; color: var(--ink); cursor: pointer; font-size: 16px; line-height: 1; transition: background-color .3s, transform .2s var(--ease); }
.nx-step:hover { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.nx-step:active { transform: scale(.88); }
.nx-step:disabled { color: color-mix(in srgb, var(--ink) 25%, transparent); cursor: not-allowed; background: none; transform: none; }

/* Actions row: continue shopping, coupon, (no-JS) update */
.woocommerce table.nx-bag__table td.actions { padding: 1.25rem 0 0; border-bottom: 0; }
.nx-bag__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.nx-bag__back { display: inline-flex; align-items: center; gap: .5rem; margin-inline-end: auto; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 65%, transparent); transition: color .3s; }
.nx-bag__back .nx-icon { width: 14px; height: 14px; transform: scaleX(-1); transition: transform .5s var(--ease); }
.nx-bag__back:hover { color: var(--ink); }
.nx-bag__back:hover .nx-icon { transform: scaleX(-1) translateX(4px); }
[dir="rtl"] .nx-bag__back .nx-icon { transform: none; }
[dir="rtl"] .nx-bag__back:hover .nx-icon { transform: translateX(-4px); }
.woocommerce-cart .coupon { display: flex; align-items: stretch; margin: 0; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 999px; overflow: hidden; transition: border-color .3s; }
.woocommerce-cart .coupon:focus-within { border-color: var(--ink); }
.woocommerce-cart .coupon label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.woocommerce-cart .coupon input { min-height: 44px; width: 12rem; padding-inline: 1.1rem; border: 0; border-radius: 0; background: transparent; font-size: 14px; }
.woocommerce-cart .coupon input:focus-visible { outline: none; }
.woocommerce-cart .coupon .button { min-height: 44px; padding: .5rem 1.1rem; border: 0; border-inline-start: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 0; font-size: 10px; }
.has-js .nx-bag .nx-bag__update { display: none; } /* quantities update themselves; the button stays for no-JS */
.woocommerce .nx-bag .button.nx-bag__update { min-height: 44px; padding-block: .5rem; font-size: 10px; }

@media (max-width: 767px) {
	.woocommerce table.nx-bag__table tr.cart_item {
		display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; grid-template-areas: "thumb name name" "thumb qty total";
		column-gap: 1rem; row-gap: .9rem; padding-block: 1.25rem;
	}
	.woocommerce table.nx-bag__table tr.cart_item td { padding: 0; text-align: start; }
	.woocommerce table.nx-bag__table tr.cart_item td::before { content: none; }
	.woocommerce table.nx-bag__table td.product-thumbnail { grid-area: thumb; width: auto; padding: 0; }
	.woocommerce table.nx-bag__table .product-thumbnail img { width: 88px; height: 110px; }
	.woocommerce table.nx-bag__table td.product-name { grid-area: name; }
	.woocommerce table.nx-bag__table td.product-quantity { grid-area: qty; align-self: end; }
	.woocommerce table.nx-bag__table td.product-subtotal { grid-area: total; align-self: center; text-align: end; }
	.nx-bag__title { font-size: 14px; }
	.nx-bag__actions { flex-direction: column; align-items: stretch; }
	.nx-bag__back { order: 3; margin-inline-end: 0; justify-content: center; padding-block: .5rem; }
	.woocommerce-cart .coupon input { flex: 1; width: auto; min-width: 0; }
}

.cart_totals h2, #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3, .woocommerce-shipping-fields h3, .woocommerce-order-details__title, .woocommerce-column__title {
	font-family: var(--font-mono); font-size: 10px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent);
	padding-bottom: .9rem; margin-bottom: .5rem; border-bottom: 1px solid var(--line);
}
.woocommerce-shipping-methods { list-style: none; }
.cart-empty.woocommerce-info { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; text-transform: uppercase; }

@media (max-width: 639px) {
	.nx-steps { letter-spacing: .12em; }
	.nx-steps__item + .nx-steps__item::before { width: .9rem; margin-inline: .45rem; }
}

/* Mobile checkout bar (nexun.js): shown only while the summary's own button is off-screen. */
.nx-bagbar { display: none; }
@media (max-width: 899px) {
	.nx-bagbar {
		position: fixed; z-index: 60; inset-inline: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
		padding: .75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line);
		background: color-mix(in srgb, var(--paper) 94%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
		box-shadow: 0 -12px 30px -20px rgb(18 18 15 / 40%);
		visibility: hidden; transform: translateY(105%); transition: transform .5s var(--ease), visibility 0s linear .5s;
	}
	.nx-bagbar.is-on { visibility: visible; transform: none; transition: transform .5s var(--ease), visibility 0s; }
	.has-bagbar .site-footer { padding-bottom: 5rem; }
}
.nx-bagbar__total { display: grid; gap: .1rem; }
.nx-bagbar__label { font-family: var(--font-mono); font-size: 9px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.nx-bagbar__amount { font-family: var(--font-display); font-size: 1.15rem; font-weight: 800; letter-spacing: -.02em; }
.nx-bagbar .nx-bagbar__cta { width: auto; min-height: 48px; padding-inline: 1.4rem; }

/* Summary panel */
.cart_totals { padding: 1.5rem; border: 1px solid var(--line); background: color-mix(in srgb, var(--bone) 45%, var(--paper)); }
@media (min-width: 1024px) { .cart_totals { padding: 1.75rem; } }
.cart_totals h2 { padding-bottom: .8rem; margin-bottom: 0; }
.woocommerce .cart_totals table.shop_table { border-top: 0; }
.woocommerce .cart_totals table.shop_table th, .woocommerce .cart_totals table.shop_table td { padding: .85rem 0; vertical-align: top; }
.woocommerce .cart_totals table.shop_table th { width: 40%; font-size: 9px; line-height: 2; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.woocommerce .cart_totals table.shop_table td { text-align: end; }
.woocommerce .cart_totals .woocommerce-shipping-destination { margin-top: .25rem; font-size: 12px; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.woocommerce .cart_totals .shipping-calculator-button { display: inline-block; margin-top: .35rem; font-family: var(--font-mono); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce .cart_totals .woocommerce-shipping-methods li { display: flex; justify-content: flex-end; gap: .5rem; }
.woocommerce .cart_totals .shipping-calculator-form { margin-top: .75rem; text-align: start; }
.woocommerce .cart_totals tr.order-total th, .woocommerce .cart_totals tr.order-total td { padding-top: 1.1rem; border-bottom: 0; color: var(--ink); }
.woocommerce .cart_totals tr.order-total th { font-size: 10px; }
.woocommerce .cart_totals .order-total .amount { font-size: 1.6rem; letter-spacing: -.02em; }
.woocommerce .cart_totals .cart-discount td { color: var(--olive); }
.wc-proceed-to-checkout { padding-top: .25rem; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { min-height: 56px; justify-content: space-between; padding-inline: 1.5rem; }
.checkout-button .nx-icon { width: 16px; height: 16px; flex: none; transition: transform .5s var(--ease); }
.checkout-button:hover .nx-icon { transform: translate(4px, -4px); }
[dir="rtl"] .checkout-button .nx-icon { transform: scaleX(-1); }
[dir="rtl"] .checkout-button:hover .nx-icon { transform: scaleX(-1) translate(4px, -4px); }
.nx-bag__assure { margin-top: 1rem; }
.nx-bag__more { margin-top: 4rem; padding-block: 3rem 0; }

/* Empty bag */
.nx-bag-empty { padding: 3.5rem 0 1.5rem; display: grid; justify-items: center; gap: .9rem; text-align: center; }
.nx-bag-empty .wc-empty-cart-message { width: 100%; }
.nx-bag-empty > .woocommerce-notices-wrapper { justify-self: stretch; }
.nx-bag-empty > .woocommerce-notices-wrapper:empty { display: none; }
.nx-bag-empty .woocommerce-message { text-align: start; }
.nx-bag-empty .cart-empty.woocommerce-info { display: grid; justify-content: center; justify-items: center; gap: 1.25rem; margin: 0; padding: 0; border: 0; background: none; text-align: center; font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; text-transform: uppercase; }
.nx-bag-empty .cart-empty.woocommerce-info::before {
	content: ''; width: 64px; height: 64px; border-radius: 999px; border: 1px solid var(--line);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2367634f' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3Cpath d='M3.103 6.034h17.794'/%3E%3Cpath d='M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z'/%3E%3C/svg%3E") no-repeat center / 24px;
}
.nx-bag-empty__text { max-width: 40ch; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.return-to-shop { margin-top: 1rem; }
.nx-bag-empty .return-to-shop { margin-top: .5rem; }

/* WooCommerce's blockUI while cart.js works: paper veil + running hairline. */
.nx-bag-page .blockUI.blockOverlay { background: var(--paper) !important; opacity: .55 !important; }
.nx-bag-page .blockUI.blockOverlay::before { content: ''; position: absolute; inset-inline: 0; top: 0; height: 2px; background: var(--ink); transform-origin: left; animation: nx-load 1.1s var(--ease) infinite; }

/* Bag motion: first paint only (.is-live after the first AJAX render); disabled under reduced motion. */
@keyframes nx-load { from { transform: scaleX(0); } 60% { transform: scaleX(1); opacity: 1; } to { transform: scaleX(1); opacity: 0; } }
@keyframes nx-tick { from { opacity: 0; transform: translateY(-.5em); } }
@keyframes nx-notice-in { from { opacity: 0; transform: translateY(-10px); } }
.nx-motion .nx-bag-page:not(.is-live) .nx-bag__table tr.cart_item { animation: nx-fade-up .9s var(--ease) backwards; animation-delay: calc(.25s + var(--i, 0) * .08s); }
.nx-motion .nx-bag-page:not(.is-live) .nx-bag__table thead, .nx-motion .nx-bag-page:not(.is-live) .nx-bag__actions-row { animation: nx-fade-up .9s var(--ease) .2s backwards; }
.nx-motion .nx-bag-page:not(.is-live) .cart-collaterals { animation: nx-fade-up 1s var(--ease) .35s backwards; }
.nx-motion .nx-bag-page:not(.is-live) .nx-bag-empty > * { animation: nx-fade-up .9s var(--ease) backwards; }
.nx-motion .nx-bag-page:not(.is-live) .nx-bag-empty > :nth-child(2) { animation-delay: .08s; }
.nx-motion .nx-bag-page:not(.is-live) .nx-bag-empty > :nth-child(3) { animation-delay: .16s; }
.nx-motion .nx-bag-page:not(.is-live) .nx-bag-empty > :nth-child(4) { animation-delay: .24s; }
.nx-motion .nx-bag-page .woocommerce-notices-wrapper > * { animation: nx-notice-in .6s var(--ease) backwards; }
.nx-motion .nx-bag-page .cart_item.is-updated .product-subtotal .amount, .nx-motion .nx-bag-page .order-total .amount.is-tick { display: inline-block; animation: nx-tick .6s var(--ease) backwards; }
.nx-bag-page .cart_item.is-pending .product-subtotal { opacity: .45; transition: opacity .3s; }
.nx-bag-page .cart_item.is-removing { opacity: .3; filter: grayscale(1); transition: opacity .5s var(--ease), filter .5s var(--ease); }

/* Forms */
.woocommerce form .form-row { display: block; margin: 0 0 1.25rem; }
.woocommerce form .form-row label { display: block; margin-bottom: .45rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.woocommerce form .form-row .required { color: var(--clay); text-decoration: none; }
.woocommerce form .form-row .description { display: block; margin-top: .45rem; font-size: 12px; line-height: 1.5; color: color-mix(in srgb, var(--ink) 60%, transparent); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .nexun-input {
	width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); border-radius: 2px;
	background: color-mix(in srgb, #fff 45%, var(--paper)); color: var(--ink); font-family: var(--font-body); font-size: 15px;
	transition: border-color .3s, box-shadow .3s;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.woocommerce form .form-row textarea { min-height: 110px; resize: vertical; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--clay); box-shadow: 0 0 0 1px var(--clay); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--olive); }
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: 3rem; align-items: start; }
	.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
	.woocommerce-checkout form.checkout > #order_review_heading, .woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
	.woocommerce-checkout form.checkout > #order_review { position: sticky; top: calc(var(--header-h) + 1.5rem); }
}
#order_review { padding: 1.75rem; border: 1px solid var(--line); background: color-mix(in srgb, var(--bone) 45%, var(--paper)); }
.wc_payment_methods { list-style: none; margin: 1.25rem 0; }
.wc_payment_methods li { margin-bottom: .6rem; padding: 1rem 1.1rem; border: 1px solid var(--line); background: var(--paper); }
.wc_payment_methods li:has(input:checked) { border-color: var(--ink); }
.wc_payment_methods label { font-weight: 600; cursor: pointer; }
.wc_payment_methods input[type="radio"] { accent-color: var(--ink); margin-inline-end: .5rem; }
.wc_payment_methods .payment_box { margin-top: .6rem; font-size: 13px; line-height: 1.55; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text { font-size: 12px; line-height: 1.55; color: color-mix(in srgb, var(--ink) 60%, transparent); margin-bottom: 1rem; }
.woocommerce-privacy-policy-text a { text-decoration: underline; }
.reassure { margin-top: 1.25rem; display: flex; align-items: flex-start; gap: .6rem; padding: 1rem 1.1rem; border: 1px solid var(--line); font-size: 13px; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.nexun-hidden { display: none !important; }

/* Order received + ShamCash */
.woocommerce-order { display: grid; gap: 2rem; }
.woocommerce-thankyou-order-received { font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; line-height: 1.1; text-transform: uppercase; letter-spacing: -.02em; }
.woocommerce-order-overview { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.woocommerce-order-overview li { padding: 1rem 1.25rem; background: var(--paper); font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.woocommerce-order-overview li strong { display: block; margin-top: .4rem; font-family: var(--font-body); font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ink); }
.woocommerce-customer-details address { font-style: normal; line-height: 1.7; padding: 1rem 1.25rem; border: 1px solid var(--line); }
.shamcash { max-width: 60ch; padding: 1.75rem; border: 1px solid var(--line); border-inline-start: 3px solid var(--khaki); background: color-mix(in srgb, var(--bone) 45%, var(--paper)); }
.shamcash__title { font-family: var(--font-mono); font-size: 10px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase; margin-bottom: 1.25rem; }
.shamcash__facts { display: grid; grid-template-columns: auto 1fr; gap: .6rem 1.25rem; margin: 0 0 1.25rem; }
.shamcash__facts dt { align-self: center; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: color-mix(in srgb, var(--ink) 55%, transparent); }
.shamcash__facts dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.shamcash__wallet { font-family: var(--font-mono); font-size: 17px; letter-spacing: .08em; padding: .2rem .5rem; background: var(--paper); border: 1px solid var(--line); }
.shamcash__help, .shamcash__note { font-size: 13px; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.shamcash__done { color: var(--olive); font-weight: 600; }
.shamcash__form { display: grid; gap: .6rem; max-width: 36ch; }
.shamcash__form label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }

/* Pagination */
.navigation.pagination, .woocommerce-pagination { margin-top: 3.5rem; }
.nav-links, .woocommerce-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; list-style: none; }
.page-numbers { display: grid; place-items: center; min-width: 42px; min-height: 42px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); font-family: var(--font-mono); font-size: 11px; }
.page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* Size guide slide-over (PDP) */
.sg-panel[hidden], .sg-overlay[hidden] { display: none; }
.sg-overlay { position: fixed; inset: 0; z-index: 95; background: color-mix(in srgb, var(--ink) 55%, transparent); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility .3s; }
.sg-overlay.is-open { opacity: 1; visibility: visible; }
.sg-panel { position: fixed; inset-block: 0; inset-inline-end: 0; z-index: 96; width: min(520px, 100%); display: flex; flex-direction: column; background: var(--paper); color: var(--ink); transform: translateX(100%); transition: transform .45s var(--ease); box-shadow: -8px 0 40px rgb(18 18 15 / 25%); }
[dir="rtl"] .sg-panel { transform: translateX(-100%); }
.sg-panel.is-open { transform: translateX(0); }
.sg-panel__head { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 1.5rem; border-bottom: 1px solid var(--line); }
.sg-panel__title { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; }
.sg-panel__close { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); background: none; cursor: pointer; color: var(--ink); }
.sg-panel__close svg { width: 14px; height: 14px; }
.sg-panel__body { flex: 1; overflow-y: auto; padding: 1.5rem; }
.sg-diagram { margin-bottom: 1.75rem; padding: 1.25rem; border: 1px solid var(--line); background: color-mix(in srgb, #fff 35%, var(--paper)); }
.sg-diagram img, .sg-diagram svg { margin-inline: auto; }
.sg-table-scroll { overflow-x: auto; }
.sg-table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.sg-table th, .sg-table td { padding: .75rem .5rem; text-align: start; white-space: nowrap; border-bottom: 1px solid var(--line); }
.sg-table th { font-family: var(--font-mono); font-size: 10px; font-weight: 400; letter-spacing: .18em; text-transform: uppercase; }
.sg-table td { font-family: var(--font-mono); color: color-mix(in srgb, var(--ink) 70%, transparent); }
.sg-table td:first-child { color: var(--ink); font-weight: 600; }
.sg-heights { margin-top: 1.75rem; }
.sg-heights__title, .sg-table__title { margin-bottom: .75rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; }
.sg-heights ul { list-style: none; }
.sg-heights li { display: flex; gap: .5rem; padding-block: .4rem; border-bottom: 1px solid var(--line); font-size: 14px; }
.sg-notes { margin-top: 1.5rem; }
.sg-notes p { margin-bottom: .5rem; font-size: 13px; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.sg-notes__fit { color: var(--ink) !important; font-weight: 600; }
body.sg-locked { overflow: hidden; }

/* ==========================================================================
   Motion — enabled only by nexun.js (html.nx-motion) and never under
   prefers-reduced-motion. Without JavaScript everything is visible.
   ========================================================================== */
@keyframes nx-rise { from { transform: translateY(115%); } }
@keyframes nx-fade-up { from { opacity: 0; transform: translateY(24px); filter: blur(6px); } }
@keyframes nx-hero-in { from { opacity: 0; transform: scale(1.14); } }
@keyframes nx-header-in { from { opacity: 0; transform: translateY(-80px); } }
@keyframes nx-scrub { from { inset-inline-start: -6rem; } to { inset-inline-start: 100%; } }
@keyframes nx-bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1); } }
@keyframes nx-menu-in { from { opacity: 0; transform: translateY(28px); } }

.nx-motion .site-header { animation: nx-header-in 1s var(--ease) .4s both; }
.nx-motion .nx-hero__media { animation: nx-hero-in 2.4s var(--ease) both; }
.nx-motion .nx-rise { animation: nx-rise 1.1s var(--ease) both; animation-delay: calc(.55s + var(--i, 0) * .09s); }
.nx-motion .nx-hero .nx-in { animation: nx-fade-up 1s var(--ease) both; animation-delay: calc(.55s + var(--i, 0) * .09s); }
.nx-motion .nx-hero__facts { animation: nx-fade-up 1.2s ease 1.6s both; }
.nx-motion .nx-hero__scroll { animation: nx-fade-up 1s ease 1.9s both; }
.nx-hero__scrub { animation: nx-scrub 3.2s ease-in-out infinite alternate; }
.nx-hero__arrow { animation: nx-bounce 1s infinite; }
.nx-motion .mobile-menu:not([hidden]) { animation: nx-fade-up .45s ease-out both; }
.nx-motion .mobile-menu:not([hidden]) .mobile-menu__link { animation: nx-menu-in .7s var(--ease) both; animation-delay: calc(.08s + var(--i, 0) * .06s); }

.nx-motion [data-reveal]:not([data-reveal="clip"]) { opacity: 0; transform: translateY(36px); filter: blur(8px); transition: opacity 1s var(--ease), transform 1s var(--ease), filter 1s var(--ease); transition-delay: var(--d, 0s); }
.nx-motion [data-reveal="clip"] { opacity: 0; clip-path: inset(12% 8% 12% 8%); transition: opacity 1.2s var(--ease), clip-path 1.2s var(--ease); transition-delay: var(--d, 0s); }
.nx-motion [data-reveal].is-in { opacity: 1; transform: none; filter: none; clip-path: inset(0 0 0 0); }
.nx-motion .nx-qa[data-reveal] { transform: translateY(20px); }
.nx-motion .nx-qa[data-reveal].is-in { transform: none; }
.nx-motion [data-scroll-words] .nx-sword { opacity: var(--o, .13); filter: blur(var(--b, 3px)); transition: opacity .15s linear, filter .15s linear; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.nx-marquee__track, .nx-hero__scrub, .nx-hero__arrow { animation: none !important; }
	.nx-hero__scrub { inset-inline-start: 0; }
	.nx-hero__img { transform: none; }
	.nx-frame:hover .nx-frame__img, .card:hover .card__media img, .nx-swatch:hover .nx-swatch__dot { transform: none; }
}
