/* NovoStitches studio layer: the seam, the rebuilt hero, rich product and category pages.
   Loaded after refine.css. Idea: a contrast-thread seam runs down every page and sews itself as
   you scroll, ending in a brass rivet. Everything else stays quiet. */

:root {
	--ns-thread: var(--wp--preset--color--leather-cognac);
	--ns-brass: var(--wp--preset--color--antique-brass);
	--ns-ink: var(--wp--preset--color--carbon-black);
	--ns-indigo: var(--wp--preset--color--raw-indigo);
	--ns-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- The seam (all pages, desktop) ---------- */
.ns-seam { display: none; }
@media (min-width: 1200px) {
	.ns-seam { display: block; position: fixed; left: 18px; top: 96px; bottom: 28px; width: 2px; z-index: 40; pointer-events: none; --p: 0; }
	.ns-seam::before, .ns-seam::after { content: ""; position: absolute; left: 0; top: 0; width: 2px; }
	.ns-seam::before { bottom: 0; background: repeating-linear-gradient(to bottom, rgba(155, 94, 50, .22) 0 8px, transparent 8px 14px); }
	.ns-seam::after { height: calc(var(--p) * 100%); background: repeating-linear-gradient(to bottom, var(--ns-thread) 0 8px, transparent 8px 14px); }
	.ns-seam i { position: absolute; left: -5px; top: calc(var(--p) * 100%); width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #e6c98e, var(--ns-brass) 55%, #7d5a22); box-shadow: 0 1px 3px rgba(0, 0, 0, .45); }
}

/* ---------- Reveal system (JS adds data-rv; content is visible without JS) ---------- */
.ns-js [data-rv] { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ns-ease), transform .8s var(--ns-ease); transition-delay: calc(var(--i, 0) * 70ms); }
.ns-js [data-rv].ns-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.ns-js [data-rv] { opacity: 1; transform: none; transition: none; }
	.ns-hero2 *, .ns-hero2 { animation: none !important; }
}

/* ---------- Stitched signature on section headings ---------- */
.ns-band h2::after, .ns-term-copy h2::after, .ns-seo-links h2::after {
	content: ""; display: block; width: 64px; height: 2px; margin-top: 14px;
	background: repeating-linear-gradient(90deg, var(--ns-thread) 0 8px, transparent 8px 13px);
}
.ns-band--tint h2::after { opacity: .9; }

/* ---------- Home hero ---------- */
.ns-hero-full.ns-hero2 { min-height: min(100svh, 940px); display: block; background: #0f1a2d; isolation: isolate; }
body.home .ns-hero-full.ns-hero2 + * { padding-top: 18px !important; }
.ns-hero2__bg { position: absolute; inset: 0; z-index: -1; background:
	radial-gradient(900px 520px at 78% 18%, rgba(36, 59, 100, .75), transparent 70%),
	radial-gradient(700px 480px at 6% 92%, rgba(155, 94, 50, .22), transparent 70%),
	linear-gradient(160deg, #17253F 0%, #0f1a2d 60%, #0b1322 100%); }
.ns-hero2__bg::before { content: ""; position: absolute; inset: -20%; background: repeating-linear-gradient(118deg, rgba(255, 255, 255, .045) 0 2px, transparent 2px 7px); transform: rotate(0.001deg); animation: ns-twill 40s linear infinite; }
.ns-hero2__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .35), transparent 22%, transparent 70%, rgba(0, 0, 0, .35)); }
@keyframes ns-twill { to { transform: translate3d(70px, 0, 0); } }

.ns-hero2__grid { position: relative; max-width: 1440px; margin: 0 auto; padding: clamp(120px, 14vh, 160px) clamp(22px, 5vw, 96px) clamp(150px, 18vh, 190px); display: grid; gap: clamp(28px, 4vw, 72px); align-items: center; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); min-height: min(100svh, 940px); box-sizing: border-box; }
.ns-hero2__copy h1 { color: #fff; margin: 0 0 22px; font-weight: 400; font-stretch: 125%; font-size: clamp(2.1rem, 1rem + 2.7vw, 3.75rem); line-height: 1.1; letter-spacing: -.01em; max-width: 16em; text-wrap: balance; }
.ns-hero2__lead { color: rgba(238, 231, 218, .92); font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); line-height: 1.6; max-width: 36em; margin: 0 0 32px; }
.ns-hero2__actions { display: flex; gap: 14px; flex-wrap: wrap; }

