/*
Theme Name: Nexun Film
Theme URI: https://nexunbrand.com
Description: The "shot on film" storefront look for Nexun. A child theme of Nexun: products, colourways, stock, the Drop story, the bag and the checkout stay in the parent theme and NEXUN Core; this theme changes how they look. Activate "Nexun" to return to the previous look.
Author: Nexun
Template: nexun
Version: 1.0.0
Requires at least: 6.8
Requires PHP: 8.1
License: Proprietary
Text Domain: nexun
*/

/* ==========================================================================
   Tokens. The parent stylesheet loads first and reads the same custom
   properties, so resetting them here re-colours the product page, bag and
   checkout without touching their layout.
   ========================================================================== */
:root {
	--ink:   #181716;
	--coal:  #0e0d0c;
	--soot:  #24211f;
	--paper: #efebe4;
	--bone:  #e4dfd7;
	--fog:   #a59b8f;
	--ash:   #61564a;
	--khaki: #dda95c;

	--nxf-amber: #dda95c;
	--nxf-tile: #d9d3c9;
	--nxf-line: #cfc8bd;
	--nxf-line-dark: #3a3632;
	--nxf-ink-soft: #3a3632;
	--nxf-ease: cubic-bezier(.2, .7, .2, 1);

	--font-body: 'Archivo', 'IBM Plex Sans Arabic', ui-sans-serif, system-ui, sans-serif;
	--nxf-serif: 'Instrument Serif', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, 'Times New Roman', serif;

	--nxf-gutter: 16px;
	--gutter: var(--nxf-gutter);
	--maxw: 1280px;
	--header-h: 52px;
}
@media (min-width: 640px) {
	:root { --gutter: var(--nxf-gutter); --header-h: 52px; }
}
@media (min-width: 860px) {
	:root { --nxf-gutter: clamp(2rem, 5vw, 4.5rem); --header-h: 68px; }
}

/* ---- Base ---- */
body.nxf { background: var(--coal); }
body.nxf.nx-page #main { padding-top: 0; }
.nxf h1, .nxf h2, .nxf h3 { font-stretch: 125%; }

.nxf-wrap { width: 100%; max-width: 1280px; margin-inline: auto; padding-inline: var(--nxf-gutter); }
.nxf-bleed { width: 100%; max-width: 1280px; margin-inline: auto; }
@media (min-width: 860px) { .nxf-bleed { padding-inline: var(--nxf-gutter); } }

/* ==========================================================================
   Top line, header, menu
   ========================================================================== */
