/* ============================================================
   NOWFORCE AI — ENTERPRISE DESIGN SYSTEM v3
   Controlled Brutalism × Swiss Grid Discipline
   Palette: Midnight Navy + Warm Cream + Brushed Gold (#C9A24A)
   Dual-tone: dark navy sections + warm cream content sections
   ============================================================ */

:root {
  /* —— dark surfaces (navy) —— */
  --bg:          #0A1838;   /* midnight navy — primary canvas */
  --surface:     #0A1838;
  --surface-2:   #0D1E46;   /* lighter navy for panels */
  --surface-3:   #112454;   /* hover state navy */
  --line:        rgba(255,255,255,0.10);
  --line-strong: rgba(255,255,255,0.18);
  --line-bg:     rgba(255,255,255,0.035);

  /* —— light surfaces (cream) —— */
  --cream:       #F5F2EC;
  --cream-2:     #EBE8E2;
  --cream-3:     #E0DDD7;
  --line-dark:   rgba(10,24,56,0.10);
  --line-dark-s: rgba(10,24,56,0.18);

  /* —— ink —— */
  --white:       #FFFFFF;
  --ink:         #FFFFFF;    /* ink on dark */
  --ink-2:       #C8D0E0;
  --ink-dark:    #0A1838;    /* ink on light */
  --muted:       #A8B2C8;    /* secondary on dark — WCAG AA on navy */
  --muted-2:     rgba(255,255,255,0.70);
  --muted-3:     rgba(255,255,255,0.48);
  --muted-light: #3D4456;    /* secondary on cream — WCAG AAA on cream */

  /* —— accent (brushed gold — used sparingly) —— */
  --accent:      #C9A24A;
  --accent-ink:  #0A1838;
  --accent-soft: rgba(201,162,74,0.12);
  --accent-hover:#E6C875;

  /* —— legacy aliases (inline var(--red) auto-migrates) —— */
  --red:         #0D1E46;
  --red-dark:    #112454;
  --black:       #0A1838;

  /* —— scale —— */
  --nav-h:       56px;
  --r-fast:      150ms;
  --r-mid:       400ms;
  --r-slow:      700ms;
  --ease:        cubic-bezier(.2,.7,.2,1);
}

/* ——————————————————————————————————————————————
   RESET
   —————————————————————————————————————————————— */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html, body {
  background: var(--bg);
  color: var(--ink);
  font-family: 'Inter', 'Barlow', system-ui, -apple-system, sans-serif;
  font-feature-settings: "ss01","cv11","kern","liga";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body.nf-scroll { overflow-y:auto; }
img, svg, video { display:block; max-width:100%; height: auto; }
button { font:inherit; cursor:pointer; }
a { color:inherit; text-decoration:none; transition:color var(--r-fast) var(--ease); }
::selection { background:var(--accent); color:var(--accent-ink); }

/* ——————————————————————————————————————————————
   TYPE SYSTEM
   —————————————————————————————————————————————— */
.nf-headline {
  font-family: 'Barlow Condensed', 'Inter', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 0.92;
  color: var(--ink);
}
.nf-subhead {
  font-family: 'Barlow Condensed', 'Inter', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--ink);
}
.nf-body {
  font-family: 'Inter', 'Barlow', sans-serif;
  font-weight: 400;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--muted);
  max-width: 64ch;
}
.nf-label {
  font-family: 'Inter', 'Barlow', sans-serif;
  font-weight: 500;
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}
.nf-stat-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--ink);
  font-feature-settings: "tnum";
}
.nf-nav-link {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.invert {
  background: transparent;
  color: inherit;
  display: inline;
  padding: 0;
  border-bottom: 2px solid var(--accent);
  padding-bottom: 0.04em;
}

/* ——————————————————————————————————————————————
   BACKGROUND GRID + RULES
   —————————————————————————————————————————————— */
.grid-overlay {
  position: fixed; inset:0;
  pointer-events:none; z-index:0;
  display:grid;
  grid-template-columns: repeat(12,1fr);
}
.grid-col {
  border-right: 1px solid var(--line-bg);
  height:100%;
}
.grid-col:first-child { border-left: 1px solid var(--line-bg); }

.h-rules {
  position: fixed; inset:0;
  pointer-events:none; z-index:0;
  display:flex; flex-direction:column; justify-content:space-between;
}
.h-rule { width:100%; height:1px; background:var(--line-bg); }

/* Light-mode overrides */
.page-case-studies .grid-col,
.page-case-studies .grid-col:first-child,
.page-light .grid-col,
.page-light .grid-col:first-child { border-color: rgba(10,24,56,0.035); }
.page-case-studies .h-rule,
.page-light .h-rule { background: rgba(10,24,56,0.035); }

/* ——————————————————————————————————————————————
   SHELL
   —————————————————————————————————————————————— */
.nf-shell {
  position:relative; z-index:1;
  min-height:100vh;
  display:flex; flex-direction:column;
  padding-top: var(--nav-h);
}
.page-index .nf-shell {
  min-height:100vh;
  padding-bottom:0;
}

/* ——————————————————————————————————————————————
   NAV — midnight navy with gold logo
   —————————————————————————————————————————————— */
.nf-nav {
  position:fixed; top:0; left:0; right:0;
  height: var(--nav-h);
  z-index:20;
  background: rgba(10,24,56,0.88);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom:1px solid var(--line-strong);
}
.page-case-studies .nf-nav {
  background: rgba(245,242,236,0.92);
  color: var(--ink-dark);
  border-bottom-color: var(--line-dark);
}
.nf-nav__grid {
  display:grid; grid-template-columns: repeat(12,1fr);
  height:100%; align-items:stretch;
}
.nf-nav__logo {
  grid-column: span 2;
  display:flex; align-items:center; gap:0.7rem;
  padding: 0 1.25rem;
  background: transparent;
  border-right: 1px solid var(--line);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 0.92rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}
.nf-nav__logo-img {
  width: 32px;
  height: 28px;
  flex-shrink: 0;
  object-fit: contain;
}
.nf-nav__logo-word { font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; white-space:nowrap; }
.page-case-studies .nf-nav__logo {
  background: transparent;
  color: var(--ink-dark);
  border-right-color: var(--line-dark);
}

.nf-nav__links {
  grid-column: span 7;
  display:flex; align-items:center;
  gap: 2.25rem;
  padding: 0 1.5rem;
  border-right: 1px solid var(--line);
}
.page-case-studies .nf-nav__links { border-right-color: var(--line-dark); }

.nf-nav__link {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted-2);
  position: relative;
  padding: 4px 0;
  transition: color var(--r-fast) var(--ease);
}
.nf-nav__link::after {
  content:"";
  position:absolute; left:0; right:0; bottom:-2px;
  height:1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--r-mid) var(--ease);
}
.nf-nav__link:hover { color: var(--ink); }
.nf-nav__link:hover::after { transform: scaleX(1); }
.nf-nav__link.is-active { color: var(--ink); }
.nf-nav__link.is-active::after { transform: scaleX(1); }