.ns-hero2__stack { position: relative; height: clamp(420px, 56vw, 640px); }
.ns-hero2__card { position: absolute; margin: 0; background: var(--wp--preset--color--bone-white); padding: 7px 7px 0; border-radius: 3px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .65), 0 8px 18px rgba(0, 0, 0, .35); transition: transform .6s var(--ns-ease), box-shadow .6s var(--ns-ease); will-change: transform; }
.ns-hero2__card a { display: block; color: inherit; text-decoration: none; }
.ns-hero2__card img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 1px; }
.ns-hero2__card figcaption { padding: 9px 4px 10px; font-size: .8125rem; font-weight: 600; color: var(--ns-ink); display: flex; justify-content: space-between; gap: 8px; }
.ns-hero2__card figcaption span:last-child { color: var(--ns-thread); }
.ns-hero2__card--a { width: 52%; left: 0; top: 6%; transform: rotate(-3.2deg); z-index: 2; }
.ns-hero2__card--b { width: 46%; right: 0; top: 0; transform: rotate(2.6deg); z-index: 1; }
.ns-hero2__card--c { width: 44%; left: 24%; bottom: 0; transform: rotate(-1.4deg); z-index: 3; }
.ns-hero2__card:hover { transform: rotate(0) translateY(-8px) scale(1.02); z-index: 5; box-shadow: 0 40px 70px -20px rgba(0, 0, 0, .75); }
.ns-hero2__card::before { content: ""; position: absolute; top: -9px; left: 50%; width: 15px; height: 15px; margin-left: -7px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #e6c98e, var(--ns-brass) 55%, #7d5a22); box-shadow: 0 2px 4px rgba(0, 0, 0, .5); z-index: 2; }

.ns-hero2__facts { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); max-width: 1440px; margin-inline: auto; padding-inline: clamp(22px, 5vw, 96px); }
.ns-hero2__facts li { padding: 22px 22px 26px 0; border-top: 2px dashed rgba(213, 181, 139, .55); }
.ns-hero2__facts strong { display: block; font-family: var(--wp--preset--font-family--heading); font-stretch: 125%; font-weight: 400; font-size: clamp(1.4rem, 1rem + 1.4vw, 2.4rem); color: #fff; line-height: 1.1; }
.ns-hero2__facts span { display: block; margin-top: 6px; font-size: .875rem; color: rgba(238, 231, 218, .78); max-width: 20ch; }

/* load sequence: one orchestrated moment */
.ns-hero2__copy h1, .ns-hero2__lead, .ns-hero2__actions, .ns-hero2__facts li { animation: ns-rise .9s var(--ns-ease) both; }
.ns-hero2__copy h1 { animation-delay: .05s; }
.ns-hero2__lead { animation-delay: .2s; }
.ns-hero2__actions { animation-delay: .32s; }
.ns-hero2__facts li:nth-child(1) { animation-delay: .5s; } .ns-hero2__facts li:nth-child(2) { animation-delay: .6s; }
.ns-hero2__facts li:nth-child(3) { animation-delay: .7s; } .ns-hero2__facts li:nth-child(4) { animation-delay: .8s; }
.ns-hero2__card--a { animation: ns-drop-a 1s var(--ns-ease) .25s both; }
.ns-hero2__card--b { animation: ns-drop-b 1s var(--ns-ease) .4s both; }
.ns-hero2__card--c { animation: ns-drop-c 1s var(--ns-ease) .55s both; }
@keyframes ns-rise { from { transform: translateY(28px); } to { transform: none; } }
@keyframes ns-drop-a { from { transform: translateY(-40px) rotate(-9deg); } to { transform: rotate(-3.2deg); } }
@keyframes ns-drop-b { from { transform: translateY(-40px) rotate(8deg); } to { transform: rotate(2.6deg); } }
@keyframes ns-drop-c { from { transform: translateY(40px) rotate(-6deg); } to { transform: rotate(-1.4deg); } }

@media (max-width: 1000px) {
	.ns-hero2__grid { grid-template-columns: 1fr; padding-bottom: 40px; min-height: 0; }
	.ns-hero2__stack { height: clamp(360px, 90vw, 520px); max-width: 560px; }
	.ns-hero2__facts { position: relative; grid-template-columns: repeat(2, 1fr); padding-bottom: 28px; }
	.ns-hero-full.ns-hero2 { min-height: 0; }
}
@media (max-width: 560px) { .ns-hero2__card--c { display: none; } .ns-hero2__card--a { width: 56%; } .ns-hero2__card--b { width: 50%; top: 8%; } }

/* ---------- Home: marquee of what we make (text only, real catalogue) ---------- */
.ns-marquee { overflow: hidden; border-block: 1px solid rgba(17, 19, 18, .12); background: var(--wp--preset--color--warm-canvas); padding: 18px 0; }
.ns-marquee__track { display: flex; gap: 0; width: max-content; animation: ns-marquee 60s linear infinite; }
.ns-marquee:hover .ns-marquee__track { animation-play-state: paused; }
.ns-marquee a { display: inline-flex; align-items: center; gap: 28px; padding-right: 28px; font-family: var(--wp--preset--font-family--heading); font-stretch: 125%; font-size: clamp(1.1rem, 1rem + .6vw, 1.6rem); color: var(--ns-ink); text-decoration: none; white-space: nowrap; }
.ns-marquee a::after { content: ""; width: 9px; height: 9px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #e6c98e, var(--ns-brass) 55%, #7d5a22); }
.ns-marquee a:hover { color: var(--ns-thread); }
@keyframes ns-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ns-marquee__track { animation: none; flex-wrap: wrap; width: auto; } }

/* ---------- Product cards: depth and lift ---------- */
.ns-product-card { border-radius: 4px; transition: transform .45s var(--ns-ease), box-shadow .45s var(--ns-ease); }
.ns-product-card:hover { transform: translateY(-6px); box-shadow: 0 24px 40px -22px rgba(17, 19, 18, .45); }
.ns-product-card__image { position: relative; }
.ns-product-card__moq { display: inline-block; padding: 3px 9px; border-radius: 99px; background: rgba(155, 94, 50, .1); }

/* ---------- Product page ---------- */
.single-ns_product .ns-split { display: block; }
.single-ns_product .ns-split__media { display: none; }
.single-ns_product .ns-band { padding-block: clamp(48px, 6vw, 96px); }
.single-ns_product .ns-band h2 { font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.5rem); max-width: 22ch; }
.single-ns_product .ns-band p, .single-ns_product .ns-band li { max-width: 68ch; }
.ns-bullets { list-style: none; padding-left: 0; }
.ns-bullets li { position: relative; padding-left: 28px; margin-bottom: 10px; }
.ns-bullets li::before { content: ""; position: absolute; left: 0; top: .5em; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--ns-brass); background: radial-gradient(circle, var(--ns-brass) 0 30%, transparent 32%); }
.ns-rule-list { list-style: none; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); max-width: none !important; }
.ns-rule-list li { padding: 20px 22px; background: #fff; border: 1px solid rgba(17, 19, 18, .1); border-left: 3px dashed var(--ns-thread); border-radius: 3px; transition: transform .4s var(--ns-ease), box-shadow .4s var(--ns-ease); }
.ns-rule-list li:hover { transform: translateY(-4px); box-shadow: 0 18px 30px -20px rgba(17, 19, 18, .4); }
.ns-definition-grid > * { padding: 22px 24px; background: #fff; border: 1px solid rgba(17, 19, 18, .1); border-radius: 3px; }
.ns-faq details { max-width: 860px; border-top: 2px dashed rgba(155, 94, 50, .35); padding: 0; }
.ns-faq details:last-child { border-bottom: 2px dashed rgba(155, 94, 50, .35); }
.ns-faq summary { cursor: pointer; list-style: none; padding: 20px 44px 20px 0; font-weight: 600; position: relative; font-size: 1.0625rem; }
.ns-faq summary::-webkit-details-marker { display: none; }
.ns-faq summary::after { content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 1.6rem; line-height: 1; color: var(--ns-thread); transition: transform .35s var(--ns-ease); }
.ns-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.ns-faq details p { margin: 0 0 22px; max-width: 68ch; animation: ns-rise .5s var(--ns-ease) both; }

.ns-assurance { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 0; border: 1px solid rgba(17, 19, 18, .12); border-radius: 4px; overflow: hidden; background: #fff; }
.ns-assurance li { display: flex; gap: 14px; align-items: flex-start; padding: 15px 18px; }
.ns-assurance li + li { border-top: 2px dashed rgba(155, 94, 50, .3); }
.ns-assurance svg { flex: none; width: 26px; height: 26px; color: var(--ns-thread); margin-top: 2px; }
.ns-assurance strong { display: block; font-size: .975rem; }
.ns-assurance span { font-size: .875rem; color: var(--wp--preset--color--industrial-grey); }

.ns-quotebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 54; transform: translateY(110%); transition: transform .5s var(--ns-ease); background: var(--ns-ink); color: var(--wp--preset--color--bone-white); border-top: 2px dashed rgba(213, 181, 139, .6); }
.ns-quotebar.is-on { transform: none; }
.ns-quotebar__in { max-width: 1440px; margin: 0 auto; padding: 12px clamp(18px, 4vw, 72px); display: flex; align-items: center; gap: 18px; justify-content: space-between; }
.ns-quotebar__name { font-weight: 600; font-size: 1rem; }
.ns-quotebar__name small { display: block; font-weight: 400; font-size: .8125rem; color: rgba(248, 245, 239, .7); }
.ns-quotebar a { white-space: nowrap; }
@media (max-width: 620px) { .ns-quotebar__name small { display: none; } .ns-quotebar { padding-right: 76px; } }

/* ---------- Category hero with real product cards ---------- */
.ns-category-hero--cards .ns-category-hero__inner { display: grid; gap: clamp(24px, 4vw, 64px); grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); align-items: center; max-width: 1440px; }
.ns-category-hero__cards { position: relative; height: 290px; width: 100%; max-width: 560px; justify-self: end; }
.ns-category-hero__cards figure { position: absolute; margin: 0; width: 31%; padding: 5px 5px 0; background: var(--wp--preset--color--bone-white); border-radius: 3px; box-shadow: 0 26px 50px -20px rgba(0, 0, 0, .7); transition: transform .5s var(--ns-ease); }
.ns-category-hero__cards figure:nth-child(1) { left: 0; top: 26px; transform: rotate(-4deg); z-index: 1; }
.ns-category-hero__cards figure:nth-child(2) { left: 34%; top: 0; transform: rotate(2deg); z-index: 3; }
.ns-category-hero__cards figure:nth-child(3) { left: 68%; top: 30px; transform: rotate(5deg); z-index: 2; }
.ns-category-hero__cards figure:hover { transform: rotate(0) translateY(-6px) scale(1.04); z-index: 5; }
.ns-category-hero__cards img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.ns-category-hero__cards a { display: block; text-decoration: none; color: var(--ns-ink); }
.ns-category-hero__cards figcaption { padding: 5px 3px 6px; font-size: .6875rem; font-weight: 600; line-height: 1.2; }
@media (max-width: 900px) { .ns-category-hero--cards .ns-category-hero__inner { grid-template-columns: 1fr; } .ns-category-hero__cards { max-width: 420px; } }

/* ---------- Hub copy and inner pages: more air, stronger type ---------- */
.ns-term-copy { background: linear-gradient(to bottom, var(--wp--preset--color--bone-white), #fff); }
.ns-term-copy h2 { font-stretch: 112%; }
.ns-band .ns-lead { font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); line-height: 1.55; }
.ns-section-md, .ns-section-lg { position: relative; }

/* ---------- The 50-Piece Launch (offer stack) ---------- */
.ns-offer { background: var(--ns-indigo); color: var(--wp--preset--color--bone-white); position: relative; overflow: hidden; }
.ns-offer::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(118deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 7px); pointer-events: none; }
.ns-offer__inner { position: relative; max-width: 1440px; margin: 0 auto; padding: clamp(64px, 9vw, 128px) clamp(22px, 5vw, 96px); }
.ns-offer__head { max-width: 920px; margin-bottom: clamp(32px, 5vw, 64px); }
.ns-offer__head h2 { color: #fff; font-stretch: 118%; font-weight: 400; font-size: clamp(1.9rem, 1.1rem + 2.8vw, 3.6rem); line-height: 1.1; margin: 0 0 20px; text-wrap: balance; }
.ns-offer__head p { font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem); line-height: 1.6; color: rgba(238, 231, 218, .85); margin: 0; max-width: 60ch; }
.ns-offer__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.ns-offer__grid li { padding: 28px 28px 30px; border: 2px dashed rgba(213, 181, 139, .4); border-radius: 4px; background: rgba(255, 255, 255, .035); transition: transform .5s var(--ns-ease), background .5s var(--ns-ease), border-color .5s var(--ns-ease); }
.ns-offer__grid li:hover { transform: translateY(-6px); background: rgba(255, 255, 255, .07); border-color: var(--wp--preset--color--natural-hide); }
.ns-offer__grid svg { color: var(--wp--preset--color--natural-hide); margin-bottom: 18px; }
.ns-offer__grid h3 { color: #fff; font-size: 1.3rem; margin: 0 0 10px; font-weight: 600; }
.ns-offer__grid p { margin: 0; color: rgba(238, 231, 218, .82); line-height: 1.6; }
.ns-offer__cta { margin-top: clamp(32px, 5vw, 56px); display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: center; }
.ns-offer__cta p { margin: 0; max-width: 56ch; color: rgba(238, 231, 218, .8); font-size: .9375rem; }
.ns-offer__cta a:not(.ns-btn) { color: var(--wp--preset--color--natural-hide); }

/* quote bar and the WhatsApp launcher must not collide */
body.ns-has-quotebar .ns-concierge { bottom: 92px; }
@media (max-width: 620px) { body.ns-has-quotebar .ns-concierge { bottom: 84px; } }

/* header burger follows the header colour (white over the dark hero, dark once scrolled) */
.ns-mega-nav__burger { color: inherit; }
@media (max-width: 1000px) { .ns-hero2__stack { margin-top: 36px; } .ns-hero2__actions .ns-btn { width: 100%; justify-content: center; } }

/* original full-bleed hero: keep the headline within one screen at any width */
.ns-hero-full:not(.ns-hero2) { min-height: min(100svh, 900px); }
.ns-hero-full:not(.ns-hero2) h1 { font-size: clamp(2.2rem, 1rem + 3.6vw, 4.6rem); max-width: 16em; line-height: 1.1; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__inner { padding-top: clamp(110px, 14vh, 150px); padding-bottom: clamp(60px, 9vh, 110px); }

/* =====================================================================
   PREMIUM LAYER: quiet luxury. Restraint over decoration: a light serif for headlines,
   ivory and espresso, hairlines instead of boxes, one editorial image per page head.
   ===================================================================== */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("../fonts/cormorant-garamond-latin.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 300; font-display: swap; src: url("../fonts/cormorant-garamond-italic-latin.woff2") format("woff2"); }
:root {
	--ns-serif: "Cormorant Garamond", "Times New Roman", serif;
	--ns-espresso: #2b2520;
	--ns-ivory: #f6f2ea;
	--ns-oat: #ece5d8;
	--ns-taupe: #5b5148;
	--ns-hair: rgba(43, 37, 32, .16);
}
body { color: var(--ns-espresso); }

/* no stitched decoration, no seam: the product is the decoration */
.ns-seam { display: none !important; }
.ns-band h2::after, .ns-term-copy h2::after, .ns-seo-links h2::after { content: none; }

/* headlines */
.ns-center-heading, .ns-band h2, .ns-term-copy h2, .ns-offer__head h2, .ns-seo-links h2, .single-ns_product h1, .ns-category-hero h1, .ns-final-cta h2, .ns-section-md > h2, .ns-section-lg > h2 {
	font-family: var(--ns-serif); font-weight: 300; font-stretch: normal; letter-spacing: -.005em; text-transform: none;
}
.ns-center-heading, .ns-offer__head h2 { font-size: clamp(2.3rem, 1.3rem + 3.2vw, 4.2rem); line-height: 1.05; }
.ns-band h2, .ns-term-copy h2 { font-size: clamp(1.9rem, 1.2rem + 1.8vw, 3rem); line-height: 1.1; }
.ns-term-copy { background: var(--ns-ivory); border-top: 1px solid var(--ns-hair); }

/* buttons: thin, rectangular, tracked */
.ns-btn, .wp-block-button__link, .ns-header-cta-box {
	border-radius: 0; text-transform: uppercase; letter-spacing: .16em; font-size: .75rem; font-weight: 500; box-shadow: none;
}
.ns-btn--light { background: #fff; color: var(--ns-espresso); }
.ns-btn--ghost { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .7); }
.ns-btn--dark { background: var(--ns-espresso); color: var(--ns-ivory); border: 1px solid var(--ns-espresso); }
.ns-btn--dark:hover { background: transparent; color: var(--ns-espresso); }
.ns-btn--line { background: transparent; color: var(--ns-espresso); border: 1px solid var(--ns-espresso); }

/* header: quiet, tracked navigation */
.ns-mega-nav__trigger, .ns-site-header .ns-mega-nav > li > a { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500; }

/* ---------- Home hero: one full-bleed editorial image, one quiet line ---------- */
.ns-hero-full:not(.ns-hero2) { display: grid; align-items: end; min-height: min(100svh, 940px); }
body.home .ns-hero-full:not(.ns-hero2) + * { padding-top: 0 !important; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__bg { background-position: center 40%; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__bg::after { background: linear-gradient(to top, rgba(22, 17, 12, .72) 0%, rgba(22, 17, 12, .28) 45%, rgba(22, 17, 12, .22) 100%); }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__inner { width: 100%; max-width: 1560px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 120px) clamp(54px, 9vh, 110px); text-align: left; box-sizing: border-box; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__inner > * { max-width: none; }
.ns-hero-full:not(.ns-hero2) h1 { font-family: var(--ns-serif); font-weight: 300; font-stretch: normal; font-size: clamp(2.6rem, 1.2rem + 4.4vw, 5.6rem); line-height: 1.03; letter-spacing: -.012em; max-width: 14em; margin: 0 0 22px; color: #fff; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__lead { font-size: clamp(1.02rem, 1rem + .25vw, 1.2rem); line-height: 1.6; max-width: 34em; margin: 0 0 34px; color: rgba(255, 255, 255, .9); }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__actions { gap: 22px; justify-content: flex-start; align-items: center; }
.ns-hero-full:not(.ns-hero2) .ns-btn { padding: 17px 38px; min-height: 0; }
.ns-hero-full:not(.ns-hero2) .ns-btn::after { display: none; }
.ns-hero-full:not(.ns-hero2) .ns-btn--ghost { border-color: transparent; border-bottom: 1px solid rgba(255, 255, 255, .8); padding-inline: 2px; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__moq { margin: 0 0 26px; padding: 0; border: 0; background: none; display: block; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .85); }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__moq a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .5); padding-bottom: 3px; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__moq strong { color: inherit; font-size: inherit; }

/* ---------- The 50-Piece Launch, light and airy ---------- */
.ns-offer { background: var(--ns-ivory); color: var(--ns-espresso); }
.ns-offer::before { display: none; }
.ns-offer__inner { padding-block: clamp(80px, 11vw, 160px); }
.ns-offer__head h2 { color: var(--ns-espresso); font-size: clamp(2.2rem, 1.2rem + 3.2vw, 4.4rem); max-width: 15em; }
.ns-offer__head p { color: var(--ns-taupe); font-size: 1.125rem; }
.ns-offer__grid { gap: 0 clamp(32px, 4vw, 72px); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.ns-offer__grid li { border: 0; border-top: 1px solid var(--ns-hair); border-radius: 0; background: none; padding: 30px 0 38px; transition: none; }
.ns-offer__grid li:hover { transform: none; background: none; border-color: var(--ns-hair); }
.ns-offer__grid svg { color: var(--wp--preset--color--leather-cognac); width: 26px; height: 26px; margin-bottom: 20px; stroke-width: 1.2; }
.ns-offer__grid h3 { color: var(--ns-espresso); font-family: var(--ns-serif); font-weight: 400; font-size: 1.75rem; letter-spacing: 0; margin-bottom: 10px; }
.ns-offer__grid p { color: var(--ns-taupe); font-size: 1.0125rem; }
.ns-offer__cta .ns-btn--light { background: var(--ns-espresso); color: var(--ns-ivory); }
.ns-offer__cta p, .ns-offer__cta a:not(.ns-btn) { color: var(--ns-taupe); }

/* ---------- Product cards and grids: image first, almost no chrome ---------- */
.ns-product-grid { gap: clamp(34px, 4vw, 56px) clamp(18px, 2vw, 28px); }
.ns-product-card { border: 0; background: transparent; box-shadow: none; border-radius: 0; }
.ns-product-card:hover { transform: none; box-shadow: none; }
.ns-product-card__image { border-radius: 0; }
.ns-product-card__body { border-top: 0; padding: 16px 0 0; }
.ns-product-card__name { font-family: var(--ns-serif); font-weight: 400; font-size: 1.4rem; letter-spacing: 0; margin: 0 0 4px; }
.ns-product-card__attrs { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.ns-product-card__moq { background: none; padding: 0; margin-top: 6px; font-weight: 400; color: var(--wp--preset--color--leather-cognac); letter-spacing: .02em; }
.ns-product-card__quote-btn { border: 0; border-bottom: 1px solid var(--ns-espresso); border-radius: 0; background: none; padding: 4px 0; font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ns-espresso); }

/* ---------- Category pages: a calm head, then the products ---------- */
.ns-category-hero { min-height: clamp(300px, 38vh, 420px); display: flex; align-items: flex-end; }
.ns-category-hero__inner { text-align: left; padding-bottom: clamp(36px, 6vh, 64px); width: 100%; }
.ns-category-hero h1 { font-size: clamp(2.2rem, 1rem + 3.4vw, 4.2rem); line-height: 1.05; max-width: 16em; }
.ns-category-hero__desc { max-width: 46ch; font-size: 1.0625rem; line-height: 1.6; }
.ns-category-nav, .ns-filter-panel { font-size: .875rem; }

/* ---------- Product page: editorial rhythm ---------- */
.single-ns_product h1 { font-size: clamp(2.1rem, 1.2rem + 2vw, 3.3rem); line-height: 1.08; }
.single-ns_product .ns-band { padding-block: clamp(60px, 8vw, 120px); border-top: 1px solid var(--ns-hair); background: transparent; }
.single-ns_product .ns-band--tint { background: var(--ns-oat); }
.single-ns_product .ns-band h2 { font-size: clamp(1.9rem, 1.2rem + 1.8vw, 2.9rem); max-width: 20ch; }
.ns-rule-list { gap: 0 clamp(28px, 3vw, 56px); }
.ns-rule-list li { background: none; border: 0; border-top: 1px solid var(--ns-hair); border-radius: 0; padding: 20px 0 26px; transition: none; }
.ns-rule-list li:hover { transform: none; box-shadow: none; }
.ns-definition-grid > * { background: none; border: 0; border-top: 1px solid var(--ns-hair); border-radius: 0; padding: 20px 0 26px; }
.ns-bullets li::before { border-color: var(--wp--preset--color--leather-cognac); background: radial-gradient(circle, var(--wp--preset--color--leather-cognac) 0 30%, transparent 32%); }
.ns-faq details { border-top: 1px solid var(--ns-hair); border-bottom: 0; }
.ns-faq details:last-child { border-bottom: 1px solid var(--ns-hair); }
.ns-faq summary { font-family: var(--ns-serif); font-weight: 400; font-size: 1.35rem; }
.ns-faq summary::after { color: var(--ns-espresso); }
.ns-assurance { border: 0; border-top: 1px solid var(--ns-hair); border-radius: 0; background: none; margin-top: 28px; }
.ns-assurance li { padding: 16px 0; }
.ns-assurance li + li { border-top: 1px solid var(--ns-hair); }
.ns-assurance svg { color: var(--wp--preset--color--leather-cognac); stroke-width: 1.2; }
.ns-seo-links { background: var(--ns-oat); }
.ns-seo-links h2 { font-size: 1.7rem; }
.ns-quotebar { background: var(--ns-espresso); border-top: 0; }
.ns-quotebar .ns-btn--light { background: var(--ns-ivory); }

/* motion: slow and quiet */
.ns-js [data-rv] { transform: translateY(14px); transition-duration: 1.1s; }

/* ---------- Hero legibility: the photo supports the text, never competes with it ---------- */
.ns-hero-full:not(.ns-hero2) .ns-hero-full__bg { transform: translateX(6%) scale(1.14); transform-origin: 70% 50%; filter: brightness(.74) saturate(.88) contrast(1.04); background-position: 62% 40%; }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__bg::after {
	background:
		linear-gradient(90deg, rgba(19, 14, 10, .9) 0%, rgba(19, 14, 10, .78) 30%, rgba(19, 14, 10, .38) 58%, rgba(19, 14, 10, .12) 100%),
		linear-gradient(to top, rgba(19, 14, 10, .55), transparent 40%);
}
.ns-hero-full:not(.ns-hero2) h1 { font-weight: 400; max-width: 11.5em; font-size: clamp(2.5rem, 1.2rem + 3.7vw, 5rem); line-height: 1.06; text-shadow: 0 2px 36px rgba(0, 0, 0, .35); }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__lead { color: #fff; max-width: 29em; font-weight: 400; text-shadow: 0 1px 18px rgba(0, 0, 0, .4); }
.ns-hero-full:not(.ns-hero2) .ns-hero-full__moq { color: rgba(255, 255, 255, .92); }

.ns-hero-full:not(.ns-hero2) .ns-hero-full__inner { max-width: none; padding-inline: clamp(22px, 4vw, 77px); }

/* ---------- Model hero: cinematic frame. Photo sits below the header, fades into the limestone wall ---------- */
.ns-hero-full.ns-hero-model { --hero-top: 116px; display: flex; flex-direction: column; justify-content: center; align-items: stretch; min-height: min(100svh, 940px); background: radial-gradient(120% 95% at 72% 40%, #efe7da 0%, #e6dccd 55%, #dccfbc 100%); color: var(--ns-espresso); overflow: hidden; }
.ns-hero-full.ns-hero-model .ns-hero-full__bg { position: absolute; top: var(--hero-top); right: 0; bottom: 0; left: auto; height: auto; aspect-ratio: 3 / 2; max-width: none; filter: none; background-size: cover; background-position: right center; transform-origin: 72% 38%; cursor: pointer;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%), linear-gradient(180deg, transparent 0, #000 9%), linear-gradient(0deg, transparent 0, #000 6%); -webkit-mask-composite: source-in, source-in;
	mask-image: linear-gradient(90deg, transparent 0, #000 30%), linear-gradient(180deg, transparent 0, #000 9%), linear-gradient(0deg, transparent 0, #000 6%); mask-composite: intersect; }
.ns-hero-full.ns-hero-model .ns-hero-full__bg::after { display: none; }
.ns-hero-full.ns-hero-model::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(130% 110% at 62% 45%, transparent 55%, rgba(43, 37, 32, .16) 100%); }
.ns-hero-full.ns-hero-model .ns-hero-full__inner { position: relative; z-index: 2; max-width: 1560px; margin: 0 auto; padding: calc(var(--hero-top) + clamp(28px, 6vh, 72px)) clamp(24px, 6vw, 120px) clamp(20px, 3vh, 36px); box-sizing: border-box; width: 100%; }
.ns-hero-full.ns-hero-model .ns-hero-full__inner > * { max-width: min(36rem, 52%); animation: ns-hero-rise 1.1s cubic-bezier(.2, .6, .2, 1) both; }
.ns-hero-full.ns-hero-model .ns-hero-full__inner > :nth-child(1) { animation-delay: .15s; }
.ns-hero-full.ns-hero-model .ns-hero-full__inner > :nth-child(2) { animation-delay: .35s; }
.ns-hero-full.ns-hero-model .ns-hero-full__inner > :nth-child(3) { animation-delay: .5s; }
.ns-hero-full.ns-hero-model .ns-hero-full__inner > :nth-child(4) { animation-delay: .65s; }
.ns-hero-full.ns-hero-model h1 { color: var(--ns-espresso); text-shadow: none; font-size: clamp(2.4rem, min(1.1rem + 3.5vw, 8.4vh), 4.6rem); max-width: 11em; }
.ns-hero-full.ns-hero-model .ns-hero-full__lead { color: var(--ns-taupe); text-shadow: none; }
.ns-hero-full.ns-hero-model .ns-hero-full__moq, .ns-hero-full.ns-hero-model .ns-hero-full__moq a { color: var(--ns-espresso); }
.ns-hero-full.ns-hero-model .ns-hero-full__moq a { border-bottom-color: rgba(43, 37, 32, .45); }
.ns-hero-full.ns-hero-model .ns-btn--light { background: var(--ns-espresso); color: var(--ns-ivory); border: 1px solid var(--ns-espresso); }
.ns-hero-full.ns-hero-model .ns-btn--ghost { color: var(--ns-espresso); border-bottom-color: var(--ns-espresso); }
@keyframes ns-hero-push { from { transform: scale(1.07); } to { transform: scale(1); } }
@keyframes ns-hero-rise { from { transform: translateY(22px); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .ns-hero-full.ns-hero-model .ns-hero-slide.is-active img, .ns-hero-full.ns-hero-model .ns-hero-full__inner > * { animation: none; } }
@media (max-width: 860px) {
	.ns-hero-full.ns-hero-model { --hero-top: 92px; display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding-top: var(--hero-top); }
	.ns-hero-full.ns-hero-model::after { display: none; }
	.ns-hero-full.ns-hero-model .ns-hero-full__bg { position: relative; inset: auto; top: auto; width: 100%; flex: none; height: 118vw; max-height: 760px; aspect-ratio: auto; background-position: 90% 0; transform-origin: 80% 20%;
		-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 7%, #000 62%, transparent 100%); -webkit-mask-composite: source-over; mask-image: linear-gradient(180deg, transparent 0, #000 7%, #000 62%, transparent 100%); mask-composite: add; }
	.ns-hero-full.ns-hero-model .ns-hero-full__inner { padding: 0 24px 44px; margin-top: -12vw; }
	.ns-hero-full.ns-hero-model .ns-hero-full__inner > * { max-width: none; }
	.ns-hero-full.ns-hero-model h1 { font-size: clamp(2.3rem, 9.5vw, 3.2rem); }
}

/* ---------- Offer section: copy left, model right, no dead space ---------- */
@media (min-width: 1000px) {
	.ns-offer__inner { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); gap: clamp(40px, 6vw, 110px); align-items: stretch; max-width: 1560px; padding-inline: clamp(24px, 6vw, 120px); }
	.ns-offer__head h2 { max-width: 11em; }
	.ns-offer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ns-offer__figure { margin: 0; position: relative; min-height: 100%; }
	.ns-offer__figure img { position: sticky; top: 110px; width: 100%; height: min(88vh, 760px); object-fit: cover; object-position: 50% 18%; display: block; }
}
@media (max-width: 999px) {
	.ns-offer__figure { margin: 48px 0 0; }
	.ns-offer__figure img { width: 100%; height: auto; aspect-ratio: 4 / 5; max-height: 640px; object-fit: cover; object-position: 50% 18%; display: block; }
}

/* Home header sits on a light hero now: dark ink instead of white until scrolled */
body.home .ns-site-header:not(.is-scrolled):not(.ns-menu-open) { color: var(--ns-espresso); }
body.home .ns-site-header:not(.is-scrolled):not(.ns-menu-open) a,
body.home .ns-site-header:not(.is-scrolled):not(.ns-menu-open) .ns-mega-nav__trigger,
body.home .ns-site-header:not(.is-scrolled):not(.ns-menu-open) .ns-header-icon { color: var(--ns-espresso); }
body.home .ns-site-header:not(.is-scrolled):not(.ns-menu-open) .ns-site-logo img { filter: none; }
body.home .ns-site-header:not(.is-scrolled):not(.ns-menu-open) a.ns-header-cta-box { background: var(--ns-espresso); color: var(--ns-ivory); }

/* ---------- Bands: heading left, content right, so wide screens never show a dead right half ---------- */
@media (min-width: 1000px) {
	.ns-band > .ns-wrap:has(> h2:first-child) { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); column-gap: clamp(40px, 6vw, 110px); row-gap: 0; align-items: start; }
	.ns-band > .ns-wrap:has(> h2:first-child) > h2:first-child { grid-column: 1; grid-row: 1 / span 40; position: sticky; top: 120px; margin: 0; max-width: 12em; }
	.ns-band > .ns-wrap:has(> h2:first-child) > :not(h2:first-child) { grid-column: 2; max-width: none; }
	.ns-band > .ns-wrap:has(> h2:first-child) > p { max-width: 62ch; }
}

/* Product first section and FAQ: same left-heading/right-content rhythm, no dead right half */
@media (min-width: 1000px) {
	.single-ns_product .ns-split__copy { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); column-gap: clamp(40px, 6vw, 110px); align-items: start; }
	.single-ns_product .ns-split__copy > h2 { grid-column: 1; grid-row: 1 / span 20; position: sticky; top: 120px; margin: 0; max-width: 12em; }
	.single-ns_product .ns-split__copy > :not(h2) { grid-column: 2; max-width: 62ch; }
	.ns-faq { max-width: none; columns: 2; column-gap: clamp(40px, 6vw, 110px); }
	.ns-faq details { break-inside: avoid; }
}

/* ---------- Editorial category banners (model / leather goods photography) ---------- */
.ns-category-hero.ns-category-hero--banner { min-height: clamp(360px, 46vh, 560px); background-size: cover; background-position: right center; background-color: #e7dfd2; position: relative; color: var(--ns-espresso); }
.ns-category-hero--banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(236, 229, 216, .94) 0%, rgba(236, 229, 216, .7) 32%, rgba(236, 229, 216, 0) 56%); pointer-events: none; }
.ns-category-hero--banner .ns-category-hero__inner { position: relative; z-index: 1; }
.ns-category-hero--banner h1, .ns-category-hero--banner .ns-category-hero__desc, .ns-category-hero--banner .ns-category-hero__eyebrow { color: var(--ns-espresso); text-shadow: none; }
.ns-category-hero--banner .ns-category-hero__desc { color: var(--ns-taupe); }
@media (max-width: 760px) {
	.ns-category-hero.ns-category-hero--banner { background-position: 78% center; min-height: 420px; }
	.ns-category-hero--banner::before { background: linear-gradient(0deg, rgba(236, 229, 216, .96) 0%, rgba(236, 229, 216, .8) 45%, rgba(236, 229, 216, .1) 100%); }
}

/* ---------- Hero lookbook: crossfading looks, pointer depth, light, look picker ---------- */
.ns-hero-model .ns-hero-stage { position: absolute; inset: 0; will-change: transform; transition: transform .2s linear; }
.ns-hero-model .ns-hero-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.4s ease; pointer-events: none; }
.ns-hero-model .ns-hero-slide.is-active { opacity: 1; }
.ns-hero-model .ns-hero-slide img { width: 100%; height: 100%; display: block; transform-origin: 72% 38%; }
.ns-hero-model .ns-hero-slide.is-active img { animation: ns-hero-push 6.8s cubic-bezier(.2, .6, .2, 1) both; }
.ns-hero-model .ns-hero-slide--land img { object-fit: cover; object-position: right center; }
.ns-hero-model .ns-hero-slide--port img { position: absolute; right: 0; top: 0; width: auto; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 34%); mask-image: linear-gradient(90deg, transparent 0, #000 34%); }
.ns-hero-full.ns-hero-model::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(520px circle at var(--mx, 72%) var(--my, 40%), rgba(255, 247, 232, .34), transparent 70%); mix-blend-mode: soft-light; }
.ns-hero-looks { position: relative; z-index: 3; width: 100%; max-width: 1560px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 120px) clamp(32px, 6vh, 64px); box-sizing: border-box; display: grid; gap: 4px; justify-items: start; text-align: left; color: var(--ns-espresso); }
.ns-hero-looks__name { font-family: var(--ns-serif); font-size: 1.5rem; font-weight: 400; color: inherit; text-decoration: none; border-bottom: 1px solid rgba(43, 37, 32, .4); padding-bottom: 2px; }
.ns-hero-looks__name:hover { border-bottom-color: var(--ns-espresso); }
.ns-hero-looks__sub { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ns-taupe); }
.ns-hero-looks__dots { display: flex; gap: 10px; margin-top: 10px; }
.ns-hero-looks__dot { width: 34px; height: 3px; padding: 14px 0; background: rgba(43, 37, 32, .28) content-box; border: 0; cursor: pointer; position: relative; box-sizing: content-box; }
.ns-hero-looks__dot.is-active { background: var(--ns-espresso) content-box; }
.ns-hero-looks__dot:focus-visible { outline: 2px solid var(--ns-espresso); outline-offset: 2px; }
@media (max-width: 860px) {
	.ns-hero-model .ns-hero-stage { position: absolute; inset: 0; }
	.ns-hero-model .ns-hero-slide--port img, .ns-hero-model .ns-hero-slide--land img { position: static; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 88% 0; -webkit-mask-image: none; mask-image: none; }
	.ns-hero-full.ns-hero-model::before { display: none; }
	.ns-hero-looks { margin: -10vw 0 0; padding: 0 24px 8px; order: 1; }
	.ns-hero-full.ns-hero-model .ns-hero-full__inner { margin-top: 14px; order: 2; padding-top: 0; }
}

/* ---------- Guide sidebar ---------- */
.ns-article__layout { display: block; }
@media (min-width: 1000px) {
	.ns-article__layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(40px, 5vw, 90px); align-items: start; }
	.ns-article__layout > .ns-prose { max-width: none; }
	.ns-aside { position: sticky; top: 110px; }
}
.ns-aside { display: grid; gap: 22px; margin-top: 40px; }
@media (min-width: 1000px) { .ns-aside { margin-top: 0; } }
.ns-aside__figure { margin: 0; }
.ns-aside__figure img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; display: block; }
.ns-aside__card { border-top: 1px solid var(--ns-hair); padding-top: 20px; }
.ns-aside__card--cta { background: var(--ns-espresso); color: var(--ns-ivory); padding: 28px 26px; border-top: 0; }
.ns-aside h2 { font-family: var(--ns-serif); font-weight: 400; font-size: 1.6rem; line-height: 1.15; margin: 0 0 12px; }
.ns-aside__card--cta h2 { color: var(--ns-ivory); }
.ns-aside__facts { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; font-size: .95rem; }
.ns-aside__facts li { padding-left: 18px; position: relative; }
.ns-aside__facts li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 1px; background: currentColor; }
.ns-aside__card--cta .ns-btn { background: var(--ns-ivory); color: var(--ns-espresso); border-color: var(--ns-ivory); width: 100%; text-align: center; box-sizing: border-box; }
.ns-aside__note { margin: 12px 0 0; font-size: .8125rem; color: var(--ns-taupe); }
.ns-aside__card--cta .ns-aside__note { color: rgba(246, 242, 234, .75); }
.ns-aside__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.ns-aside__links li { border-top: 1px solid var(--ns-hair); }
.ns-aside__links li:first-child { border-top: 0; }
.ns-aside__links a { display: block; padding: 11px 0; color: var(--ns-espresso); text-decoration: none; line-height: 1.35; }
.ns-aside__links a:hover { color: var(--wp--preset--color--leather-cognac); }

/* ---------- Page extras: figure, process, cards, call to action ---------- */
.ns-extras__figure { margin: 0; }
.ns-extras__figure img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; display: block; border-radius: 0; }
.ns-steps { list-style: none; counter-reset: ns-step; margin: 0; padding: 0; display: grid; gap: 0; }
.ns-steps li { counter-increment: ns-step; display: grid; gap: 4px; padding: 22px 0 22px 64px; border-top: 1px solid var(--ns-hair); position: relative; }
.ns-steps li::before { content: counter(ns-step, decimal-leading-zero); position: absolute; left: 0; top: 18px; font-family: var(--ns-serif); font-size: 2rem; line-height: 1; color: var(--wp--preset--color--leather-cognac); }
.ns-steps strong { font-family: var(--ns-serif); font-weight: 400; font-size: 1.45rem; }
.ns-steps span { color: var(--ns-taupe); max-width: 58ch; }
.ns-extras__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.ns-extras__more { margin-top: 28px; }
.ns-extras-cta { background: var(--ns-espresso); color: var(--ns-ivory); padding: clamp(64px, 9vw, 120px) 0; text-align: center; }
.ns-extras-cta h2 { color: var(--ns-ivory); font-family: var(--ns-serif); font-weight: 300; font-size: clamp(2rem, 1.2rem + 2.6vw, 3.4rem); max-width: 18em; margin: 0 auto 16px; }
.ns-extras-cta p { color: rgba(246, 242, 234, .82); max-width: 52ch; margin: 0 auto; }
.ns-extras-cta__actions { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; margin: 30px 0 18px; }
.ns-extras-cta .ns-btn--light { background: var(--ns-ivory); color: var(--ns-espresso); }
.ns-extras-cta .ns-btn--ghost { color: var(--ns-ivory); border-color: rgba(246, 242, 234, .6); }
.ns-extras-cta__note { font-size: .8125rem; letter-spacing: .04em; }
@media (min-width: 1000px) {
	.ns-extras .ns-split { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; }
	.ns-extras .ns-split__media .ns-extras__figure img { aspect-ratio: 4 / 5; max-height: 640px; }
}

/* ---------- Composed pages: promise strip, image/text panels, process row, FAQ split ---------- */
.ns-promise { background: var(--ns-espresso); color: var(--ns-ivory); padding: clamp(28px, 4vw, 44px) 0; }
.ns-promise ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 24px clamp(24px, 3vw, 48px); }
.ns-promise li { display: grid; grid-template-columns: 34px 1fr; column-gap: 14px; align-items: start; }
.ns-promise svg { grid-row: 1 / span 2; color: #cfa56a; margin-top: 2px; }
.ns-promise strong { font-family: var(--ns-serif); font-weight: 400; font-size: 1.3rem; line-height: 1.2; }
.ns-promise span { font-size: .875rem; color: rgba(246, 242, 234, .78); }
.ns-sec { padding: clamp(56px, 8vw, 112px) 0; background: var(--ns-ivory); }
.ns-sec--tint { background: var(--ns-oat); }
.ns-sec__title { font-family: var(--ns-serif); font-weight: 300; font-size: clamp(1.9rem, 1.2rem + 2.2vw, 3.1rem); line-height: 1.08; margin: 0 0 20px; letter-spacing: -.005em; }
.ns-panel { display: grid; gap: clamp(28px, 5vw, 80px); align-items: center; }
.ns-panel__text > p { max-width: 60ch; color: var(--ns-taupe); font-size: 1.0625rem; line-height: 1.7; }
.ns-panel__text > p:first-of-type { color: var(--ns-espresso); font-size: 1.1875rem; }
.ns-panel__media { margin: 0; }
.ns-panel__media img { width: 100%; display: block; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; max-height: 620px; }
.ns-panel__cta { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin-top: 28px; }
.ns-link-quiet { color: var(--ns-espresso); border-bottom: 1px solid var(--ns-espresso); text-decoration: none; padding-bottom: 2px; font-size: .9375rem; }
@media (min-width: 900px) {
	.ns-panel { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
	.ns-panel--flip .ns-panel__media { order: -1; }
	.ns-panel--flip { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
}
.ns-steps--row { display: grid; gap: 0 clamp(20px, 3vw, 48px); }
@media (min-width: 900px) { .ns-steps--row { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ns-steps--row li { padding: 54px 0 8px; border-top: 1px solid var(--ns-hair); }
.ns-steps--row li::before { top: 14px; font-size: 2.4rem; }
.ns-sec__split { display: grid; gap: 28px clamp(32px, 6vw, 100px); }
@media (min-width: 900px) { .ns-sec__split { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; } .ns-sec__split .ns-sec__title { position: sticky; top: 120px; } }
.ns-extras__cards { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
@media (min-width: 1100px) { .ns-extras__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ns-category-hero--banner h1 { max-width: 14em; }

body.ns-composed .wp-site-blocks > .ns-section-lg.has-raw-indigo-background-color { display: none; }
.ns-category-hero.ns-category-hero--banner { background-position: right 14%; }