.nxf-strip {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 32px; padding-inline: var(--nxf-gutter);
	background: var(--coal); color: var(--bone);
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase;
}
.nxf-strip__main { flex: none; white-space: nowrap; }
.nxf-strip__main:empty { display: none; }
.nxf-strip__place { min-width: 0; color: var(--nxf-amber); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.nxf-header { position: sticky; top: 0; z-index: 60; background: var(--ink); color: var(--bone); border-bottom: 1px solid var(--nxf-line-dark); }
.nxf-header__in { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: var(--header-h); max-width: 1280px; margin-inline: auto; padding-inline: calc(var(--nxf-gutter) - 10px); }
.nxf-header__start { display: flex; align-items: center; }
.nxf-header__end { display: flex; align-items: center; justify-content: flex-end; }
.nxf-header .nx-icon { width: 22px; height: 22px; }
.nxf-toggle { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.nxf-toggle__close, .has-menu-open .nxf-toggle__open { display: none; }
.has-menu-open .nxf-toggle__close { display: block; }
.nxf-nav { display: none; }
.nxf-brand { font-family: var(--font-display); font-size: 22px; font-weight: 700; font-stretch: 125%; letter-spacing: -.02em; line-height: 1; text-transform: lowercase; }
.nxf-cart { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; }
.nxf-cart__label { display: none; }
.nxf-cart__count {
	position: absolute; top: 5px; inset-inline-end: 2px; display: grid; place-items: center; min-width: 16px; height: 16px; padding-inline: 3px;
	border-radius: 8px; background: var(--nxf-amber); color: var(--ink); font-size: 10px; font-weight: 700; line-height: 1;
}
.nxf-cart__count[data-count="0"] { display: none; }

@media (min-width: 860px) {
	.nxf-header__in { padding-inline: var(--nxf-gutter); }
	.nxf-toggle { display: none; }
	.nxf-nav { display: flex; flex-wrap: wrap; gap: 0 28px; }
	.nxf-nav__link, .nxf-cart { font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
	.nxf-nav__link { display: inline-flex; align-items: center; min-height: 44px; transition: color .3s ease; }
	.nxf-nav__link:hover, .nxf-cart:hover { color: var(--nxf-amber); }
	.nxf-brand { font-size: 28px; }
	.nxf-cart__label { display: inline; }
	.nxf-header .nxf-cart .nx-icon { width: 20px; height: 20px; }
	.nxf-cart__count { position: static; }
}

.nxf-menu {
	position: fixed; inset: 0; z-index: 55; display: flex; flex-direction: column; padding: calc(var(--header-h) + 44px) 20px 28px;
	background: var(--ink); color: var(--bone); overflow-y: auto;
}
.nxf-menu__nav { display: flex; flex-direction: column; }
.nxf-menu__link {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; border-bottom: 1px solid var(--nxf-line-dark);
	font-family: var(--font-display); font-size: 22px; font-weight: 800; font-stretch: 125%; letter-spacing: -.015em; text-transform: uppercase;
}
.nxf-menu__num { font-family: var(--font-mono); font-size: 11px; font-weight: 400; font-stretch: 100%; letter-spacing: .1em; color: var(--fog); }
.nxf-menu__meta { margin-top: auto; padding-top: 24px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--fog); }

/* ==========================================================================
   Shared pieces
   ========================================================================== */
.nxf-titlebar { display: flex; align-items: baseline; justify-content: space-between; gap: 12px 20px; }
.nxf-title { margin: 0; font-family: var(--font-display); font-size: 24px; font-weight: 800; line-height: 1; letter-spacing: -.015em; text-transform: uppercase; }
.nxf-count { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ash); white-space: nowrap; }
.nxf-heading { margin: 0; font-family: var(--font-display); font-size: clamp(1.9rem, 4.4vw, 3.75rem); font-weight: 800; line-height: .98; letter-spacing: -.02em; text-transform: uppercase; text-wrap: balance; }
.nxf-line { margin: 0; font-family: var(--nxf-serif); font-size: clamp(1.9rem, 3.6vw, 3.25rem); font-style: italic; font-weight: 400; font-stretch: 100%; line-height: 1.05; letter-spacing: 0; text-transform: none; text-wrap: balance; }

.nxf-tabs { display: flex; gap: 26px; margin-top: 18px; border-bottom: 1px solid var(--nxf-line); overflow-x: auto; scrollbar-width: none; }
.nxf-tabs::-webkit-scrollbar { display: none; }
.nxf-tab { flex: none; display: inline-flex; align-items: center; min-height: 44px; margin-bottom: -1px; border-bottom: 1px solid transparent; font-size: 14px; font-weight: 500; color: var(--ash); transition: color .3s ease, border-color .3s ease; }
.nxf-tab:hover, .nxf-tab.is-on { color: var(--ink); }
.nxf-tab.is-on { border-bottom-color: var(--ink); }

.nxf-textlink { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; border-bottom: 1px solid currentColor; font-size: 15px; font-weight: 500; }
.nxf-textlink .nx-icon { width: 18px; height: 18px; transition: transform .5s var(--nxf-ease); }
.nxf-textlink:hover .nx-icon { transform: translateX(4px); }
[dir="rtl"] .nxf-textlink .nx-icon { transform: scaleX(-1); }

.nxf-chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 8px; background: var(--coal); color: var(--bone); font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.nxf-chip__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--nxf-amber); }

.nxf-assure { margin: 0; padding: 0 var(--nxf-gutter) 48px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; text-align: center; color: var(--ash); }