.page-case-studies .nf-nav__link { color: var(--muted-light); }
.page-case-studies .nf-nav__link:hover,
.page-case-studies .nf-nav__link.is-active { color: var(--ink-dark); }

.nf-nav__loc {
  grid-column: span 3;
  display:flex; align-items:center; justify-content:flex-end;
  padding: 0 1.5rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--muted-3);
}
.page-case-studies .nf-nav__loc { color: var(--muted-light); }

.nf-nav__ham {
  display:none;
  grid-column: span 2;
  align-items:center; justify-content:center;
  background:transparent; border:none;
  flex-direction:column; gap:5px; padding:0;
}
.nf-nav__ham span {
  display:block; width:22px; height:1.5px; background: var(--ink);
}
.page-case-studies .nf-nav__ham span { background: var(--ink-dark); }

/* mobile drawer */
.nf-mnav {
  display:none;
  position:fixed; inset:0; z-index:25;
  background: var(--bg);
  color: var(--ink);
  flex-direction:column;
  padding: 5rem 2rem 2rem;
  gap: 1rem;
}
.nf-mnav.is-open { display:flex; }
.nf-mnav__close {
  position:absolute; top:1rem; right:1rem;
  background:none; border:none; color:var(--ink);
  font-size:1.5rem;
}
.nf-mnav a {
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:1.4rem;
  letter-spacing:0.08em; text-transform:uppercase;
  border-bottom:1px solid var(--line);
  padding: 0.85rem 0;
}

/* ——————————————————————————————————————————————
   LAYOUT PRIMITIVES
   —————————————————————————————————————————————— */
.nf-12 {
  display:grid;
  grid-template-columns: repeat(12,1fr);
  border-bottom: 1px solid var(--line-strong);
}
.nf-12--no-border { border-bottom:none; }
.page-case-studies .nf-12 { border-bottom-color: var(--line-dark); }

.nf-black {
  background: var(--surface);
  color: var(--ink);
}

/* Cream sections (light within dark pages) */
.nf-cream {
  background: var(--cream);
  color: var(--ink-dark);
}
.nf-cream .nf-headline,
.nf-cream .nf-subhead,
.nf-cream .nf-stat-num { color: var(--ink-dark); }
.nf-cream .nf-body { color: var(--muted-light); }
.nf-cream .nf-label { color: var(--muted-light); }
.nf-cream .nf-badge { border-color: var(--line-dark-s); color: var(--muted-light); }
.nf-cream .invert { border-bottom-color: var(--accent); }

.nf-strip {
  position: relative;
  background: var(--surface-2);
  border-right: 1px solid var(--line-strong);
  min-height: 120px;
  display:flex; align-items:flex-end;
  padding: 1.25rem;
}
.page-case-studies .nf-strip {
  background: var(--cream-2);
  border-right-color: var(--line-dark);
}
.nf-strip__text {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: var(--muted);
  white-space: nowrap;
}
.page-case-studies .nf-strip__text { color: var(--muted-light); }

.bg-letter {
  position: absolute;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 42vw;
  line-height: 0.78;
  color: rgba(255,255,255,0.03);
  pointer-events:none;
  user-select:none;
  left: -2vw; top: 50%;
  transform: translateY(-50%);
  z-index: 0;
}
.bg-letter--index   { left:-3vw; top:48%; }
.bg-letter--contact { left:-3vw; top:50%; }
.bg-letter--on-black { color: rgba(255,255,255,0.04); }
.page-case-studies .bg-letter { color: rgba(10,24,56,0.04); }

/* ——————————————————————————————————————————————
   HERO POSTER (Home)
   —————————————————————————————————————————————— */
.nf-poster {
  display: grid;
  grid-template-columns: 56px 1fr 460px;
  min-height: calc(100vh - var(--nav-h));
  border-bottom: 1px solid var(--line-strong);
}
.nf-poster__strip {
  background: var(--surface-2);
  border-right: 1px solid var(--line-strong);
  display:flex; align-items:flex-end; padding:1.25rem 0.75rem;
}
.nf-poster__strip .nf-strip__text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 0.68rem;
  letter-spacing: 0.24em;
}
.nf-poster__center {
  position: relative;
  padding: 6rem 3rem 3rem;
  border-right: 1px solid var(--line-strong);
  display:flex; flex-direction:column; justify-content:center;
  overflow: hidden;
}
.nf-poster__right {
  display: grid;
  grid-template-rows: 1fr 1fr;
}
.nf-poster__panel-black {
  background: var(--surface);
  padding: 2rem;
  border-bottom: 1px solid var(--line-strong);
  display:flex; flex-direction:column; justify-content:center;
}
.nf-poster__panel-red {
  background: var(--surface-2);
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
}

.nf-stat-cell {
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding: 1.5rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
}
.nf-stat-cell:nth-child(2n) { border-right: none; }
.nf-stat-cell:nth-child(n+3) { border-bottom: none; }

.nf-eyebrow {
  font-family:'Inter',sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1.75rem;
  display:flex; align-items:center; gap:0.75rem;
}
.nf-eyebrow::before {
  content:"";
  display:inline-block;
  width:32px; height:1px;
  background: var(--accent);
}

.nf-hero-lines {
  font-family:'Barlow Condensed',sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.025em;
  line-height:0.88;
  font-size: clamp(3.2rem, 8.4vw, 8.4rem);
  color: var(--ink);
  position: relative;
  z-index: 1;
}
.nf-hero-lines span { display:block; }
.nf-hero-lines .line-force { color: var(--ink); }

.nf-hero-sub {
  margin-top: 2rem;
  max-width: 52ch;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--muted);
  position: relative;
  z-index: 1;
}

