/* ==========================================================================
   Nepras brand theme v2 (2026-10)
   Colour: logo navy #142446 and its tints/shades only, on white.
   Language: white editorial canvas, thin grid lines, tight 6-8px corners,
   full-width navy bands, heavy tight headlines (Geist) + Manrope body.

   Loaded last in <head> and only when <html> has .nx-brand (see
   inc/head-tag.inc.php), so it can be rolled out page by page. Tokens sit on
   html.nx-brand, which outranks the :root block every page declares inline.
   ========================================================================== */

/* ---------- Fonts (self-hosted, OFL) ----------
   Page templates hard-code 'Space Grotesk' and 'Inter', so those names are
   re-pointed at the brand faces. */
@font-face { font-family: 'Geist'; src: url('../fonts/geist-latin.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('../fonts/manrope-latin.woff2') format('woff2'); font-weight: 200 800; font-display: swap; }
@font-face { font-family: 'Geist Mono'; src: url('../fonts/geist-mono-latin.woff2') format('woff2'); font-weight: 400 500; font-display: swap; }
@font-face { font-family: 'Space Grotesk'; src: url('../fonts/geist-latin.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/manrope-latin.woff2') format('woff2'); font-weight: 200 800; font-display: swap; }
@font-face { font-family: 'Lora'; src: url('../fonts/geist-latin.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }

/* ---------- Tokens ---------- */
html.nx-brand {
	--nx-950: #0A1328;
	--nx-900: #0E1A35;
	--nx-800: #142446;   /* logo navy */
	--nx-700: #1C3060;
	--nx-600: #2A4279;
	--nx-500: #435C98;
	--nx-400: #6F84B6;
	--nx-300: #9DADD0;
	--nx-200: #C8D1E6;
	--nx-100: #E5E9F3;
	--nx-50:  #F5F7FB;

	--nx-ink: #142446;
	--nx-text: #3A4762;
	--nx-soft: #5E6A86;
	--nx-line: rgba(20,36,70,0.10);
	--nx-line-strong: rgba(20,36,70,0.20);
	--nx-r: 8px;
	--nx-r-sm: 6px;
	--nx-shadow: 0 1px 2px rgba(20,36,70,0.06);
	--nx-shadow-lg: 0 24px 48px -24px rgba(20,36,70,0.30), 0 2px 6px rgba(20,36,70,0.05);
	--nx-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--nx-head: 'Geist', 'Space Grotesk', system-ui, sans-serif;
	--nx-body: 'Manrope', 'Inter', system-ui, sans-serif;
	--nx-top: 38px;      /* contact bar */
	--nx-bar: 76px;      /* main header */

	/* page-template palette, remapped light */
	--navy-deep: #FFFFFF;
	--navy: var(--nx-50);
	--navy-mid: #FFFFFF;
	--white: var(--nx-ink);
	--muted: var(--nx-soft);
	--gold: var(--nx-800);
	--gold-light: var(--nx-500);
	--gold-pale: var(--nx-100);
	--gold-deep: var(--nx-800);
	--border: var(--nx-line-strong);
	--border-subtle: var(--nx-line);
	--cream: var(--nx-50);
	--cream-deep: var(--nx-100);
	--ink: var(--nx-ink);
	--ink-muted: var(--nx-soft);
	--card-line: var(--nx-line);
	--green: var(--nx-500);
	--grad-accent: linear-gradient(90deg, var(--nx-800), var(--nx-800));
	--nx-grad: linear-gradient(90deg, var(--nx-800), var(--nx-800));
	--radius: var(--nx-r);
	--radius-sm: var(--nx-r-sm);
	--nx-radius: var(--nx-r);
	--nx-radius-sm: var(--nx-r-sm);
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--nx-bar) + 16px);
}

/* Navy bands flip back to light-on-navy */
html.nx-brand .nx-topbar,
html.nx-brand .mobile-menu,
html.nx-brand .testimonial-section,
html.nx-brand .cta-section,
html.nx-brand .cta-strip,
html.nx-brand footer,
html.nx-brand .nx-dark {
	--white: #FFFFFF;
	--ink: #FFFFFF;
	--muted: var(--nx-300);
	--ink-muted: var(--nx-300);
	--gold: #FFFFFF;
	--gold-light: var(--nx-200);
	--gold-deep: #FFFFFF;
	--gold-pale: rgba(255,255,255,0.08);
	--navy-mid: rgba(255,255,255,0.05);
	--navy: rgba(255,255,255,0.04);
	--navy-deep: var(--nx-800);
	--border: rgba(255,255,255,0.18);
	--border-subtle: rgba(255,255,255,0.10);
	--card-line: rgba(255,255,255,0.12);
	--cream: transparent;
	color: #FFFFFF;
}

/* ---------- Base ---------- */
html.nx-brand body {
	font-family: var(--nx-body);
	background: #FFFFFF !important;
	color: var(--nx-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
html.nx-brand ::selection { background: var(--nx-800); color: #FFFFFF; }

html.nx-brand h1, html.nx-brand h2, html.nx-brand h3, html.nx-brand h4,
html.nx-brand .section-heading, html.nx-brand .founder-name { font-family: var(--nx-head); letter-spacing: -0.025em; }
html.nx-brand h1 { font-weight: 700 !important; letter-spacing: -0.05em !important; line-height: 1.0 !important; color: var(--nx-ink); }
html.nx-brand .section-heading {
	font-weight: 700 !important;
	font-size: clamp(2.1rem, 3.9vw, 3.5rem) !important;
	letter-spacing: -0.045em !important;
	line-height: 1.02 !important;
	color: var(--nx-ink);
	max-width: 820px !important;
}
html.nx-brand h3, html.nx-brand h4 { letter-spacing: -0.02em; }

/* Emphasis: solid lighter navy (the old theme clipped a gradient into text) */
html.nx-brand h1 em, html.nx-brand h2 em, html.nx-brand .section-heading em,
html.nx-brand h1 em *, html.nx-brand h2 em *, html.nx-brand .section-heading em * {
	font-style: normal !important;
	background: none !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	-webkit-text-fill-color: currentColor !important;
	color: var(--nx-500) !important;
}
html.nx-brand h1 em, html.nx-brand h2 em, html.nx-brand .section-heading em { animation: none !important; }

/* Eyebrows: spaced caps after a rule -- the divider + "TECHNOLOGIES" of the logo */
html.nx-brand .section-label,
html.nx-brand .hero-eyebrow,
html.nx-brand .eyebrow {
	display: inline-flex !important;
	align-items: center;
	gap: 0.85rem;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--nx-500) !important;
	font-family: var(--nx-head) !important;
	font-weight: 600 !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.26em !important;
	text-transform: uppercase;
	margin-bottom: 1.25rem !important;
}
html.nx-brand .section-label::before,
html.nx-brand .hero-eyebrow::before,
html.nx-brand .eyebrow::before {
	content: '' !important;
	display: block !important;
	width: 34px !important;
	height: 1.5px !important;
	border-radius: 0 !important;
	background: currentColor !important;
	box-shadow: none !important;
	transform-origin: left;
	animation: nxRule 0.9s 0.2s var(--nx-ease) both;
}
html.nx-brand .section-sub { color: var(--nx-soft) !important; font-weight: 400 !important; font-size: 1.05rem !important; }

/* ---------- Buttons ---------- */
html.nx-brand .btn-primary, html.nx-brand .btn-cta, html.nx-brand .cta-submit,
html.nx-brand .btn-next, html.nx-brand .sticky-consult {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	min-height: 50px;
	padding: 0.85rem 1.45rem !important;
	background: linear-gradient(var(--nx-950), var(--nx-950)) no-repeat 0 0 / 0% 100%, var(--nx-800) !important;
	color: #FFFFFF !important;
	border: 1px solid var(--nx-800) !important;
	border-radius: var(--nx-r-sm) !important;
	box-shadow: none !important;
	font-family: var(--nx-head) !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	letter-spacing: -0.005em !important;
	text-transform: none !important;
	animation: none !important;
	overflow: hidden;
	transition: background-size 0.45s var(--nx-ease), transform 0.3s var(--nx-ease), box-shadow 0.3s !important;
}
html.nx-brand .btn-primary::after, html.nx-brand .btn-cta::after, html.nx-brand .cta-submit::after {
	content: '' !important;
	position: relative !important;
	inset: auto !important; left: auto !important; top: auto !important;
	display: block !important;
	width: 16px !important;
	height: 16px !important;
	flex: 0 0 16px;
	opacity: 1 !important;
	border-radius: 0 !important;
	transform: none !important;
	background: currentColor !important;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.4s var(--nx-ease) !important;
}
html.nx-brand .btn-primary:hover, html.nx-brand .btn-cta:hover, html.nx-brand .cta-submit:hover,
html.nx-brand .btn-next:hover, html.nx-brand .sticky-consult:hover {
	background-size: 100% 100%, auto !important;
	box-shadow: 0 14px 28px -14px rgba(20,36,70,0.7) !important;
}
html.nx-brand .btn-primary:hover::after, html.nx-brand .btn-cta:hover::after, html.nx-brand .cta-submit:hover::after { transform: translateX(4px) !important; }

html.nx-brand .btn-ghost, html.nx-brand .btn-back, html.nx-brand .btn-secondary {
	display: inline-flex !important;
	align-items: center;
	min-height: 50px;
	padding: 0.85rem 1.45rem !important;
	border-radius: var(--nx-r-sm) !important;
	background: linear-gradient(var(--nx-50), var(--nx-50)) no-repeat 0 0 / 0% 100%, #FFFFFF !important;
	color: var(--nx-800) !important;
	border: 1px solid var(--nx-line-strong) !important;
	font-family: var(--nx-head) !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	text-transform: none !important;
	letter-spacing: -0.005em !important;
	transition: background-size 0.45s var(--nx-ease), border-color 0.25s, transform 0.3s var(--nx-ease) !important;
}
html.nx-brand .btn-ghost:hover, html.nx-brand .btn-back:hover, html.nx-brand .btn-secondary:hover {
	background-size: 100% 100%, auto !important;
	border-color: var(--nx-800) !important;
}

/* Buttons on navy bands */
html.nx-brand .cta-section .btn-primary, html.nx-brand .cta-strip .btn-primary, html.nx-brand .nx-dark .btn-primary,
html.nx-brand .testimonial-section .btn-primary, html.nx-brand footer .btn-primary {
	background: linear-gradient(var(--nx-100), var(--nx-100)) no-repeat 0 0 / 0% 100%, #FFFFFF !important;
	color: var(--nx-800) !important;
	border-color: #FFFFFF !important;
}
html.nx-brand .cta-section .btn-ghost, html.nx-brand .cta-strip .btn-ghost, html.nx-brand .nx-dark .btn-ghost {
	background: linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.1)) no-repeat 0 0 / 0% 100%, transparent !important;
	color: #FFFFFF !important;
	border-color: rgba(255,255,255,0.3) !important;
}
html.nx-brand .cta-section .btn-ghost:hover, html.nx-brand .cta-strip .btn-ghost:hover, html.nx-brand .nx-dark .btn-ghost:hover { border-color: #FFFFFF !important; }

/* ---------- Scroll progress + contact bar + header ---------- */
html.nx-brand .nx-progress {
	position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 1002;
	background: var(--nx-400);
	transform-origin: 0 50%;
	transform: scaleX(var(--nx-p, 0));
	pointer-events: none;
}
html.nx-brand .nx-topbar {
	position: fixed; top: 0; left: 0; right: 0; z-index: 1001;
	height: var(--nx-top);
	background: var(--nx-800);
	font-family: var(--nx-head);
	font-size: 0.78rem;
	transition: transform 0.45s var(--nx-ease);
}
html.nx-brand .nx-topbar-inner {
	height: 100%;
	padding: 0 5%;
	display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
html.nx-brand .nx-topbar-loc { color: var(--nx-300); letter-spacing: 0.02em; }
html.nx-brand .nx-topbar-links { display: flex; align-items: center; gap: 1.6rem; }
html.nx-brand .nx-topbar a { color: var(--nx-200); text-decoration: none; transition: color 0.2s; }
html.nx-brand .nx-topbar a:hover { color: #FFFFFF; }
html.nx-brand .nx-topbar a.nx-topbar-cta { color: #FFFFFF; font-weight: 600; }

html.nx-brand header {
	position: fixed !important;
	top: var(--nx-top) !important;
	left: 0 !important; right: 0 !important;
	width: auto !important;
	height: var(--nx-bar);
	padding: 0 5% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	background: rgba(255,255,255,0.94) !important;
	-webkit-backdrop-filter: blur(14px) saturate(1.6) !important;
	backdrop-filter: blur(14px) saturate(1.6) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--nx-line) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transition: top 0.45s var(--nx-ease), transform 0.45s var(--nx-ease), box-shadow 0.3s, height 0.35s var(--nx-ease) !important;
}
html.nx-brand.nx-scrolled .nx-topbar { transform: translateY(-100%); }
html.nx-brand.nx-scrolled header {
	top: 0 !important;
	height: 66px;
	box-shadow: 0 10px 30px -18px rgba(20,36,70,0.35) !important;
}
html.nx-brand.nx-hide header { transform: translateY(-100%); }

html.nx-brand header .logo-wrap img {
	height: 40px !important;
	width: auto !important;
	filter: none !important;
	transition: height 0.35s var(--nx-ease) !important;
}
html.nx-brand.nx-scrolled header .logo-wrap img { height: 34px !important; }
html.nx-brand header .logo-wrap:hover img { transform: none !important; }

html.nx-brand header nav { gap: 2.1rem !important; align-items: center; }
html.nx-brand header nav a,
html.nx-brand header .nav-item > a {
	font-family: var(--nx-head) !important;
	font-weight: 500 !important;
	font-size: 0.95rem !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	color: var(--nx-ink) !important;
	padding-top: 6px; padding-bottom: 6px;
	background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 1.5px;
	transition: background-size 0.4s var(--nx-ease), color 0.2s !important;
}
html.nx-brand header nav a:hover,
html.nx-brand header .nav-item:hover > a { background-size: 100% 1.5px; color: var(--nx-800) !important; }
html.nx-brand header .nav-item > a::after { border-color: var(--nx-ink) !important; color: var(--nx-ink) !important; }
/* home + glossary home inline CSS draws a second (gradient ::before) underline; keep only the brand one */
html.nx-brand header nav > .nav-item > a::before,
html.nx-brand header nav > a:not(.btn-cta)::before { content: none !important; }
html.nx-brand header nav a.btn-cta {
	background: linear-gradient(var(--nx-950), var(--nx-950)) no-repeat 0 0 / 0% 100%, var(--nx-800) !important;
	color: #FFFFFF !important;
	padding: 0.7rem 1.15rem !important;
	min-height: 0;
	font-size: 0.9rem !important;
	margin-left: 0.4rem;
}
html.nx-brand header nav a.btn-cta:hover { background-size: 100% 100%, auto !important; }

html.nx-brand header .dropdown-menu,
html.nx-brand header .submenu {
	background: #FFFFFF !important;
	border: 1px solid var(--nx-line) !important;
	border-top: 2px solid var(--nx-800) !important;
	border-radius: 0 0 var(--nx-r) var(--nx-r) !important;
	box-shadow: var(--nx-shadow-lg) !important;
	padding: 0.5rem !important;
}
html.nx-brand header .dropdown-menu a,
html.nx-brand header .submenu a,
html.nx-brand header .dropdown-item > a {
	color: var(--nx-ink) !important;
	font-family: var(--nx-head) !important;
	font-weight: 500 !important;
	font-size: 0.9rem !important;
	border-radius: var(--nx-r-sm);
	background: none !important;
	transition: background 0.2s, padding-left 0.3s var(--nx-ease), color 0.2s !important;
}
html.nx-brand header .dropdown-menu a:hover,
html.nx-brand header .submenu a:hover,
html.nx-brand header .dropdown-item > a:hover {
	background: var(--nx-50) !important;
	color: var(--nx-800) !important;
	padding-left: 1.4rem !important;
}
html.nx-brand .hamburger span { background: var(--nx-ink) !important; }
html.nx-brand .mobile-menu { background: var(--nx-800) !important; }
html.nx-brand .mobile-menu a, html.nx-brand .mobile-menu button { color: #FFFFFF !important; font-family: var(--nx-head) !important; }

/* ---------- Heroes: white, ruled grid, giant type ---------- */
html.nx-brand .hero,
html.nx-brand .page-hero,
html.nx-brand .service-hero,
html.nx-brand .article-hero,
html.nx-brand .term-hero,
html.nx-brand .dict-hero,
html.nx-brand .blog-hero,
html.nx-brand .sm-hero {
	position: relative;
	margin: 0 !important;
	border-radius: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--nx-line) !important;
	background:
		radial-gradient(55% 60% at 88% 8%, rgba(67,92,152,0.10) 0%, rgba(67,92,152,0) 70%),
		#FFFFFF !important;
	color: var(--nx-ink);
	padding-top: calc(var(--nx-top) + var(--nx-bar) + clamp(48px, 6vw, 88px)) !important;
	padding-bottom: clamp(56px, 7vw, 104px) !important;
	min-height: 0 !important;
	overflow: hidden;
	isolation: isolate;
}
/* the ruled grid: four column lines that draw down on load */
html.nx-brand .hero-grid-bg {
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	z-index: -1 !important;
	opacity: 1 !important;
	background-image: linear-gradient(90deg, var(--nx-line) 1px, transparent 1px) !important;
	background-size: calc((100% - 10%) / 4) 100% !important;
	background-position: 5% 0 !important;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
	animation: nxLines 1.6s var(--nx-ease) both !important;
}
html.nx-brand .hero::after, html.nx-brand .hero-glow { display: none !important; }

html.nx-brand .hero h1, html.nx-brand .page-hero h1, html.nx-brand .service-hero h1, html.nx-brand .article-hero h1,
html.nx-brand .term-hero h1,
html.nx-brand .dict-hero h1,
html.nx-brand .blog-hero h1,
html.nx-brand .sm-hero h1 {
	color: var(--nx-ink) !important;
	font-size: clamp(2.6rem, 5.4vw, 5.1rem) !important;
	text-wrap: balance;
	animation: none !important;
	opacity: 1 !important;
}
html.nx-brand .article-hero h1,
html.nx-brand .term-hero h1,
html.nx-brand .dict-hero h1,
html.nx-brand .blog-hero h1,
html.nx-brand .sm-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.8rem) !important; text-wrap: balance; }
html.nx-brand .hero-sub, html.nx-brand .hero-desc { color: var(--nx-soft) !important; font-weight: 400 !important; font-size: 1.1rem !important; max-width: 560px; }
html.nx-brand .breadcrumb, html.nx-brand .breadcrumb a, html.nx-brand .breadcrumb-inner, html.nx-brand .breadcrumb-inner a { color: var(--nx-soft) !important; }
html.nx-brand .breadcrumb .current, html.nx-brand .breadcrumb span.current { color: var(--nx-800) !important; }

/* hero photo: navy duotone + floating caption, wipes in on load */
html.nx-brand .hero-visual {
	border-radius: var(--nx-r) !important;
	border: 0 !important;
	box-shadow: var(--nx-shadow-lg) !important;
	overflow: visible !important;
	animation: nxWipe 1.3s 0.35s var(--nx-ease) both !important;
}
html.nx-brand .hero-visual img {
	border-radius: var(--nx-r);
	filter: grayscale(1) contrast(1.08) brightness(1.04);
}
html.nx-brand .hero-visual::after {
	content: '';
	position: absolute; inset: 0;
	border-radius: var(--nx-r);
	background: var(--nx-800);
	mix-blend-mode: screen;
	pointer-events: none;
}
html.nx-brand .hero-visual::before { content: none !important; }
html.nx-brand .hero-copy + .hero-visual::before {
	content: 'Design  \2192  Develop  \2192  Grow' !important;
	display: block !important;
	position: absolute !important;
	inset: auto auto 28px -22px !important;
	width: auto !important; height: auto !important;
	transform: none !important;
	z-index: 3 !important;
	padding: 0.9rem 1.2rem !important;
	background: #FFFFFF !important;
	border: 1px solid var(--nx-line) !important;
	border-left: 3px solid var(--nx-800) !important;
	border-radius: var(--nx-r-sm) !important;
	box-shadow: var(--nx-shadow-lg) !important;
	font-family: var(--nx-head);
	font-weight: 600;
	font-size: 0.88rem;
	letter-spacing: -0.01em;
	color: var(--nx-ink);
	white-space: pre;
	opacity: 1 !important;
	animation: nxFloatIn 0.9s 1.2s var(--nx-ease) both, nxBob 5s 2.2s ease-in-out infinite !important;
}

/* ---------- Sections: white / soft-navy rhythm ---------- */
html.nx-brand section:not(.hero):not(.page-hero):not(.service-hero):not(.article-hero):not(.testimonial-section):not(.cta-section):not(.cta-strip):not(.nx-dark),
/* ---------- Sections: white / soft-navy rhythm ---------- */
html.nx-brand section:not(.hero):not(.page-hero):not(.service-hero):not(.term-hero):not(.testimonial-section):not(.cta-section):not(.cta-strip):not(.nx-dark),
/* ---------- Sections: white / soft-navy rhythm ---------- */
html.nx-brand section:not(.hero):not(.page-hero):not(.service-hero):not(.dict-hero):not(.testimonial-section):not(.cta-section):not(.cta-strip):not(.nx-dark),
/* ---------- Sections: white / soft-navy rhythm ---------- */
html.nx-brand section:not(.hero):not(.page-hero):not(.service-hero):not(.blog-hero):not(.testimonial-section):not(.cta-section):not(.cta-strip):not(.nx-dark),
/* ---------- Sections: white / soft-navy rhythm ---------- */
html.nx-brand section:not(.hero):not(.page-hero):not(.service-hero):not(.sm-hero):not(.testimonial-section):not(.cta-section):not(.cta-strip):not(.nx-dark) {
	background: #FFFFFF !important;
	border-color: transparent !important;
	color: var(--nx-text);
}
html.nx-brand section.why-section, html.nx-brand section.stack-section,
html.nx-brand section.founder-section, html.nx-brand section.faq-section,
html.nx-brand section.nx-tint, html.nx-brand section.platforms-section, html.nx-brand section.packages-section {
	background: var(--nx-50) !important;
	border-top: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
}
html.nx-brand section::before { opacity: 0 !important; }

/* ---------- Trust strip: ruled marquee ---------- */
html.nx-brand .badges-bar {
	margin: 0 !important;
	padding: 0 !important;
	height: 74px;
	display: flex !important;
	align-items: center;
	background: #FFFFFF !important;
	border: 0 !important;
	border-bottom: 1px solid var(--nx-line) !important;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
html.nx-brand .nx-marquee-track { display: flex; align-items: center; width: max-content; animation: nxMarquee 42s linear infinite; }
html.nx-brand .nx-marquee-track.nx-rev { animation-direction: reverse; }
html.nx-brand .badges-bar:hover .nx-marquee-track, html.nx-brand .nx-stack-marquee:hover .nx-marquee-track { animation-play-state: paused; }
html.nx-brand .badge-item {
	flex: 0 0 auto;
	display: flex !important;
	align-items: center;
	gap: 0.75rem;
	padding: 0 2.4rem;
	background: none !important; border: 0 !important; box-shadow: none !important;
	position: relative;
	opacity: 1 !important; transform: none !important;
}
html.nx-brand .badge-item::after {
	content: '';
	position: absolute; right: -4px; top: 50%;
	width: 7px; height: 7px;
	background: var(--nx-300);
	transform: translateY(-50%) rotate(45deg);
}
html.nx-brand .badge-icon { color: var(--nx-500) !important; width: 20px !important; height: 20px !important; }
html.nx-brand .badge-text {
	color: var(--nx-ink) !important;
	font-family: var(--nx-head);
	font-weight: 600 !important;
	font-size: 0.98rem !important;
	letter-spacing: -0.01em !important;
}

/* ---------- Cards ---------- */
html.nx-brand .service-card, html.nx-brand .project-card, html.nx-brand .stack-item, html.nx-brand .info-card,
html.nx-brand .price-card, html.nx-brand .feature-card, html.nx-brand .process-card, html.nx-brand .value-card,
html.nx-brand .team-card, html.nx-brand .benefit-card, html.nx-brand .sidebar-card, html.nx-brand .cap-card,
html.nx-brand .pkg-card, html.nx-brand .nx-topic, html.nx-brand .overview-list li, html.nx-brand .result-box,
html.nx-brand .why-item, html.nx-brand .step, html.nx-brand .process-step, html.nx-brand .related-card,
html.nx-brand .blog-card, html.nx-brand .relsvc-card, html.nx-brand .form-card, html.nx-brand .contact-form-wrap,
html.nx-brand .cta-form-card, html.nx-brand .sol-item, html.nx-brand .tech-row, html.nx-brand .tools-table-wrap,
html.nx-brand .service-block, html.nx-brand .sm-row-list {
	background: #FFFFFF !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r) !important;
	box-shadow: var(--nx-shadow) !important;
	color: var(--nx-text);
}
html.nx-brand .service-card, html.nx-brand .project-card, html.nx-brand .stack-item, html.nx-brand .cap-card,
html.nx-brand .pkg-card, html.nx-brand .nx-topic, html.nx-brand .related-card, html.nx-brand .blog-card,
html.nx-brand .relsvc-card, html.nx-brand .step, html.nx-brand .process-step, html.nx-brand .industry-pill {
	transition: transform 0.55s var(--nx-ease), box-shadow 0.55s var(--nx-ease), border-color 0.3s, opacity 0.9s var(--nx-ease) !important;
}
html.nx-brand .service-card:hover, html.nx-brand .project-card:hover, html.nx-brand .stack-item:hover,
html.nx-brand .cap-card:hover, html.nx-brand .pkg-card:hover, html.nx-brand .nx-topic:hover,
html.nx-brand .related-card:hover, html.nx-brand .blog-card:hover, html.nx-brand .relsvc-card:hover,
html.nx-brand .step:hover, html.nx-brand .process-step:hover {
	transform: translateY(-5px) !important;
	border-color: var(--nx-line-strong) !important;
	box-shadow: var(--nx-shadow-lg) !important;
}

/* Service cards: numbered, ruled, photo zoom */
html.nx-brand .services-grid { counter-reset: nxsvc; gap: 1.5rem !important; }
html.nx-brand .service-card { counter-increment: nxsvc; overflow: hidden; }
html.nx-brand .service-card::before {
	top: 0 !important; bottom: auto !important; height: 2px !important;
	background: var(--nx-800) !important;
	z-index: 4 !important;
}
html.nx-brand .service-card-body { position: relative; padding: 2rem 1.9rem 1.9rem !important; }
html.nx-brand .service-card-body::before {
	content: counter(nxsvc, decimal-leading-zero);
	position: absolute; top: 2.15rem; right: 1.9rem;
	font-family: var(--nx-head); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.08em;
	color: var(--nx-400);
}
html.nx-brand .service-thumb { border-radius: 0 !important; margin: 0 !important; overflow: hidden; }
html.nx-brand .service-thumb::after { display: none !important; }
html.nx-brand .service-thumb img { filter: saturate(0.85); }
html.nx-brand .service-card:hover .service-thumb img { filter: saturate(1); }
html.nx-brand .service-card:hover .nx-pan img { --ps: 1.12; }
html.nx-brand .service-card h3, html.nx-brand .project-card h4, html.nx-brand .cap-card h3, html.nx-brand .pkg-name,
html.nx-brand .nx-topic h2, html.nx-brand .step h4, html.nx-brand .process-node h4 { color: var(--nx-ink) !important; }
html.nx-brand .service-card h3 { font-size: 1.4rem !important; font-weight: 600 !important; }
html.nx-brand .service-card p, html.nx-brand .service-benefits li, html.nx-brand .project-row-text,
html.nx-brand .cap-card p, html.nx-brand .step p { color: var(--nx-soft) !important; font-weight: 400 !important; }
html.nx-brand .service-benefits li::before { color: var(--nx-800) !important; }
html.nx-brand .service-link {
	color: var(--nx-800) !important;
	font-family: var(--nx-head);
	font-weight: 600 !important;
	letter-spacing: 0.08em !important;
	padding-bottom: 4px;
	background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 1.5px;
	transition: background-size 0.4s var(--nx-ease) !important;
}
html.nx-brand .service-card:hover .service-link { background-size: 100% 1.5px; }

/* "Why us": one ruled grid, cells fill navy on hover */
html.nx-brand .why-grid {
	gap: 0 !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r) !important;
	overflow: hidden;
	background: #FFFFFF !important;
}
html.nx-brand .why-card {
	position: relative;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	border-right: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
	padding: 2.5rem 2.25rem !important;
	background: linear-gradient(var(--nx-800), var(--nx-800)) no-repeat 0 100% / 100% 0%, #FFFFFF !important;
	transition: background-size 0.55s var(--nx-ease), opacity 0.9s var(--nx-ease), transform 0.9s var(--nx-ease) !important;
}
html.nx-brand .why-card:hover { background-size: 100% 100%, auto !important; }
html.nx-brand .why-card h4 { color: var(--nx-ink) !important; transition: color 0.35s; font-size: 1.15rem !important; }
html.nx-brand .why-card p { color: var(--nx-soft) !important; font-weight: 400 !important; transition: color 0.35s; }
html.nx-brand .why-card:hover h4 { color: #FFFFFF !important; }
html.nx-brand .why-card:hover p { color: var(--nx-200) !important; }
html.nx-brand .why-card-icon {
	width: 46px !important; height: 46px !important; padding: 11px;
	border-radius: var(--nx-r-sm); background: var(--nx-50); border: 1px solid var(--nx-line);
	color: var(--nx-800) !important;
	transition: background 0.35s, color 0.35s, border-color 0.35s !important;
}
html.nx-brand .why-card:hover .why-card-icon { background: rgba(255,255,255,0.1); color: #FFFFFF !important; border-color: rgba(255,255,255,0.2); transform: none !important; }

/* Industries */
html.nx-brand .industries-grid a { text-decoration: none !important; }
html.nx-brand .industry-pill { border-radius: var(--nx-r) !important; border: 0 !important; box-shadow: none !important; height: 150px !important; }
html.nx-brand .industry-pill::before { background: linear-gradient(180deg, rgba(20,36,70,0.05) 20%, rgba(20,36,70,0.9) 100%) !important; transition: background 0.5s var(--nx-ease); }
html.nx-brand .industry-pill:hover::before { background: linear-gradient(180deg, rgba(20,36,70,0.55) 0%, rgba(20,36,70,0.95) 100%) !important; }
html.nx-brand .industry-pill:hover { transform: translateY(-4px) !important; box-shadow: var(--nx-shadow-lg) !important; }
html.nx-brand .industry-pill img { filter: grayscale(0.35); }
html.nx-brand .industry-pill span {
	color: #FFFFFF !important;
	font-family: var(--nx-head);
	font-weight: 600 !important;
	text-decoration: none !important;
	display: flex !important; align-items: center; gap: 0.5rem; width: 100%;
}
html.nx-brand .industry-pill span::after {
	content: '\2192';
	margin-left: auto;
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity 0.35s, transform 0.45s var(--nx-ease);
}
html.nx-brand .industry-pill:hover span::after { opacity: 1; transform: none; }

/* Tags / chips */
html.nx-brand .project-tag, html.nx-brand .tech-chip, html.nx-brand .skill-chip, html.nx-brand .plat-chip,
html.nx-brand .tag, html.nx-brand .card-cat, html.nx-brand .rc-cat {
	background: var(--nx-50) !important;
	border: 1px solid var(--nx-line) !important;
	color: var(--nx-800) !important;
	border-radius: 4px !important;
}
html.nx-brand .project-note { border: 1px solid var(--nx-line) !important; border-left: 3px solid var(--nx-800) !important; border-radius: var(--nx-r-sm) !important; background: var(--nx-50) !important; }
html.nx-brand .project-thumb img { filter: saturate(0.85); }
html.nx-brand .project-row-label { color: var(--nx-500) !important; }

/* Tech stack: two counter-scrolling rows (built by nx-brand.js) */
html.nx-brand .nx-stack-marquee {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 1rem !important;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
html.nx-brand .nx-stack-marquee .nx-marquee-track { gap: 1rem; animation-duration: 36s; }
html.nx-brand .nx-stack-marquee .stack-item { flex: 0 0 auto; min-width: 170px; padding: 1.35rem 1.5rem !important; transform: none !important; opacity: 1 !important; }
html.nx-brand .stack-mark { color: var(--nx-ink) !important; font-size: 1rem !important; }
html.nx-brand .stack-name { color: var(--nx-soft) !important; }

/* Process: line draws as each step arrives */
html.nx-brand .process-dot {
	border-radius: var(--nx-r-sm) !important;
	background: #FFFFFF !important;
	border: 1px solid var(--nx-line-strong) !important;
	color: var(--nx-800) !important;
	font-family: var(--nx-head) !important;
	font-weight: 600 !important;
}
html.nx-brand .process-node::before {
	background: var(--nx-200) !important;
	transform-origin: top;
	transform: scaleY(0);
	transition: transform 0.9s 0.25s var(--nx-ease);
}
html.nx-brand .process-node.nx-in::before { transform: scaleY(1); }
html.nx-brand .process-node:hover .process-dot { background: var(--nx-800) !important; color: #FFFFFF !important; box-shadow: none !important; transform: none !important; }

/* Founder */
html.nx-brand .founder-photo { border-radius: var(--nx-r) !important; border: 0 !important; box-shadow: var(--nx-shadow-lg) !important; }
html.nx-brand .founder-photo:hover { transform: none !important; }
html.nx-brand .founder-role { color: var(--nx-500) !important; letter-spacing: 0.22em !important; }
html.nx-brand .founder-social a { border-radius: var(--nx-r-sm) !important; background: #FFFFFF; border-color: var(--nx-line) !important; }
html.nx-brand .founder-social a:hover { background: var(--nx-800) !important; border-color: var(--nx-800) !important; }
html.nx-brand .founder-social svg { fill: var(--nx-800) !important; transition: fill 0.2s; }
html.nx-brand .founder-social a:hover svg { fill: #FFFFFF !important; }

/* FAQ: ruled list */
html.nx-brand .faq-item { border-color: var(--nx-line-strong) !important; background: none !important; }
html.nx-brand .faq-question, html.nx-brand .faq-q {
	font-family: var(--nx-head) !important;
	font-weight: 600 !important;
	font-size: 1.12rem !important;
	color: var(--nx-ink) !important;
	letter-spacing: -0.015em;
	padding-top: 1.6rem !important; padding-bottom: 1.6rem !important;
}
html.nx-brand .faq-question:hover { color: var(--nx-500) !important; }
html.nx-brand .faq-icon, html.nx-brand .faq-toggle {
	box-sizing: content-box;
	padding: 7px;
	border-radius: var(--nx-r-sm);
	border: 1px solid var(--nx-line-strong);
	color: var(--nx-800) !important;
	transition: transform 0.4s var(--nx-ease), background 0.25s, color 0.25s !important;
}
html.nx-brand .faq-item.open .faq-icon, html.nx-brand .faq-item.open .faq-toggle { background: var(--nx-800); color: #FFFFFF !important; border-color: var(--nx-800); }
html.nx-brand .faq-answer p, html.nx-brand .faq-a { color: var(--nx-soft) !important; font-weight: 400 !important; }

/* ---------- Navy bands ---------- */
html.nx-brand .testimonial-section,
html.nx-brand .cta-section,
html.nx-brand .cta-strip,
html.nx-brand footer {
	margin: 0 !important;
	border-radius: 0 !important;
	border: 0 !important;
	background:
		radial-gradient(50% 80% at var(--nx-mx, 85%) var(--nx-my, 0%), rgba(111,132,182,0.22) 0%, rgba(111,132,182,0) 70%),
		linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px) 5% 0 / calc((100% - 10%) / 4) 100%,
		var(--nx-800) !important;
	color: #FFFFFF;
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
html.nx-brand footer { background-color: var(--nx-900) !important; }
html.nx-brand .cta-section::before, html.nx-brand .cta-section::after, html.nx-brand .cta-bg { opacity: 0.08 !important; }

html.nx-brand .cta-section .section-heading, html.nx-brand .cta-strip h2, html.nx-brand .testimonial-section .section-heading,
html.nx-brand .nx-dark .section-heading, html.nx-brand .cta-section h2, html.nx-brand .cta-section h3 { color: #FFFFFF !important; }
html.nx-brand .cta-section em, html.nx-brand .cta-strip em, html.nx-brand .testimonial-section em, html.nx-brand .nx-dark em,
html.nx-brand .cta-section em *, html.nx-brand .cta-strip em * { color: var(--nx-300) !important; }
html.nx-brand .cta-section .section-sub, html.nx-brand .cta-section p, html.nx-brand .cta-strip p,
html.nx-brand .testimonial-section .section-sub { color: var(--nx-200) !important; }
html.nx-brand .cta-section .section-label, html.nx-brand .cta-strip .section-label,
html.nx-brand .testimonial-section .section-label, html.nx-brand .nx-dark .section-label { color: var(--nx-300) !important; }

html.nx-brand .testimonial-card {
	background: none !important;
	border: 0 !important;
	border-left: 3px solid #FFFFFF !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0.5rem 0 0.5rem 2rem !important;
	max-width: 980px;
}
html.nx-brand .testimonial-card::before { display: none !important; }
html.nx-brand .testimonial-text {
	color: #FFFFFF !important;
	font-family: var(--nx-head);
	font-style: normal !important;
	font-weight: 500 !important;
	font-size: clamp(1.3rem, 2.2vw, 1.9rem) !important;
	line-height: 1.35 !important;
	letter-spacing: -0.02em;
}
html.nx-brand .testimonial-attribution { color: var(--nx-300) !important; letter-spacing: 0.22em !important; }

/* Forms on white cards (incl. the one inside the CTA band) */
html.nx-brand input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
html.nx-brand select, html.nx-brand textarea { border-radius: var(--nx-r-sm) !important; font-family: var(--nx-body) !important; }
html.nx-brand input:focus, html.nx-brand select:focus, html.nx-brand textarea:focus {
	border-color: var(--nx-800) !important;
	box-shadow: 0 0 0 3px rgba(20,36,70,0.12) !important;
	outline: none;
}
html.nx-brand .cta-section .form-card, html.nx-brand .cta-section .cta-form-card, html.nx-brand .cta-section .contact-form-wrap,
html.nx-brand .nx-dark .form-card, html.nx-brand .nx-dark .cta-form-card {
	--white: var(--nx-ink); --ink: var(--nx-ink); --muted: var(--nx-soft); --ink-muted: var(--nx-soft);
	--gold: var(--nx-800); --gold-light: var(--nx-500); --border: var(--nx-line-strong); --border-subtle: var(--nx-line);
	--navy-mid: var(--nx-50); --navy: var(--nx-50); --navy-deep: var(--nx-50);
	color: var(--nx-text);
	border: 0 !important;
	box-shadow: 0 40px 80px -36px rgba(0,0,0,0.6) !important;
	transform: none !important;
}
html.nx-brand .cta-section .form-card label, html.nx-brand .cta-section .cta-form-card label { color: var(--nx-soft) !important; }
html.nx-brand .cta-section .form-card input, html.nx-brand .cta-section .form-card select, html.nx-brand .cta-section .form-card textarea,
html.nx-brand .cta-section .cta-form-card input, html.nx-brand .cta-section .cta-form-card select, html.nx-brand .cta-section .cta-form-card textarea,
html.nx-brand .nx-dark .form-card input, html.nx-brand .nx-dark .form-card select, html.nx-brand .nx-dark .form-card textarea {
	background: var(--nx-50) !important;
	border: 1px solid var(--nx-line) !important;
	color: var(--nx-ink) !important;
}
html.nx-brand .cta-section .form-card input::placeholder, html.nx-brand .cta-section .form-card textarea::placeholder { color: #8A94AB !important; }
html.nx-brand .cta-section .form-card .btn-primary, html.nx-brand .cta-section .form-card .cta-submit,
html.nx-brand .cta-section .cta-form-card .btn-primary, html.nx-brand .cta-section .cta-form-card .cta-submit,
html.nx-brand .nx-dark .form-card .btn-primary {
	background: linear-gradient(var(--nx-950), var(--nx-950)) no-repeat 0 0 / 0% 100%, var(--nx-800) !important;
	color: #FFFFFF !important;
	border-color: var(--nx-800) !important;
	width: 100%;
}
html.nx-brand .cta-section .form-card .btn-primary:hover, html.nx-brand .cta-section .form-card .cta-submit:hover { background-size: 100% 100%, auto !important; }
html.nx-brand .cta-section .form-card p { color: var(--nx-soft) !important; }

/* ---------- Footer ---------- */
html.nx-brand footer { padding-top: clamp(64px, 7vw, 96px) !important; padding-bottom: clamp(140px, 16vw, 230px) !important; }
html.nx-brand footer::after {
	content: '';
	position: absolute;
	left: 5%; right: 5%; bottom: -1.2vw;
	height: clamp(90px, 13vw, 210px);
	background: url('../images/nepras-logo-white-crisp.png') left bottom / contain no-repeat;
	opacity: 0.06;
	pointer-events: none;
	z-index: -1;
}
html.nx-brand footer .footer-brand img, html.nx-brand footer img[alt="Nepras Technologies"] { filter: none !important; height: 40px !important; width: auto !important; }
html.nx-brand footer h5, html.nx-brand footer h5 a {
	color: #FFFFFF !important;
	font-family: var(--nx-head) !important;
	letter-spacing: 0.24em !important;
	font-size: 0.68rem !important;
}
html.nx-brand footer a, html.nx-brand footer p, html.nx-brand footer .footer-contact-item { color: var(--nx-300) !important; }
html.nx-brand footer a { transition: color 0.2s, padding-left 0.3s var(--nx-ease) !important; }
html.nx-brand footer a:hover { color: #FFFFFF !important; }
html.nx-brand footer .footer-top, html.nx-brand footer .footer-locations, html.nx-brand footer .footer-bottom { border-color: rgba(255,255,255,0.10) !important; }
html.nx-brand footer .footer-social a { border-radius: var(--nx-r-sm) !important; border-color: rgba(255,255,255,0.18) !important; }
html.nx-brand footer .footer-social a:hover { background: #FFFFFF !important; }
html.nx-brand footer .footer-social a:hover svg { fill: var(--nx-800) !important; stroke: var(--nx-800) !important; }

/* ---------- Homepage extras ---------- */
html.nx-brand .nx-local-card { background: var(--nx-800) !important; border: 0 !important; border-radius: var(--nx-r) !important; box-shadow: var(--nx-shadow-lg); overflow: hidden; }
html.nx-brand .nx-local-addr, html.nx-brand .nx-local-addr a { color: var(--nx-200) !important; }
html.nx-brand .nx-local-addr strong { color: #FFFFFF !important; }
html.nx-brand .nx-local-copy h3 { color: var(--nx-ink) !important; }
html.nx-brand .nx-local-copy p { color: var(--nx-soft) !important; }
html.nx-brand .nx-local, html.nx-brand .nx-topics { border: 0 !important; }
html.nx-brand .nx-topic h2 { color: var(--nx-ink) !important; }
html.nx-brand .nx-topic p, html.nx-brand .nx-topic li, html.nx-brand .nx-topic td { color: var(--nx-soft) !important; }
html.nx-brand .nx-topic li::before { color: var(--nx-800) !important; }

@media (min-width: 1000px) {
	html.nx-brand .services-grid, html.nx-brand .why-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	html.nx-brand .why-grid .why-card:nth-child(3n) { border-right: 0 !important; }
	html.nx-brand .why-grid .why-card:nth-last-child(-n+3) { border-bottom: 0 !important; }
	html.nx-brand .industries-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
}

/* ---------- Motion ---------- */
/* headline line-mask reveal (words wrapped by nx-brand.js) */
html.nx-brand .nx-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.1em; margin-bottom: -0.1em; }
html.nx-brand .nx-word > span { display: inline-block; transform: translateY(110%); transition: transform 1s var(--nx-ease); transition-delay: calc(var(--i, 0) * 40ms); }
html.nx-brand .nx-split-in .nx-word > span { transform: none; }

/* image wipe reveal */
html.nx-brand .nx-wipe { clip-path: inset(0 0 100% 0); transition: clip-path 1.2s var(--nx-ease); }
html.nx-brand .nx-wipe.nx-wiped { clip-path: inset(0 0 0 0); }

html.nx-brand .nx-reveal { transform: translateY(26px); transition: opacity 0.9s var(--nx-ease), transform 0.9s var(--nx-ease) !important; }
html.nx-brand .nx-reveal.nx-in { transform: none; }
html.nx-brand .section-heading.nx-reveal { transform: none; opacity: 1 !important; }

/* Pre-paint gate (nx-motion is set in head-tag.inc.php): hold animated elements in their start
   state until the deferred scripts take over, so nothing paints, vanishes, then animates in.
   Selectors mirror the reveal list in theme-effects.js and the split/wipe lists in nx-brand.js. */
html.nx-brand.nx-motion:not(.nx-ready) :is(.section-label, .section-sub, .service-card, .why-card, .industry-pill, .project-card,
	.stack-item, .process-node, .founder-grid, .testimonial-card, .faq-item, .badge-item, .form-card, .cta-copy,
	.cta-form-card, .sidebar-card, .info-card, .promise-box, .service-option, .price-card, .feature-card, .value-card,
	.team-card, .benefit-card, .process-card) { opacity: 0; transform: translateY(26px); }
html.nx-brand.nx-motion:not(.nx-ready) :is(.hero, .page-hero, .service-hero, .article-hero, .term-hero, .dict-hero, .blog-hero, .sm-hero) h1,
html.nx-brand.nx-motion:not(.nx-ready) .section-heading { opacity: 0 !important; }
html.nx-brand.nx-motion:not(.nx-ready) :is(.service-thumb, .project-thumb, .founder-photo, .nx-local-card iframe) { clip-path: inset(0 0 100% 0); }
html.nx-brand.nx-motion:not(.nx-ready) :is(.result-num, .stat-num, .sm-stat-num, .nx-count) { opacity: 0; }

/* counters keep a steady digit width while they count up */
html.nx-brand :is(.result-num, .stat-num, .sm-stat-num, .nx-count) { font-variant-numeric: tabular-nums; }

/* blog posts carry their own width-animated reading bar; the header's .nx-progress already does this job */
html.nx-brand .read-progress { display: none !important; }

@keyframes nxMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes nxRule { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes nxLines { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes nxWipe { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(-40px -40px -40px -40px); } }
@keyframes nxFloatIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes nxBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

@media (prefers-reduced-motion: reduce) {
	html.nx-brand .nx-marquee-track { animation: none !important; flex-wrap: wrap; width: auto; }
	html.nx-brand .hero-visual, html.nx-brand .hero-visual::before, html.nx-brand .hero-grid-bg,
	html.nx-brand .section-label::before, html.nx-brand .hero-eyebrow::before { animation: none !important; }
	html.nx-brand .nx-word > span { transform: none !important; transition: none !important; }
	html.nx-brand .nx-wipe { clip-path: none !important; }
	html.nx-brand .process-node::before { transform: none !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	html.nx-brand header nav { gap: 1.4rem !important; }
}
@media (max-width: 900px) {
	html.nx-brand { --nx-bar: 66px; }
	html.nx-brand .nx-topbar-loc { display: none; }
	html.nx-brand .nx-topbar-inner { justify-content: center; }
	html.nx-brand .nx-topbar-links { gap: 1.1rem; }
	html.nx-brand .nx-topbar-links a[href^="mailto"] { display: none; }
	html.nx-brand header .logo-wrap img { height: 34px !important; }
	html.nx-brand .hero-visual::before { inset: auto auto 16px 12px !important; font-size: 0.8rem; }
	html.nx-brand .why-card { border-right: 0 !important; }
	html.nx-brand .hero-grid-bg { background-size: calc((100% - 10%) / 2) 100% !important; }
}

/* ---------- Hero proportions (review pass) ---------- */
@media (min-width: 1000px) {
	html.nx-brand .hero { align-items: center !important; gap: clamp(40px, 5vw, 80px) !important; }
	html.nx-brand .hero h1 { font-size: clamp(2.6rem, 4.5vw, 4.4rem) !important; }
	html.nx-brand .hero-copy + .hero-visual { aspect-ratio: 1 / 1 !important; max-height: 560px; }
}
html.nx-brand .hero-visual img { object-position: center 30%; }
html.nx-brand .hero-visual::before { inset: 28px auto auto -22px !important; }
@media (max-width: 900px) { html.nx-brand .hero-visual::before { inset: 16px auto auto 12px !important; } }
html.nx-brand .process-flow { margin: 0 !important; max-width: 760px !important; }
html.nx-brand .industry-pill img { filter: grayscale(0.1) !important; }

/* ---------- Pointer interactions (headings + images) ---------- */
/* Headings: once revealed, the word masks open so words can lift toward the cursor */
html.nx-brand .nx-split-done .nx-word { overflow: visible; }
html.nx-brand .nx-split-done .nx-word > span {
	transition: transform 0.45s var(--nx-ease), color 0.35s ease;
	transition-delay: 0s;
	transform: translateY(var(--lift, 0px));
}
html.nx-brand .nx-split-done .nx-word.nx-near > span { color: var(--nx-500) !important; }
html.nx-brand .hero .nx-split-done .nx-word.nx-near > span,
html.nx-brand .nx-split-done em .nx-word.nx-near > span { color: var(--nx-700) !important; }
html.nx-brand .cta-section .nx-split-done .nx-word.nx-near > span,
html.nx-brand .testimonial-section .nx-split-done .nx-word.nx-near > span { color: var(--nx-200) !important; }
/* the eyebrow rule stretches while you're in the section */
html.nx-brand section:hover > .section-label::before,
html.nx-brand section:hover .hero-eyebrow::before { width: 58px !important; transition: width 0.6s var(--nx-ease); }
html.nx-brand .section-label::before, html.nx-brand .hero-eyebrow::before { transition: width 0.6s var(--nx-ease); }

/* Images: pan/zoom toward the pointer + soft light under it */
html.nx-brand .nx-pan { position: relative; overflow: hidden; }
html.nx-brand .nx-pan img {
	transform: translate3d(var(--px, 0px), calc(var(--py, 0px) + var(--sy, 0px)), 0) scale(var(--ps, 1.04)) !important;
	transition: transform 0.9s var(--nx-ease), filter 0.6s !important;
	will-change: transform;
}
html.nx-brand .nx-pan:hover img { --ps: 1.12; }
html.nx-brand .nx-shine {
	position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: radial-gradient(240px circle at var(--lx, 50%) var(--ly, 50%), rgba(255,255,255,0.28), rgba(255,255,255,0) 70%);
	opacity: 0;
	transition: opacity 0.4s ease;
	mix-blend-mode: soft-light;
}
html.nx-brand .nx-pan:hover .nx-shine { opacity: 1; }
html.nx-brand .industry-pill .nx-shine { z-index: 1; }

/* Hero photo: gentle 3D tilt */
html.nx-brand .hero-visual { transform-style: preserve-3d; transition: transform 0.8s var(--nx-ease); }
html.nx-brand .hero-visual.nx-tilting { transition: transform 0.15s linear; }

/* "View" cursor bubble over linked imagery: outer layer follows the pointer
   (moved by nx-brand.js with easing), inner layer scales in/out */
html.nx-brand .nx-cursor {
	position: fixed; left: 0; top: 0; z-index: 1003;
	width: 0; height: 0;
	pointer-events: none;
	will-change: transform;
}
html.nx-brand .nx-cursor-dot {
	position: absolute; left: -46px; top: -46px;
	width: 92px; height: 92px;
	border-radius: 50%;
	background: var(--nx-800);
	color: #FFFFFF;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--nx-head); font-weight: 600; font-size: 0.82rem; letter-spacing: 0.02em;
	transform: scale(0);
	transition: transform 0.4s var(--nx-ease);
	box-shadow: 0 16px 34px -14px rgba(20,36,70,0.7);
}
html.nx-brand .nx-cursor.nx-on .nx-cursor-dot { transform: scale(1); }

@media (prefers-reduced-motion: reduce), (pointer: coarse) {
	html.nx-brand .nx-cursor, html.nx-brand .nx-shine { display: none !important; }
	html.nx-brand .nx-pan img { transform: none !important; }
}

/* ---------- Rollout: readable body weight everywhere ---------- */
html.nx-brand p, html.nx-brand li, html.nx-brand td, html.nx-brand dd { font-weight: 400 !important; }

/* ---------- Rollout: templates that hard-code light text ---------- */
/* article bodies (blog posts, case studies) */
html.nx-brand .article-body p, html.nx-brand .article-body li, html.nx-brand .article-body td,
html.nx-brand .tools-table td, html.nx-brand .compare-table td, html.nx-brand .steps-list li,
html.nx-brand .example-box p, html.nx-brand .subtitle, html.nx-brand .testi-quote { color: var(--nx-text) !important; }
html.nx-brand .article-body h2, html.nx-brand .article-body h3, html.nx-brand .article-body h4,
html.nx-brand .article-body strong, html.nx-brand .tools-table td:first-child { color: var(--nx-ink) !important; }
html.nx-brand .article-body a { color: var(--nx-600) !important; text-decoration: underline; text-decoration-color: var(--nx-200); text-underline-offset: 3px; }
html.nx-brand .article-body a:hover { text-decoration-color: currentColor; }
html.nx-brand .article-body blockquote { border-left: 3px solid var(--nx-800) !important; background: var(--nx-50) !important; color: var(--nx-ink) !important; border-radius: 0 var(--nx-r-sm) var(--nx-r-sm) 0; }
html.nx-brand .tools-table thead th { color: var(--nx-500) !important; background: var(--nx-50) !important; }
html.nx-brand .tools-table, html.nx-brand .compare-table { border-color: var(--nx-line) !important; }
html.nx-brand .tools-table td, html.nx-brand .compare-table td, html.nx-brand .tools-table th { border-color: var(--nx-line) !important; }
/* sidebar service template */
html.nx-brand .section-body, html.nx-brand .sb-text p, html.nx-brand .hero-desc { color: var(--nx-soft) !important; }
html.nx-brand .sb-text h3 { color: var(--nx-ink) !important; }
html.nx-brand .sb-visual { background: var(--nx-50) !important; border-left: 1px solid var(--nx-line) !important; }
html.nx-brand .sb-check { color: var(--nx-text) !important; }
/* cards that used to flip navy on hover now stay white: keep their text navy */
html.nx-brand .related-card:hover h3, html.nx-brand .related-card:hover .related-title,
html.nx-brand .service-card:hover h3, html.nx-brand .cap-card:hover h3, html.nx-brand .sector-card:hover h4,
html.nx-brand .inc-card:hover h3, html.nx-brand .value-card:hover h3 { color: var(--nx-ink) !important; }
html.nx-brand .related-card:hover .rc-read, html.nx-brand .related-card:hover .rc-date,
html.nx-brand .related-card:hover .related-metric-label, html.nx-brand .service-card:hover p,
html.nx-brand .cap-card:hover p, html.nx-brand .sector-card:hover p, html.nx-brand .inc-card:hover p,
html.nx-brand .value-card:hover p { color: var(--nx-soft) !important; }
html.nx-brand .related-card:hover .rc-cat { color: var(--nx-800) !important; }
html.nx-brand .sector-card, html.nx-brand .inc-card { background: #FFFFFF !important; border: 1px solid var(--nx-line) !important; border-radius: var(--nx-r) !important; }
html.nx-brand .sector-card:hover, html.nx-brand .inc-card:hover, html.nx-brand .value-card:hover { background: #FFFFFF !important; border-color: var(--nx-line-strong) !important; box-shadow: var(--nx-shadow-lg) !important; transform: translateY(-5px); }
/* glossary dictionary + term pages */
html.nx-brand .term a { color: var(--nx-ink) !important; }
html.nx-brand .term-navigation .nav { color: var(--nx-600) !important; }
html.nx-brand .az-strip button, html.nx-brand .az button { color: var(--nx-800) !important; background: #FFFFFF !important; border: 1px solid var(--nx-line) !important; border-radius: var(--nx-r-sm) !important; }
html.nx-brand .az-strip button:hover, html.nx-brand .az-strip button.active, html.nx-brand .az button.active,
html.nx-brand .page-btn.active, html.nx-brand .dict-search-wrap .search-btn { background: var(--nx-800) !important; color: #FFFFFF !important; border-color: var(--nx-800) !important; }
html.nx-brand .code-body, html.nx-brand .code-body pre { background: var(--nx-900) !important; color: #E5E9F3 !important; border-radius: var(--nx-r-sm); }

/* Blog index: white sticky filter bar that tucks under the header */
html.nx-brand .filter-bar {
	background: rgba(255,255,255,0.96) !important;
	border-top: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
	top: 0 !important;
	transition: top 0.45s var(--nx-ease);
	flex-wrap: nowrap !important;
}
html.nx-brand.nx-scrolled:not(.nx-hide) .filter-bar { top: 66px !important; }
html.nx-brand .filter-tabs { flex-shrink: 1 !important; min-width: 0; }
html.nx-brand .filter-tab { color: var(--nx-soft) !important; font-family: var(--nx-head) !important; font-weight: 600 !important; letter-spacing: 0.1em !important; }
html.nx-brand .filter-tab:hover { color: var(--nx-ink) !important; }
html.nx-brand .filter-tab.active { color: var(--nx-800) !important; border-bottom-color: var(--nx-800) !important; }
html.nx-brand .search-input { background: var(--nx-50) !important; border: 1px solid var(--nx-line) !important; color: var(--nx-ink) !important; }
html.nx-brand .search-input::placeholder { color: #8A94AB !important; }
html.nx-brand .grid-title { font-weight: 700 !important; letter-spacing: -0.03em; color: var(--nx-ink); }
html.nx-brand .blog-hero-inner > * { opacity: 1 !important; animation: none !important; }
@media (max-width: 900px) { html.nx-brand .search-wrap { display: none !important; } }

/* Glossary index: white A-Z bar, brand type */
html.nx-brand .az-strip {
	background: rgba(255,255,255,0.96) !important;
	border-top: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
	box-shadow: none !important;
}
html.nx-brand .az-strip button {
	background: transparent !important;
	border: 0 !important;
	color: var(--nx-ink) !important;
	font-family: var(--nx-head) !important;
	font-weight: 600 !important;
	border-radius: var(--nx-r-sm) !important;
	transition: background 0.2s, color 0.2s !important;
}
html.nx-brand .az-strip button:hover { background: var(--nx-50) !important; color: var(--nx-800) !important; }
html.nx-brand .az-strip button.active { background: var(--nx-800) !important; color: #FFFFFF !important; }
html.nx-brand .dict-hero .tagline { font-style: normal !important; color: var(--nx-soft) !important; font-family: var(--nx-body) !important; }
html.nx-brand .letter-heading { color: var(--nx-ink) !important; border-color: var(--nx-800) !important; font-weight: 700 !important; letter-spacing: -0.04em; }
html.nx-brand .term-count { color: var(--nx-soft) !important; }
html.nx-brand .letter-group .term, html.nx-brand .term-item { border-color: var(--nx-line) !important; }

/* Case-study cards: dark illustration panels, toned to logo navy */
html.nx-brand .card-visual {
	--white: #FFFFFF; --ink: #FFFFFF; --muted: var(--nx-300); --gold: #FFFFFF; --gold-light: var(--nx-200);
	position: relative;
	isolation: isolate;
	background-color: var(--nx-800) !important;
}
html.nx-brand .card-visual > svg, html.nx-brand .card-visual > img { filter: saturate(0.25) brightness(1.18) contrast(0.95); }
html.nx-brand .card-ind-badge {
	z-index: 2;
	position: absolute;
	background: rgba(255,255,255,0.12) !important;
	border: 1px solid rgba(255,255,255,0.22) !important;
	color: #FFFFFF !important;
	border-radius: 4px !important;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}

/* Industry / service heroes with a photo */
html.nx-brand .nx-hero-img {
	border-radius: var(--nx-r) !important;
	border: 0 !important;
	box-shadow: var(--nx-shadow-lg) !important;
	filter: grayscale(1) contrast(1.06) brightness(1.04);
}
html.nx-brand .nx-cover-img, html.nx-brand .featured-image { border-radius: var(--nx-r) !important; border: 0 !important; box-shadow: var(--nx-shadow-lg) !important; }
html.nx-brand .hero-visual:not(:has(.nx-hero-img)):not(.hero-copy + .hero-visual)::after { content: none; }

/* In-page section menus (industry pages): white sticky bar under the header */
html.nx-brand .page-nav {
	background: rgba(255,255,255,0.96) !important;
	border-top: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
	top: 0 !important;
	transition: top 0.45s var(--nx-ease);
}
html.nx-brand.nx-scrolled:not(.nx-hide) .page-nav { top: 66px !important; }
html.nx-brand .page-nav a { color: var(--nx-soft) !important; font-family: var(--nx-head) !important; font-weight: 600 !important; }
html.nx-brand .page-nav a:hover { color: var(--nx-ink) !important; }
html.nx-brand .page-nav a.active { color: var(--nx-800) !important; border-bottom-color: var(--nx-800) !important; }

/* ---------- Rollout: remaining template components ---------- */
html.nx-brand .service-nav {
	background: rgba(255,255,255,0.96) !important;
	border-top: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
	top: 0 !important;
	transition: top 0.45s var(--nx-ease);
}
html.nx-brand.nx-scrolled:not(.nx-hide) .service-nav { top: 66px !important; }
html.nx-brand .service-nav a { color: var(--nx-soft) !important; font-family: var(--nx-head) !important; font-weight: 600 !important; }
html.nx-brand .service-nav a:hover { color: var(--nx-ink) !important; }
html.nx-brand .service-nav a.active { color: var(--nx-800) !important; border-bottom-color: var(--nx-800) !important; }

html.nx-brand .hero-glow-left, html.nx-brand .hero-glow-l, html.nx-brand .hero-glow-r,
html.nx-brand .hero-glow-c, html.nx-brand .page-hero-glow { display: none !important; }

/* deliberate navy accents: sidebar CTA cards, featured price cards, photo labels, mockups */
html.nx-brand .sidebar-cta-card, html.nx-brand .pricing-card.featured, html.nx-brand .office-label,
html.nx-brand .ecom-mockup, html.nx-brand .store-mockup, html.nx-brand .mockup-product {
	--white: #FFFFFF; --ink: #FFFFFF; --muted: var(--nx-300); --ink-muted: var(--nx-300);
	--gold: #FFFFFF; --gold-light: var(--nx-200); --gold-deep: #FFFFFF;
	--navy-mid: rgba(255,255,255,0.06); --navy: rgba(255,255,255,0.04); --navy-deep: var(--nx-800);
	--border: rgba(255,255,255,0.18); --border-subtle: rgba(255,255,255,0.10); --card-line: rgba(255,255,255,0.12);
	background: var(--nx-800) !important;
	color: #FFFFFF;
	border-color: transparent !important;
}
html.nx-brand .sidebar-cta-card { border-radius: var(--nx-r) !important; box-shadow: var(--nx-shadow-lg) !important; }
html.nx-brand .sidebar-cta-card h3, html.nx-brand .sidebar-cta-card h4, html.nx-brand .pricing-card.featured h3,
html.nx-brand .office-label-text { color: #FFFFFF !important; }
html.nx-brand .sidebar-cta-card p, html.nx-brand .pricing-card.featured p, html.nx-brand .pricing-card.featured li { color: var(--nx-200) !important; }
html.nx-brand .office-label-top { color: var(--nx-300) !important; }
html.nx-brand .office-label { border-radius: var(--nx-r-sm) !important; background: rgba(20,36,70,0.88) !important; }
html.nx-brand .sidebar-cta-card .btn-primary, html.nx-brand .pricing-card.featured .btn-primary {
	background: linear-gradient(var(--nx-100), var(--nx-100)) no-repeat 0 0 / 0% 100%, #FFFFFF !important;
	color: var(--nx-800) !important; border-color: #FFFFFF !important;
}

/* more cards that used to darken on hover */
html.nx-brand .metric-box, html.nx-brand .industry-card, html.nx-brand .port-card, html.nx-brand .feat-cell,
html.nx-brand .pricing-card:not(.featured), html.nx-brand .outcome-card, html.nx-brand .hm-card, html.nx-brand .ps-card {
	background: #FFFFFF !important;
	border: 1px solid var(--nx-line) !important;
	border-radius: var(--nx-r) !important;
	box-shadow: var(--nx-shadow) !important;
	transition: transform 0.55s var(--nx-ease), box-shadow 0.55s var(--nx-ease), border-color 0.3s !important;
}
html.nx-brand .metric-box:hover, html.nx-brand .industry-card:hover, html.nx-brand .port-card:hover, html.nx-brand .feat-cell:hover,
html.nx-brand .pricing-card:not(.featured):hover, html.nx-brand .outcome-card:hover {
	background: #FFFFFF !important;
	transform: translateY(-5px);
	border-color: var(--nx-line-strong) !important;
	box-shadow: var(--nx-shadow-lg) !important;
}
html.nx-brand .compare-table tr:hover td { background: var(--nx-50) !important; }

/* Sitemap page: light search + jump bar */
html.nx-brand .sm-search, html.nx-brand .sm-search input {
	background: #FFFFFF !important;
	border-color: var(--nx-line-strong) !important;
	color: var(--nx-ink) !important;
	border-radius: var(--nx-r-sm) !important;
}
html.nx-brand .sm-search input::placeholder { color: #8A94AB !important; }
html.nx-brand .sm-jump-wrap {
	background: rgba(255,255,255,0.96) !important;
	border-top: 1px solid var(--nx-line) !important;
	border-bottom: 1px solid var(--nx-line) !important;
	top: 0 !important;
	transition: top 0.45s var(--nx-ease);
}
html.nx-brand.nx-scrolled:not(.nx-hide) .sm-jump-wrap { top: 66px !important; }
html.nx-brand .jump-pill { color: var(--nx-soft) !important; font-family: var(--nx-head) !important; font-weight: 600 !important; background: transparent !important; }
html.nx-brand .jump-pill:hover { color: var(--nx-ink) !important; }
html.nx-brand .jump-pill.active { color: var(--nx-800) !important; border-bottom-color: var(--nx-800) !important; }
html.nx-brand .sm-search::placeholder { color: #8A94AB !important; }

/* Hero media sizing (review pass 2) */
html.nx-brand .hero-visual .nx-hero-img { max-height: 500px; object-fit: cover; }
html.nx-brand .hero-visual:not(:has(img)) { background: transparent !important; box-shadow: none !important; }
html.nx-brand .filter-tabs, html.nx-brand .page-nav, html.nx-brand .service-nav, html.nx-brand .sm-jump-wrap { max-width: 100%; overflow-x: auto !important; }
html.nx-brand .filter-bar { max-width: 100%; }
@media (max-width: 900px) { html.nx-brand .filter-tabs { width: 100%; } }
html.nx-brand .cta-form-note, html.nx-brand .nl-sidebar-note { color: var(--nx-soft) !important; }
html.nx-brand .article-body h2, html.nx-brand .article-body h3 { font-weight: 650 !important; letter-spacing: -0.03em !important; }

/* Headings never get a narrower box than the page gave them, so centred
   layouts stay centred; long lines are balanced instead of capped. */
html.nx-brand .section-heading { text-wrap: balance; }

/* Inline text links inside notes and legal copy (2026-10-13) */
html.nx-brand .project-note a,
html.nx-brand .nx-sample-note a,
html.nx-brand .lg-body a { color: var(--nx-800); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
html.nx-brand .project-note a:hover,
html.nx-brand .lg-body a:hover { color: var(--nx-500); }

/* Sample-project step tags: the templates never styled these, so the
   labels ran together as one string (2026-10-13). */
html.nx-brand .step-detail { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:0.75rem; }
html.nx-brand .step-pill { display:inline-block; font-size:0.72rem; line-height:1.4; padding:0.3rem 0.6rem; border:1px solid var(--nx-line-strong); border-radius:var(--nx-r-sm); color:var(--nx-text); background:var(--nx-50); }

/* Service pages reuse .why-grid for a two-part layout (feature list + metrics
   panel). The ruled 3-column card grid above is for .why-card grids only;
   applied here it squeezed the list into one third and left a blank column. */
html.nx-brand .why-grid:not(:has(> .why-card)) {
	border: 0 !important;
	border-radius: 0 !important;
	overflow: visible;
	background: transparent !important;
	gap: 3rem 4rem !important;
	align-items: start;
}
@media (min-width: 1000px) {
	html.nx-brand .why-grid:not(:has(> .why-card)) { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) !important; }
}
html.nx-brand .why-item { padding: 1.25rem 1.35rem !important; gap: 1rem; }
html.nx-brand .why-grid:not(:has(> .why-card)) .why-item { margin-bottom: 1rem !important; }
html.nx-brand .metrics-panel .metric-val { min-width: 7.25rem; }

/* ---------- Location-page hero enquiry form (inc/hero-enquiry.inc.php) ---------- */
@media (min-width: 1025px) {
	html.nx-brand .service-hero .hero-inner { grid-template-columns: minmax(0, 1fr) 390px !important; gap: 3.5rem !important; }
}
html.nx-brand .hero-enquiry { padding: 1.6rem 1.6rem 1.25rem !important; margin: 0 !important; box-shadow: 0 24px 48px -28px rgba(20,36,70,0.35) !important; }
html.nx-brand .hero-enquiry-label {
	font-family: var(--nx-head); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--nx-soft); margin-bottom: 0.7rem;
}
html.nx-brand .hero-enquiry .cta-form-heading { font-size: 1.45rem !important; margin-bottom: 0.35rem !important; }
html.nx-brand .hero-enquiry .cta-form-sub { margin-bottom: 1.1rem !important; }
html.nx-brand .hero-enquiry .cta-form { gap: 0.65rem; }
html.nx-brand .hero-enquiry-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }
html.nx-brand .hero-enquiry textarea.cta-input { resize: vertical; min-height: 64px; line-height: 1.5; }
html.nx-brand .hero-enquiry-facts {
	list-style: none; margin: 1.1rem 0 0; padding: 0.95rem 0 0; border-top: 1px solid var(--nx-line);
	display: flex; flex-wrap: wrap; gap: 0.45rem 1.1rem; font-size: 0.74rem; color: var(--nx-soft);
}
html.nx-brand .hero-enquiry-facts strong { font-family: var(--nx-head); font-weight: 600; color: var(--nx-ink); }
@media (max-width: 1024px) {
	html.nx-brand .hero-enquiry { max-width: 560px; }
}
@media (max-width: 420px) {
	html.nx-brand .hero-enquiry { padding: 1.25rem 1.1rem 1rem !important; }
	html.nx-brand .hero-enquiry-row { grid-template-columns: 1fr; }
}

/* ---------- Form feedback (assets/js/nx-forms.js) ---------- */
html.nx-brand [aria-invalid="true"] { border-color: #B42318 !important; box-shadow: 0 0 0 3px rgba(180,35,24,0.12) !important; }
.nx-form-status { margin: 0.1rem 0 0; font-size: 0.78rem; line-height: 1.5; min-height: 0; }
.nx-form-status:empty { display: none; }
.nx-form-status.is-error { color: #B42318; }
.nx-form-status.is-ok { color: #1E7B4D; }
.nx-form-done { text-align: center; padding: 1.25rem 0.5rem 0.5rem; }
.nx-form-done-icon {
	width: 46px; height: 46px; margin: 0 auto 0.9rem; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	border: 2px solid var(--nx-800, #142446); color: var(--nx-800, #142446);
}
.nx-form-done strong { display: block; font-family: var(--nx-head, inherit); font-size: 1.1rem; color: var(--nx-ink, #142446); margin-bottom: 0.4rem; }
.nx-form-done p { font-size: 0.85rem; line-height: 1.6; color: var(--nx-soft, #5E6A86); margin: 0; }
.nx-enquiry-note {
	position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 1003;
	max-width: min(560px, calc(100% - 32px)); padding: 0.85rem 1.1rem; border-radius: 8px;
	background: #142446; color: #fff; font-size: 0.88rem; line-height: 1.5; box-shadow: 0 16px 40px -16px rgba(20,36,70,0.5);
}