.nxf-empty { display: grid; justify-items: start; gap: 10px; padding: 40px var(--nxf-gutter) 64px; color: var(--ash); }
.nxf-empty__line { font-family: var(--nxf-serif); font-size: 30px; font-style: italic; line-height: 1.1; color: var(--ink); }
@media (min-width: 860px) { .nxf-empty { padding-inline: 0; } }

/* ==========================================================================
   Home: opening frame
   ========================================================================== */
.nxf-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(520px, 78svh, 680px); overflow: hidden; background: var(--coal); color: var(--bone); }
.nxf-hero--bare { min-height: 380px; }
.nxf-hero__media { position: absolute; inset: 0; }
.nxf-hero .nxf-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; }
.nxf-hero__shade { position: absolute; inset-inline: 0; bottom: 0; height: 70%; background: linear-gradient(to top, rgb(14 13 12 / 97%) 0%, rgb(14 13 12 / 80%) 36%, rgb(14 13 12 / 0%) 100%); pointer-events: none; }
.nxf-hero__chips { position: absolute; top: 12px; inset-inline: 12px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.nxf-hero__text { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 0 var(--nxf-gutter) 20px; text-align: center; }
.nxf-hero__title { margin: 0; max-width: 900px; font-family: var(--nxf-serif); font-size: clamp(2.5rem, 6.4vw, 5.75rem); font-style: italic; font-weight: 400; font-stretch: 100%; line-height: 1.02; letter-spacing: 0; text-transform: none; text-wrap: balance; text-shadow: 0 1px 3px rgb(14 13 12 / 70%); }
.nxf-hero__facts { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--nxf-line); }
.nxf-cta {
	display: flex; align-items: center; justify-content: space-between; gap: 12px 40px; width: 100%; min-height: 56px; padding-inline: 20px;
	background: var(--nxf-amber); color: var(--ink); font-size: 15px; font-weight: 700; font-stretch: 125%; letter-spacing: .02em; text-transform: uppercase;
	transition: background-color .4s ease;
}
.nxf-cta:hover { background: #e8ba74; }
.nxf-cta__meta { display: inline-flex; align-items: center; gap: 10px; font-stretch: 100%; font-weight: 600; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.nxf-cta__meta .nx-icon { width: 18px; height: 18px; }
[dir="rtl"] .nxf-cta__meta .nx-icon { transform: scaleX(-1); }
@media (min-width: 860px) {
	.nxf-hero { min-height: clamp(560px, 80svh, 760px); }
	.nxf-hero__chips { top: 20px; inset-inline: var(--nxf-gutter); }
	.nxf-hero__text { gap: 20px; padding-bottom: 48px; }
	.nxf-hero__facts { font-size: 12px; }
	.nxf-cta { width: auto; min-height: 58px; padding-inline: 26px; }
}

.nxf-reel { overflow: hidden; direction: ltr; background: var(--coal); border-block: 1px solid var(--nxf-line-dark); }
.nxf-reel__track { display: flex; width: max-content; font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--bone); white-space: nowrap; }
.nxf-reel__group { display: flex; gap: 22px; padding: 9px 11px; }
.nxf-reel__mark { color: var(--nxf-amber); }

/* ==========================================================================
   Collection: tabs, grid, card
   ========================================================================== */
.nxf-collection { background: var(--paper); color: var(--ink); scroll-margin-top: var(--header-h); }
.nxf-collection__head { padding-top: 40px; }
.nxf-collection__more { display: flex; justify-content: center; padding: 28px var(--nxf-gutter) 48px; }
.nxf-shop { background: var(--paper); color: var(--ink); }
.nxf-shop__head { padding-top: 32px; }
.nxf-shop__intro { margin-top: 12px; max-width: 60ch; font-size: 15px; line-height: 1.6; color: var(--nxf-ink-soft); }
.nxf-shop .nxf-bleed { padding-bottom: 64px; }
.nxf-shop .woocommerce-pagination { padding: 32px var(--nxf-gutter) 0; }

.nxf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 2px; padding-top: 20px; }
.nxf-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; color: var(--ink); }
.nxf-card__frame { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--nxf-tile); }
.nxf-card .nxf-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--nxf-ease), opacity .7s ease; }
.nxf-card .nxf-card__img--alt { opacity: 0; }
.nxf-card__cap { display: flex; flex-direction: column; gap: 3px; padding-inline: 16px 12px; }
.nxf-card__name { font-size: 14px; font-weight: 500; line-height: 1.3; }
.nxf-card__name > span { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--nxf-ease); }
[dir="rtl"] .nxf-card__name > span { background-position: 100% 100%; }
.nxf-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 13px; line-height: 1.3; color: var(--ash); }
.nxf-card__price del { opacity: .65; }
.nxf-card__note { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.grid .nxf-card__cap { padding-inline: 0 10px; }
@media (hover: hover) {
	.nxf-card:hover .nxf-card__img { transform: scale(1.04); }
	.nxf-card--has-alt:hover .nxf-card__img--alt { opacity: 1; }
	.nxf-card:hover .nxf-card__name > span { background-size: 100% 1px; }
}
@media (min-width: 860px) {
	.nxf-title { font-size: clamp(1.6rem, 2.8vw, 2.4rem); }
	.nxf-collection__head { padding-top: 88px; }
	.nxf-collection__more { padding-bottom: 88px; }
	.nxf-shop__head { padding-top: 48px; }
	.nxf-shop .nxf-bleed { padding-bottom: 96px; }
	.nxf-tabs { gap: 32px; }
	.nxf-tab { min-height: 48px; font-size: 15px; }
	.nxf-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 44px 2px; padding-top: 28px; }
	.nxf-card { gap: 14px; }
	.nxf-card__cap { gap: 4px; padding-inline: 0 14px; }
	.nxf-card__name { font-size: 16px; }
	.nxf-card__price { font-size: 14px; }
}