.nf-badge-row {
  display:flex; flex-wrap:wrap; gap: 0.4rem;
  margin-top: 1.25rem;
}
.nf-badge {
  font-family:'Inter',sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--line-strong);
  color: var(--muted);
  border-radius: 2px;
}

/* ——————————————————————————————————————————————
   BOTTOM RAIL + FOOTER
   —————————————————————————————————————————————— */
.nf-pagenum {
  font-family:'Inter',sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted-3);
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.page-case-studies .nf-pagenum {
  color: var(--muted-light);
  border-color: var(--line-dark);
  background: var(--cream);
}

.nf-bottom {
  display:grid;
  grid-template-columns: 320px 1fr;
  align-items:stretch;
  background: var(--surface);
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
}
.page-case-studies .nf-bottom {
  background: var(--cream);
  border-color: var(--line-dark);
}

.nf-bottom__cta {
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding: 1.4rem 1.75rem;
  background: linear-gradient(180deg, #D9B25C 0%, #C9A24A 50%, #B08A36 100%);
  color: var(--accent-ink);
  font-family:'Inter',sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-right: 1px solid var(--line-strong);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 1px 0 rgba(0,0,0,0.4);
  transition: filter var(--r-fast) var(--ease), transform var(--r-fast) var(--ease);
}
.nf-bottom__cta:hover { filter: brightness(1.08); }
.nf-bottom__cta .arr {
  display:inline-block;
  transition: transform var(--r-mid) var(--ease);
}
.nf-bottom__cta:hover .arr { transform: translateX(6px); }
.page-case-studies .nf-bottom__cta {
  background: var(--ink-dark);
  color: var(--accent);
  border-right-color: var(--line-dark);
  box-shadow: none;
}
.page-case-studies .nf-bottom__cta:hover { filter: brightness(1.15); }

.nf-bottom__tick {
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 0 1rem;
}
.nf-bottom__track {
  display:flex; gap: 2.5rem;
  animation: nf-marquee 60s linear infinite;
  white-space: nowrap;
}
.nf-bottom__item {
  font-family:'Inter',sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted-3);
}
.page-case-studies .nf-bottom__item { color: var(--muted-light); }
@keyframes nf-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.nf-footer {
  display:grid;
  grid-template-columns: 1fr 2fr 1fr;
  align-items:center;
  padding: 1.1rem 1.75rem;
  background: var(--surface);
  font-family:'Inter',sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted-3);
  border-top: 1px solid var(--line);
}
.page-case-studies .nf-footer {
  background: var(--cream);
  color: var(--muted-light);
  border-top-color: var(--line-dark);
}
.nf-footer__center { display:flex; gap: 2rem; justify-content:center; }
.nf-footer__center a {
  color: var(--muted-2);
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: color var(--r-fast) var(--ease), border-color var(--r-fast) var(--ease);
}
.nf-footer__center a:hover {
  color: var(--ink);
  border-bottom-color: var(--accent);
}
.page-case-studies .nf-footer__center a,
.page-light .nf-footer__center a { color: var(--muted-light); }
.page-case-studies .nf-footer__center a:hover,
.page-light .nf-footer__center a:hover { color: var(--ink-dark); border-bottom-color: var(--accent); }
.nf-footer__right { text-align:right; cursor:pointer; }
.nf-footer__right:hover { color: var(--ink); }
.page-case-studies .nf-footer__right:hover { color: var(--ink-dark); }

/* ——————————————————————————————————————————————
   CASE STUDIES (full cream page variant)
   —————————————————————————————————————————————— */
.page-case-studies {
  background: var(--cream);
  color: var(--ink-dark);
}
.page-case-studies .nf-body { color: var(--muted-light); }
.page-case-studies .nf-headline,
.page-case-studies .nf-subhead,
.page-case-studies .nf-stat-num { color: var(--ink-dark); }
.page-case-studies .nf-label { color: var(--muted-light); }
.page-case-studies .nf-black {
  background: var(--bg);
  color: var(--ink);
}
.page-case-studies .nf-black .nf-body { color: var(--muted); }
.page-case-studies .nf-black .nf-headline,
.page-case-studies .nf-black .nf-subhead { color: var(--ink); }
.page-case-studies .nf-cs-testimonial {
  padding: 2rem 1.5rem;
  border-right: 1px solid var(--line-dark);
}
.page-case-studies .nf-cs-testimonial .nf-body { color: var(--muted-light); }
.page-case-studies .nf-cs-testimonial .nf-label { color: var(--muted-light); }

/* ——————————————————————————————————————————————
   COMPONENTS
   —————————————————————————————————————————————— */
.nf-cell-service {
  padding: 2rem 1.75rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  transition: background var(--r-fast) var(--ease);
}
.nf-cell-service:hover { background: var(--surface-2); }

.nf-row-hover { transition: background var(--r-fast) var(--ease); }
.nf-row-hover:hover { background: var(--surface-3) !important; }

.nf-form-label {
  display:block;
  font-family:'Inter',sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.55rem;
}
.nf-input, .nf-textarea, .nf-select {
  width: 100%;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--line-strong);
  color: var(--ink);
  padding: 0.95rem 1rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  border-radius: 2px;
  transition: border-color var(--r-fast) var(--ease), background var(--r-fast) var(--ease);
}
.nf-input:focus, .nf-textarea:focus, .nf-select:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(201,162,74,0.05);
}
.nf-textarea { min-height: 140px; resize: vertical; }
.nf-input::placeholder, .nf-textarea::placeholder { color: var(--muted-3); }

.nf-page-pill {
  display:inline-flex; align-items:center; gap:0.5rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--line-strong);
  font-family:'Inter',sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  border-radius: 2px;
}
.nf-muted-soft { color: var(--muted-3); }

.nf-outline-text {
  -webkit-text-stroke: 1px var(--ink);
  color: transparent;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.88;
  font-size: clamp(3rem, 9vw, 8rem);
}
.page-case-studies .nf-outline-text,
.page-light .nf-outline-text { -webkit-text-stroke-color: var(--ink-dark); }

