:root { --nl-navy: #050B15; --nl-panel: #0e1a2b; --nl-green: #38D98A; --nl-teal: #39C6D6; --nl-white: #FFFFFF; --nl-slate-300: #BFC9D1; --nl-divider-height: 3px; --nl-section-divider: linear-gradient(90deg, var(--nl-green), var(--nl-teal) 50%, var(--nl-green)); --nl-funnel-hero-size: clamp(3rem, 4.6vw, 4.5rem); --nl-motion-tab: 150ms; --nl-motion-reveal: 240ms; }
.nl-kicker { align-items: center; background: rgba(56,217,138,.11); border-left: 4px solid var(--nl-green); color: var(--nl-green); display: inline-flex; font: 900 clamp(.92rem, 1.1vw, 1.08rem)/1.2 Inter, sans-serif; letter-spacing: .18em; margin: 0 0 1rem; min-height: 2rem; padding: .42rem .82rem; text-transform: uppercase; }
.nl-reading .nl-kicker { background: rgba(56,217,138,.11); }
.nl-card-eyebrow { align-items:center; align-self:flex-start; background:rgba(56,217,138,.09); border-left:3px solid var(--nl-green); color:var(--nl-green); display:inline-flex; font:900 .72rem/1.2 Inter,sans-serif; letter-spacing:.15em; margin:0 0 .5rem; padding:.28rem .55rem; text-transform:uppercase; width:fit-content !important; }
.nl-elevated-card { transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease; }.nl-elevated-card:hover { border-color:var(--nl-green) !important; box-shadow:0 18px 38px rgba(0,0,0,.22),0 0 25px rgba(56,217,138,.09); transform:translateY(-4px); }@media (prefers-reduced-motion:reduce){.nl-elevated-card{transition:none}.nl-elevated-card:hover{transform:none}}
.nl-site-nav { background: var(--nl-navy); color: var(--nl-white); font: 600 14px/1.2 Inter, sans-serif; position: relative; }
.nl-site-nav::after, .nl-site-footer__main::after { background: var(--nl-section-divider); content: ''; display: block; height: var(--nl-divider-height); left: 0; position: absolute; right: 0; }
.nl-site-nav::after { bottom: 0; }
.nl-site-nav__inner, .nl-site-footer__inner { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.nl-site-nav__inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.nl-wordmark { color: var(--nl-white); font: 900 clamp(1.7rem, 3vw, 2.3rem)/1 Inter, sans-serif; letter-spacing: -.065em; text-decoration: none; }
.nl-wordmark span { color: var(--nl-green); }
.nl-site-nav__links { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 18px; }
.nl-site-nav a { color: inherit; text-decoration: none; } .nl-site-nav a:hover, .nl-site-nav a:focus-visible { color: var(--nl-green); }
.nl-site-nav a.nl-wordmark, .nl-site-nav a.nl-wordmark:hover, .nl-site-nav a.nl-wordmark:focus-visible, .nl-site-footer a.nl-wordmark, .nl-site-footer a.nl-wordmark:hover, .nl-site-footer a.nl-wordmark:focus-visible { color: var(--nl-white) !important; text-decoration: none !important; }
.nl-site-nav a.nl-wordmark span, .nl-site-nav a.nl-wordmark:hover span, .nl-site-nav a.nl-wordmark:focus-visible span, .nl-site-footer a.nl-wordmark span, .nl-site-footer a.nl-wordmark:hover span, .nl-site-footer a.nl-wordmark:focus-visible span { color: var(--nl-green) !important; }
.nl-site-nav__links .nl-nav-cta, .nl-site-nav__links .nl-nav-cta:hover, .nl-site-nav__links .nl-nav-cta:focus-visible { background: var(--nl-green); border-radius: 999px; color: var(--nl-navy) !important; font-weight: 900; letter-spacing: .08em; padding: .75rem 1rem; text-decoration: none; text-transform: uppercase; }
.nl-site-nav__links .nl-nav-cta:hover, .nl-site-nav__links .nl-nav-cta:focus-visible { background: var(--nl-teal); }
/* One CTA token: brand-green actions always carry dark navy text, including hover. */
[class~="bg-nl-green"], [class~="bg-[#38D98A]"],
a[class~="bg-nl-green"], button[class~="bg-nl-green"], input[type="submit"][class~="bg-nl-green"],
a[class~="bg-[#38D98A]"], button[class~="bg-[#38D98A]"], input[type="submit"][class~="bg-[#38D98A]"],
a.nl-button, button.nl-button, input[type="submit"].nl-button,
a.btn-primary, button.btn-primary, input[type="submit"].btn-primary {
  background-color: var(--nl-green) !important;
  color: var(--nl-navy) !important;
}
a[class~="bg-nl-green"]:hover, a[class~="bg-nl-green"]:focus-visible,
button[class~="bg-nl-green"]:hover, button[class~="bg-nl-green"]:focus-visible,
a[class~="bg-[#38D98A]"]:hover, a[class~="bg-[#38D98A]"]:focus-visible,
button[class~="bg-[#38D98A]"]:hover, button[class~="bg-[#38D98A]"]:focus-visible,
a.nl-button:hover, a.nl-button:focus-visible, button.nl-button:hover, button.nl-button:focus-visible,
a.btn-primary:hover, a.btn-primary:focus-visible, button.btn-primary:hover, button.btn-primary:focus-visible {
  background-color: var(--nl-teal) !important;
  color: var(--nl-navy) !important;
}
.nl-site-footer { background: var(--nl-navy); color: var(--nl-slate-300); font: 400 16px/1.55 Inter, sans-serif; margin-top: 0; position: relative; }
.nl-site-footer::before { content: none; }
.nl-site-footer__main { background: var(--nl-panel); padding: 56px 0 40px; position: relative; }.nl-site-footer__main::after { bottom: 0; }.nl-site-footer__grid { display: grid; gap: 32px; grid-template-columns: 1.35fr 1fr 1fr; }
.nl-site-footer h2 { color: var(--nl-white) !important; font: 400 .8rem/1.2 Inter, sans-serif !important; letter-spacing: .14em !important; margin: 0 0 16px !important; text-transform: uppercase !important; }.nl-site-footer p { margin: 0 0 12px; }.nl-site-footer p, .nl-site-footer li { line-height: 1.55 !important; }.nl-site-footer ul { list-style: none; margin: 0; padding: 0; }.nl-site-footer li { margin: 0 0 10px; }.nl-site-footer a { color: var(--nl-slate-300); text-decoration: none; }.nl-site-footer a:hover, .nl-site-footer a:focus-visible { color: var(--nl-white); text-decoration: underline; text-underline-offset: .2em; }
.nl-site-footer__tagline { color: var(--nl-green); font-style: italic; }.nl-pride-badge { display: inline-block; line-height: 0; margin-left: auto; position: relative; transition: filter .24s ease; }.nl-pride-badge::after { background: radial-gradient(circle at 22% 27%, rgba(255,255,255,.95) 0 1px, transparent 2px), radial-gradient(circle at 75% 20%, rgba(255,218,84,.9) 0 1px, transparent 2px), radial-gradient(circle at 83% 70%, rgba(85,202,255,.9) 0 1px, transparent 2px), radial-gradient(circle at 16% 78%, rgba(255,81,136,.9) 0 1px, transparent 2px); content: ''; inset: -8px; opacity: 0; pointer-events: none; position: absolute; transition: opacity .24s ease; }.nl-pride-badge img { display: block; position: relative; z-index: 1; }.nl-pride-badge:hover { filter: drop-shadow(0 0 4px rgba(255, 81, 136, .68)) drop-shadow(0 0 8px rgba(255, 218, 84, .52)) drop-shadow(0 0 12px rgba(85, 202, 255, .5)); }.nl-pride-badge:hover::after { opacity: 1; }.nl-pride-badge:focus-visible { border-radius: 10px; outline: 2px solid var(--nl-green); outline-offset: 3px; }
.nl-site-footer__legal { border: 0; padding: 27px 0 32px; }.nl-site-footer__legal-row { display: grid; gap: 14px 20px; grid-template-columns: 1fr; }.nl-site-footer__legal-row > div:first-child { grid-column: 1 / -1; }.nl-site-footer__legal-links { display: flex; flex-wrap: wrap; gap: 16px; grid-column: 1 / -1; width: 100%; }
@media (max-width: 820px) { .nl-site-nav__inner { align-items: flex-start; flex-direction: column; gap: 14px; padding: 18px 0; }.nl-site-nav__links { gap: 12px; justify-content: flex-start; }.nl-site-footer__grid { grid-template-columns: 1fr; }.nl-site-footer__legal { padding-right: 0; } }

/*
 * Exactly one divider owns each boundary: the bottom of each top-level
 * content section. Nested sections and legacy utility borders cannot add a
 * second line. The pseudo-element is viewport-width even when its section is
 * a constrained reading column.
 */
main > header, main > section, body > section { position: relative; }
main > header, main > section, body > section { border-bottom-width: 0 !important; border-top-width: 0 !important; }
main > header::after, main > section::after, body > section::after { background: var(--nl-section-divider); bottom: 0; content: ''; height: var(--nl-divider-height); left: 50%; pointer-events: none; position: absolute; right: auto; transform: translateX(-50%); width: 100vw; z-index: 2; }

/* Phase A reference page: home uses the dark-dominant surface system.
   Article, glossary and legal pages remain the reserved light reading surfaces. */
.nl-home-dark { background: var(--nl-navy); color: var(--nl-white); }
.nl-home-dark #free-tools,
.nl-home-dark #how-we-work,
.nl-home-dark > section.py-24.bg-white { background: var(--nl-navy) !important; }
.nl-home-dark #main-content,
.nl-home-dark #solutions { background: var(--nl-panel) !important; border-color: rgba(255, 255, 255, .12) !important; }
.nl-home-dark #solutions .service-card { background: #13243a; border-color: rgba(255, 255, 255, .14); box-shadow: 0 14px 36px rgba(0, 0, 0, .24); }
.nl-home-dark #solutions .service-card:hover { box-shadow: 0 22px 56px rgba(0, 0, 0, .34), 0 0 48px rgba(57, 198, 214, .18); }
.nl-home-dark #main-content h4,
.nl-home-dark #solutions h3,
.nl-home-dark #solutions h4,
.nl-home-dark #solutions p,
.nl-home-dark #solutions li,
.nl-home-dark #how-we-work h3,
.nl-home-dark #how-we-work h4,
.nl-home-dark #how-we-work p,
.nl-home-dark > section.py-24.bg-white h2,
.nl-home-dark > section.py-24.bg-white p { color: var(--nl-white) !important; }
.nl-home-dark #main-content p,
.nl-home-dark #solutions .text-slate-600,
.nl-home-dark #how-we-work .text-slate-600,
.nl-home-dark #how-we-work .text-slate-700,
.nl-home-dark > section.py-24.bg-white .text-slate-600 { color: var(--nl-slate-300) !important; }
.nl-home-dark #main-content .text-nl-navy,
.nl-home-dark #solutions .text-nl-navy,
.nl-home-dark #how-we-work .text-nl-navy { color: var(--nl-white) !important; }
.nl-home-dark #main-content .bg-nl-navy\/10 { background-color: rgba(255, 255, 255, .10) !important; }
.nl-home-dark main > section { position: relative; }
/* The global section rule supplies each boundary. Do not add a second home-only line. */
.nl-home-dark main > section + section::before { content: none; }
@media (prefers-reduced-motion: reduce) { .nl-pride-badge, .nl-pride-badge::after { transition: none; } }

/* Phase B marketing tokens: shared, dark-surface components. */
.nl-marketing { background: var(--nl-navy); color: var(--nl-white); font-family: Inter, system-ui, sans-serif; }
.nl-marketing main { overflow: clip; } /* D253b/R72: clip vs hidden; does not block sticky positioning */
.nl-marketing .nl-hero, .nl-marketing .nl-section { padding: clamp(4rem, 8vw, 7rem) max(1.5rem, calc((100vw - 1180px) / 2)); }
.nl-marketing .nl-hero { background: radial-gradient(circle at 78% 18%, rgba(57,198,214,.18), transparent 35%), radial-gradient(circle at 18% 72%, rgba(56,217,138,.13), transparent 38%), var(--nl-navy); }
.nl-marketing .nl-utility-header { padding-block: clamp(2.5rem, 5vw, 4.25rem); }
.nl-marketing .nl-utility-header h1 { font-size: clamp(2.2rem, 4vw, 3.7rem); max-width: 900px; }
.nl-marketing .nl-panel { background: var(--nl-panel); }
.nl-marketing main h1, .nl-marketing main h2 { letter-spacing: -.055em; line-height: 1; margin: .6rem 0 .9rem; }
.nl-marketing main h1 { font-size: var(--nl-funnel-hero-size); }.nl-marketing main h2 { font-size: clamp(2rem, 4vw, 3.6rem); }
.nl-marketing h3 { margin: 0 0 .75rem; }.nl-marketing p, .nl-marketing li { line-height: 1.65; }
.nl-marketing .nl-lead { color: var(--nl-slate-300); font-size: clamp(1.1rem, 2vw, 1.4rem); max-width: 760px; }
.nl-marketing .nl-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(var(--nl-cols, 3), minmax(0, 1fr)); margin-top: 2.5rem; align-items: stretch; }
/* D261/R74: mobile collapse — every multi-column nl-grid collapses to single column
   at ≤760px. This is the site's primary breakpoint (nav, hero grid, etc.).
   grid-template-columns:1fr overrides the CSS custom property approach so that
   .nl-grid, .nl-grid--2, .nl-grid--3 and .nl-which-way-in all collapse cleanly.
   The nl-tool-routes (2-col, tools.html) has its own 760px rule already. */
@media (max-width: 760px) { .nl-marketing .nl-grid { grid-template-columns: 1fr !important; } }
.nl-marketing .nl-card, .nl-marketing .nl-booking { background: #13243a; border: 1px solid rgba(255,255,255,.14); border-radius: 1.5rem; padding: 1.75rem; }
.nl-marketing .nl-card { transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease; }
.nl-marketing .nl-card:hover { border-color: var(--nl-green); box-shadow: 0 18px 38px rgba(0,0,0,.22), 0 0 25px rgba(56,217,138,.09); transform: translateY(-4px); }
/* D233/R64: Flat card rhythm. One internal rhythm, no subgrid tracks.
   h3: .65rem gap below, min-height reserves two title lines in multi-col grids
   so bodies start level without track machinery.
   Body p: .8rem gap, last one 0. D220 auto-anchor provides bottom alignment.
   Applies only to .nl-marketing scope to avoid collisions with AICS/legacy. */
.nl-marketing .nl-card h3 { margin: 0 0 .65rem; }
.nl-marketing .nl-grid:not(.nl-grid--1):not([style*="grid-template-columns:1fr"]) > .nl-card h3 {
  min-height: calc(2 * 1.35rem * 1.2); /* two lines at h3 font-size × line-height */
}
.nl-marketing .nl-card p { margin: 0 0 .8rem; }
.nl-marketing .nl-card p:last-of-type { margin-bottom: 0; }
.nl-marketing .nl-card p:only-of-type { margin-bottom: 0; }

.nl-marketing .nl-button { background: var(--nl-green); border-radius: 999px; color: var(--nl-navy); display: inline-block; font-size: .82rem; font-weight: 900; letter-spacing: .08em; margin-top: 1.5rem; padding: 1rem 1.4rem; text-decoration: none; text-transform: uppercase; }
.nl-marketing .nl-button:hover, .nl-marketing .nl-button:focus-visible { background: var(--nl-teal); color: var(--nl-navy); }
.nl-marketing .nl-link { color: var(--nl-green); display: inline-block; font-weight: 800; margin-top: 1.5rem; text-decoration: none; transition: color .2s ease; }
.nl-marketing .nl-link:hover, .nl-marketing .nl-link:focus-visible { color: var(--nl-teal); text-decoration: underline; text-underline-offset: .25em; }
.nl-marketing .nl-included { list-style: none; margin: 1rem 0; padding: 0; }.nl-marketing .nl-included li { color: var(--nl-slate-300); margin: .6rem 0; }.nl-marketing .nl-included li::before { color: var(--nl-green); content: '✓'; font-weight: 900; margin-right: .55rem; }
.nl-marketing .nl-booking { margin-top: 2rem; }.nl-marketing .calendly-inline-widget { min-width: 320px; height: 700px; }
@media (prefers-reduced-motion: reduce) { .nl-marketing .nl-card { transition: none; }.nl-marketing .nl-card:hover { transform: none; } }

/* Shared Phase B tokens. Section introductions are deliberately left-aligned. */
.nl-section-heading { margin-bottom: 2.5rem; text-align: left; }
.nl-section-heading .nl-kicker { margin-inline: 0; }
.nl-hero, main > header:first-child, main > section#main-content, body > section#main-content {
  background-color: var(--nl-navy) !important;
  background-image: radial-gradient(circle at 78% 18%, rgba(57,198,214,.18), transparent 35%), radial-gradient(circle at 18% 72%, rgba(56,217,138,.13), transparent 38%) !important;
}
.nl-icon-card { border-color: rgba(56,217,138,.24) !important; }
.nl-icon-card svg { color: var(--nl-teal) !important; }
.nl-icon-card:hover { border-color: var(--nl-green) !important; }
.nl-card:has(svg), .service-card:has(svg), .outcome-card:has(svg) { border-color: rgba(56,217,138,.24) !important; }
.nl-card:has(svg) svg, .service-card:has(svg) svg, .outcome-card:has(svg) svg { color: var(--nl-teal) !important; }
.nl-icon-card :is(h2, h3, h4), .nl-card:has(svg) :is(h2, h3, h4), .service-card:has(svg) :is(h2, h3, h4), .outcome-card:has(svg) :is(h2, h3, h4) { color: var(--nl-green) !important; }
main > section > div.text-center:has(> :is(.nl-kicker, h2, h3)), body > section > div.text-center:has(> :is(.nl-kicker, h2, h3)) { text-align: left !important; }
.nl-faq-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nl-faq-grid .nl-card { background: #13243a; border: 1px solid rgba(56,217,138,.24); border-radius: 1.5rem; height: 100%; padding: 1.75rem; }
.nl-faq-grid :is(h3, summary) { color: var(--nl-green) !important; font-weight: 600; }
.nl-faq-grid p { color: var(--nl-slate-300) !important; }
.faq-section .nl-faq-grid { margin-top: 0; }
section:has(> div > h2 + div.space-y-4) > div > .space-y-4 { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
section:has(> div > h2 + div.space-y-4) > div > h2 { font-size: 0 !important; }section:has(> div > h2 + div.space-y-4) > div > h2::before { color: var(--nl-green); content: 'COMMON QUESTIONS'; display: block; font: 900 .92rem/1.2 Inter,sans-serif; letter-spacing: .18em; margin-bottom: 1rem; }section:has(> div > h2 + div.space-y-4) > div > h2::after { color: var(--nl-navy); content: 'Plain answers.'; display: block; font: 900 clamp(2rem,4vw,3.6rem)/1 Inter,sans-serif; letter-spacing: -.055em; }
section:has(> div > h2 + div.space-y-4) > div > .space-y-4 details { background: #13243a !important; border: 1px solid rgba(56,217,138,.24) !important; border-radius: 1.5rem !important; box-shadow: none !important; height: 100%; padding: 1.75rem !important; }section:has(> div > h2 + div.space-y-4) > div > .space-y-4 details:not([open]) > :not(summary) { display: block !important; }section:has(> div > h2 + div.space-y-4) > div > .space-y-4 summary { color: var(--nl-green) !important; cursor: default !important; font-weight: 600 !important; list-style: none; pointer-events: none; }section:has(> div > h2 + div.space-y-4) > div > .space-y-4 summary::-webkit-details-marker { display: none; }section:has(> div > h2 + div.space-y-4) > div > .space-y-4 details :is(p, div) { color: var(--nl-slate-300) !important; }
.nl-pricing-router { align-items: center; display: flex; min-height: calc(100vh - 72px); }.nl-pricing-router__inner { width: min(1180px, 100%); }.nl-pricing-router h1 { font-size: clamp(2.3rem, 4.2vw, 3.8rem) !important; max-width: 760px; }.nl-pricing-router .nl-route-note { color: var(--nl-slate-300); font-size: 1.1rem; margin-top: 1.25rem; }.nl-pricing-router .nl-grid { margin-top: 2rem; }.nl-pricing-router .nl-card { text-decoration: none; }
.nl-services-compact { padding-block:clamp(2.5rem,4vw,4rem) !important; }.nl-services-compact h1 { font-size:clamp(2.35rem,4vw,3.5rem) !important; }.nl-services-compact .nl-grid { margin-top:1.75rem; }.nl-service-routes .nl-card { color: var(--nl-white); display: flex; flex-direction: column; position:relative; text-decoration: none; }.nl-service-routes .nl-card-top { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 1.25rem; }.nl-service-routes .nl-card-top .nl-card-eyebrow { margin-bottom: 0; }.nl-service-routes h2 { color:var(--nl-white) !important; font-size: clamp(1.35rem,2vw,1.75rem) !important; }.nl-service-routes h2 span, .nl-service-routes .nl-accent { color:var(--nl-green); }.nl-service-routes svg { fill: none; height: 2.4rem; margin: 0; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 2.4rem; }.nl-service-routes .nl-link { margin-top: auto; padding-top: 1.5rem; }.nl-service-routes .nl-card-arrow { bottom:1.35rem; color:var(--nl-green); font-size:1.3rem; font-weight:900; line-height:1; position:absolute; right:1.5rem; transition:transform .24s ease; }.nl-service-routes .nl-card:hover .nl-card-arrow, .nl-service-routes .nl-card:focus-visible .nl-card-arrow { transform:translateX(.35rem); }@media (prefers-reduced-motion:reduce){.nl-service-routes .nl-card-arrow{transition:none}}
.nl-home-hero { align-items:center; display:flex; gap:clamp(2rem,3vw,2.5rem); min-height:clamp(470px,68vh,680px); padding-block:clamp(2.8rem,5.6vw,4.9rem); }.nl-home-identity { flex:0 0 auto; min-width:0; }.nl-home-wordmark { color:var(--nl-white); display:block; font:900 clamp(4.25rem,10vw,8.5rem)/.8 Inter,sans-serif; letter-spacing:-.075em; text-decoration:none; }.nl-home-wordmark span { color:var(--nl-green); }.nl-home-strapline { color:var(--nl-green); font-size:clamp(1.15rem,2vw,1.45rem); font-style:italic; margin:1.5rem 0 0; }.nl-home-rule { align-self:stretch; background:var(--nl-green); flex:none; width:4px; }.nl-home-statement { flex:1 1 0; max-width:690px; min-width:0; }.nl-home-statement p { color:var(--nl-slate-300); font-size:clamp(1.08rem,1.8vw,1.35rem); margin:0 0 1.1rem; }.nl-home-statement p:first-child { color:var(--nl-white); font-weight:700; }.nl-tool-routes { grid-template-columns:repeat(2,minmax(280px,1fr)); }.nl-tool-routes .nl-card { display:flex; flex-direction:column; text-decoration:none; }.nl-tool-routes .nl-link { margin-top:auto; }.nl-quote-card { border-left:4px solid var(--nl-green) !important; max-width:880px; }.nl-quote-card blockquote { font-size:clamp(1.1rem,2vw,1.4rem); line-height:1.6; margin:0; }.nl-quote-card figcaption { color:var(--nl-green); font-weight:800; margin-top:1.25rem; }@media(max-width:760px){.nl-home-hero{align-items:flex-start;flex-direction:column;min-height:auto}.nl-home-rule{align-self:auto;height:4px;width:64px}.nl-home-wordmark{font-size:clamp(4rem,20vw,6rem)}.nl-tool-routes{grid-template-columns:1fr}}
/* Phase C D47: existing interactive assessment keeps its form semantics, but shares the calculator's dark surface and elevated-card system. */
.nl-assessment { background:var(--nl-navy); color:var(--nl-white); }.nl-assessment :is(#main-content,main) { background:var(--nl-navy) !important; }.nl-assessment main > section { background:var(--nl-navy) !important; color:var(--nl-white); }.nl-assessment main > section:nth-of-type(even) { background:var(--nl-panel) !important; }.nl-assessment main :is(.bg-white,.bg-slate-50) { background:#13243a !important; }.nl-assessment main :is(.text-nl-navy,.text-slate-800) { color:var(--nl-white) !important; }.nl-assessment main :is(.text-slate-600,.text-slate-500,.text-slate-700) { color:var(--nl-slate-300) !important; }.nl-assessment .form-label { color:var(--nl-slate-300) !important; }.nl-assessment :is(.form-input,.form-select,.form-textarea) { background:var(--nl-navy-3,#101D33) !important; border-color:rgba(56,217,138,.24) !important; color:var(--nl-white) !important; }.nl-assessment :is(.radio-card,.checkbox-card) { background:#13243a !important; border-color:rgba(56,217,138,.24) !important; }.nl-assessment :is(.radio-card:hover,.checkbox-card:hover,.radio-card.selected,.checkbox-card.selected) { background:rgba(56,217,138,.1) !important; border-color:var(--nl-green) !important; }.nl-assessment main > section > div > div { border-color:rgba(56,217,138,.24) !important; box-shadow:0 14px 36px rgba(0,0,0,.22) !important; }
.nl-assessment #assessmentForm { background:#13243a; border:1px solid rgba(56,217,138,.24); border-radius:1.5rem; box-shadow:0 18px 38px rgba(0,0,0,.22); color:var(--nl-white); padding:clamp(1.5rem,4vw,3rem); }.nl-assessment #assessmentForm :is(.form-input,.form-select,.form-textarea) { background:#0b1622 !important; color:var(--nl-white) !important; }.nl-assessment #assessmentForm :is(.form-input,.form-select,.form-textarea)::placeholder { color:rgba(191,201,209,.6); }.nl-assessment #assessmentForm :is(.radio-card,.checkbox-card) { color:var(--nl-white) !important; }.nl-assessment #assessmentForm :is(.radio-card,.checkbox-card) :is(p,span,h3,h4,label) { color:inherit !important; }
/* Phase C D93: N4B case-study content stays verbatim inside the shared dark shell. */
.nl-autopilot { background:var(--nl-navy); color:var(--nl-white); }.nl-autopilot main > section { background:var(--nl-navy) !important; color:var(--nl-white); }.nl-autopilot main > section:nth-of-type(even) { background:var(--nl-panel) !important; }.nl-autopilot main :is(.bg-white,.bg-\[\#F8FAFC\],.bg-slate-50) { background:#13243a !important; }.nl-autopilot main :is(.text-nl-navy,.text-slate-800) { color:var(--nl-white) !important; }.nl-autopilot main :is(.text-slate-600,.text-slate-700,.text-slate-500) { color:var(--nl-slate-300) !important; }.nl-autopilot .nl-light-card { background:#13243a !important; border-color:rgba(56,217,138,.24) !important; box-shadow:0 14px 36px rgba(0,0,0,.22) !important; }.nl-autopilot .nl-dark-card { background:#13243a !important; border-color:rgba(56,217,138,.24) !important; }
/* D156 pilot: all service panels exist in the DOM; JS only selects the visible, hash-addressable panel. */
/* F11: continuous hairline under the tab strip, above the details.
   Paints across the full strip width including under the active tab;
   display:contents below 640px so the mobile accordion is unaffected. */
/* F16: D123 money-green on dark — all currency figures on automation-audit */

/* F14: example panel labels render in brand green; blank-line spacing
   between label-led blocks so each reads as a separated section */
[data-panel^="example-"] h3 { color: var(--nl-green); }
[data-panel^="example-"] h3:not(:first-child) { margin-top: 2rem; }

 }

/* D203: question accordion variant — static questions, typed answers, single-open */
.nl-accordion { margin-top:2rem; max-width:900px; }
.nl-accordion__item { border-bottom:1px solid rgba(56,217,138,.24); }
.nl-accordion__item:first-child { border-top:1px solid rgba(56,217,138,.24); }
.nl-accordion__header { align-items:center; background:none; border:none; color:var(--nl-white); cursor:pointer; display:flex; font:600 clamp(.95rem,1.8vw,1.1rem)/1.4 Inter,sans-serif; gap:1rem; justify-content:space-between; padding:1.25rem 0; text-align:left; width:100%; }
.nl-accordion__header:hover { color:var(--nl-green); }
.nl-accordion__header:focus-visible { outline:2px solid var(--nl-green); outline-offset:2px; }
.nl-accordion__chevron { flex:none; transition:transform var(--nl-motion-tab) ease; }
.nl-accordion__header[aria-expanded="true"] .nl-accordion__chevron { transform:rotate(180deg); }
.nl-accordion__body { padding:0 0 1.25rem; }
.nl-accordion__body[hidden] { display:none; }
.nl-accordion__body p { color:var(--nl-slate-300); line-height:1.65; }

@media (prefers-reduced-motion:reduce) { .nl-accordion__chevron { transition:none; } }

@media (max-width:639px) {
  
  
  
  
  
  
  
   
   
   
   
   
   
   
   
}
.nl-carousel__track{overflow:hidden}.nl-carousel__controls{align-items:center;display:flex;gap:.75rem;margin-top:1rem}.nl-carousel__controls button{background:transparent;border:1px solid rgba(56,217,138,.35);border-radius:999px;color:var(--nl-white);cursor:pointer;padding:.55rem .8rem}.nl-carousel__controls span{display:flex;gap:.4rem}.nl-carousel__controls [data-carousel-dot]{height:.7rem;padding:0;width:.7rem}.nl-carousel__controls [data-carousel-dot][aria-current="true"]{background:var(--nl-green)}
.nl-founder-hero { align-items: center; display: grid; gap: clamp(2rem,5vw,5rem); grid-template-columns: minmax(0,1.25fr) minmax(240px,.55fr); }.nl-founder-hero img { border: 1px solid rgba(56,217,138,.3); border-radius: 1.5rem; max-width: 100%; width: 100%; }
.calculator-page .nl-next-panel { border-color: rgba(56,217,138,.3); box-shadow: 0 14px 36px rgba(0,0,0,.2); }.calculator-page .nl-next-panel a { color: var(--green); font-weight: 700; }.calculator-page > section::after { content: none; }.calculator-page > #faq { margin-bottom: 1.5rem; }.calculator-page > #faq .nl-faq-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
/* Automation Audit: Phase B dark surface reskin, retaining approved content. */
/* D222/R59: .nl-audit override block DELETED — automation-audit.html migrated to .nl-marketing shell */

/* D234/R65: .nl-aics block DELETED — ai-confidence-session.html migrated to .nl-marketing shell */


/* D231/R62: GMA quote-card top spacing */
.nl-quote-card--spaced { margin-top: clamp(2.5rem,5vw,4rem); }

/* D231/R62: Four-ways grid uses 4 columns at desktop */
.nl-grid--4 { --nl-cols: 4 !important; }
@media (max-width: 960px) { .nl-grid--4 { --nl-cols: 2 !important; } }
@media (max-width: 640px) { .nl-grid--4 { --nl-cols: 1 !important; } }

/* D231a/R62a: Examples grid stretches cards to equal height */
.nl-grid--stretch { align-items: stretch; }

/* D231a/R62a: Example icon in eyebrow — inline-block with trailing gap */
.nl-example-icon { display: inline-block; vertical-align: middle; margin-right: .5rem; }

/* D231a/R62a: Two-column grid variant */
.nl-grid--2 { --nl-cols: 2 !important; }
@media (max-width: 640px) { .nl-grid--2 { --nl-cols: 1 !important; } }

/* D234/R65: AICS page tokens. Page migrated from nl-aics → nl-marketing.
   Hero grid: two-column at desktop (copy | testimonial), stacks at mobile.
   WHERE flex row: icon + text. */
.nl-aics-hero-grid { display: grid; grid-template-columns: 1fr 420px; gap: 2.5rem; align-items: center; }
@media (max-width: 760px) { .nl-aics-hero-grid { grid-template-columns: 1fr; } }

/* AICS pricing card retained: nl-aics-tier-card already in site-chrome.css */
/* AICS price display */
.nl-price-old { color: var(--nl-slate-300); text-decoration: line-through; font-size: 1.25rem; }
.nl-price-current { color: var(--nl-green); font-size: clamp(3.5rem, 8vw, 5.5rem); font-weight: 900; line-height: 1; }
/* D231/R62 restored after D234/R65 nl-aics block deletion: AICS pricing card */
.nl-aics-tier-card { border: 4px solid var(--nl-green) !important; border-radius: 2.5rem; padding: 2.5rem; position: relative; text-align: left; }

/* D220/R65 RESTORED (was co-located with nl-aics block): card bottom-anchor.
   Cards with a green link or CTA use flex column so the terminal action
   sits at the card floor regardless of body length. */
.nl-card.nl-elevated-card { display:flex; flex-direction:column; }
.nl-card.nl-elevated-card > .nl-link:last-child,
.nl-card.nl-elevated-card > a.nl-link,
.nl-card.nl-elevated-card > a[class*="nl-"]:last-child { margin-top:auto; padding-top:1rem; }

/* D142/R65 RESTORED: text-wrap balance for headings and card titles */
.nl-marketing :is(h1,h2,h3,h4), .nl-card h3 { text-wrap: balance; }

/* R29/R65 RESTORED: article breadcrumb styling */
.nl-reading main>.nl-breadcrumb { color:var(--nl-slate-300) !important; }
.nl-reading main>.nl-breadcrumb a { color:var(--nl-green) !important; }
.nl-reading main>.nl-breadcrumb+div :is(h1,p,span,time) { color:var(--nl-white) !important; }
.nl-reading main>.nl-breadcrumb+div .bg-nl-green\/10 { color:var(--nl-green) !important; }

/* D221/R65 RESTORED: nl-faq-grid single-column for accordion */
.nl-faq-grid { display:block !important; max-width:900px; }

/* D225/R65 RESTORED: nl-accordion.js js-enabled class no-JS fallback */
html:not(.js-enabled) .nl-accordion__body[hidden] { display: block !important; }

/* R60/R65 RESTORED: spine step headings */
.nl-spine__step h3, .nl-spine__step .nl-card-eyebrow { color: var(--nl-green); font: 900 .72rem/1.2 Inter,sans-serif; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 .6rem; }

/* R61/R65 RESTORED: AICS walk-away card max-width token */
.nl-walk-away-card { max-width: 850px; }

/* D219/R57/R65 RESTORED: nl-spine — shared sequential step component */
.nl-spine{position:relative;padding-left:56px;margin-top:16px}
.nl-spine__rail,.nl-spine__fill{position:absolute;width:2px;border-radius:2px}
.nl-spine__rail{background:rgba(255,255,255,.14)}
.nl-spine__fill{background:#38D98A;height:0;transition:height .35s ease}
.nl-spine__step{position:relative;margin:0 0 16px}
.nl-spine__dot{position:absolute;left:-54px;top:16px;width:36px;height:36px;border-radius:50%;background:#050B15;border:2px solid rgba(255,255,255,.14);color:#BFC9D1;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;z-index:1;transition:border-color .3s,color .3s,box-shadow .3s}
.nl-spine__step.nl-spine__done .nl-spine__dot{border-color:#38D98A;color:#38D98A;box-shadow:0 0 0 4px rgba(56,217,138,.10)}
@media(prefers-reduced-motion:reduce){.nl-spine__fill{transition:none}}
[data-nl-spine] { position: relative; }

/* D213/R65 RESTORED: global reveal animation */
.nl-reveal-pending { opacity:0; }
.nl-reveal-run { animation:nl-reveal-in var(--nl-motion-reveal) ease-out both; }
@keyframes nl-reveal-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .nl-reveal-run { animation:none !important; } .nl-reveal-pending { opacity:1 !important; } }

/* F5/R65 RESTORED: Common Questions accordion framed panel */
.nl-accordion--framed { background:#13243a; border:1px solid var(--nl-green); border-radius:1.5rem; padding:.25rem clamp(1.4rem,3vw,2.25rem); }
.nl-accordion--framed .nl-accordion__item:first-child { border-top:none; }
.nl-accordion--framed .nl-accordion__item:last-child { border-bottom:none; }

/* R65 RESTORED: nl-button-secondary */
.nl-button-secondary { background:transparent; border:1px solid var(--nl-green); border-radius:999px; color:var(--nl-green) !important; display:inline-block; font-size:.82rem; font-weight:900; letter-spacing:.08em; margin-top:1.5rem; padding:1rem 1.4rem; text-decoration:none; text-transform:uppercase; transition:background .2s ease,color .2s ease; }
.nl-button-secondary:hover,.nl-button-secondary:focus-visible { background:var(--nl-green); color:var(--nl-navy) !important; }
.nl-cta-pair { display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
/* D168: articles retain readable light editorial panels within the canonical dark chrome. */
.nl-reading{background:var(--nl-navy)!important;color:var(--nl-slate-300)}.nl-reading main{background:var(--nl-navy)!important;max-width:none!important;padding:clamp(6.5rem,10vw,9rem) max(1.25rem,calc((100vw - 960px)/2)) clamp(4rem,7vw,6rem)!important}.nl-reading main>article,.nl-reading main>.article-content{background:#f8fafc;border:1px solid rgba(56,217,138,.26);border-radius:1.5rem;box-shadow:0 18px 44px rgba(0,0,0,.24);color:#172033;margin-inline:auto;max-width:900px;padding:clamp(1.5rem,4vw,3.25rem)}.nl-reading main>article :is(h1,h2,h3,h4),.nl-reading main>.article-content :is(h1,h2,h3,h4){color:var(--nl-navy)!important}.nl-reading main>article :is(p,li),.nl-reading main>.article-content :is(p,li){color:#3f4b59!important}.nl-reading main>article a,.nl-reading main>.article-content a{color:#057f68!important}.nl-reading .nl-article-door{background:#13243a;border:1px solid rgba(56,217,138,.3);border-radius:1.5rem;margin:1.5rem auto 0;max-width:900px;padding:clamp(1.5rem,4vw,2.5rem);text-align:left}.nl-reading .nl-article-door h2{color:var(--nl-white)!important;font-size:clamp(1.6rem,3vw,2.25rem);margin:0 0 .6rem}.nl-reading .nl-article-door p{color:var(--nl-slate-300)!important;margin:0}.nl-reading .nl-article-door .nl-button{background:var(--nl-green);border-radius:999px;color:var(--nl-navy)!important;display:inline-block;font-size:.8rem;font-weight:900;letter-spacing:.08em;margin-top:1.25rem;padding:.9rem 1.2rem;text-decoration:none;text-transform:uppercase}.nl-reading .nl-article-door .nl-button:hover{background:var(--nl-teal)}.nl-reading.nl-article-index main{max-width:none!important}
/* R48.39: site map — sections separate by spacing alone; hairline above the
   footer moved to the container edge under F7 (divider-then-void fix) */
.nl-sitemap > section::after { content: none !important; }
.nl-sitemap > section { background: transparent !important; }
/* R48.41: landing re-skin — suffolk-ai-consultant, uk-sme-ai-automation. Structure unchanged; tokens applied. */
.nl-landing main > section:first-child, .nl-landing body > section:first-of-type, .nl-landing > section:first-of-type { background: radial-gradient(circle at 78% 18%, rgba(57,198,214,.18), transparent 35%), radial-gradient(circle at 18% 72%, rgba(56,217,138,.13), transparent 38%), var(--nl-navy) !important; }
.nl-landing h1 { font-size: var(--nl-funnel-hero-size) !important; letter-spacing: -.045em !important; line-height: 1.05 !important; }
.nl-landing main h2:not(.nl-kicker), .nl-landing main h3:not(.nl-kicker) { font-size: clamp(1.9rem, 3.6vw, 3rem) !important; letter-spacing: -.035em; line-height: 1.1; }
.nl-landing main h4 { font-size: clamp(1.2rem, 1.8vw, 1.45rem) !important; }
.nl-landing .nl-cta-pair .nl-button, .nl-landing .nl-cta-pair .nl-button-secondary { margin-top: 0; }
.nl-landing .nl-button { background: var(--nl-green); border-radius: 999px; color: var(--nl-navy) !important; display: inline-block; font-size: .82rem; font-weight: 900; letter-spacing: .08em; padding: 1rem 1.4rem; text-decoration: none; text-transform: uppercase; }
.nl-landing .nl-button:hover, .nl-landing .nl-button:focus-visible { background: var(--nl-teal); color: var(--nl-navy) !important; }
.nl-landing .info-card { transition: border-color .2s ease; }
.nl-landing .info-card:hover { border-color: var(--nl-green) !important; }
/* R48.15: articles index header and card contrast fixes */
.nl-reading.nl-article-index main>div:first-child{background:#13243a;border:1px solid rgba(56,217,138,.26);border-radius:1.5rem;padding:clamp(1.5rem,4vw,3rem)}
.nl-reading.nl-article-index main>div:first-child :is(h1,h2,h3){color:var(--nl-white)!important}
.nl-reading.nl-article-index main>div:first-child p{color:var(--nl-slate-300)!important}
.nl-reading.nl-article-index article a{text-decoration:none}
.nl-reading.nl-article-index article .text-nl-teal{color:#057f68!important}
.nl-reading.nl-article-index article .text-nl-green{color:#057f68!important}.nl-reading.nl-article-index main>article{background:#f8fafc}.nl-reading.nl-article-index main>section{margin-inline:auto;max-width:1180px}.nl-reading.nl-article-index main>section:first-child{background:#13243a;border:1px solid rgba(56,217,138,.26);border-radius:1.5rem;padding:clamp(1.5rem,4vw,3rem)}.nl-reading.nl-article-index main>section:first-child :is(h1,h2,h3,p){color:var(--nl-white)!important}.nl-reading.nl-article-index main>section:first-child p{color:var(--nl-slate-300)!important}@media(max-width:760px){.nl-reading main{padding-inline:1rem!important}.nl-reading main>article,.nl-reading main>.article-content{border-radius:1rem;padding:1.25rem}.nl-reading .nl-article-door{border-radius:1rem}}
/* F10: assessment page has no <main> element, so the main-scoped re-skin
   rules above never matched (half-skinned form: white wrapper, navy-on-navy
   headings). Re-skin the form area directly: wrapper chrome removed so the
   form card is the only card; headings white; subtitles slate. */
.nl-assessment .bg-white.rounded-xl { background:transparent !important; border:none !important; box-shadow:none !important; padding:0 !important; }
.nl-assessment #assessmentForm :is(h1,h2,h3,h4) { color:var(--nl-white) !important; }
.nl-assessment #assessmentForm :is(.text-slate-600,.text-slate-500,.text-slate-700) { color:var(--nl-slate-300) !important; }
.nl-pricing-router{padding-block:clamp(4rem,8vw,7rem)!important}.nl-reading .nl-kicker{margin-bottom:1rem}.nl-reading .nl-article-door{margin-bottom:2.5rem}
.nl-kicker{isolation:isolate;position:relative;overflow:hidden}.nl-kicker::before{background:rgba(56,217,138,.11);content:'';inset:0;position:absolute;transform-origin:left;z-index:-1}.nl-qanda-booking{background:var(--nl-navy)!important;padding:clamp(4rem,7vw,6rem) max(1.5rem,calc((100vw - 1180px)/2))!important;text-align:left!important}.nl-qanda-booking__heading{font-size:clamp(2rem,4vw,3.6rem)!important;text-align:left!important}.nl-qanda-booking .container,.nl-qanda-booking .max-w-2xl{margin-inline:0!important;text-align:left!important}.nl-qanda-booking .flex{justify-content:flex-start!important}
.nl-button-secondary { background:transparent; border:1px solid var(--nl-green); border-radius:999px; color:var(--nl-green) !important; display:inline-block; font-size:.82rem; font-weight:900; letter-spacing:.08em; margin-top:1.5rem; padding:1rem 1.4rem; text-decoration:none; text-transform:uppercase; transition:background .2s ease,color .2s ease; }.nl-button-secondary:hover,.nl-button-secondary:focus-visible { background:var(--nl-green); color:var(--nl-navy) !important; }.nl-cta-pair { display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
.nl-reading main>.nl-breadcrumb{color:var(--nl-slate-300)!important}.nl-reading main>.nl-breadcrumb a{color:var(--nl-green)!important}.nl-reading main>.nl-breadcrumb+div :is(h1,p,span,time){color:var(--nl-white)!important}.nl-reading main>.nl-breadcrumb+div .bg-nl-green\/10{color:var(--nl-green)!important}
.nl-kicker::before{pointer-events:none;z-index:0}

/* D213: typewriter removed site-wide. One global reveal: content renders
   complete in final layout, then fades in with a short upward drift.
   Classes are only ever added by JS, so no-JS content is always visible.
   Reduced-motion: JS never adds the run class; content appears instantly. */
.nl-reveal-pending { opacity:0; }
.nl-reveal-run { animation:nl-reveal-in var(--nl-motion-reveal) ease-out both; }
@keyframes nl-reveal-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .nl-reveal-run { animation:none !important; } .nl-reveal-pending { opacity:1 !important; } }
/* F5: COMMON QUESTIONS accordions sit inside the standard framed panel */
.nl-accordion--framed { background:#13243a; border:1px solid var(--nl-green); border-radius:1.5rem; padding:.25rem clamp(1.4rem,3vw,2.25rem); }
.nl-accordion--framed .nl-accordion__item:first-child { border-top:none; }
.nl-accordion--framed .nl-accordion__item:last-child { border-bottom:none; }
/* F5: Q&A topic panels carry their accordions inside the tab frame */

/* F7: articles — single hairline directly above the footer boundary with
   standard section spacing; per-section dividers off (divider-then-void).
   Same pattern applied to the calculator (R48.34) and site map (R48.39),
   whose last-section hairlines left the same dead band. */
.nl-reading main > section::after, .nl-reading main > header::after { content:none !important; }
.calculator-page > section:last-of-type::after, .nl-sitemap > section:last-of-type::after { content:none !important; }
.nl-reading main, .calculator-page, .nl-sitemap { position:relative; }
.nl-reading main::after, .calculator-page::after, .nl-sitemap::after { background:var(--nl-section-divider); bottom:0; content:''; height:var(--nl-divider-height); left:50%; pointer-events:none; position:absolute; right:auto; transform:translateX(-50%); width:100vw; z-index:2; }
/* R48.19: single frame for pricing tabs — remove card borders inside tab panels */

/* R48.24: reduce gap between pricing tabs and THE FIRST THREE MONTHS */
#pricing .nl-terms { margin-top:1rem; }

/* D219/R57: nl-spine — shared sequential step component.
   Generalised from nl-pricing-flow's measured-spine construction (v06 reference).
   Real dot elements, rail positioned from rendered centres, scroll fill, done states.
   Use: <div class="nl-spine" data-nl-spine> with .nl-spine__step children (data-n="N").
   nl-spine.js initialises all [data-nl-spine] containers on page load. */
.nl-spine{position:relative;padding-left:56px;margin-top:16px}
.nl-spine__rail,.nl-spine__fill{position:absolute;width:2px;border-radius:2px}
.nl-spine__rail{background:rgba(255,255,255,.14)}
.nl-spine__fill{background:#38D98A;height:0;transition:height .35s ease}
.nl-spine__step{position:relative;margin:0 0 16px}
.nl-spine__dot{position:absolute;left:-54px;top:16px;width:36px;height:36px;border-radius:50%;background:#050B15;border:2px solid rgba(255,255,255,.14);color:#BFC9D1;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;z-index:1;transition:border-color .3s,color .3s,box-shadow .3s}
.nl-spine__step.nl-spine__done .nl-spine__dot{border-color:#38D98A;color:#38D98A;box-shadow:0 0 0 4px rgba(56,217,138,.10)}
@media(prefers-reduced-motion:reduce){.nl-spine__fill{transition:none}}

/* R58: expandable Common Questions — nl-card details component */
details.nl-card summary { cursor:pointer; list-style:none; }
details.nl-card summary::-webkit-details-marker { display:none; }
details.nl-card[open] .nl-faq-chevron { transform:rotate(45deg); }

/* D220: card bottom-anchor. Cards with a green link or CTA use flex column so the
   terminal action sits at the card floor regardless of body length. */
.nl-card.nl-elevated-card { display:flex; flex-direction:column; }
/* D220/R66: margin-top:auto ONLY on link actions, not on paragraphs.
   Paragraphs as last-child on content-only cards (no link) caused body
   text to sink to card floor when align-items:stretch inflated row height. */
.nl-card.nl-elevated-card > .nl-link:last-child,
.nl-card.nl-elevated-card > a.nl-link,
.nl-card.nl-elevated-card > a[class*="nl-"]:last-child { margin-top:auto; padding-top:1rem; }

/* D221: nl-faq-grid single-column for accordion */
.nl-faq-grid { display:block !important; max-width:900px; }
/* R60/D225: nl-accordion.js adds js-enabled; when absent, show all accordion bodies (no-JS) */
html:not(.js-enabled) .nl-accordion__body[hidden] { display: block !important; }



/* R60/D224: spine step headings use the card-eyebrow treatment (letterspaced green caps)
   matching the BEFORE THE SESSION card — site-wide on all spine steps. */
.nl-spine__step h3, .nl-spine__step .nl-card-eyebrow { color: var(--nl-green); font: 900 .72rem/1.2 Inter,sans-serif; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 .6rem; }

/* R61: AICS walk-away card max-width token */
.nl-walk-away-card { max-width: 850px; }

/* D142: text-wrap balance for headings and card titles */
.nl-marketing :is(h1,h2,h3,h4), .nl-card h3 { text-wrap: balance; }

/* D231/R62: Card zone tokens.
   Four zones per card as direct children in this order:
   1. nl-card-eyebrow (or nl-card-icon-wrap for icon cards)

/* D235/R67 RESTORED — dropped during R65 scope migration:
   nl-founder-routes, nl-legacy-surface, nl-contact-layout,
   nl-card__icon (D231/R62), nl-consulting-areas, nl-stat-card */

.nl-founder-routes { align-items: stretch; }
.nl-founder-routes .nl-card { display:flex; flex-direction:column; }
.nl-founder-routes .nl-link { margin-top:auto; padding-top:1.5rem; }

/* Phase C legacy/support surfaces */
.nl-legacy-surface { background:var(--nl-navy) !important; color:var(--nl-white); }
.nl-legacy-surface main > section, .nl-legacy-surface > section { background:var(--nl-navy) !important; color:var(--nl-white); }
.nl-legacy-surface main > section:nth-of-type(even) { background:var(--nl-panel) !important; }
.nl-legacy-surface :is(.bg-white,.bg-slate-50,.bg-[#F8FAFC]) { background:#13243a !important; }
.nl-legacy-surface :is(.text-nl-navy,.text-slate-800,.text-slate-700,.text-slate-600,.text-slate-500,.text-gray-600) { color:var(--nl-slate-300) !important; }
.nl-legacy-surface :is(h1,h2,h3,h4) { color:var(--nl-white) !important; }
.nl-legacy-surface main a:not(.nl-button):not(.nl-nav-cta) { color:var(--nl-green); }
.nl-legacy-surface main :is(.bg-white,.bg-slate-50,.bg-[#F8FAFC]) { border-color:rgba(56,217,138,.24) !important; }
.nl-legacy-surface form :is(input,textarea,select) { background:#0e1a2b !important; border-color:rgba(255,255,255,.18) !important; color:var(--nl-white) !important; }
.nl-legacy-surface form label, .nl-legacy-surface form span { color:var(--nl-slate-300) !important; }
.nl-legacy-surface form ::placeholder { color:#9eacb8 !important; }
.nl-legacy-surface .nl-button:is(.text-nl-navy,.text-slate-800,.text-slate-700,.text-slate-600,.text-slate-500,.text-gray-600) { color: var(--nl-navy) !important; }
.nl-legacy-surface .nl-light-card :is(.text-nl-navy,.text-slate-800,.text-slate-700,.text-slate-600,.text-slate-500,.text-gray-600) { color: #050b15 !important; }
.nl-legacy-surface .nl-light-card :is(p,li,span,div) { color: #334155; }

/* Contact layout */
.nl-contact-layout{display:grid;gap:1.5rem}
.nl-contact-form-panel{order:-1}
.nl-contact-proof{display:grid;align-content:start;gap:1.25rem}
.nl-contact-book{padding:1.5rem}
.nl-contact-book p{color:var(--nl-slate-300);line-height:1.6}
.nl-contact-book .nl-button{margin-top:1rem;display:block;text-align:center}
@media(min-width:900px){.nl-contact-layout{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);align-items:start}}

/* nl-card__icon: teal icon as direct card child (D231/R62) */
.nl-card__icon { color:var(--nl-teal); flex:none; line-height:0; margin-bottom:.75rem; align-self:flex-start; }
.nl-icon-card { position:relative; }
.nl-icon-card > .nl-card__icon { position:absolute; top:1.25rem; right:1.25rem; margin-bottom:0; }

/* Consulting areas: eyebrow-lead spacing */
.nl-consulting-areas .nl-card > .nl-card-eyebrow:first-child { margin-bottom:.6rem; }

/* GMA stat card */
.nl-stat-card { max-width:850px; }

/* D236/R67: Examples vertical stack — single-column, full-width cards in reading order */
.nl-examples-stack { display:flex; flex-direction:column; gap:1.25rem; margin-top:2.5rem; }
.nl-examples-stack > .nl-card { width:100%; }

/* D237/R67: Numbered-card eyebrow pattern — number + title in one eyebrow.
   Applied to about.html (THREE PRINCIPLES) and bespoke.html (WHAT YOU KEEP).
   Standard nl-card-eyebrow component; no additional CSS needed — markup only. */

/* D238/R67: Q&A section rhythm — gap between accordion frame and next topic eyebrow.
   The nl-accordion--framed container had no bottom margin, causing topics to cramp. */
.nl-section .nl-accordion--framed + .nl-kicker,
.nl-section .nl-accordion--framed + * { margin-top: 2.5rem; }



/* D240/R67: AICS dividers — ensure all body > section and .nl-aics-style sections
   receive the divider hairline. The nl-aics body sections used py-* classes with no
   nl-section; after migration some may be bare <section> elements. */
.nl-marketing main > section::after,
.nl-marketing main > header::after {
  background: var(--nl-section-divider);
  bottom: 0; content: ''; height: var(--nl-divider-height);
  left: 50%; pointer-events: none; position: absolute; right: auto;
  transform: translateX(-50%); width: 100vw; z-index: 2;
}
.nl-marketing main > section { position: relative; }

/* D241/R67: AICS founder portrait — constrained circular treatment restored.
   Dropped with .nl-aics block in R65. */
.nl-aics-hero-grid figure.nl-quote-card { align-self:start; }
.nl-founder-card img { border:1px solid rgba(56,217,138,.3); border-radius:999px; height:88px; object-fit:cover; width:88px; flex:none; }

/* D242/R67: Card heading overflow prevention.
   h3 inside cards truncates and wraps; overflow never escapes card border.
   overflow-wrap:break-word prevents single long tokens from escaping. */
.nl-card h3, .nl-card h2 { overflow-wrap: break-word; word-break: break-word; }
.nl-card { overflow: hidden; }

/* D252/R71 + D257/R72: THE PROBLEM section — nl-problem-grid + report mock.
   CSS matches production www.newlens.uk verbatim (R72 update).
   Tilt, glow, hover, reduced-motion, and mobile overrides per R72 spec. */
.nl-problem-grid{align-items:center;display:grid;gap:3rem;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}
@media(max-width:680px){.nl-problem-grid{grid-template-columns:1fr;gap:2rem}}
.nl-report-wrap{overflow:visible;padding:1.4rem}
.nl-report-mock{
  /* D257/R72 + D260/R73: stronger glow + visible green border */
  border:1px solid rgba(56,217,138,.35);
  box-shadow:0 26px 55px rgba(0,0,0,.36),0 0 60px rgba(56,217,138,.28);
  padding:1.45rem;
  transform:rotate(1.4deg);
  transform-origin:center;
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease
}
.nl-report-mock:hover{
  border-color:rgba(56,217,138,.65);
  box-shadow:0 18px 38px rgba(0,0,0,.22),0 0 40px rgba(56,217,138,.22);
  transform:rotate(0deg)
}
@media(prefers-reduced-motion:reduce){
  .nl-report-mock{transition:none;transform:none}
}
@media(max-width:680px){
  .nl-report-mock{transform:none}
}
.nl-report-number{color:#fff;font-size:clamp(2.8rem,6vw,4.8rem);font-weight:900;letter-spacing:-.07em;line-height:.92;margin:.7rem 0 1.3rem}
.nl-report-number span{color:var(--nl-green);display:block;font-size:.82rem;font-weight:700;letter-spacing:.13em;margin-top:.55rem}
.nl-report-stats{display:grid;gap:.7rem;grid-template-columns:1fr 1fr}
.nl-report-stats div{background:rgba(255,255,255,.055);border-radius:.8rem;color:var(--nl-slate-300);font-size:.7rem;font-weight:800;letter-spacing:.07em;line-height:1.4;padding:.8rem;text-transform:uppercase}
.nl-report-cost{color:var(--nl-green)!important}
.nl-report-lines{display:grid;gap:.55rem;margin-top:1.2rem}
.nl-report-lines span{background:linear-gradient(90deg,rgba(191,201,209,.22),rgba(191,201,209,.05));border-radius:99px;height:8px}
.nl-report-lines span:nth-child(2){width:77%}
.nl-report-lines span:nth-child(3){width:61%}
.nl-report-caption{color:var(--nl-slate-300);font-size:.8rem;font-style:italic;margin:.75rem 0 0;text-align:center}

/* D254/R71: spine dot overflow — D242 overflow:hidden on .nl-card clips the
   absolutely-positioned .nl-spine__dot (left:-54px, outside card bounds).
   Override for spine steps only. */
.nl-spine .nl-spine__step{overflow:visible}

/* D253/R71: Q&A jump-navigation pills */
/* D259/R73: Q&A sticky pill bar — full-bleed solid navy backing, hairline rule, z-index 91.
   Full-bleed: negative margin-left breaks out of .nl-marketing main padding;
   width:100vw ensures the background reaches both viewport edges.
   padding-inline restores the content alignment inside the bar. */
.nl-qanda-jumpnav{align-items:center;background:var(--nl-navy);border-bottom:1px solid rgba(255,255,255,.12);box-sizing:border-box;display:flex;flex-wrap:nowrap;gap:.5rem;left:0;margin:0;overflow-x:auto;padding:.85rem max(1.5rem,calc((100vw - 1180px)/2));position:sticky;scrollbar-width:none;top:0;width:100%;z-index:91}
.nl-qanda-jumpnav::-webkit-scrollbar{display:none}
.nl-qanda-pill{background:rgba(56,217,138,.08);border:1px solid rgba(56,217,138,.25);border-radius:999px;color:var(--nl-green);flex-shrink:0;font:700 .72rem/1 Inter,sans-serif;letter-spacing:.14em;padding:.42rem .9rem;text-decoration:none;text-transform:uppercase;transition:background .18s,border-color .18s,color .18s;white-space:nowrap}
.nl-qanda-pill:hover,.nl-qanda-pill:focus-visible,.nl-qanda-pill[aria-current="true"]{background:var(--nl-green);border-color:var(--nl-green);color:var(--nl-navy)}
@media(prefers-reduced-motion:reduce){.nl-qanda-pill{transition:none}}

/* D256/R71: WHICH WAY IN standalone section — route cards */
.nl-which-way-in .nl-card{display:flex;flex-direction:column}
.nl-which-way-in .nl-card p:last-of-type{color:var(--nl-slate-300);font-size:.92rem}
.nl-which-way-in .nl-card .nl-link{margin-top:auto;padding-top:1rem}
.nl-which-way-in .nl-bespoke-note{color:var(--nl-slate-300);font-size:.9rem;margin-top:1.5rem}
.nl-which-way-in .nl-bespoke-note a{color:var(--nl-green);font-weight:700;text-decoration:none}
.nl-which-way-in .nl-bespoke-note a:hover{text-decoration:underline}