/* ==========================================================================
   Home: scenes, fabric, fit, promise
   ========================================================================== */
.nxf-scenes { background: var(--ink); color: var(--bone); scroll-margin-top: var(--header-h); }
.nxf-scenes__head { padding-block: 48px 28px; }
.nxf-scenes__grid { display: grid; gap: 4px; max-width: 1280px; margin-inline: auto; }
.nxf-scene { position: relative; margin: 0; overflow: hidden; background: var(--coal); }
.nxf-scene .nxf-scene__img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.nxf-scene::after { content: ''; position: absolute; inset-inline: 0; bottom: 0; height: 45%; background: linear-gradient(to top, rgb(14 13 12 / 92%), rgb(14 13 12 / 0%)); pointer-events: none; }
.nxf-scene__cap { position: absolute; z-index: 1; inset-inline: 16px; bottom: 22px; font-family: var(--nxf-serif); font-size: 28px; font-style: italic; line-height: 1.08; text-align: center; text-shadow: 0 1px 3px rgb(14 13 12 / 80%); }
@media (min-width: 860px) {
	.nxf-scenes__head { padding-block: 96px 40px; }
	.nxf-scenes__grid { gap: 6px; padding: 0 var(--nxf-gutter) 96px; }
	.nxf-scenes__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nxf-scenes__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nxf-scenes__grid--1 .nxf-scene__img { aspect-ratio: 21 / 9; }
	.nxf-scene__cap { bottom: 24px; font-size: 30px; }
}