/* Blog */
.nf-blog-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:0; }
.nf-blog-card {
  padding: 2rem 1.75rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  transition: background var(--r-fast) var(--ease);
}
.nf-blog-card:hover { background: var(--surface-2); }
.nf-blog-filter { display:flex; gap:0.5rem; padding:1rem 1.5rem; border-bottom:1px solid var(--line); }
.nf-filter-row { display:flex; gap:0.5rem; flex-wrap:wrap; padding:1rem 1.5rem; }
.nf-filter-btn {
  padding: 0.5rem 0.9rem;
  background: transparent;
  border: 1px solid var(--line-strong);
  color: var(--muted);
  font-family:'Inter',sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: all var(--r-fast) var(--ease);
}
.nf-filter-btn:hover { color: var(--ink); border-color: var(--ink); }
.nf-filter-btn.is-active {
  background: var(--accent); color: var(--accent-ink); border-color: var(--accent);
}
.page-case-studies .nf-filter-btn { border-color: var(--line-dark-s); color: var(--muted-light); }
.page-case-studies .nf-filter-btn:hover { color: var(--ink-dark); border-color: var(--ink-dark); }
.page-case-studies .nf-filter-btn.is-active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

/* Case grid */
.nf-case-grid { display:grid; grid-template-columns: repeat(2,1fr); gap:0; }
.nf-case-card {
  padding: 2.25rem 2rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent;
  transition: background var(--r-fast) var(--ease);
}
.nf-case-card:hover { background: var(--surface-2); }
.page-case-studies .nf-case-card,
.page-light .nf-case-card {
  border-right-color: var(--line-dark);
  border-bottom-color: var(--line-dark);
}
.page-case-studies .nf-case-card:hover,
.page-light .nf-case-card:hover { background: rgba(10,24,56,0.03); }
.nf-case-card.is-hidden { display:none; }
.nf-cs-header { padding: 4rem 2rem 2rem; }

/* Author */
.nf-author-block { display:flex; align-items:center; gap:0.85rem; }
.nf-author-initial {
  width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  background: var(--accent);
  color: var(--accent-ink);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
}
.nf-share-row { display:flex; gap:0.75rem; }

.nf-career-why {
  display:grid; grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--line);
}

/* ——————————————————————————————————————————————
   CONTACT PAGE
   —————————————————————————————————————————————— */
.nf-contact-hero {
  display: grid;
  grid-template-columns: 56px 1fr;
  border-bottom: 1px solid var(--line-strong);
  min-height: 50vh;
}
.page-light .nf-contact-hero,
.page-case-studies .nf-contact-hero { border-bottom-color: var(--line-dark-s); }

.nf-contact-head {
  position: relative;
  padding: 5rem 2.5rem 2rem;
  overflow: hidden;
  border-left: 1px solid var(--line-strong);
}
.page-light .nf-contact-head,
.page-case-studies .nf-contact-head { border-left-color: var(--line-dark-s); }

.nf-contact-giant {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.92;
  font-size: clamp(3rem, 10vw, 9rem);
  color: var(--ink);
  position: relative;
  z-index: 1;
}
.page-light .nf-contact-giant,
.page-case-studies .nf-contact-giant { color: var(--ink-dark); }

.nf-contact-info {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line-strong);
  border-left: 1px solid var(--line-strong);
}
.page-light .nf-contact-info,
.page-case-studies .nf-contact-info {
  border-top-color: var(--line-dark-s);
  border-left-color: var(--line-dark-s);
}
.nf-contact-cell {
  padding: 1.75rem 1.5rem;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.nf-contact-cell:last-child { border-right: none; }
.page-light .nf-contact-cell,
.page-case-studies .nf-contact-cell { border-right-color: var(--line-dark); }

.nf-contact-cell__value {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: 0;
  text-transform: none;
}
.page-light .nf-contact-cell__value,
.page-case-studies .nf-contact-cell__value { color: var(--ink-dark); }
.nf-contact-cell__value a { color: inherit; border-bottom: 1px solid var(--accent); padding-bottom: 1px; }
.nf-contact-cell__value a:hover { color: var(--accent); }

/* Form section — two-column grid */
.nf-form-section {
  display: grid;
  grid-template-columns: 2fr 1fr;
  border-bottom: 1px solid var(--line-strong);
}
.page-light .nf-form-section,
.page-case-studies .nf-form-section { border-bottom-color: var(--line-dark-s); }

.nf-form-main {
  padding: 3rem 2.5rem;
  border-right: 1px solid var(--line-strong);
}
.page-light .nf-form-main,
.page-case-studies .nf-form-main { border-right-color: var(--line-dark-s); }

.nf-form-main__title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 1.75rem;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 0.5rem;
}
.page-light .nf-form-main__title,
.page-case-studies .nf-form-main__title { color: var(--ink-dark); }

.nf-form-main__desc {
  color: var(--muted);
  font-size: 0.95rem;
  margin-bottom: 2rem;
  max-width: 52ch;
}
.page-light .nf-form-main__desc,
.page-case-studies .nf-form-main__desc { color: var(--muted-light); }

.nf-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.nf-field-full { grid-column: 1 / -1; }

.nf-form-aside {
  padding: 3rem 2rem;
  background: var(--surface-2);
}
.page-light .nf-form-aside,
.page-case-studies .nf-form-aside { background: var(--cream-2); }

.nf-form-aside__title {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1.5rem;
}
.page-light .nf-form-aside__title,
.page-case-studies .nf-form-aside__title { color: var(--muted-light); }

