/* =============================================================================
   Aurum Title "Noir": the dark alternative design.
   Loaded after style.css only in the dark build (AURUM_VARIANT=dark). It re-themes every shared component
   through the tokens and adds the Noir-only pieces (nhero, nrows, npartners, ntabs, nband...).
   Black, warm ivory text, one metallic gold. Playfair Display for display, Inter for reading.
   ============================================================================= */
@font-face { font-family: "Playfair Display"; src: url("/fonts/playfair-latin.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("/fonts/playfair-italic-latin.woff2") format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }

.noir {
  --ink: #f2ece0;
  --ink-2: #cfc8bb;
  --muted: #a29c91;
  --faint: #7d786f;
  --line: rgba(255, 255, 255, 0.08);
  --line-2: rgba(255, 255, 255, 0.14);
  --bg: #0a0a0b;
  --surface: #121214;
  --paper: #0f0f11;
  --paper-2: #0c0c0d;
  --gold: #c9a85c;
  --gold-btn: #c9a85c;
  --gold-btn-h: #d8b96c;
  --gold-text: #d9bd7a;
  --gold-soft: rgba(201, 168, 92, 0.1);
  --navy: #151517;
  --navy-2: #1c1c1f;
  --warn: #f0a07a;
  --warn-soft: rgba(240, 160, 122, 0.08);
  --hdr-bg: rgba(10, 10, 11, 0.86);
  --serif: "Manrope", "Inter", system-ui, sans-serif;
  --metal: linear-gradient(100deg, #9c7b36 0%, #e9d089 38%, #b38c3f 62%, #f0dc9c 100%);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 12px 32px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 2px 8px rgba(0, 0, 0, 0.5), 0 30px 70px rgba(0, 0, 0, 0.55);
  color-scheme: dark;
}
.noir body { background: var(--bg); color: var(--ink-2); font-variant-numeric: lining-nums; }
.noir h1, .noir h2, .noir h3, .noir .nh2, .noir .nh3, .noir .nrow__n, .noir .nsteps span, .noir .ncalc__v, .noir .ncalc__in input, .noir .ftr__bigtel, .noir .calc__v, .noir .calc__money input, .noir .issue__n, .noir .steps__n, .noir .npartner__mono, .noir .person__mono { font-variant-numeric: lining-nums; }
.noir h1, .noir h2, .noir h3, .noir h4 { font-variation-settings: normal; font-weight: 400; letter-spacing: -0.01em; }
.noir h3 { font-family: var(--sans); font-weight: 600; }
.noir em { font-style: italic; }
.noir h1 em, .noir h2 em, .noir .nh2 em { background: var(--metal); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: 0.04em; }
.noir a { color: var(--ink); }
.noir a:hover { color: var(--gold-text); }
.noir ::selection { background: rgba(201, 168, 92, 0.35); color: #fff; }
.noir .stagebar { background: #1a1a1c; color: #d9bd7a; border-bottom: 1px solid var(--line); }

/* ---------- buttons ---------- */
.noir .btn { border-radius: 2px; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.82rem; font-weight: 600; min-height: 50px; padding: 0 26px; }
.noir .btn--lg { min-height: 56px; padding: 0 30px; font-size: 0.86rem; }
.noir .btn--sm { min-height: 42px; padding: 0 18px; font-size: 0.76rem; }
.noir .btn--gold { background: var(--metal); background-size: 160% 100%; background-position: 0% 0; color: #0a0a0b; box-shadow: none; border: 0; transition: background-position 0.4s, transform 0.2s; }
.noir .btn--gold:hover { background-position: 100% 0; color: #0a0a0b; }
.noir .btn--line { background: transparent; color: var(--ink); border-color: rgba(201, 168, 92, 0.55); }
.noir .btn--line:hover { border-color: var(--gold); color: var(--gold-text); }
.noir .btn--line svg { color: var(--gold); }
.noir .btn--glass { background: rgba(255, 255, 255, 0.06); color: #fff; border: 1px solid rgba(255, 255, 255, 0.28); backdrop-filter: blur(6px); }
.noir .btn--glass:hover { border-color: var(--gold); color: #fff; }
.noir .btn--ghost-light { border-color: rgba(255, 255, 255, 0.3); }
.noir .btn--ink { background: #0a0a0b; color: #f2ece0; border: 1px solid #0a0a0b; }
.noir .btn--ink:hover { background: #1a1a1c; color: #fff; }
.noir .btn--ink-line { background: transparent; color: #0a0a0b; border: 1px solid rgba(10, 10, 11, 0.55); }
.noir .btn--ink-line:hover { border-color: #0a0a0b; color: #0a0a0b; }
.noir .more { color: var(--ink); border-bottom-color: var(--gold); }

/* ---------- type helpers ---------- */
.noir .eyebrow, .nk { font-family: var(--sans); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-text); margin: 0 0 18px; display: flex; align-items: center; gap: 10px; }
.noir .eyebrow::before { width: 34px; background: var(--gold); }
.nk svg { color: var(--gold); }
.noir .h2, .nh2 { font-family: var(--serif); font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.6rem); line-height: 1.08; color: var(--ink); margin: 0 0 18px; font-weight: 400; }
.nh3 { font-family: var(--serif); font-size: 1.7rem; line-height: 1.2; color: var(--ink); margin: 0 0 10px; display: block; }
.nmuted { color: var(--muted); }
.nlink { display: inline-flex; align-items: center; gap: 10px; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-text); text-decoration: none; padding: 10px 0; }
.nlink svg { transition: transform 0.25s; }
.nlink:hover { color: #f0dc9c; }
.nlink:hover svg { transform: translateX(4px); }
.ncenter { text-align: center; margin-top: 40px; }

/* ---------- header ---------- */
/* sticky header; the photo heroes slide up under it (negative margin), other pages get a solid bar */
.hdr--noir { position: sticky; top: 0; background: transparent; border-bottom: 1px solid transparent; backdrop-filter: none; -webkit-backdrop-filter: none; transition: background 0.3s, border-color 0.3s; }
.hdr--noir.is-scrolled, .noir body:not(.page-home):not(.noir-service) .hdr--noir { background: var(--hdr-bg); border-bottom-color: var(--line); backdrop-filter: saturate(1.2) blur(12px); -webkit-backdrop-filter: saturate(1.2) blur(12px); box-shadow: none; }
.nhero, .nphero { margin-top: calc(-1 * var(--hdr) - 1px); }
.hdr--noir .hdr__in { height: 84px; }
.noir { --hdr: 84px; }
.hdr--noir .logo__img { height: 40px; }
.hdr--noir .hdr__in { gap: 20px; }
.hdr--noir .nav__list { gap: 0; }
.hdr--noir .nav__link { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #e9e3d7; padding: 10px 10px; }
.hdr--noir .hdr__actions { gap: 14px; }
@media (max-width: 1280px) { .hdr--noir .nav__link { letter-spacing: 0.1em; padding: 10px 7px; } .hdr--noir .logo__img { height: 34px; } }
.hdr--noir .nav__link:hover, .hdr--noir .nav__link[aria-current] { color: var(--gold-text); }
.hdr--noir .hdr__tel { color: #e9e3d7; font-size: 0.86rem; letter-spacing: 0.04em; }
.hdr--noir .hdr__cta { background: transparent; color: var(--gold-text); border: 1px solid var(--gold); }
.hdr--noir .hdr__cta:hover { background: var(--gold); color: #0a0a0b; }
.noir .mega { background: #0e0e10; border-color: var(--line); box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6); }
.noir .mega__link:hover { background: rgba(255, 255, 255, 0.04); }
.noir .mega__ico { background: rgba(201, 168, 92, 0.1); color: var(--gold-text); border-radius: 2px; }
.noir .mega__aside { background: #151517; border: 1px solid var(--line); border-radius: 2px; }
.noir .burger { background: transparent; border-color: rgba(255, 255, 255, 0.22); border-radius: 2px; }
.noir .burger span { background: #f2ece0; }
.noir .mnav { background: #0a0a0b; }
.noir .mnav__deals a { border-color: var(--line-2); border-radius: 2px; color: var(--ink); }
.noir .mnav__links a { border-color: var(--line); color: var(--ink); }

/* ---------- home hero ---------- */
.nhero { position: relative; min-height: min(100svh, 880px); display: flex; flex-direction: column; justify-content: center; color: #f2ece0; overflow: hidden; isolation: isolate; }
.nhero__bg { position: absolute; inset: 0; z-index: -1; }
.nhero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; filter: saturate(0.9) brightness(0.72); }
.nhero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 10, 11, 0.94) 0%, rgba(10, 10, 11, 0.72) 42%, rgba(10, 10, 11, 0.25) 75%, rgba(10, 10, 11, 0.4) 100%), linear-gradient(0deg, #0a0a0b 0%, rgba(10, 10, 11, 0) 38%); }
.nhero__in { flex: 1; display: flex; flex-direction: column; justify-content: center; padding-top: calc(var(--hdr) + 72px); padding-bottom: 72px; }
.nhero__k { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-text); margin: 0 0 26px; }
.nhero__h { font-family: var(--serif); font-size: clamp(3rem, 1.6rem + 5.4vw, 6.4rem); line-height: 0.98; color: #fff; margin: 0 0 28px; max-width: 900px; font-weight: 400; letter-spacing: -0.015em; }
.nhero__h em { display: inline-block; }
.nhero__lead { font-size: 1.15rem; line-height: 1.65; color: #d6cfc2; max-width: 620px; margin: 0 0 40px; }
.qorder { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 0; max-width: 900px; background: rgba(18, 18, 20, 0.72); border: 1px solid rgba(201, 168, 92, 0.4); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.qorder__f { display: flex; flex-direction: column; justify-content: center; padding: 12px 18px; border-right: 1px solid rgba(255, 255, 255, 0.1); min-width: 0; }
.qorder__f span { font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-text); margin-bottom: 4px; }
.qorder__f select, .qorder__f input { background: transparent; border: 0; color: #fff; font-size: 1rem; padding: 4px 0; outline: none; min-width: 0; width: 100%; }
.qorder__f select option { background: #121214; color: #fff; }
.qorder__f input::placeholder { color: #8f897f; }
.qorder__f:focus-within { background: rgba(255, 255, 255, 0.04); }
.qorder__b { border-radius: 0 !important; min-height: 68px !important; }
.nhero__or { margin: 16px 0 0; font-size: 0.92rem; color: #b8b1a4; }
.nhero__or a { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 600; text-decoration: none; margin-left: 4px; padding: 8px 0; }
.nhero__or svg { color: var(--gold); }
.nhero__foot { border-top: 1px solid rgba(255, 255, 255, 0.1); background: rgba(10, 10, 11, 0.5); }
.nhero__foot-in { display: flex; flex-wrap: wrap; gap: 8px 36px; padding-top: 16px; padding-bottom: 16px; font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: #a29c91; }
.nhero__foot a { color: #e9e3d7; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.nhero__foot .star { fill: var(--gold); stroke: var(--gold); }

/* ---------- stats ---------- */
.nstats { background: #0a0a0b; border-bottom: 1px solid var(--line); }
.nstats__in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nstat { position: relative; padding: 48px 32px 44px; border-left: 1px solid var(--line); }
.nstat:first-child { border-left: 0; padding-left: 0; }
.nstat::before { content: ""; position: absolute; top: -1px; left: 32px; width: 28px; height: 1px; background: var(--gold); }
.nstat:first-child::before { left: 0; }
.nstat__v { display: flex; align-items: baseline; gap: 10px; font-family: var(--serif); font-weight: 400; font-size: clamp(2.6rem, 2rem + 1.8vw, 3.6rem); line-height: 1; margin: 0 0 14px; color: #e3c77f; font-variant-numeric: lining-nums tabular-nums; letter-spacing: -0.01em; }
.nstat__of { font-family: var(--sans); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-text); }
.nstat__k { margin: 0; font-size: 0.88rem; line-height: 1.5; color: var(--muted); max-width: 230px; }

/* ---------- sections ---------- */
.nsec { padding: 120px 0; }
.nsec--alt { background: #0e0e10; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.nhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 56px; }
.nhead > div { max-width: 640px; }
.nhead__p { max-width: 420px; color: var(--muted); margin: 0; }
.nhead--c { justify-content: center; text-align: center; }
.nhead--c .nk { justify-content: center; }

/* intro */
.nintro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 88px; align-items: center; }
.nintro__copy p:not(.nk) { font-size: 1.06rem; line-height: 1.8; }
.nintro__a { display: flex; gap: 32px; flex-wrap: wrap; margin-top: 18px; }
.nintro__fig { position: relative; margin: 0; }
.nintro__fig { padding-bottom: 0; }
.nintro__fig::before { content: ""; position: absolute; inset: 22px -22px auto 22px; aspect-ratio: 1080 / 565; border: 1px solid rgba(201, 168, 92, 0.45); z-index: 0; }
.nintro__fig img { position: relative; z-index: 1; width: 100%; aspect-ratio: 1080 / 565; object-fit: cover; filter: brightness(0.92); }
.nintro__fig figcaption { position: relative; z-index: 1; margin-top: 40px; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }

/* disciplines: editorial rows */
.nrows { display: grid; grid-template-columns: 1fr 1fr; column-gap: 64px; border-top: 1px solid var(--line-2); }
.nrow { display: grid; grid-template-columns: 56px 1fr 32px; align-items: center; gap: 18px; padding: 26px 0; border-bottom: 1px solid var(--line-2); text-decoration: none; color: var(--ink); position: relative; }
.nrow::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 1px; width: 0; background: var(--metal); transition: width 0.45s ease; }
.nrow:hover::after { width: 100%; }
.nrow:hover { color: var(--ink); }
.nrow__n { font-family: var(--serif); font-style: italic; font-size: 1.3rem; color: var(--gold-text); }
.nrow__t { display: block; font-family: var(--serif); font-size: 1.6rem; line-height: 1.2; }
.nrow__p { display: block; color: var(--muted); font-size: 0.92rem; margin-top: 4px; }
.nrow__go { color: var(--gold); transition: transform 0.3s; }
.nrow:hover .nrow__go { transform: translate(3px, -3px); }

/* partners */
.npartners { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.npartner { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
.npartner:hover { color: var(--ink); }
.npartner__pic { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: #151517; margin-bottom: 22px; position: relative; }
.npartner__pic img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; filter: grayscale(1) contrast(1.05) brightness(0.9); transition: filter 0.5s, transform 0.6s; }
.npartner:hover .npartner__pic img { filter: grayscale(0) brightness(1); transform: scale(1.03); }
.npartner__pic::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(201, 168, 92, 0); transition: border-color 0.4s; }
.npartner:hover .npartner__pic::after { border-color: rgba(201, 168, 92, 0.6); }
.npartner__mono { display: grid; place-items: center; width: 100%; height: 100%; font-family: var(--serif); font-size: 4rem; background: radial-gradient(circle at 50% 40%, #1d1c1a 0, #111113 70%); }
.npartner__mono { color: #c9a85c; }
.npartner__role { display: block; min-height: 2.8em; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-text); }
.npartner__name { font-family: var(--serif); font-size: 1.5rem; margin: 6px 0 8px; }
.npartner__hl { font-size: 0.88rem; color: var(--muted); padding-top: 10px; border-top: 1px solid var(--line); }

/* tabs */
.nwhowrap { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 80px; align-items: start; }
.ntabs { min-width: 0; }
.ntabs__bar { max-width: 100%; display: flex; gap: 0; border-bottom: 1px solid var(--line-2); margin-bottom: 8px; overflow-x: auto; scrollbar-width: none; }
.ntabs__bar::-webkit-scrollbar { display: none; }
.ntabs__b { flex: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; color: var(--muted); padding: 16px 18px; min-height: 52px; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; }
.ntabs__b:first-child { padding-left: 0; }
.ntabs__b.is-on { color: var(--gold-text); border-bottom-color: var(--gold); }
.nwho { display: grid; grid-template-columns: 1fr 24px; gap: 4px 20px; padding: 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.nwho__t, .nwho__p { grid-column: 1; min-width: 0; }
.nwho svg { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--gold); transition: transform 0.25s; }
.nwho:hover svg { transform: translateX(4px); }
.nwho__t { font-family: var(--serif); font-size: 1.35rem; }
.nwho__p { color: var(--muted); font-size: 0.94rem; }

/* testimonial */
.nquote { text-align: center; background: radial-gradient(ellipse at 50% 0%, rgba(201, 168, 92, 0.1), transparent 60%); }
.nquote__in { max-width: 920px; }
.nquote__mark { display: block; font-family: var(--serif); font-size: 9rem; line-height: 0.5; height: 70px; background: var(--metal); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nquote blockquote { margin: 0; }
.nquote blockquote p { font-family: var(--serif); font-style: italic; font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.5rem); line-height: 1.35; color: var(--ink); margin: 0 0 28px; }
.nquote__by { font-size: 0.78rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-text); margin: 0; }
.nquote__by span { color: var(--faint); }

/* steps */
.nsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-2); }
.nsteps li { padding: 36px 32px 0 0; position: relative; }
.nsteps li::before { content: ""; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; background: var(--gold); transform: rotate(45deg); }
.nsteps span { display: block; font-family: var(--serif); font-style: italic; font-size: 2.6rem; line-height: 1; margin-bottom: 18px; background: var(--metal); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nsteps h3 { font-size: 1.05rem; color: var(--ink); margin-bottom: 10px; }
.nsteps p { color: var(--muted); font-size: 0.94rem; margin: 0; }

/* tools */
.ntools { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; }
.ncalc, .nwire { background: #121214; border: 1px solid var(--line); padding: 44px; text-decoration: none; color: var(--ink-2); }
.ncalc { border-top: 2px solid var(--gold); }
.ncalc__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; margin: 26px 0 10px; }
.ncalc__in { display: flex; align-items: baseline; gap: 8px; border-bottom: 1px solid var(--gold); padding-bottom: 8px; }
.ncalc__in span { font-family: var(--serif); font-size: 1.8rem; color: var(--gold-text); }
.ncalc__in input { background: transparent; border: 0; outline: none; color: #fff; font-family: var(--serif); font-size: 2.4rem; width: 100%; min-width: 0; }
.ncalc__out { text-align: right; }
.ncalc__v { display: block; font-family: var(--serif); font-size: 2.6rem; line-height: 1; background: var(--metal); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ncalc__k { font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.ncalc__sub { color: var(--muted); font-size: 0.9rem; min-height: 1.4em; }
.nwire { display: flex; flex-direction: column; gap: 14px; transition: border-color 0.3s; }
.nwire:hover { border-color: rgba(240, 160, 122, 0.4); color: var(--ink-2); }
.nwire > svg { color: #f0a07a; }

/* resources */
.nres { display: grid; grid-template-columns: 1.25fr 1fr; gap: 48px; }
.nres__feat { position: relative; display: block; text-decoration: none; color: #fff; overflow: hidden; min-height: 460px; }
.nres__feat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.55); transition: transform 0.6s; }
.nres__feat:hover img { transform: scale(1.03); }
.nres__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 36px; display: flex; flex-direction: column; gap: 10px; background: linear-gradient(0deg, rgba(10, 10, 11, 0.9), transparent); }
.nres__cat { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-text); }
.nres__t { font-family: var(--serif); font-size: 2rem; line-height: 1.15; }
.nres__p { color: #cfc8bb; font-size: 0.95rem; }
.nres__list { display: flex; flex-direction: column; border-top: 1px solid var(--line-2); }
.nres__list a { display: flex; flex-direction: column; gap: 6px; padding: 22px 0; border-bottom: 1px solid var(--line-2); text-decoration: none; color: var(--ink); }
.nres__lt { font-family: var(--serif); font-size: 1.3rem; line-height: 1.3; }
.nres__list a:hover .nres__lt { color: var(--gold-text); }
.nres__m { font-size: 0.8rem; color: var(--faint); }

/* gold closing band */
.nband { background: var(--metal); color: #0a0a0b; text-align: center; padding: 110px 0; position: relative; }
.nband::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, 0.25), transparent 55%); pointer-events: none; }
.nband__in { position: relative; max-width: 820px; }
.nband__eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.3em; text-transform: uppercase; margin: 0 0 18px; color: rgba(10, 10, 11, 0.7); }
.nband__t { font-family: var(--serif); font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.6rem); line-height: 1.1; color: #0a0a0b; margin: 0 0 18px; }
.nband__p { font-size: 1.08rem; color: rgba(10, 10, 11, 0.8); max-width: 620px; margin: 0 auto 34px; }
.nband__actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

/* ---------- service hero ---------- */
/* Content-sized hero with an even frame (2026-11-04, Mantas: the 78vh hero left a dead band above the breadcrumb):
   header + 104px above, 80px below (+56px before the next block), one rhythm of 20/24/36px between the lines. */
.nphero { position: relative; display: flex; align-items: flex-end; color: #f2ece0; isolation: isolate; overflow: hidden; }
.nphero__bg { position: absolute; inset: 0; z-index: -1; }
.nphero__bg img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.6) saturate(0.9); }
.nphero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #0a0a0b 0%, rgba(10, 10, 11, 0.55) 45%, rgba(10, 10, 11, 0.35) 100%), linear-gradient(90deg, rgba(10, 10, 11, 0.7), transparent 70%); }
.nphero__in { width: 100%; padding-top: calc(var(--hdr) + 104px); padding-bottom: 80px; }
.nphero__h { font-family: var(--serif); font-size: clamp(2.6rem, 1.5rem + 3.8vw, 5rem); line-height: 1.02; color: #fff; max-width: 920px; margin: 0 0 24px; }
.nphero__lead { font-size: 1.12rem; line-height: 1.7; color: #d6cfc2; max-width: 600px; margin: 0 0 36px; }
.nphero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.noir .nphero .crumbs ol { margin-bottom: 26px; }
.noir .nphero .nk { margin-bottom: 20px; }
.noir .nphero .crumbs ol, .noir .nphero .crumbs a { color: #b8b1a4; }
.noir .nphero + .sec { padding-top: 56px; }

/* ---------- shared components re-themed ---------- */
.noir .sec--paper { background: #0e0e10; }
.noir .shero, .noir .phero, .noir .ahero, .noir .pro { background: radial-gradient(ellipse at 20% 0%, rgba(201, 168, 92, 0.08), transparent 55%), #0a0a0b; border-bottom-color: var(--line); }
.noir .shero__h, .noir .ahero__h, .noir .pro__h { font-family: var(--serif); font-weight: 400; color: #fff; }
.noir .crumbs a { color: var(--muted); }
.noir .crumbs li + li::before { color: var(--faint); }
.noir .answer__box { background: #121214; border-left-color: var(--gold); border-radius: 0; }
.noir .answer__v { font-family: var(--serif); font-variation-settings: normal; font-size: 1.32rem; }
.noir .chips li, .noir .dealrow a, .noir .svc-chip, .noir .filter__b { background: transparent; border-color: var(--line-2); color: var(--ink); border-radius: 2px; }
.noir .filter__b.is-on { background: var(--gold); border-color: var(--gold); color: #0a0a0b; }
.noir .filter__b.is-on span { color: rgba(10, 10, 11, 0.6); }
.noir .handle, .noir .handle li, .noir .issue, .noir .issue li, .noir .faq, .noir .faq__i, .noir .why__list li, .noir .factlist, .noir .factlist li { border-color: var(--line-2); }
.noir .handle li > svg, .noir .issue__n { color: var(--gold); }
.noir .issue__n { font-style: italic; }
.noir .side__card, .noir .formcard, .noir .acard, .noir .person, .noir .tool, .noir .ccard, .noir .uw__i, .noir .calc, .noir .takeaways, .noir .creds { background: #121214; border-color: var(--line); border-radius: 2px; box-shadow: none; }
.noir .side__card { border-top: 2px solid var(--gold); }
.noir .side__t, .noir .acard__t, .noir .person__name, .noir .tool__t, .noir .uw__n, .noir .creds__t, .noir .faq__i summary, .noir .form__set legend, .noir .dlg__t, .noir .alert__t, .noir .inline-cta__t, .noir .band__t, .noir .form__ok-t { font-family: var(--serif); font-weight: 400; color: var(--ink); }
.noir .acard:hover, .noir .person:hover, .noir .tool:hover, .noir .ccard:hover { box-shadow: none; border-color: rgba(201, 168, 92, 0.45); }
.noir .acard__img img, .noir .person__img { filter: brightness(0.88); }
.noir .person__mono { background: radial-gradient(circle at 50% 40%, #1d1c1a 0, #111113 70%); color: var(--gold); }
.noir .person__pic { background: #151517; }
.noir .deal__ico, .noir .tool__ico, .noir .why__ico { background: rgba(201, 168, 92, 0.1); color: var(--gold-text); border-color: var(--line-2); border-radius: 2px; }
.noir .steps__n { background: #0a0a0b; border-color: var(--gold); color: var(--gold-text); }
.noir .sec--paper .steps__n { background: #0e0e10; }
.noir .steps::before { background: linear-gradient(90deg, var(--gold), var(--line-2)); }
.noir .inline-cta { background: #121214; border: 1px solid rgba(201, 168, 92, 0.35); border-radius: 2px; }
.noir .author { background: #121214; border-radius: 2px; }
.noir .answers-q li { background: #121214; border-color: var(--line); color: var(--ink-2); border-radius: 2px; }
.noir .prose { color: var(--ink-2); }
.noir .prose a { color: var(--ink); text-decoration-color: var(--gold); }
.noir .prose th { background: #151517; color: var(--ink); }
.noir .prose td, .noir .prose th { border-color: var(--line); }
.noir .toc { border-color: var(--line-2); }
.noir .toc a.is-on, .noir .toc a:hover { color: var(--gold-text); }
.noir .ahero__img img, .noir .phero__media img, .noir .hero__frame, .noir .why__media > img, .noir .map { border-radius: 2px; }
.noir .ahero__img img { filter: brightness(0.85); }
.noir .fld input, .noir .fld select, .noir .fld textarea, .noir .search, .noir .calc__money { background: #0c0c0d; border-color: var(--line-2); color: var(--ink); border-radius: 2px; }
.noir .fld > span, .noir .calc__seg legend { color: var(--ink); }
.noir .fld input::placeholder, .noir .fld textarea::placeholder, .noir .search input::placeholder { color: #6f6a62; }
.noir .search { box-shadow: none; }
.noir .search input { color: var(--ink); }
.noir .pick span { background: #0c0c0d; border-color: var(--line-2); border-radius: 2px; color: var(--ink); }
.noir .pick input:checked + span { background: rgba(201, 168, 92, 0.12); border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset; }
.noir .form__n { border-color: var(--gold); color: var(--gold-text); }
.noir .wire { background: rgba(240, 160, 122, 0.07); color: #e8c3b0; border: 1px solid rgba(240, 160, 122, 0.25); border-radius: 2px; }
.noir .alert { background: rgba(240, 160, 122, 0.06); border-color: rgba(240, 160, 122, 0.25); border-radius: 2px; }
.noir .form__ok { background: #151517; border-radius: 2px; }
.noir .calc__seg span { border-color: var(--line-2); border-radius: 2px; }
.noir .calc__seg input:checked + span { background: var(--gold); border-color: var(--gold); color: #0a0a0b; }
.noir .calc__money i, .noir .calc__money input { color: var(--ink); }
.noir .calc__out { background: #0a0a0b; border-left: 1px solid var(--line); }
.noir .ccard--gold { background: rgba(201, 168, 92, 0.1); border-color: rgba(201, 168, 92, 0.35); }
.noir .dlg { background: #121214; color: var(--ink-2); border: 1px solid var(--line-2); border-radius: 2px; }
.noir .dlg__x { background: transparent; border-color: var(--line-2); color: var(--ink); }
.noir .tool--warn .tool__ico { background: rgba(240, 160, 122, 0.08); color: #f0a07a; }
.noir mark.tbc { background: rgba(255, 220, 120, 0.16); color: #f3d98f; }
.noir .why__badge { background: #151517; border: 1px solid rgba(201, 168, 92, 0.35); border-radius: 2px; }
.noir .hero__card { border-radius: 2px; }
.noir .who__head { border-bottom-color: var(--gold); }
.noir .quote__g { border-color: var(--line-2); }

/* footer */
.ftr--noir { background: #050506; border-top: 1px solid var(--line); padding-top: 0; }
.ftr__noir { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-top: 72px; padding-bottom: 64px; border-bottom: 1px solid var(--line); margin-bottom: 64px; }
.ftr__tag { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-text); margin: 0 0 12px; }
.ftr__say { font-family: var(--serif); font-size: clamp(1.8rem, 1.2rem + 1.8vw, 2.8rem); line-height: 1.15; color: #f2ece0; margin: 0; max-width: 560px; }
.ftr__noir-a { display: flex; flex-direction: column; align-items: flex-end; gap: 16px; }
.ftr__bigtel { font-family: var(--serif); font-size: 2.2rem; color: #f2ece0 !important; text-decoration: none; letter-spacing: 0.02em; }
.ftr__bigtel:hover { color: var(--gold-text) !important; }
.ftr--noir .ftr__head { color: var(--gold-text); }
.ftr--noir .ftr__contact svg { color: var(--gold); }
.ftr--noir .ftr__notice svg { color: #f0a07a; }
.noir .stick { background: #0a0a0b; border-top-color: var(--line-2); }
.noir .stick__call { border-color: var(--line-2); color: var(--ink); border-radius: 2px; }
.noir .stick__order { background: var(--metal); color: #0a0a0b; border-radius: 2px; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .nrows { column-gap: 40px; }
  .npartners { grid-template-columns: repeat(2, 1fr); }
  .nwhowrap { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 1000px) {
  .noir { --hdr: 70px; }
  .hdr--noir .hdr__in { height: 70px; }
  .hdr--noir .logo__img { height: 32px; }
  .hdr--noir .hdr__cta { display: none; }
  .noir .mnav:not([hidden]) { background: #0a0a0b; }
}
@media (max-width: 1040px) {
  .nintro { grid-template-columns: minmax(0, 1fr); gap: 64px; }
  .nintro__fig { max-width: 680px; }
  .nrows { grid-template-columns: minmax(0, 1fr); }
  .nsteps { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .ntools, .nres { grid-template-columns: minmax(0, 1fr); }
  .nstats__in { grid-template-columns: 1fr 1fr; }
  .nstat:nth-child(3) { border-left: 0; padding-left: 0; }
  .nstat:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .nhead { flex-direction: column; align-items: flex-start; gap: 16px; }
  .ftr__noir { flex-direction: column; align-items: flex-start; }
  .ftr__noir-a { align-items: flex-start; }
}
@media (max-width: 720px) {
  .nsec { padding: 72px 0; }
  .nhero { min-height: 0; }
  .nhero__in { padding-top: 120px; padding-bottom: 36px; }
  .nhero__k { font-size: 12px; letter-spacing: 0.22em; margin-bottom: 18px; }
  .nhero__h { font-size: 2.7rem; line-height: 1.02; margin-bottom: 20px; }
  .nhero__lead { font-size: 1.02rem; margin-bottom: 28px; }
  .nhero__bg::after { background: linear-gradient(0deg, #0a0a0b 6%, rgba(10, 10, 11, 0.75) 55%, rgba(10, 10, 11, 0.55) 100%); }
  .qorder { grid-template-columns: 1fr; }
  .qorder__f { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 12px 16px; }
  .qorder__f select, .qorder__f input { font-size: 16px; min-height: 30px; }
  .qorder__b { min-height: 56px !important; width: 100%; }
  .nhero__foot-in { font-size: 12px; letter-spacing: 0.08em; gap: 6px 18px; }
  .nstat { padding: 28px 14px; }
  .nstat:nth-child(odd) { border-left: 0; padding-left: 0; }
  .nstat__v { font-size: 2.3rem; }
  .nstat__k { font-size: 0.82rem; }
  .nh2, .noir .h2 { font-size: 2.15rem; }
  .nintro__fig::before { inset: 12px -10px -12px 10px; }
  .nintro__fig figcaption { margin-top: 24px; font-size: 12px; }
  .nrow { grid-template-columns: 40px 1fr 24px; gap: 12px; padding: 20px 0; }
  .nrow__n { font-size: 1.05rem; }
  .nrow__t { font-size: 1.28rem; }
  .nrow__p { font-size: 0.86rem; }
  .npartners { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut) 8px; scrollbar-width: none; }
  .npartners::-webkit-scrollbar { display: none; }
  .npartner { flex: 0 0 64%; scroll-snap-align: start; }
  .npartner__pic img { filter: grayscale(0.2) brightness(0.95); }
  .npartner__role { font-size: 12px; letter-spacing: 0.12em; }
  .npartner__name { font-size: 1.3rem; }
  .ntabs__b { font-size: 12px; letter-spacing: 0.1em; padding: 14px 12px; }
  .nwho__t { font-size: 1.15rem; }
  .nquote__mark { font-size: 6rem; height: 46px; }
  .nquote blockquote p { font-size: 1.45rem; }
  .nquote__by { font-size: 12px; letter-spacing: 0.14em; }
  .nsteps { grid-template-columns: 1fr; }
  .nsteps li { padding: 28px 0 0; }
  .nsteps span { font-size: 2.1rem; margin-bottom: 12px; }
  .ncalc, .nwire { padding: 26px 20px; }
  .nh3 { font-size: 1.4rem; }
  .ncalc__row { grid-template-columns: 1fr; gap: 14px; }
  .ncalc__out { text-align: left; }
  .ncalc__in input { font-size: 2rem; }
  .ncalc__k { font-size: 12px; }
  .nres__feat { min-height: 360px; }
  .nres__body { padding: 22px; }
  .nres__t { font-size: 1.5rem; }
  .nres__cat { font-size: 12px; letter-spacing: 0.12em; }
  .nres__lt { font-size: 1.15rem; }
  .nband { padding: 72px 0; }
  .nband__eyebrow { font-size: 12px; }
  .nband__actions .btn { width: 100%; }
  .nlink { font-size: 12px; letter-spacing: 0.12em; min-height: 44px; }
  .nphero { min-height: 0; }
  .nphero__in { padding-top: calc(var(--hdr) + 40px); padding-bottom: 48px; }
  .noir .nphero .crumbs ol { margin-bottom: 20px; }
  .noir .nphero + .sec { padding-top: 48px; }
  .nphero__h { font-size: 2.3rem; }
  .nphero__lead { font-size: 1rem; }
  .nphero__ctas .btn { width: 100%; }
  .ftr__noir { padding-top: 48px; padding-bottom: 40px; margin-bottom: 40px; }
  .ftr__tag { font-size: 12px; letter-spacing: 0.2em; }
  .ftr__bigtel { font-size: 1.8rem; padding: 6px 0; }
  .noir .btn { font-size: 0.8rem; letter-spacing: 0.05em; }
  .noir .eyebrow, .nk { letter-spacing: 0.16em; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .nhero__bg img { transform: none; } }

/* square corners everywhere in Noir; a darker map */
.noir .pro__pic img, .noir .pro__pic .person__mono, .noir .person, .noir .person__pic, .noir .acard, .noir .acard__img { border-radius: 2px; }
.noir .pro__pic img { filter: brightness(0.95); }
.noir .map iframe { filter: invert(0.9) hue-rotate(180deg) saturate(0.4) brightness(0.9); }
.noir .map { border-color: var(--line); }
@media (max-width: 720px) {
  .noir .answer__v { font-size: 1.08rem; line-height: 1.5; }
  .noir .ftr__art { display: none; }
}
@media (max-width: 720px) {
  .qorder__f span { font-size: 12px; letter-spacing: 0.14em; }
  .qorder__f select, .qorder__f input { min-height: 44px; }
  .qorder__f { padding: 8px 16px; }
  .nhero__foot a { padding: 12px 0; }
}
@media (max-width: 380px) {
  .noir .btn { padding: 0 16px; letter-spacing: 0.03em; }
  .noir .btn--block { white-space: normal; }
}
@media (max-width: 1040px) {
  .nstat:nth-child(odd)::before { left: 0; }
  .nstat:nth-child(3) { padding-left: 0; }
}
@media (max-width: 720px) {
  .nstat::before { left: 14px; }
  .nstat:nth-child(odd)::before { left: 0; }
  .nstat__v { font-size: 2.3rem; gap: 8px; }
  .nstat__of { font-size: 12px; }
}

/* ---------- design fixes (2026-10-28 review) ---------- */
.nhero__foot-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); gap: 16px 32px; align-items: center; }
.nhero__foot-in > * { display: inline-flex; align-items: center; gap: 8px; }
.nhero__foot-in > a { justify-self: end; }
.nhero__foot-in svg { color: var(--gold); flex: none; }
.nhero__uw { justify-self: center; }
.nwhowrap .nh2 { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.8rem); }
.npartner__name { display: block; }
.npartner__hl { display: block; }
.npartner__mono { position: relative; }
.qorder__f select { appearance: none; -webkit-appearance: none; padding-right: 26px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c9a85c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 2px center; cursor: pointer; }
.nrow { align-items: start; }
.nrow__n { padding-top: 6px; }
.nrow__go { padding-top: 8px; }
@media (min-height: 1000px) and (min-width: 1100px) { .nhero { min-height: 820px; } }
@media (max-width: 1040px) {
  .nhero__foot-in { grid-template-columns: 1fr; gap: 6px; }
  .nhero__foot-in > a, .nhero__uw { justify-self: start; }
}
@media (max-width: 720px) {
  .nhero { min-height: 0; }
  .nhero__in { padding-top: calc(var(--hdr) + 40px); padding-bottom: 40px; }
  .nrow__n { padding-top: 4px; }
  .nrow__go { padding-top: 4px; }
}
.qorder { grid-template-columns: 250px minmax(0, 1fr) auto; }
.nhero__foot-in { grid-template-columns: auto minmax(0, 1fr) auto; }
.nhero__uw { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
@media (max-width: 1040px) { .nhero__foot-in { grid-template-columns: 1fr; } .nhero__uw { white-space: normal; } }
@media (max-width: 720px) { .qorder { grid-template-columns: 1fr; } }

/* ---------- design review fixes (2026-10-28) ---------- */
.noir .more { font-size: 0.76rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-text); border-bottom: 0; padding: 10px 0; }
.noir .more svg { color: var(--gold-text); }
.noir .more:hover { color: #f0dc9c; }
.noir .hero__card-v b { color: var(--ink); }
.noir .person--compact .person__name { font-size: 1.12rem; }
.noir .whocloses .h2 { font-size: clamp(1.9rem, 1.3rem + 1.5vw, 2.6rem); }
.noir .faqwrap__head .h2, .noir .faqwrap__head .nh2 { font-size: clamp(2rem, 1.3rem + 1.5vw, 2.6rem); }
.noir .whocloses .h2 { font-size: clamp(1.9rem, 1.3rem + 1.5vw, 2.6rem); }

/* ---------- order wizard + dialog in Noir ---------- */
.noir .dlg--order { border-radius: 2px; border: 1px solid rgba(201, 168, 92, 0.3); background: #121214; }
.noir .odlg__side { background: #0a0a0b; border-right: 1px solid var(--line); }
.noir .odlg__side::after { background: radial-gradient(circle, rgba(201, 168, 92, 0.16), transparent 65%); }
.noir .odlg__k { color: var(--gold-text); letter-spacing: 0.24em; }
.noir .odlg__tel { border-radius: 2px; border-color: var(--line-2); }
.noir .odlg__tel svg, .noir .odlg__list svg { color: var(--gold); }
.noir .odlg__main { background: #121214; }
.noir .wiz__n { border-radius: 2px; background: transparent; }
.noir .wiz__bar li { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; }
.noir .wiz__bar li.is-on .wiz__n { box-shadow: 0 0 0 4px rgba(201, 168, 92, 0.12); color: var(--gold-text); }
.noir .wiz__bar li.is-done .wiz__n { background: var(--gold); color: #0a0a0b; }
.noir .wiz__track span { background: var(--metal); }
.noir .wiz__q { font-weight: 400; }
.noir .wiz__nav { border-color: var(--line); }
@media (max-width: 900px) { .noir .odlg__side { border-right: 0; border-bottom: 1px solid var(--line); } }
@media (max-width: 720px) {
  .noir .dlg--order { border-radius: 0; border-left: 0; border-right: 0; border-bottom: 0; }
  .noir .wiz__nav { background: #121214; }
  .noir .wiz__count { letter-spacing: 0.18em; }
}

/* ---------- Typography: Cormorant Garamond in Noir (2026-10-28) ---------- */
.noir h1, .noir h2, .noir .h2, .noir .nh2, .noir .nh3 { font-weight: 500; letter-spacing: -0.005em; }
.nhero__h { font-size: clamp(3.4rem, 1.8rem + 5.6vw, 7rem); font-weight: 500; line-height: 0.96; letter-spacing: -0.012em; }
.nphero__h { font-size: clamp(2.9rem, 1.6rem + 4vw, 5.4rem); font-weight: 500; line-height: 1; }
.noir .h2, .nh2 { font-size: clamp(2.5rem, 1.6rem + 2.8vw, 4rem); line-height: 1.04; }
.nh3 { font-size: 1.95rem; font-weight: 600; }
.noir .shero__h, .noir .ahero__h, .noir .pro__h { font-weight: 500; }
.noir .faqwrap__head .h2, .noir .faqwrap__head .nh2 { font-size: clamp(2.3rem, 1.5rem + 1.7vw, 2.9rem); }
.noir .whocloses .h2 { font-size: clamp(2.2rem, 1.5rem + 1.7vw, 2.9rem); }
.nwhowrap .nh2 { font-size: clamp(2.3rem, 1.6rem + 1.8vw, 3.1rem); }
.nstat__v { font-weight: 600; font-size: clamp(2.9rem, 2.2rem + 2vw, 4rem); }
.nrow__t { font-size: 1.85rem; font-weight: 600; }
.nrow__n { font-size: 1.45rem; font-weight: 500; }
.npartner__name { font-size: 1.7rem; font-weight: 600; }
.nwho__t { font-size: 1.55rem; font-weight: 600; }
.nquote blockquote p { font-size: clamp(1.9rem, 1.3rem + 2vw, 2.85rem); font-weight: 500; }
.nsteps span { font-size: 3rem; font-weight: 500; }
.ncalc__v { font-size: 3rem; font-weight: 600; }
.ncalc__in input { font-size: 2.7rem; font-weight: 500; }
.nres__t { font-size: 2.3rem; font-weight: 600; }
.nres__lt { font-size: 1.5rem; font-weight: 600; }
.nband__t { font-size: clamp(2.5rem, 1.6rem + 2.8vw, 4rem); font-weight: 500; }
.ftr__say { font-size: clamp(2.1rem, 1.4rem + 2vw, 3.1rem); font-weight: 500; }
.ftr__bigtel { font-size: 2.5rem; font-weight: 600; }
.noir .answer__v { font-size: 1.48rem; font-weight: 500; }
.noir .faq__i summary { font-weight: 600; }
@media (max-width: 720px) {
  .nhero__h { font-size: 3rem; line-height: 1; }
  .nphero__h { font-size: 2.6rem; }
  .noir .h2, .nh2 { font-size: 2.4rem; }
  .noir .faqwrap__head .h2, .noir .whocloses .h2, .nwhowrap .nh2 { font-size: 2.2rem; }
  .nstat__v { font-size: 2.6rem; }
  .nrow__t { font-size: 1.45rem; }
  .npartner__name { font-size: 1.45rem; }
  .nwho__t { font-size: 1.3rem; }
  .nquote blockquote p { font-size: 1.65rem; }
  .nsteps span { font-size: 2.4rem; }
  .nres__t { font-size: 1.75rem; }
  .nres__lt { font-size: 1.3rem; }
  .ftr__bigtel { font-size: 2.1rem; }
  .noir .answer__v { font-size: 1.24rem; }
  .ncalc__in input { font-size: 2.2rem; }
}

.noir .qlink strong { color: var(--ink); }
.noir .qlink--side strong { color: #f2ece0; }

/* ---------- Typography v3: Manrope in Noir (2026-10-28) ---------- */
.noir h1, .noir h2, .noir .h2, .noir .nh2, .noir .nh3 { font-weight: 600; letter-spacing: -0.035em; }
.noir h1 em, .noir h2 em, .noir .nh2 em { font-style: normal; }
.nhero__h { font-size: clamp(2.9rem, 1.6rem + 4.4vw, 5.4rem); font-weight: 600; line-height: 1.02; letter-spacing: -0.045em; }
.nphero__h { font-size: clamp(2.5rem, 1.5rem + 3.2vw, 4.2rem); font-weight: 600; line-height: 1.04; letter-spacing: -0.04em; }
.noir .h2, .nh2 { font-size: clamp(2.1rem, 1.4rem + 2.2vw, 3.2rem); line-height: 1.08; }
.nh3 { font-size: 1.5rem; font-weight: 650; letter-spacing: -0.025em; }
.noir .shero__h, .noir .ahero__h, .noir .pro__h { font-weight: 600; }
.noir .faqwrap__head .h2, .noir .faqwrap__head .nh2, .noir .whocloses .h2 { font-size: clamp(1.9rem, 1.3rem + 1.4vw, 2.4rem); }
.nwhowrap .nh2 { font-size: clamp(1.9rem, 1.35rem + 1.5vw, 2.6rem); }
.nstat__v { font-weight: 700; font-size: clamp(2.5rem, 1.9rem + 1.8vw, 3.4rem); letter-spacing: -0.045em; }
.nrow__t { font-size: 1.4rem; font-weight: 650; letter-spacing: -0.025em; }
.nrow__n { font-size: 0.95rem; font-weight: 600; font-style: normal; letter-spacing: 0.06em; padding-top: 8px; }
.npartner__name { font-size: 1.3rem; font-weight: 650; letter-spacing: -0.02em; }
.nwho__t { font-size: 1.18rem; font-weight: 650; letter-spacing: -0.015em; }
.nquote blockquote p { font-style: normal; font-size: clamp(1.45rem, 1.05rem + 1.4vw, 2.15rem); font-weight: 500; line-height: 1.38; letter-spacing: -0.025em; }
.nsteps span { font-size: 2.2rem; font-weight: 700; font-style: normal; letter-spacing: -0.04em; }
.ncalc__v { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.04em; }
.ncalc__in input { font-size: 2.1rem; font-weight: 600; letter-spacing: -0.03em; }
.ncalc__in span { font-size: 1.5rem; }
.nres__t { font-size: 1.75rem; font-weight: 650; letter-spacing: -0.03em; }
.nres__lt { font-size: 1.15rem; font-weight: 650; letter-spacing: -0.015em; }
.nband__t { font-size: clamp(2.1rem, 1.4rem + 2.2vw, 3.2rem); font-weight: 650; letter-spacing: -0.04em; }
.ftr__say { font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.5rem); font-weight: 600; letter-spacing: -0.035em; }
.ftr__bigtel { font-size: 2rem; font-weight: 650; letter-spacing: -0.03em; }
.noir .answer__v { font-size: 1.15rem; font-weight: 500; line-height: 1.6; }
.noir .issue__n { font-style: normal; }
.nquote__mark { font-family: Georgia, serif; }
@media (max-width: 720px) {
  .nhero__h { font-size: 2.55rem; line-height: 1.05; }
  .nphero__h { font-size: 2.15rem; }
  .noir .h2, .nh2 { font-size: 1.95rem; }
  .noir .faqwrap__head .h2, .noir .whocloses .h2, .nwhowrap .nh2 { font-size: 1.8rem; }
  .nstat__v { font-size: 2.2rem; }
  .nrow__t { font-size: 1.14rem; }
  .npartner__name { font-size: 1.15rem; }
  .nwho__t { font-size: 1.04rem; }
  .nquote blockquote p { font-size: 1.3rem; }
  .nsteps span { font-size: 1.8rem; }
  .nres__t { font-size: 1.35rem; }
  .nres__lt { font-size: 1.05rem; }
  .ftr__bigtel { font-size: 1.7rem; }
  .noir .answer__v { font-size: 1.04rem; }
  .ncalc__in input { font-size: 1.8rem; }
}

/* ---------- Polish pass in Noir (2026-10-28) ---------- */
.noir h1, .noir h2, .noir .h2, .noir .nh2, .noir .nh3 { font-weight: 500; letter-spacing: -0.024em; }
.nhero__h { font-size: clamp(2.7rem, 1.6rem + 3.8vw, 4.9rem); font-weight: 500; line-height: 1.06; letter-spacing: -0.032em; }
.nphero__h { font-size: clamp(2.3rem, 1.5rem + 2.7vw, 3.8rem); font-weight: 500; line-height: 1.08; letter-spacing: -0.028em; }
.noir .h2, .nh2 { font-size: clamp(2rem, 1.4rem + 1.9vw, 2.9rem); line-height: 1.12; }
.noir .shero__h, .noir .ahero__h, .noir .pro__h { font-weight: 500; }
.nrow__t, .npartner__name, .nwho__t, .nres__t, .nres__lt, .nh3 { font-weight: 600; letter-spacing: -0.012em; }
.nstat__v { font-weight: 600; letter-spacing: -0.032em; }
.nsteps span, .ncalc__v { font-weight: 600; letter-spacing: -0.03em; }
.nquote blockquote p { font-weight: 450; letter-spacing: -0.012em; }
.nband__t, .ftr__say { font-weight: 500; letter-spacing: -0.026em; }
.noir .hero__uw li { color: var(--ink); }
@media (max-width: 720px) {
  .nhero__h { font-size: 2.4rem; line-height: 1.08; letter-spacing: -0.026em; }
  .nphero__h { font-size: 2rem; }
  .noir .h2, .nh2 { font-size: 1.85rem; }
}

.noir .upl { background: #0c0c0d; border-radius: 2px; }
.noir .upl__ico, .noir .upl__btn { border-radius: 2px; }
.noir .upl__btn { background: transparent; }
.noir .upl.has-file { background: rgba(201, 168, 92, 0.08); }

/* Home: the two advantages (Brian, 2026-11-04) and the who-we-serve list */
.nadv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line-2); }
.nadv__c { padding: 40px 48px 8px 0; }
.nadv__c + .nadv__c { padding: 40px 0 8px 48px; border-left: 1px solid var(--line-2); }
.nadv__c > svg { color: var(--gold); margin-bottom: 18px; }
.nadv__c p { margin: 0 0 20px; }
.nwholist { min-width: 0; border-top: 1px solid var(--line-2); }
@media (max-width: 860px) {
  .nadv { grid-template-columns: minmax(0, 1fr); }
  .nadv__c, .nadv__c + .nadv__c { padding: 32px 0 8px; border-left: 0; }
  .nadv__c + .nadv__c { border-top: 1px solid var(--line); }
}