.nxf-fabric { background: var(--coal); color: var(--bone); scroll-margin-top: var(--header-h); }
.nxf-fabric__in { display: grid; gap: 24px; padding-block: 56px; }
.nxf-stat { display: flex; flex-direction: column; gap: 10px; }
.nxf-stat__num { display: block; font-family: var(--font-display); font-size: clamp(7rem, 38vw, 9.5rem); font-weight: 900; font-stretch: 125%; line-height: .82; letter-spacing: -.045em; color: var(--bone); }
.nxf-stat.has-fill .nxf-stat__num { background-image: var(--nxf-fill); background-size: cover; background-position: center; -webkit-background-clip: text; background-clip: text; color: transparent; }
.nxf-stat__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--fog); }
.nxf-fabric__body { display: flex; flex-direction: column; gap: 24px; }
.nxf-specs { display: flex; flex-direction: column; margin: 0; border-top: 1px solid var(--nxf-line-dark); }
.nxf-specs__row { display: grid; gap: 4px; padding-block: 14px; border-bottom: 1px solid var(--nxf-line-dark); }
.nxf-specs dt { font-size: 15px; font-weight: 600; line-height: 1.4; }
.nxf-specs dd { margin: 0; font-size: 14px; line-height: 1.5; color: var(--fog); }
@media (min-width: 860px) {
	.nxf-fabric__in { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; gap: 72px; padding-block: 96px; }
	.nxf-stat__num { font-size: min(17vw, 14.5rem); }
	.nxf-stat__label { font-size: 12px; }
	.nxf-specs__row { padding-block: 18px; }
	.nxf-specs dt { font-size: 16px; }
}

.nxf-fit { background: var(--paper); color: var(--ink); scroll-margin-top: var(--header-h); }
.nxf-fit__in { display: grid; gap: 24px; padding-block: 48px; }
.nxf-fit__media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--nxf-tile); }
.nxf-fit .nxf-fit__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nxf-fit__body { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.nxf-fit__lede { max-width: 52ch; font-size: 16px; line-height: 1.5; color: var(--nxf-ink-soft); }
.nxf-notes { display: flex; flex-direction: column; width: 100%; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.nxf-notes li { display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start; padding-block: 14px; border-bottom: 1px solid var(--nxf-line); font-size: 15px; line-height: 1.45; }
.nxf-notes strong { font-weight: 700; }
.nxf-notes__mark { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--bone); font-size: 13px; font-weight: 800; }
@media (min-width: 860px) {
	.nxf-fit__in { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; gap: 72px; padding-block: 88px; }
	.nxf-fit__body { gap: 28px; }
	.nxf-notes li { grid-template-columns: 32px 1fr; gap: 16px; padding-block: 18px; font-size: 16px; }
	.nxf-notes__mark { width: 32px; height: 32px; font-size: 14px; }
}

.nxf-promise { background: var(--ink); color: var(--bone); border-block: 1px solid var(--nxf-line-dark); }
.nxf-promise__in { display: flex; flex-wrap: wrap; gap: 14px 40px; padding-block: 28px; }
.nxf-promise__item { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; font-weight: 600; line-height: 1.4; }
.nxf-promise__item .nx-icon { width: 20px; height: 20px; margin-top: 1px; color: var(--nxf-amber); }
.nxf-promise__item--wide { flex-basis: 100%; font-weight: 400; color: var(--fog); }
@media (min-width: 860px) { .nxf-promise__in { padding-block: 44px; } }

/* ==========================================================================
   Footer: end credits
   ========================================================================== */
.nxf-footer { background: var(--coal); color: var(--bone); }
.nxf-footer__in { display: flex; flex-direction: column; align-items: center; gap: 28px; max-width: 1280px; margin-inline: auto; padding: 64px var(--nxf-gutter) 48px; text-align: center; }
.nxf-footer__line { max-width: 22ch; font-family: var(--nxf-serif); font-size: clamp(2.2rem, 6vw, 5rem); font-style: italic; line-height: 1.02; text-wrap: balance; }
.nxf-credits { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; width: 100%; max-width: 520px; margin: 0; font-size: 13px; line-height: 1.4; }
.nxf-credits dt { padding-top: 3px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; text-align: end; color: var(--fog); }
.nxf-credits dd { margin: 0; text-align: start; }
.nxf-footer__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; font-size: 14px; }
.nxf-footer__nav a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; transition: color .3s ease; }
.nxf-footer__nav a:hover, .nxf-footer__legal a:hover { color: var(--nxf-amber); }
.nxf-footer__mark { font-family: var(--font-display); font-size: clamp(2.75rem, 12vw, 11rem); font-weight: 800; font-stretch: 125%; letter-spacing: -.04em; line-height: .9; text-transform: lowercase; }
.nxf-footer__legal { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 6px 20px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--fog); }
.nxf-footer__native { font-family: 'IBM Plex Sans Arabic', sans-serif; font-size: 14px; letter-spacing: 0; }
@media (min-width: 860px) {
	.nxf-footer__in { gap: 36px; padding-block: 104px 64px; }
	.nxf-credits { font-size: 15px; gap: 10px 18px; }
	.nxf-credits dt, .nxf-footer__legal { font-size: 11px; }
	.nxf-footer__nav { gap: 0 32px; font-size: 15px; }
}