.nf-form-aside ul {
  list-style: none;
  margin: 0; padding: 0;
}
.nf-form-aside li {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  color: var(--ink);
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.nf-form-aside li:last-child { border-bottom: none; }
.nf-form-aside li::before {
  content: "";
  display: inline-block;
  width: 14px; height: 1px;
  background: var(--accent);
  flex-shrink: 0;
  margin-top: 10px;
}
.page-light .nf-form-aside li,
.page-case-studies .nf-form-aside li {
  color: var(--ink-dark);
  border-bottom-color: var(--line-dark);
}

/* Form inputs on cream pages */
.page-light .nf-input,
.page-light .nf-textarea,
.page-light .nf-select,
.page-case-studies .nf-input,
.page-case-studies .nf-textarea,
.page-case-studies .nf-select {
  background: var(--white);
  border-color: var(--line-dark-s);
  color: var(--ink-dark);
}
.page-light .nf-input:focus,
.page-light .nf-textarea:focus,
.page-light .nf-select:focus,
.page-case-studies .nf-input:focus,
.page-case-studies .nf-textarea:focus,
.page-case-studies .nf-select:focus {
  border-color: var(--accent);
  background: var(--white);
}
.page-light .nf-input::placeholder,
.page-light .nf-textarea::placeholder,
.page-case-studies .nf-input::placeholder,
.page-case-studies .nf-textarea::placeholder {
  color: rgba(10,24,56,0.35);
}
.page-light .nf-form-label,
.page-case-studies .nf-form-label { color: var(--muted-light); }

.nf-form-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  margin-top: 2rem;
  padding: 1.25rem 1.75rem;
  background: linear-gradient(180deg, #D9B25C 0%, #C9A24A 50%, #B08A36 100%);
  color: var(--accent-ink);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 1px 0 rgba(0,0,0,0.4);
  transition: filter var(--r-fast) var(--ease);
}
.nf-form-submit:hover { filter: brightness(1.08); }
.nf-form-submit .arr { transition: transform var(--r-mid) var(--ease); }
.nf-form-submit:hover .arr { transform: translateX(6px); }

.nf-form-disclaimer {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 1rem;
  text-align: left;
}
.page-light .nf-form-disclaimer,
.page-case-studies .nf-form-disclaimer { color: var(--muted-light); }

/* FAQ */
.nf-faq {
  padding: 3rem 2.5rem;
  border-bottom: 1px solid var(--line-strong);
}
.page-light .nf-faq,
.page-case-studies .nf-faq { border-bottom-color: var(--line-dark-s); }

.nf-faq__title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  letter-spacing: -0.015em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 2.5rem;
}
.page-light .nf-faq__title,
.page-case-studies .nf-faq__title { color: var(--ink-dark); }

.nf-faq-item {
  padding: 1.75rem 0;
  border-top: 1px solid var(--line);
}
.nf-faq-item:last-child { border-bottom: 1px solid var(--line); }
.page-light .nf-faq-item,
.page-case-studies .nf-faq-item { border-top-color: var(--line-dark); }
.page-light .nf-faq-item:last-child,
.page-case-studies .nf-faq-item:last-child { border-bottom-color: var(--line-dark); }

.nf-faq-q {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 0.75rem;
}
.page-light .nf-faq-q,
.page-case-studies .nf-faq-q { color: var(--ink-dark); }

/* ——————————————————————————————————————————————
   ABOUT PAGE
   —————————————————————————————————————————————— */
.nf-about-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.5rem;
  margin-top: 2.25rem;
}
.nf-about-meta__v {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--ink);
  margin-top: 0.35rem;
}

.nf-about-phases {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid rgba(255,255,255,0.18);
}
.nf-about-phase {
  padding: 1.5rem 1.25rem;
  border-right: 1px solid rgba(255,255,255,0.14);
}
.nf-about-phase:last-child { border-right: none; }
.nf-about-phase__h {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  font-size: 1.45rem;
  color: var(--ink);
  margin: 0.55rem 0 0.65rem;
}
.nf-about-phase__p {
  font-family: 'Inter', sans-serif;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--muted);
}

.nf-about-practices {
  padding: 2.25rem 2.5rem;
  text-align: center;
  border-top: 1px solid rgba(10,24,56,0.12);
  border-bottom: 1px solid rgba(10,24,56,0.12);
}
.nf-about-practices .nf-subhead {
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  color: var(--ink-dark);
}
/* When on a dark page (e.g. not page-light), flip borders and text */
body:not(.page-light):not(.page-case-studies) .nf-about-practices {
  border-top-color: var(--line-strong);
  border-bottom-color: var(--line-strong);
}
body:not(.page-light):not(.page-case-studies) .nf-about-practices .nf-subhead {
  color: var(--ink);
}

.nf-prose {
  max-width: 70ch;
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--ink-2);
}
.nf-prose h2, .nf-prose h3 {
  font-family: 'Barlow Condensed', sans-serif;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
}
.nf-prose h2 { font-size: 1.8rem; }
.nf-prose h3 { font-size: 1.25rem; }
.nf-prose p { margin-bottom: 1rem; color: var(--muted); }
.nf-prose a { color: var(--accent); border-bottom: 1px solid var(--accent-soft); }
.nf-prose ul, .nf-prose ol { margin: 0.5rem 0 1rem 1.25rem; color: var(--muted); }
.nf-prose li { margin-bottom: 0.35rem; }

/* ——————————————————————————————————————————————
   REVEAL
   —————————————————————————————————————————————— */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--r-slow) var(--ease), transform var(--r-slow) var(--ease);
}
.reveal.in-view { opacity: 1; transform: none; }
.delay-1 { transition-delay: 0.06s; }
.delay-2 { transition-delay: 0.14s; }
.delay-3 { transition-delay: 0.22s; }
.delay-4 { transition-delay: 0.30s; }
.delay-5 { transition-delay: 0.38s; }

.nf-hero-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 900ms var(--ease), transform 900ms var(--ease);
}
.nf-hero-reveal.in-view { opacity: 1; transform: none; }

/* ——————————————————————————————————————————————
   SKIP LINK + FOCUS
   —————————————————————————————————————————————— */
.nf-skip {
  position: absolute; left: -9999px; top: auto;
  width: 1px; height: 1px; overflow: hidden;
}
.nf-skip:focus {
  left: 1rem; top: 1rem;
  width: auto; height: auto;
  padding: 0.6rem 1rem;
  background: var(--accent);
  color: var(--accent-ink);
  z-index: 9999;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.page-case-studies :focus-visible { outline-color: var(--ink-dark); }
.nf-bottom__cta:focus-visible,
.nf-input:focus-visible,
.nf-textarea:focus-visible,
.nf-select:focus-visible { outline-offset: 0; }

/* ——————————————————————————————————————————————
   RESPONSIVE
   —————————————————————————————————————————————— */
/* ——————————————————————————————————————————————
   RESPONSIVE — 5-breakpoint system
   Desktop   ≥1200px   full 12-col grid, all features
   Laptop    1024-1199 slight compression, still 12-col
   Tablet    768-1023  reduced columns, stacked panels
   Mobile    480-767   single column, tight typography
   Small     <480      minimum-viable mobile
   —————————————————————————————————————————————— */

/* —— Fluid base type (scales smoothly between breakpoints) —— */
@media (max-width: 1199px) {
  .nf-hero-lines { font-size: clamp(2.8rem, 7.8vw, 7rem); }
  .nf-poster { grid-template-columns: 48px 1fr 400px; }
  .nf-poster__center { padding: 5rem 2.25rem 2.25rem; }
  .nf-form-section { grid-template-columns: 1.8fr 1fr; }
  .nf-form-main { padding: 2.5rem 2rem; }
  .nf-form-aside { padding: 2.5rem 1.75rem; }
  .bg-letter { font-size: 38vw; }
}

/* —— TABLET (≤1023px) — stack the heavy side rails, keep the grid —— */
@media (max-width: 1023px) {
  :root { --nav-h: 54px; }

  /* Nav — hide secondary rail, keep logo + links */
  .nf-nav__loc { display: none; }
  .nf-nav__links { grid-column: span 10; gap: 1.5rem; padding: 0 1rem; }
  .nf-nav__link { font-size: 0.68rem; letter-spacing: 0.12em; }

  /* Hero — stack navy right panel under center */
  .nf-poster { grid-template-columns: 48px 1fr; grid-template-rows: 1fr auto; }
  .nf-poster__strip { grid-row: 1 / 3; }
  .nf-poster__center { border-right: none; border-bottom: 1px solid var(--line-strong); padding: 4.5rem 2rem 2.5rem; }
  .nf-poster__right { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .nf-poster__panel-black { border-bottom: none; border-right: 1px solid var(--line-strong); }
  .nf-poster__panel-red { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }

  .nf-hero-lines { font-size: clamp(2.6rem, 8vw, 5.5rem); }
  .nf-hero-sub { font-size: 1rem; max-width: 44ch; }

  .page-index .nf-shell { height: auto; min-height: 100vh; overflow: visible; }

  /* 12-col sections — collapse strip, expand main */
  .nf-12 {
    grid-template-columns: 40px 1fr;
  }
  .nf-12 > .nf-strip {
    grid-column: 1 / 2 !important;
    min-height: auto !important;
  }
  .nf-12 > :not(.nf-strip) {
    grid-column: 2 / -1 !important;
  }
  /* Content cells that originally used span 4/5/6/7 stack */
  .nf-12 > [style*="grid-column:span 4"],
  .nf-12 > [style*="grid-column:span 5"],
  .nf-12 > [style*="grid-column:span 6"],
  .nf-12 > [style*="grid-column:span 7"],
  .nf-12 > [style*="grid-column:span 8"],
  .nf-12 > [style*="grid-column:span 11"] {
    grid-column: 2 / -1 !important;
    border-right: none !important;
  }

  /* Contact page */
  .nf-contact-hero { grid-template-columns: 40px 1fr; min-height: auto; }
  .nf-contact-head { padding: 3.5rem 2rem 1.5rem; }
  .nf-contact-giant { font-size: clamp(3rem, 11vw, 7rem); }
  .nf-contact-info { grid-template-columns: repeat(3, 1fr); }
  .nf-contact-cell { padding: 1.25rem 1.25rem; }

  .nf-form-section { grid-template-columns: 1fr; }
  .nf-form-main { border-right: none; border-bottom: 1px solid var(--line-strong); padding: 2.5rem 2rem; }
  .page-light .nf-form-main,
  .page-case-studies .nf-form-main { border-bottom-color: var(--line-dark-s); }
  .nf-form-aside { padding: 2.5rem 2rem; }

  /* About page — phases go from 5 across to 2 across on tablet, with wrapping */
  .nf-about-phases {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
  }
  .nf-about-phase { border-right: 1px solid rgba(255,255,255,0.14); border-bottom: 1px solid rgba(255,255,255,0.14); }
  .nf-about-phase:nth-child(3n) { border-right: none; }
  .nf-about-phase:nth-last-child(-n+2) { /* last 2 get no bottom border */ }

  /* Case studies / blog grids → 2 up */
  .nf-blog-grid,
  .nf-case-grid { grid-template-columns: repeat(2, 1fr); }

  /* Career why grid */
  .nf-career-why { grid-template-columns: 1fr; }

  /* Page numbers and bottom rail get tighter */
  .nf-pagenum { padding: 0.85rem 1.25rem; }
  .nf-bottom { grid-template-columns: 260px 1fr; }
  .nf-bottom__cta { padding: 1.2rem 1.25rem; font-size: 0.72rem; letter-spacing: 0.14em; }

  /* Solution / service secondary row from 5 cols to 3 */
  .nf-sol-row { grid-template-columns: repeat(3, 1fr) !important; }

  .bg-letter { font-size: 55vw; opacity: 0.6; }
}

/* —— MOBILE (≤767px) — single column, tight, fast —— */
@media (max-width: 767px) {
  :root { --nav-h: 52px; }

  /* Nav — logo full + hamburger */
  .nf-nav__logo { grid-column: span 8; padding: 0 1rem; font-size: 0.88rem; }
  .nf-nav__logo-img { width: 28px; height: 24px; }
  .nf-nav__links { display: none; }
  .nf-nav__loc { display: none; }
  .nf-nav__ham {
    display: flex;
    grid-column: span 4;
    justify-content: flex-end;
    padding-right: 1rem;
    min-height: 44px;  /* touch target */
  }

  /* Mobile drawer — larger tap areas */
  .nf-mnav { padding: 5.5rem 1.5rem 2rem; }
  .nf-mnav a { font-size: 1.5rem; padding: 1rem 0; min-height: 44px; }

  /* Hero — one column, no left strip */
  .nf-poster { grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .nf-poster__strip { display: none; }
  .nf-poster__center { padding: 4rem 1.25rem 2rem; border-bottom: 1px solid var(--line-strong); }
  .nf-poster__right { grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .nf-poster__panel-black { padding: 1.75rem 1.25rem; border-bottom: 1px solid var(--line-strong); border-right: none; }
  .nf-poster__panel-red { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }

  .nf-eyebrow { font-size: 0.65rem; letter-spacing: 0.18em; margin-bottom: 1.25rem; }
  .nf-eyebrow::before { width: 24px; }
  .nf-hero-lines { font-size: clamp(2.2rem, 12vw, 3.8rem); line-height: 0.92; }
  .nf-hero-sub { font-size: 0.95rem; margin-top: 1.5rem; max-width: none; }

  /* 12-col — pure stack */
  .nf-12 { grid-template-columns: 1fr; }
  .nf-12 > .nf-strip {
    display: none !important;  /* vertical strip makes no sense on mobile */
  }
  .nf-12 > [style*="grid-column"] {
    grid-column: 1 / -1 !important;
    border-right: none !important;
    padding: 1.75rem 1.25rem !important;
  }

  /* Stat cells */
  .nf-stat-cell { padding: 1.1rem 1rem; }
  .nf-stat-cell:nth-child(2n) { border-right: none; }
  .nf-stat-cell .nf-stat-num { font-size: 2rem !important; }

  /* Badges — allow wrap */
  .nf-badge-row { gap: 0.35rem; }
  .nf-badge { font-size: 0.58rem; padding: 0.3rem 0.55rem; }

  /* Contact page */
  .nf-contact-hero { grid-template-columns: 1fr; }
  .nf-contact-hero > .nf-strip { display: none; }
  .nf-contact-head {
    padding: 3rem 1.25rem 1.5rem;
    border-left: none !important;
  }
  .nf-contact-giant { font-size: clamp(2.5rem, 14vw, 4.5rem); }
  .nf-contact-info {
    grid-template-columns: 1fr;
    border-left: none !important;
  }
  .nf-contact-cell {
    border-right: none;
    border-bottom: 1px solid var(--line);
    padding: 1.25rem;
  }
  .page-light .nf-contact-cell,
  .page-case-studies .nf-contact-cell { border-bottom-color: var(--line-dark); }
  .nf-contact-cell:last-child { border-bottom: none; }

  /* Form */
  .nf-form-main { padding: 2rem 1.25rem; }
  .nf-form-main__title { font-size: 1.45rem; }
  .nf-form-grid { grid-template-columns: 1fr; gap: 1rem; }
  .nf-field-full { grid-column: 1 / -1; }
  .nf-input, .nf-textarea, .nf-select {
    padding: 0.85rem 0.9rem;
    font-size: 16px; /* prevent iOS zoom */
    min-height: 44px; /* touch target */
  }
  .nf-form-submit { padding: 1.1rem 1.25rem; font-size: 0.72rem; letter-spacing: 0.14em; min-height: 44px; }
  .nf-form-aside { padding: 2rem 1.25rem; }
  .nf-form-aside__title { margin-bottom: 1rem; }
  .nf-form-aside li { font-size: 0.88rem; padding: 0.7rem 0; }

  /* FAQ */
  .nf-faq { padding: 2rem 1.25rem; }
  .nf-faq__title { font-size: 1.6rem; margin-bottom: 1.75rem; }
  .nf-faq-item { padding: 1.25rem 0; }
  .nf-faq-q { font-size: 1rem; }
  .nf-faq-item .nf-body { font-size: 0.9rem; }

  /* About phases — 2 columns max on mobile */
  .nf-about-phases { grid-template-columns: repeat(2, 1fr); }
  .nf-about-phase { padding: 1.25rem 1rem; border-right: 1px solid rgba(255,255,255,0.14); }
  .nf-about-phase:nth-child(2n) { border-right: none; }
  .nf-about-phase__h { font-size: 1.15rem; }
  .nf-about-practices { padding: 1.5rem 1.25rem; }
  .nf-about-practices .nf-subhead { font-size: 0.72rem; letter-spacing: 0.12em; }

  /* Blog/case grids — stack */
  .nf-blog-grid,
  .nf-case-grid { grid-template-columns: 1fr; }
  .nf-blog-card,
  .nf-case-card { padding: 1.75rem 1.25rem; border-right: none; }

  .nf-filter-row { padding: 0.85rem 1.25rem; gap: 0.4rem; }
  .nf-filter-btn { padding: 0.55rem 0.85rem; min-height: 40px; }

  /* Solution/service secondary row → stack */
  .nf-sol-row { grid-template-columns: 1fr !important; }
  .nf-sol-row > a { border-right: none !important; border-bottom: 1px solid var(--line); }

  /* Bottom rail + footer */
  .nf-pagenum { padding: 0.75rem 1.25rem; font-size: 0.62rem; }
  .nf-bottom { grid-template-columns: 1fr; }
  .nf-bottom__cta {
    border-right: none;
    border-bottom: 1px solid var(--line-strong);
    padding: 1.15rem 1.25rem;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    min-height: 44px;
  }
  .page-light .nf-bottom__cta,
  .page-case-studies .nf-bottom__cta { border-bottom-color: var(--line-dark-s); }
  .nf-bottom__tick { padding: 0.85rem 1rem; }
  .nf-bottom__item { font-size: 0.62rem; letter-spacing: 0.14em; }

  .nf-footer {
    grid-template-columns: 1fr;
    gap: 0.6rem;
    padding: 1.25rem 1rem;
    text-align: center;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
  }
  .nf-footer__center { flex-wrap: wrap; gap: 1rem; justify-content: center; }
  .nf-footer__right { text-align: center; }

  /* Big background letter — reduce */
  .bg-letter { font-size: 80vw; opacity: 0.5; left: -8vw; top: 52%; }

  /* Typography — enforce sensible body size */
  .nf-body { font-size: 0.92rem; line-height: 1.6; }
  .nf-label { font-size: 0.62rem; letter-spacing: 0.18em; }
  .nf-headline { letter-spacing: -0.015em; }

  /* Any inline-styled grid children reset */
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(2,1fr)"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

/* —— SMALL PHONES (≤479px) — the absolute minimum floor —— */
@media (max-width: 479px) {
  .nf-nav__logo { font-size: 0.82rem; gap: 0.45rem; letter-spacing: 0.1em; }
  .nf-nav__logo-img { width: 24px; height: 20px; }

  .nf-hero-lines { font-size: clamp(2rem, 13vw, 3rem); }
  .nf-hero-sub { font-size: 0.9rem; }

  .nf-contact-giant { font-size: clamp(2.2rem, 15vw, 3.5rem); }

  .nf-poster__panel-red { grid-template-columns: 1fr; grid-template-rows: auto; }
  .nf-stat-cell:nth-child(n) {
    border-right: none;
    border-bottom: 1px solid var(--line);
  }
  .nf-stat-cell:last-child { border-bottom: none; }

  .nf-about-phases { grid-template-columns: 1fr; }
  .nf-about-phase { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.14); }
  .nf-about-phase:last-child { border-bottom: none; }

  .bg-letter { font-size: 100vw; opacity: 0.4; }

  /* Footer legal links get their own line each for tap accuracy */
  .nf-footer__center { flex-direction: column; gap: 0.75rem; }
  .nf-footer__center a { padding: 0.35rem 0; display: inline-block; }
}

/* —— Reduced motion —— */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .nf-bottom__track { animation: none; }
  .reveal, .nf-hero-reveal { opacity: 1; transform: none; }
}

/* —— Print —— */
@media print {
  .nf-nav, .nf-mnav, .nf-bottom, .grid-overlay, .h-rules, .bg-letter { display: none; }
  html, body { background: white; color: black; }
  .nf-headline, .nf-subhead { color: black; }
  .nf-body { color: #333; }
  a { color: black; text-decoration: underline; }
}

/* —— .page-light alias (cream pages: about, methodology, contact) —— */
.page-light .grid-col,
.page-light .grid-col:first-child,
.page-light .grid-col,
.page-light .grid-col:first-child { border-color: rgba(10,24,56,0.035); }
.page-light .h-rule,
.page-light .h-rule { background: rgba(10,24,56,0.035); }
.page-light .nf-nav {
  background: rgba(245,242,236,0.92);
  color: var(--ink-dark);
  border-bottom-color: var(--line-dark);
}
.page-light .nf-nav__logo {
  background: transparent;
  color: var(--ink-dark);
  border-right-color: var(--line-dark);
}
.page-light .nf-nav__links { border-right-color: var(--line-dark); }
.page-light .nf-nav__link { color: var(--muted-light); }
.page-light .nf-nav__link:hover,
.page-light .nf-nav__link.is-active { color: var(--ink-dark); }
.page-light .nf-nav__loc { color: var(--muted-light); }
.page-light .nf-nav__ham span { background: var(--ink-dark); }
.page-light .nf-12 { border-bottom-color: var(--line-dark); }
.page-light .nf-strip {
  background: var(--cream-2);
  border-right-color: var(--line-dark);
}
.page-light .nf-strip__text { color: var(--muted-light); }
.page-light .bg-letter { color: rgba(10,24,56,0.04); }
.page-light .nf-pagenum {
  color: var(--muted-light);
  border-color: var(--line-dark);
  background: var(--cream);
}
.page-light .nf-bottom {
  background: var(--cream);
  border-color: var(--line-dark);
}
.page-light .nf-bottom__cta {
  background: var(--ink-dark);
  color: var(--accent);
  border-right-color: var(--line-dark);
  box-shadow: none;
}
.page-light .nf-bottom__cta:hover { filter: brightness(1.15); }
.page-light .nf-bottom__item { color: var(--muted-light); }
.page-light .nf-footer {
  background: var(--cream);
  color: var(--muted-light);
  border-top-color: var(--line-dark);
}
.page-light .nf-footer__center a,
.page-light .nf-footer__center a { color: var(--muted-light); }
.page-light .nf-footer__center a:hover,
.page-light .nf-footer__center a:hover { color: var(--ink-dark); border-bottom-color: var(--accent); }
.page-light .nf-footer__right:hover { color: var(--ink-dark); }
.page-light {
  background: var(--cream);
  color: var(--ink-dark);
}
.page-light .nf-body { color: var(--muted-light); }
.page-light .nf-headline,
.page-light .nf-subhead,
.page-light .nf-stat-num { color: var(--ink-dark); }
.page-light .nf-label { color: var(--muted-light); }
.page-light .nf-black {
  background: var(--bg);
  color: var(--ink);
}
.page-light .nf-black .nf-body { color: var(--muted); }
.page-light .nf-black .nf-headline,
.page-light .nf-black .nf-subhead { color: var(--ink); }
.page-light .nf-cs-testimonial {
  padding: 2rem 1.5rem;
  border-right: 1px solid var(--line-dark);
}
.page-light .nf-cs-testimonial .nf-body { color: var(--muted-light); }
.page-light .nf-cs-testimonial .nf-label { color: var(--muted-light); }
.page-light .nf-outline-text,
.page-light .nf-outline-text { -webkit-text-stroke-color: var(--ink-dark); }
.page-light .nf-filter-btn { border-color: var(--line-dark-s); color: var(--muted-light); }
.page-light .nf-filter-btn:hover { color: var(--ink-dark); border-color: var(--ink-dark); }
.page-light .nf-filter-btn.is-active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.page-light .nf-contact-hero { border-bottom-color: var(--line-dark-s); }
.page-light .nf-contact-head { border-left-color: var(--line-dark-s); }
.page-light .nf-contact-giant { color: var(--ink-dark); }
.page-light .nf-contact-info {
  border-top-color: var(--line-dark-s);
  border-left-color: var(--line-dark-s);
}
.page-light .nf-contact-cell { border-right-color: var(--line-dark); }
.page-light .nf-contact-cell__value { color: var(--ink-dark); }
.page-light .nf-form-section { border-bottom-color: var(--line-dark-s); }
.page-light .nf-form-main { border-right-color: var(--line-dark-s); }
.page-light .nf-form-main__title { color: var(--ink-dark); }
.page-light .nf-form-main__desc { color: var(--muted-light); }
.page-light .nf-form-aside { background: var(--cream-2); }
.page-light .nf-form-aside__title { color: var(--muted-light); }
.page-light .nf-form-aside li {
  color: var(--ink-dark);
  border-bottom-color: var(--line-dark);
}
.page-light .nf-input,
.page-light .nf-textarea,
.page-light .nf-select {
  background: var(--white);
  border-color: var(--line-dark-s);
  color: var(--ink-dark);
}
.page-light .nf-input:focus,
.page-light .nf-textarea:focus,
.page-light .nf-select:focus {
  border-color: var(--accent);
  background: var(--white);
}
.page-light .nf-input::placeholder,
.page-light .nf-textarea::placeholder {
  color: rgba(10,24,56,0.35);
}
.page-light .nf-form-label { color: var(--muted-light); }
.page-light .nf-form-disclaimer { color: var(--muted-light); }
.page-light .nf-faq { border-bottom-color: var(--line-dark-s); }
.page-light .nf-faq__title { color: var(--ink-dark); }
.page-light .nf-faq-item { border-top-color: var(--line-dark); }
.page-light .nf-faq-item:last-child { border-bottom-color: var(--line-dark); }
.page-light .nf-faq-q { color: var(--ink-dark); }
.page-light) .nf-about-practices {
  border-top-color: var(--line-strong);
  border-bottom-color: var(--line-strong);
}
.page-light) .nf-about-practices .nf-subhead {
  color: var(--ink);
}
.page-light :focus-visible { outline-color: var(--ink-dark); }