/* ==========================================================================
   Product page, bag and checkout: the parent's templates, in this look
   ========================================================================== */
/* "woocommerce" sits on <body> beside "nxf", so the parent's
   ".woocommerce button.button" has to be matched from body, not below it. */
body.nxf :is(.btn, .nx-btn, .button, .checkout-button, .actions button, .shamcash__form button),
body.nxf #place_order {
	border-radius: 0; font-family: var(--font-body); font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none;
}
.nxf .woocommerce-ordering select, .nxf .nx-select, .nxf .nx-chip-link { border-radius: 0; }
.nxf .woocommerce input.input-text, .nxf .woocommerce select, .nxf .woocommerce textarea, .nxf .woocommerce-checkout input, .nxf .woocommerce-checkout select, .nxf .woocommerce-checkout textarea { border-radius: 0; }

/* Checkout: WooCommerce adds a hidden tracking element as a direct child of
   the form, which takes the first cell of the parent's two-column grid and
   pushes the order summary below the address form. Take it out of the grid
   and pin the summary beside the form. Its hidden fields are still sent. */
body.nxf form.checkout > wc-order-attribution-inputs { display: none; }
body.nxf .quantity, body.nxf .coupon { border-radius: 0; }
@media (min-width: 900px) {
	body.nxf form.checkout > #order_review_heading { grid-row: 1; }
	body.nxf form.checkout > #order_review { grid-row: 2; }
}

.nxf .pdp-title { font-size: clamp(1.6rem, 2.6vw, 2.25rem); letter-spacing: -.02em; }
.nxf .pdp-price { font-size: 1.0625rem; }
.nxf .pdp-pills { gap: 8px; }
.nxf .pdp-pill { min-width: 64px; min-height: 52px; border-color: var(--ash); border-radius: 0; font-family: var(--font-body); font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.nxf .pdp-pill:not(.pdp-pill--color) { flex: 1 1 64px; }
.nxf .pdp-pill.is-on { border-color: var(--ink); }
.nxf .pdp-pill__swatch { border-radius: 0; }
.nxf .pdp-qty { border-color: var(--ash); border-radius: 0; }
.nxf .pdp-cta { min-height: 58px; }
.nxf .pdp-cta.is-added { background: var(--ink); border-color: var(--ink); color: var(--nxf-amber); }
.nxf .pdp-dots { gap: 4px; padding-inline: var(--nxf-gutter); }
.nxf .pdp-dots__dot, .nxf .pdp-dots__dot.is-on { flex: 1 1 0; width: auto; height: 2px; border-radius: 0; }
.nxf .pdp-acc__item summary { font-family: var(--font-body); font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.nxf .pdp-acc__item summary::after { width: auto; height: auto; border: 0; border-radius: 0; font-family: var(--font-mono); }
.nxf .pdp-acc__item[open] summary::after { content: '\2212'; transform: none; background: none; color: inherit; }
.nxf .size-guide-open, .nxf .pdp-choice__value { font-family: var(--font-body); font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.nxf .pdp-thumb { border-radius: 0; }

/* ==========================================================================
   Product page (woocommerce/content-single-product.php)
   ========================================================================== */
.nxf-pdp-page { background: var(--paper); color: var(--ink); }
.nxf-crumbs { display: flex; flex-wrap: wrap; gap: 4px 10px; padding-block: 14px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ash); }
.nxf-crumbs a { color: inherit; }
.nxf-crumbs [aria-current] { color: var(--ink); }

.nxf-pdp { display: flex; flex-direction: column; gap: 22px; padding-bottom: 48px; }
.nxf-pdp__media { min-width: 0; }
.nxf-pdp__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.nxf-pdp__track::-webkit-scrollbar { display: none; }
.nxf-pdp__track .pdp-gallery__frame { flex: 0 0 100%; height: auto; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; scroll-snap-align: start; background: var(--nxf-tile); }
.nxf-pdp__track .pdp-gallery__frame img { display: block; width: 100%; height: 100%; object-fit: cover; filter: none; transform: none; animation: none; }
.nxf-pdp__empty { aspect-ratio: 4 / 5; background: var(--nxf-tile); }
.nxf-pdp .pdp-dots { display: flex; padding-block: 12px 0; background: none; }

.nxf-pdp__info { display: flex; flex-direction: column; gap: 26px; min-width: 0; padding-inline: var(--nxf-gutter); }
.nxf-pdp__head { display: flex; flex-direction: column; gap: 12px; }
.nxf-pdp__eyebrow { margin: 0; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ash); }
.nxf-pdp__title { margin: 0; font-size: clamp(28px, 2.6vw, 36px); font-weight: 800; font-stretch: 125%; line-height: 1; letter-spacing: -.02em; text-transform: uppercase; }
.nxf-pdp__buyline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.nxf-pdp .pdp-price { font-size: 18px; font-weight: 500; line-height: 1.2; }
.nxf-pdp .pdp-stock { margin: 0; letter-spacing: .1em; }
.nxf-pdp__lede { margin: 2px 0 0; font-size: 16px; line-height: 1.5; color: var(--nxf-ink-soft); }

.nxf-pdp .pdp-form { display: flex; flex-direction: column; gap: 26px; margin: 0; }
.nxf-pdp .pdp-choice { margin: 0; }
.nxf-pdp .pdp-choice__head { align-items: center; gap: 6px; min-height: 28px; margin-bottom: 10px; }
.nxf-pdp .pdp-label { font-family: var(--font-body); font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ash); }
.nxf-pdp .pdp-choice__value { font-size: 14px; font-weight: 600; }
.nxf-pdp .size-guide-open { margin-inline-start: auto; text-decoration: underline; text-underline-offset: 4px; }
.nxf-pdp .pdp-choice[data-kind="size"] .pdp-pills { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nxf-pdp .pdp-choice[data-kind="size"] .pdp-pill { min-width: 0; min-height: 54px; padding-inline: 4px; }

.nxf-pdp .pdp-actions { margin: 0; }
.nxf-pdp .pdp-purchase { display: block; }
body.nxf .nxf-pdp__cta, body.nxf .nxf-pdp__cta.disabled, body.nxf .nxf-pdp__cta:disabled {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 60px; padding: 0 22px;
	border: 1px solid var(--ink); background: var(--ink); color: var(--bone); opacity: 1; cursor: pointer;
}
body.nxf .nxf-pdp__cta.is-added { color: var(--nxf-amber); }
body.nxf .nxf-pdp__cta.nxf-pdp__cta--out { border-color: var(--nxf-line); background: transparent; color: var(--ash); cursor: not-allowed; }
.nxf-pdp__cta-price { font-weight: 400; }
.nxf-pdp__cta-pick { display: none; }
.nxf-pdp__cta.wc-variation-selection-needed .pdp-cta__label { display: none; }
.nxf-pdp__cta.wc-variation-selection-needed .nxf-pdp__cta-pick { display: inline; }
.nxf-pdp__assure { margin: 12px 0 0; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; text-align: center; color: var(--ash); }

.nxf-pdp .pdp-acc { margin: 0; border-top: 1px solid var(--ink); }
.nxf-pdp .pdp-acc__item { border-bottom: 1px solid var(--nxf-line); }
.nxf-pdp .pdp-acc__item summary { min-height: 54px; padding-block: 0; }
.nxf-pdp .pdp-acc__body { padding-bottom: 16px; color: var(--nxf-ink-soft); }
.nxf-pdp .pdp-acc__body ul { margin: 0; padding: 0; list-style: none; }
.nxf-pdp .pdp-acc__body li { margin: 0; padding-block: 5px; }

.nxf-pdp__quote { margin: 0; padding: 64px var(--nxf-gutter); background: var(--coal); color: var(--bone); font-family: var(--nxf-serif); font-size: clamp(30px, 3.6vw, 52px); font-style: italic; line-height: 1.05; text-align: center; text-wrap: balance; }

.nxf-pdp__more { padding-block: 48px 64px; }
.nxf-pdp__more-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--nxf-line); }
.nxf-pdp__more-head h2 { margin: 0; font-size: 20px; font-weight: 800; line-height: 1; letter-spacing: -.015em; text-transform: uppercase; }
.nxf-pdp__more-head a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }

.nxf-pdp__bar { position: sticky; bottom: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px var(--nxf-gutter); background: var(--paper); border-top: 1px solid var(--nxf-line); }
.nxf-pdp__bar[hidden] { display: none; }
.nxf-pdp__bar-info { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.nxf-pdp__bar-name { overflow: hidden; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.nxf-pdp__bar-price { font-size: 13px; color: var(--ash); }
.nxf-pdp__bar-btn { flex: none; min-height: 48px; padding: 0 18px; border: 0; background: var(--ink); color: var(--bone); font-family: var(--font-body); font-size: 15px; font-weight: 600; cursor: pointer; }

@media (min-width: 900px) {
	.nxf-crumbs { padding-block: 22px 0; }
	.nxf-pdp { flex-direction: row; align-items: flex-start; gap: 64px; max-width: 1280px; margin-inline: auto; padding: 22px var(--nxf-gutter) 96px; }
	.nxf-pdp__media { flex: 1.7 1 0; }
	.nxf-pdp__track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; overflow: visible; }
	.nxf-pdp__track--one { grid-template-columns: minmax(0, 1fr); }
	.nxf-pdp .pdp-dots { display: none; }
	.nxf-pdp__info { position: sticky; top: calc(var(--header-h) + 20px); flex: 1 1 340px; max-width: 460px; gap: 28px; padding-inline: 0; }
	.nxf-pdp__quote { padding-block: 104px; }
	.nxf-pdp__more { padding-block: 80px 96px; }
	.nxf-pdp__more-head h2 { font-size: 22px; }
	.nxf-pdp__bar { display: none; }
}
@media (hover: hover) and (min-width: 900px) {
	.nxf-pdp__track .pdp-gallery__frame img { transition: transform 1.4s var(--nxf-ease); }
	.nxf-pdp__track .pdp-gallery__frame:hover img { transform: scale(1.04); }
}

/* ==========================================================================
   Motion: slow, and off for people who ask for less
   ========================================================================== */
@keyframes nxf-ken { from { transform: scale(1); } to { transform: scale(1.07); } }
@keyframes nxf-reel { to { transform: translateX(-25%); } }
@keyframes nxf-blink { 50% { opacity: .2; } }
@keyframes nxf-settle { from { scale: 1.1; } to { scale: 1; } }
@media (prefers-reduced-motion: no-preference) {
	.nxf-hero .nxf-hero__img { animation: nxf-ken 20s ease-in-out infinite alternate; transform-origin: 66% 38%; }
	.nxf-reel__track { animation: nxf-reel 60s linear infinite; }
	.nxf-chip__dot { animation: nxf-blink 1.6s steps(1) infinite; }
	@supports (animation-timeline: view()) {
		.nxf-card .nxf-card__img:not(.nxf-card__img--alt), .nxf-scene .nxf-scene__img { animation: nxf-settle linear both; animation-timeline: view(); animation-range: entry 0% cover 40%; }
	}
}
@media (prefers-reduced-motion: reduce) {
	.nxf-card .nxf-card__img, .nxf-card__name > span, .nxf-textlink .nx-icon { transition: none; }
}
