/* Relationship Capital Group — site styles (V2)
   Palette: limestone and night, with a claret accent (private-club leather rather than "premium gold").
   Type: Instrument Serif for statements, Instrument Sans for reading and labels.
   V2 discipline: one grid (split 4/8, pair 6/6, trio, quad), one spacing scale (--s1…--s6, --section),
   one type scale (.t-display, .t-xl, .t-l, .t-m, .lead, body, .small). Every section uses --section. */

@font-face {
  font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/fonts/instrument-serif-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Instrument Serif"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("/fonts/instrument-serif-italic-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Instrument Sans"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("/fonts/instrument-sans-latin.woff2") format("woff2");
}

:root {
  --night: #101417;
  --night-2: #1a1f24;
  --stone: #e8e6e1;
  --stone-2: #dcd9d2;
  --chalk: #f3f2ee;
  --ink: #121518;
  --ink-soft: #50555b;
  --line: rgba(18, 21, 24, .18);
  --claret: #6d2a25;
  --on-dark: #eeece7;
  --on-dark-soft: rgba(238, 236, 231, .7);
  --on-dark-line: rgba(238, 236, 231, .2);
  --claret-light: #d7a291;

  /* type scale: every size on the site comes from here.
     Hierarchy (max two serif sizes in any section):
       display / xl  page headline (display on the home hero and closing; xl on inner pages and statement bands)
       l             section heading, and the payoff line that closes a section
       m             section content: statements, item headings
       s             supporting detail, only in detail grids that stand alone
     Sans: one reading size (body) for every paragraph and item description;
     small is for interface only (menu, buttons, form notices, footer, small print). */
  --fs-display: clamp(2.75rem, 6.4vw, 6rem);
  --fs-xl: clamp(2.1rem, 4vw, 3.75rem);
  --fs-l: clamp(1.7rem, 2.8vw, 2.7rem);
  --fs-m: clamp(1.3rem, 1.9vw, 1.8rem);
  --fs-s: 1.25rem;
  --fs-body: 1.0625rem;
  --fs-small: .9375rem;
  --fs-label: .75rem;
  --track-label: .16em;

  --serif: "Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  /* grid */
  --max: 1280px;
  --gutter: clamp(1rem, 5vw, 4rem);
  --gap: clamp(1.5rem, 4vw, 4rem);

  /* spacing scale */
  --s1: .5rem;
  --s2: 1rem;
  --s3: 1.5rem;
  --s4: 2.5rem;
  --s5: clamp(2.5rem, 5vw, 3.75rem);
  --s6: clamp(3rem, 7vw, 5.5rem);
  --section: clamp(3.5rem, 7.5vw, 6.5rem);

  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--stone);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--fs-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
p { text-wrap: pretty; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
em { font-style: italic; }
strong { font-weight: inherit; }

:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

.skip {
  position: absolute; left: 1rem; top: -100px; z-index: 100;
  padding: .75rem 1rem; background: var(--night); color: var(--on-dark);
}
.skip:focus { top: 1rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.on-dark { color: var(--on-dark); }
.bg-chalk { background: var(--chalk); }

/* ---------- grid ---------- */

.wrap { width: min(var(--max), 100% - 2 * var(--gutter)); margin-inline: auto; }
.split, .pair, .trio, .quad { display: grid; gap: var(--s4) var(--gap); }
.split { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.split--wide { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); align-items: end; }
.pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quad { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stack > * + * { margin-top: var(--s3); }
.split > *, .pair > *, .trio > *, .quad > * { min-width: 0; }

/* ---------- sections: one rhythm ---------- */

.section { padding-block: var(--section); }
.section--rule { padding-top: 0; }
.section--rule > .wrap { padding-top: var(--section); border-top: 1px solid var(--line); }
.on-dark .section--rule > .wrap, .section--rule.on-dark > .wrap { border-color: var(--on-dark-line); }
.section--flush { padding-top: 0; }

/* ---------- type scale ---------- */

.eyebrow {
  display: block;
  font-family: var(--sans);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--track-label);
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--claret);
}
.on-dark .eyebrow { color: var(--claret-light); }
.eyebrow + h1, .eyebrow + h2 { margin-top: var(--s3); }

h1, h2, h3,
.t-display, .t-xl, .t-l, .t-m {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.012em;
  text-wrap: balance;
}
.t-display { font-size: var(--fs-display); line-height: .94; letter-spacing: -.024em; }
.t-xl      { font-size: var(--fs-xl); line-height: 1; letter-spacing: -.02em; }
.t-l       { font-size: var(--fs-l); line-height: 1.06; }
.t-m       { font-size: var(--fs-m); line-height: 1.2; }

.lead { max-width: 36em; font-size: var(--fs-body); line-height: 1.65; color: var(--ink-soft); text-wrap: pretty; }
.on-dark .lead { color: var(--on-dark-soft); }
.small-print { font-size: var(--fs-small); line-height: 1.6; color: var(--ink-soft); }

.line { display: block; }
.accent { color: var(--claret); font-style: italic; }
.on-dark .accent { color: var(--claret-light); }
.serif-soft { color: var(--ink-soft); }
.on-dark .serif-soft { color: var(--on-dark-soft); }

/* The last line of a multi-line statement carries the accent. */
.stagger .line:last-child,
.reverse__asset .line:last-child,
.feature__coda .line:last-child,
.why__fit .line:last-child,
.proposition__close .line:last-child,
.hero__title .line:last-child,
.closing__signature .line:last-child { color: var(--claret); font-style: italic; }
.on-dark .stagger .line:last-child,
.on-dark .reverse__asset .line:last-child,
.on-dark .feature__coda .line:last-child,
.on-dark.hero .hero__title .line:last-child { color: var(--claret-light); }

.arrow { display: inline-block; font-family: var(--sans); font-size: .55em; vertical-align: .35em; transition: transform .4s var(--ease); }

.text-link {
  display: inline-block; margin-top: var(--s4); padding-bottom: .3rem;
  border-bottom: 1px solid currentColor;
  font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); text-transform: uppercase; text-decoration: none;
}
.text-link .arrow { font-size: 1em; vertical-align: 0; }

/* Supporting detail (situations, pillars, Intelligence items, values): quiet, ruled, never boxed. */
.details li, .values li { padding-top: var(--s2); border-top: 1px solid var(--line); }
.on-dark .details li, .on-dark .values li { border-color: var(--on-dark-line); }
.details h2, .details h3 { font-size: var(--fs-s); line-height: 1.25; }
.details p, .values p { max-width: 30em; margin-top: var(--s1); font-size: var(--fs-body); line-height: 1.65; color: var(--ink-soft); }
.on-dark .details p, .on-dark .values p { color: var(--on-dark-soft); }
.details--large h2 { font-size: var(--fs-m); line-height: 1.2; }
.intel__items h3 { font-size: var(--fs-m); line-height: 1.2; }
.details--large p { font-size: var(--fs-body); }

/* ---------- media & image placeholders ---------- */

.media { position: relative; overflow: hidden; background: var(--night-2); }
.media picture { display: block; width: 100%; height: 100%; }
.media img { width: 100%; height: 100%; object-fit: cover; }
.ph { position: absolute; inset: 0; }
.ph::after {
  content: ""; position: absolute; inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(238,236,231,.035) 0 1px, transparent 1px 92px),
    repeating-linear-gradient(180deg, transparent 0 140px, rgba(238,236,231,.025) 140px 141px);
}
.ph--dusk { background: linear-gradient(180deg, #0c1115 0%, #17222b 48%, #2a2f36 78%, #463b37 100%); }
.ph--interior { background: linear-gradient(160deg, #15110f 0%, #2b211c 55%, #4a3228 100%); }
.ph--stone { background: linear-gradient(180deg, #3a3a39 0%, #57534d 60%, #6d665d 100%); }
.ph--portrait { background: linear-gradient(180deg, #2a2e32 0%, #3f3d3a 100%); }
.ph--portrait::after { background: none; }
.ph-note {
  position: absolute; left: 1rem; bottom: 1rem; z-index: 2; max-width: 44ch;
  font-size: .68rem; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase;
  color: rgba(238, 236, 231, .62);
}

/* ---------- header & nav ---------- */

.site-header { position: relative; z-index: 30; }
.site-header--over { position: absolute; inset: 0 0 auto; color: var(--on-dark); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); padding-block: var(--s3); }

.brand { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; }
.brand__name { font-family: var(--serif); font-size: 1.5rem; letter-spacing: -.01em; white-space: nowrap; }
.brand__sub { margin-top: .45rem; font-size: .6rem; letter-spacing: .24em; text-transform: uppercase; opacity: .7; }

.nav ul { display: flex; align-items: center; gap: clamp(1rem, 1.9vw, 2rem); }
.nav a {
  display: inline-block; padding-block: .4rem; white-space: nowrap;
  font-size: var(--fs-small); text-decoration: none;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: background-size .4s var(--ease);
}
.nav a:hover, .nav a[aria-current="page"] { background-size: 100% 1px; }
.nav .nav__cta a { padding: .7rem 1.1rem; border: 1px solid currentColor; background: none; }

.menu-toggle { display: none; }

@media screen {
  .nav ul { flex-wrap: wrap; gap: .25rem 1.25rem; }
  .site-header__inner { flex-wrap: wrap; }

  .js .site-header__inner { flex-wrap: nowrap; }
  .js .menu-toggle {
    position: relative; z-index: 2;
    display: inline-flex; padding: .6rem .9rem;
    border: 1px solid currentColor; background: none; color: inherit;
    font: inherit; font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); text-transform: uppercase; cursor: pointer;
  }
  .menu-toggle__close { display: none; }
  .js .nav {
    position: fixed; inset: 0; z-index: 1;
    display: flex; align-items: center;
    padding: var(--s6) var(--gutter) var(--s5);
    background: var(--night); color: var(--on-dark);
    opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s;
    overflow-y: auto;
  }
  .js .nav ul { flex-direction: column; align-items: flex-start; gap: .9rem; }
  .js .nav a { white-space: normal; font-family: var(--serif); font-size: var(--fs-l); letter-spacing: -.012em; }
  .js .nav .nav__cta { margin-top: var(--s2); }
  .js .nav .nav__cta a { font-family: var(--sans); font-size: var(--fs-small); letter-spacing: 0; }
  .nav-open .nav { opacity: 1; visibility: visible; }
  .nav-open .site-header { color: var(--on-dark); }
  .nav-open .menu-toggle__open { display: none; }
  .nav-open .menu-toggle__close { display: inline; }
  .nav-open .brand { position: relative; z-index: 2; }
  .nav-open body { overflow: hidden; }
}

/* ---------- home: hero ---------- */

.hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 100vh; min-height: 100svh; background: var(--night); }
.hero__media { position: absolute; inset: 0; }
.hero__media::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(16,20,23,.55) 0%, rgba(16,20,23,.2) 50%, rgba(16,20,23,0) 80%),
    linear-gradient(180deg, rgba(16,20,23,.4) 0%, rgba(16,20,23,0) 28%, rgba(16,20,23,.2) 55%, rgba(16,20,23,.85) 100%);
}
.hero__media .ph-note { top: 7.5rem; bottom: auto; left: auto; right: var(--gutter); text-align: right; }
.hero__content { position: relative; z-index: 2; padding-top: 9rem; padding-bottom: var(--s6); }
.hero__title { max-width: none; }
.hero__question { max-width: 24ch; margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--on-dark-line); color: var(--on-dark); }
.hero__text { max-width: 34em; margin-top: var(--s4); font-size: var(--fs-body); line-height: 1.65; color: var(--on-dark-soft); }

/* ---------- home: credibility & approach ---------- */

.credibility__title { max-width: 26ch; margin-inline: auto; text-align: center; }
.credibility__explanation { margin-top: var(--s5); }
.credibility__approach { margin-top: var(--s5); text-align: center; }
.credibility__close { max-width: 48em; margin: var(--s5) auto 0; text-align: center; }
.credibility__close > .lead { margin-inline: auto; }
.credibility__conclusion { max-width: 36em; margin: var(--s3) auto 0; }
.approach__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--s2); border-top: 1px solid var(--line); }
.approach__list li { padding: var(--s2) var(--s2) 0; font-family: var(--serif); font-size: var(--fs-m); line-height: 1.2; }
.approach__list li + li { padding-left: var(--s2); border-left: 1px solid var(--line); }

/* ---------- full-width image statement ---------- */

.band { position: relative; display: flex; align-items: flex-end; min-height: 60vh; min-height: 60svh; background: var(--night); }
.band__media { position: absolute; inset: 0; }
.band__media::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(16,20,23,.72) 0%, rgba(16,20,23,.35) 45%, rgba(16,20,23,0) 75%),
    linear-gradient(180deg, rgba(16,20,23,.1) 30%, rgba(16,20,23,.78) 100%);
}
.band__media .ph-note { top: 1.5rem; bottom: auto; }
.band__inner { position: relative; z-index: 2; padding-block: var(--section); }
.band__text { max-width: 14ch; }

/* ---------- two worlds (home and About) ---------- */

.two-worlds { text-align: center; }
.two-worlds__title { max-width: 14ch; margin-inline: auto; }
.worlds {
  display: grid; grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr); gap: var(--gap);
  max-width: 66rem; margin: var(--s5) auto 0;
}
.two-worlds .worlds { margin-top: var(--s5); }
.worlds__rule { background: var(--line); }
.world--one { text-align: right; }
.world--other { text-align: left; }
.world__text { font-family: var(--serif); font-size: var(--fs-m); line-height: 1.2; text-wrap: balance; }
.world__list { display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; margin-top: var(--s3); font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--claret); }
.world--one .world__list { justify-content: flex-end; }
.worlds__both { max-width: 30em; margin: var(--s5) auto 0; font-size: var(--fs-body); line-height: 1.65; color: var(--ink-soft); text-align: center; }
.worlds + .worlds__both + .text-link { margin-top: var(--s4); }

/* ---------- home: technology & intelligence ---------- */

.intel { background: var(--night); }
.intel__head { align-items: center; }
.netviz { align-self: center; justify-self: center; display: flex; align-items: center; max-width: 12rem; }
.netviz svg { width: 100%; max-width: 26rem; height: auto; overflow: visible; }
.netviz line { stroke: var(--on-dark-line); stroke-width: 1; }
.netviz circle { fill: var(--on-dark-soft); }
.netviz .key { fill: var(--claret-light); }
.netviz .key-ring { fill: none; stroke: var(--claret-light); stroke-opacity: .5; }
.intel__people { margin-top: var(--s4); max-width: 26em; }
.intel__technology { margin-top: var(--s3); }
.intel__items { margin-top: var(--s4); }
.intel__benefit { margin: var(--s4) auto 0; text-align: center; }
.benefits { margin-top: var(--s5); }
.benefits li { padding: var(--s4) 0 0; border-top: 1px solid var(--claret-light); }
.benefits .lead { margin-top: var(--s2); }
.intel__closer { max-width: 42ch; margin: var(--s3) auto 0; text-align: center; color: var(--claret-light); font-style: italic; }

/* ---------- home: the two routes, identical ---------- */

.routes-intro { margin-bottom: var(--s5); }
.routes-intro__sides { margin-top: var(--s4); }
.routes-intro__close { margin: var(--s4) auto 0; max-width: 36em; text-align: center; }
.routes { align-items: start; }
@media (min-width: 761px) {
  .routes { grid-template-rows: repeat(5, auto); row-gap: 0; }
  .routes > .route { display: grid; grid-template-rows: subgrid; grid-row: span 5; }
}
.route { display: block; text-decoration: none; }
.route__media { aspect-ratio: 16 / 9; margin-bottom: var(--s3); }
.route__media::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(16,20,23,.1) 0%, rgba(16,20,23,.28) 100%);
}
.route .media img { transition: transform 1.2s var(--ease); }
.route:hover .media img, .route:focus-visible .media img { transform: scale(1.025); }
.route__title { display: block; margin-top: var(--s2); }
.route__line { display: block; margin-top: var(--s2); }
.route__text { display: block; max-width: 36em; margin-top: var(--s2); color: var(--ink-soft); }
.route:hover .arrow, .route:focus-visible .arrow { transform: translate(.2em, -.2em); }

/* ---------- business development in reverse: the major moment ---------- */

.reverse { background: var(--night); }
.contrast { margin-top: var(--s5); align-items: stretch; }
.contrast__side { padding-top: var(--s3); border-top: 1px solid var(--on-dark-line); }
.contrast__side--ours { border-top-color: var(--claret-light); }
.contrast__label { margin-bottom: var(--s2); font-family: var(--sans); font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); line-height: 1.4; text-transform: uppercase; color: var(--on-dark-soft); }
.contrast__side--ours .contrast__label { color: var(--claret-light); }
.contrast__side--traditional .t-m { color: var(--on-dark-soft); }
.reverse__asset { max-width: 26ch; margin-top: var(--s6); }

/* ---------- home: why it exists ---------- */

.why__head { align-self: start; }
.why__title { max-width: 14ch; }
/* The story reads down one column, one beat per ruled step. */
.why__story > * + * { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--line); }
/* What we do (Jamie, 2026-09-27): the client proposition, straight after Why It Exists. */
.proposition__head { align-self: start; }
.proposition__body { display: grid; gap: var(--s3); max-width: 36em; color: var(--ink-soft); }
.proposition__body p { max-width: 36em; }
.proposition__close { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--line); }

/* Why It Exists uses two sizes only: every beat at m, the heading and the closing line at l. */
.turn { margin-top: var(--s3); font-style: italic; color: var(--ink-soft); }
@media (min-width: 961px) { .why__head { position: sticky; top: var(--s4); } }

/* Two restrained homepage sequences, revealed as they enter view. */
.motion [data-reveal] .line,
.motion [data-reveal] .turn {
  opacity: 0; transform: translateY(.65em);
  transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.motion [data-reveal] .line:nth-child(2) { transition-delay: .45s; }
.motion [data-reveal] .line:nth-child(3) { transition-delay: .9s; }
.motion [data-reveal] .turn { transition-delay: 1.5s; }
.motion [data-reveal].is-in .line,
.motion [data-reveal].is-in .turn { opacity: 1; transform: none; }

/* ---------- onward teasers ---------- */

.onward { padding-block: var(--s6); background: var(--night-2); }
.teaser { display: block; text-decoration: none; }
.onward .pair { column-gap: 0; }
.onward .pair > .teaser { padding-right: var(--gap); }
.pair > .teaser + .teaser { padding-left: var(--gap); padding-right: 0; border-left: 1px solid var(--on-dark-line); }
.teaser__title { display: block; margin-top: var(--s2); max-width: 18ch; }
.teaser__sub { display: block; max-width: 26em; margin-top: var(--s2); font-family: var(--serif); font-size: var(--fs-s); font-style: italic; line-height: 1.4; color: var(--on-dark-soft); }
.teaser:hover .arrow, .teaser:focus-visible .arrow { transform: translate(.2em, -.2em); }

/* ---------- inner pages ---------- */

.opener { padding-block: var(--s6) var(--s5); }
.opener__title { max-width: 20ch; }
.opener__support { max-width: 28em; margin-top: var(--s3); color: var(--ink-soft); font-style: italic; }
.on-dark .opener__support, .on-dark .opener__sub { color: var(--on-dark-soft); }
.opener__sub { margin-top: var(--s3); font-style: italic; max-width: 26em; }
.opener__media { height: clamp(300px, 58vh, 680px); }
.opener__media::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(16,20,23,.3) 0%, rgba(16,20,23,.2) 45%, rgba(16,20,23,.5) 100%);
}

.stagger { max-width: 22ch; }

.feature { background: var(--night); }
.feature__title { max-width: 14ch; }
.feature__title + .feature__body { margin-top: var(--s5); }
.feature__body { align-items: start; }
.feature > .wrap:has(.feature__single) { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s4) var(--gap); align-items: start; }
.feature__single { max-width: 28em; color: var(--on-dark-soft); }
.feature__coda { max-width: 24ch; margin-top: var(--s5); }

.coda__title { max-width: 14ch; }
.coda__body { align-self: start; }

/* Curated Access: the darker, more cultural page */
.page-dark { background: var(--night); }
.page-dark .site-header { color: var(--on-dark); }
.dark-page { background: var(--night); }
.dark-page .section--rule > .wrap { border-color: var(--on-dark-line); }
.dark-page .opener__title { max-width: none; }

/* Curated Access: one continuous editorial section. */
.curated-story__intro { align-items: start; }
.curated-story__qualities { margin-top: var(--s5); }
.curated-story__stance { margin-top: var(--s5); padding-top: var(--s4); border-top: 1px solid var(--on-dark-line); text-align: center; color: var(--claret-light); }

/* About */
.values li { padding-top: var(--s3); }
.founder__portrait { aspect-ratio: 4 / 5; max-width: 22rem; align-self: start; }
.founder__portrait img { object-position: 50% 30%; }
.founder__text { margin-top: var(--s4); }
.founder__significance { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--line); }
.founder-close { text-align: center; }
.founder-close__philosophy { max-width: 22ch; margin-inline: auto; }
.founder-close__trust { margin: var(--s3) auto 0; }
.founder-sides { margin-top: var(--s6); padding-top: var(--s5); border-top: 1px solid var(--line); }
.founder-sides .worlds { margin-top: 0; }
.founder-sides .worlds__both { font-family: var(--serif); font-size: var(--fs-m); line-height: 1.2; font-style: italic; color: var(--claret); }
/* Advisory Board: six areas, balanced in two rows on desktop. */
.board { background: var(--night); }
.board__intro { max-width: 30em; color: var(--on-dark-soft); }
.board__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); margin-top: var(--s5); }
.board__discipline { padding-top: var(--s2); border-top: 1px solid var(--claret-light); }

@media (max-width: 480px) {
  .board .board__grid { grid-template-columns: 1fr; }
}
.founder-quote { max-width: 34rem; margin: var(--s6) auto 0; }
.founder-quote p { font-style: italic; }
.founder-quote figcaption { margin-top: var(--s3); }

/* ---------- closing & contact ---------- */

.closing, .contact-page { padding-block: var(--section); background: var(--stone-2); text-align: center; }
.closing__signature { margin-top: var(--s4); }
.triad {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 64rem; margin: var(--s6) auto 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.triad li { padding: var(--s4) var(--s3); }
.triad li + li { border-left: 1px solid var(--line); }
.triad__who { display: block; font-family: var(--sans); font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--claret); }
.triad__what { display: block; margin-top: var(--s1); font-family: var(--serif); font-size: var(--fs-m); line-height: 1.2; }
.closing__title { max-width: 24ch; margin: var(--s6) auto 0; }
.closing__principle { max-width: 32em; margin: var(--s2) auto 0; font-size: var(--fs-body); line-height: 1.65; color: var(--ink-soft); }

.enquiry { display: grid; gap: var(--s3); max-width: 34rem; margin: var(--s5) auto 0; text-align: left; }
.enquiry__field { display: grid; gap: .4rem; }
.enquiry label { font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-soft); }
.enquiry input, .enquiry textarea {
  width: 100%; padding: .6rem 0; border: 0; border-bottom: 1px solid var(--ink-soft); border-radius: 0;
  background: transparent; color: var(--ink); font: inherit; font-size: var(--fs-body);
}
.enquiry textarea { resize: vertical; min-height: 7rem; }
.enquiry input:focus-visible, .enquiry textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.enquiry__submit { justify-self: start; margin-top: .5rem; background: none; color: inherit; font: inherit; font-size: var(--fs-small); cursor: pointer; }
.enquiry__notice { font-size: var(--fs-small); line-height: 1.6; color: var(--ink-soft); }
.enquiry__notice.is-flagged { color: var(--claret); }
.enquiry__email { font-size: var(--fs-small); color: var(--ink-soft); }
.enquiry__email a { color: var(--ink); text-underline-offset: .2em; }

.cta {
  display: inline-flex; align-items: center; gap: .9rem;
  margin-top: var(--s5); padding: 1.05rem 1.7rem;
  border: 1px solid currentColor;
  font-size: var(--fs-small); text-decoration: none;
}
.cta .arrow { font-size: .9em; vertical-align: 0; }

/* ---------- footer ---------- */

.site-footer { padding-block: var(--s5) var(--s4); background: var(--night); font-size: var(--fs-small); }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: .6rem 2rem; padding-bottom: var(--s4); border-bottom: 1px solid var(--on-dark-line); }
.site-footer__nav a { text-decoration: none; color: var(--on-dark-soft); }
.site-footer__nav a:hover { color: var(--on-dark); }
.site-footer__legal { max-width: 52em; padding-top: var(--s4); font-size: var(--fs-small); line-height: 1.6; color: var(--on-dark-soft); }
.site-footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; margin-top: var(--s4); font-size: var(--fs-small); color: var(--on-dark-soft); }
.site-footer__credit { color: var(--on-dark); text-decoration: none; border-bottom: 1px solid var(--on-dark-line); }
.site-footer__credit:hover { border-bottom-color: currentColor; }

/* ---------- responsive ---------- */

@media (max-width: 960px) {
  .board__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .quad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trio { grid-template-columns: 1fr; }
  .split, .split--wide, .feature > .wrap:has(.feature__single) { grid-template-columns: 1fr; }
  .split > .stack, .founder__text, .proposition__body { max-width: 36em; }
  .netviz { display: none; }
  .founder__portrait { max-width: 18rem; }
}

@media (max-width: 760px) {
  .proposition__body { grid-template-columns: 1fr; }
  .board__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4) var(--s3); }
  :root { --fs-body: 1rem; }
  .brand__name { font-size: 1.2rem; }
  .pair, .quad, .triad, .approach__list { grid-template-columns: 1fr; }
  .onward .pair > .teaser { padding-right: 0; }
  .pair > .teaser + .teaser { padding-left: 0; padding-top: var(--s5); border-left: 0; border-top: 1px solid var(--on-dark-line); }
  .approach__list li, .approach__list li + li { padding: var(--s2) 0; border-left: 0; }
  .approach__list li + li { border-top: 1px solid var(--line); }
  .triad li { padding: var(--s3) 0; }
  .triad li + li { border-left: 0; border-top: 1px solid var(--line); }
  .worlds { grid-template-columns: 1fr; gap: var(--s4); }
  .world--one, .world--other { text-align: center; }
  .world--one .world__list, .world--other .world__list { justify-content: center; }
  .worlds__rule { width: 3rem; height: 1px; margin-inline: auto; }
  .netviz { max-width: 12rem; }
  .hero__content { padding-top: 7.5rem; }
  .hero__media .ph-note { display: none; }
  .hero__media::after { background: linear-gradient(180deg, rgba(16,20,23,.45) 0%, rgba(16,20,23,.2) 35%, rgba(16,20,23,.88) 100%); }
  .site-footer__nav { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .motion [data-reveal] .line, .motion [data-reveal] .turn { opacity: 1; transform: none; }
  *, *::before, *::after { transition-duration: .01ms !important; transition-delay: 0s !important; }
}

@media print {
  .site-header nav, .menu-toggle, .cta, .ph-note, .netviz { display: none; }
  .on-dark, .page-dark, .intel, .reverse, .feature, .onward, .site-footer, .hero, .band { background: #fff !important; color: var(--ink) !important; }
  .media { display: none; }
}

/* Homepage principles: use the existing serif content style, matching the approach list. */
.principles { text-align: center; }
.principles__items {
  display: flex; flex-wrap: wrap; justify-content: center; row-gap: var(--s1);
  margin-top: var(--s3); font-family: var(--serif); font-size: var(--fs-m); font-weight: 400; line-height: 1.2; color: var(--ink-soft);
}
.principles__items li + li::before { content: "·"; content: "·" / ""; padding-inline: .6em; color: var(--claret); }
@media (max-width: 760px) {
  .principles__items { flex-direction: column; }
  .principles__items li + li::before { content: none; }
}

/* Jamie, 2026-09-28: consistent frames for existing section sign-offs. */
.credibility__close { max-width: none; }
.section-signoff {
  width: 100%; max-width: 56rem; margin: var(--s5) auto 0;
  padding: var(--s4) var(--s5); border: 1px solid var(--line);
  text-align: center; text-wrap: balance;
}
.section-signoff--span { grid-column: 1 / -1; margin-top: var(--s2); }
.section-signoff--standalone { margin-top: 0; }
.section-signoff > * { margin-inline: auto; }
.section-signoff > * + * { margin-top: var(--s3); }
.section-signoff .line:last-child:not(:first-child) { color: var(--claret); font-style: italic; }
.on-dark .section-signoff { border-color: var(--on-dark-line); }
.on-dark .section-signoff .line:last-child:not(:first-child) { color: var(--claret-light); }
.curated-story__stance.section-signoff { max-width: none; }
.curated-story__stance.section-signoff > * { margin: 0; }
.advisory-close { text-align: center; }
.advisory-close > .serif-soft { max-width: 36em; margin-inline: auto; }
.advisory-close > .small-print { margin-top: var(--s4); }
.advisory-close > .text-link { display: inline-block; margin-top: var(--s3); }
@media (max-width: 760px) {
  .section-signoff { padding: var(--s4) var(--s3); }
  .curated-story__stance.section-signoff { gap: var(--s3); }
}

/* Strategic consulting: audience, decisions and outcome in one section. */
.advisory-themes, .advisory-outcome { margin-top: var(--s5); }
.advisory-themes > .details { margin-top: var(--s3); }
.advisory-themes h3 { font-size: var(--fs-m); line-height: 1.2; }
.advisory-result { margin: var(--s3) auto 0; }

/* Mirrored client and institutional pages: one continuous body. */
.route-story__headline { max-width: 24em; margin-inline: auto; text-align: center; text-wrap: balance; }
.route-story__leads { margin-top: var(--s4); }
.route-story__leads--single { max-width: 46em; margin-inline: auto; text-align: center; }
.route-story__leads--single > .lead { margin-inline: auto; }
.route-story__context-title { text-align: center; margin-bottom: var(--s2); }
.route-story__statement { margin-top: var(--s4); text-align: center; color: var(--claret); }
.route-story__statement span { display: inline-block; }
.route-story__statement span + span { margin-left: var(--s2); }
.route-story__details, .route-story__context { margin-top: var(--s5); }
.route-story__selection { max-width: 42em; margin-inline: auto; text-align: center; }
.route-story__audience { margin-top: var(--s4); }
.route-story__audience .lead { max-width: none; margin-top: var(--s2); }
@media (max-width: 760px) {
  .route-story__statement span { display: block; }
  .route-story__statement span + span { margin: var(--s1) 0 0; }
}

.route-story__reflection > .serif-soft { margin-top: var(--s3); }

.route-story__context-heading { margin-bottom: var(--s3); color: var(--claret); }

/* Homepage opening: one focused composition, with clear routes for both audiences. */
.page-home .site-header__inner { border-bottom: 1px solid var(--on-dark-line); }
.page-home .brand__name { font-size: var(--fs-l); }
.page-home .brand__sub { display: none; }
.hero__content { min-height: 100svh; display: flex; flex-direction: column; padding-top: calc(var(--s6) + var(--s5)); padding-bottom: var(--s3); text-align: center; }
.hero__main { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-block: var(--s5); }
.hero__title { line-height: 1; }
.hero__text { max-width: 38em; margin: var(--s3) auto 0; color: var(--on-dark); text-wrap: balance; }
.hero__routes { display: flex; justify-content: center; gap: var(--s4); margin-top: var(--s4); }
.hero__routes a { display: inline-flex; align-items: center; gap: var(--s2); padding-block: var(--s2); border-bottom: 1px solid var(--on-dark-soft); font-size: var(--fs-small); text-decoration: none; }
.hero__routes .arrow { font-size: inherit; vertical-align: baseline; }
.hero__routes a:hover .arrow { transform: translate(2px, -2px); }
.hero__question { display: flex; justify-content: center; align-items: center; gap: var(--s3); max-width: none; width: 100%; margin-top: var(--s3); padding-top: var(--s3); text-decoration: none; }
.hero__question > span { font-family: var(--sans); font-size: var(--fs-small); }
.hero__media::after { background: linear-gradient(180deg, rgba(16,20,23,.75), rgba(16,20,23,.38) 45%, rgba(16,20,23,.86)); }
@media (max-width: 760px) {
  .page-home .brand__name { font-size: var(--fs-m); max-width: 12em; white-space: normal; line-height: 1.1; }
  .hero__content { padding-top: calc(var(--s6) + var(--s4)); }
  .hero__routes { flex-direction: column; align-items: stretch; gap: 0; width: 100%; max-width: 24em; margin-top: var(--s3); }
  .hero__routes a { justify-content: space-between; text-align: left; }
  .hero__question { text-align: left; justify-content: space-between; }
  .hero__text { max-width: 28em; }
}

/* Preview: a single quiet camera movement; the headline stays still. */
@media (prefers-reduced-motion: no-preference) {
  .hero__media img { animation: hero-settle 7s cubic-bezier(.2,.6,.3,1) both; }
}
@keyframes hero-settle {
  from { transform: scale(1.055); }
  to { transform: scale(1); }
}

/* Let the second headline line rise once, without moving the layout. */
@media (prefers-reduced-motion: no-preference) {
  .hero__title .line:last-child { animation: hero-line-rise 1.2s cubic-bezier(.2,.6,.3,1) .45s both; }
}
@keyframes hero-line-rise {
  from { opacity: 0; transform: translateY(.65em); }
  to { opacity: 1; transform: translateY(0); }
}

/* Postal address follows the centred contact-page layout. */
.contact-page .closing__inner > .lead { margin: var(--s4) auto 0; }

/* Client reassurance and shared remuneration explanation. */
.route-story__support { max-width: 48em; margin: var(--s4) auto 0; text-align: center; }
.credibility__remuneration { margin-top: var(--s5); }

/* Preserve the shared route banner and focus the event photograph on the conversation. */
.media img[src$="private-clients-event.jpg"] { object-position: 50% 38%; filter: saturate(1.02) brightness(1.08) contrast(1.03); }

/* Equal opening depth keeps both audience routes visually aligned. */
.route-opener { min-height: calc(var(--s6) + var(--s5) + 6 * var(--fs-xl)); display: flex; align-items: center; }

@media (max-width: 760px) { .route-opener { min-height: calc(var(--s6) + var(--s5) + 7 * var(--fs-xl)); } }

/* Approval preview: a lighter shared overlay on the two audience pages. */
.route-opener + .opener__media::after {
  background: linear-gradient(180deg, rgba(16,20,23,.15) 0%, rgba(16,20,23,.10) 45%, rgba(16,20,23,.25) 100%);
}

/* Local approval preview: the complete photograph beside a clear invitation. */
.closing--photo { background: var(--night); }
.closing__layout { align-items: center; }
.closing__photo { display: block; width: 100%; height: auto; }
.closing--photo .closing__signature { font-size: var(--fs-l); }
.closing--photo .closing__signature .line:last-child { color: var(--on-dark); }
.closing--photo .eyebrow, .closing--photo .triad__who { color: var(--on-dark-soft); }
.closing--photo .triad, .closing--photo .triad li + li { border-color: var(--on-dark-line); }
@media (max-width: 760px) {
  .closing__layout { grid-template-columns: 1fr; }
  .closing__photo { max-width: 24rem; margin-inline: auto; }
}

/* Approval preview: match the existing advisory banner treatment. */
.opener__media img[src$="strategic-advisory-conversation.jpg"] { object-position: 50% 40%; }

/* Keep all four participants visible at every screen width. */
.opener__media:has(img[src$="strategic-advisory-conversation.jpg"]) { height: auto; aspect-ratio: 16 / 9; }
.opener__media img[src$="strategic-advisory-conversation.jpg"] { object-fit: contain; object-position: center; }

/* Approval preview: consistent balance, reading widths and shared spacing. */
.credibility__remuneration { text-align: center; }
.credibility__remuneration-copy { margin-top: var(--s3); align-items: start; }
.credibility__remuneration-copy > .lead { max-width: none; margin: 0; }
.credibility__explanation > .lead, .routes-intro__sides > .lead,
.curated-story__intro > .lead { max-width: none; }
.founder-close__trust, .intel__benefit, .advisory-result { margin-inline: auto; }
.routes-intro > .t-l { text-align: center; }
.route-story__intro > .t-l { margin-bottom: var(--s4); }
.board__member { min-width: 0; }
.board__discipline { display: block; }
.onward .pair { align-items: stretch; }
.teaser { display: flex; flex-direction: column; }
.teaser__sub { margin-top: var(--s3); }
.closing--photo .closing__inner { min-width: 0; }
@media (max-width: 960px) {
  .founder__portrait { margin-inline: auto; }
  .founder__text, .founder__significance { max-width: none; }
  .proposition__body, .split > .stack { max-width: none; }
  .closing__photo { max-width: 24rem; margin-inline: auto; }
}
@media (max-width: 760px) {
  .credibility__remuneration-copy { gap: var(--s3); }
  .credibility__remuneration-copy > .lead { max-width: 36em; margin-inline: auto; }
  .section-signoff { width: 100%; }
}
/* One centred reading measure keeps the remuneration explanation balanced. */
.credibility__remuneration-copy { display: grid; grid-template-columns: 1fr; gap: var(--s3); max-width: 46em; margin-inline: auto; }

/* Approval preview: a quieter advisory photograph on larger screens. */
@media (min-width: 961px) {
  .opener__media:has(img[src$="strategic-advisory-conversation.jpg"]) {
    width: min(48rem, 100% - 2 * var(--gutter));
    margin-inline: auto;
  }
}

/* Approval preview: matching editorial openings for Advisory and Curated Access. */
.editorial-opener { padding-block: var(--s6); }
.editorial-opener__grid { align-items: center; }
.editorial-opener__text { min-width: 0; }
.editorial-opener__text > .eyebrow { display: block; }
.editorial-opener__text .opener__title { max-width: 18ch; }
.editorial-opener__media { width: 100%; aspect-ratio: 16 / 9; }
.editorial-opener__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,20,23,.12), rgba(16,20,23,.22)); pointer-events: none; }
.editorial-opener__media img { object-fit: cover; object-position: center; }
.editorial-opener__media img[src$="strategic-advisory-conversation.jpg"] { object-fit: contain; }
@media (max-width: 760px) {
  .editorial-opener { padding-block: var(--s5); }
  .editorial-opener__grid { gap: var(--s4); }
}

/* Clear navigation cues on both supporting service links. */
.teaser__label { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.teaser__label > .arrow { font-size: var(--fs-small); vertical-align: baseline; color: var(--on-dark); }

/* Matching supporting routes: shared proportions, rhythm and tone. */
.service-overview { background: var(--night-2); }
.service-overview__grid { grid-template-rows: auto auto auto auto; row-gap: var(--s3); }
.service-overview__link { display: grid; grid-template-rows: subgrid; grid-row: span 4; gap: var(--s3); min-width: 0; text-decoration: none; }
.service-overview__media { width: 100%; aspect-ratio: 16 / 9; }
.service-overview__media img { object-fit: cover; object-position: center; }
.service-overview__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,20,23,.12), rgba(16,20,23,.22)); pointer-events: none; }
.service-overview__link .teaser__label { align-items: start; }
.service-overview__link h2, .service-overview__sub { margin: 0; }
.service-overview__sub { font-size: var(--fs-body); color: var(--on-dark-soft); }
.service-overview__link:hover .arrow, .service-overview__link:focus-visible .arrow { transform: translate(.2em, -.2em); }
.editorial-opener { background: var(--stone); color: var(--ink); }
.editorial-opener .eyebrow { color: var(--claret); }
.editorial-opener .opener__sub { color: var(--ink-soft); }
@media (max-width: 960px) {
  .service-overview__grid { grid-template-columns: 1fr; grid-template-rows: none; gap: var(--s5); }
  .service-overview__link { grid-row: auto; grid-template-rows: auto; }
}

/* The complete menu uses the same restrained typography on every screen. */
.js .nav ul { width: 100%; margin-inline: auto; gap: var(--s3); }
.js .nav a { letter-spacing: normal; }
@media (max-height: 650px) {
  .js .nav { align-items: flex-start; padding-top: var(--section); }
}

/* Discreet navigation: existing interface type and measured spacing. */
.js .nav a { font-family: var(--sans); font-size: var(--fs-body); line-height: 1.5; letter-spacing: normal; }
.js .nav ul { gap: var(--s3); }
.js .nav .nav__cta { margin-top: var(--s3); }

/* Quiet homepage context links above the principal pages. */
.js .nav .nav__intro a { color: var(--on-dark-soft); }
.js .nav .nav__intro a:hover, .js .nav .nav__intro a:focus-visible { color: var(--on-dark); }
.js .nav .nav__intro--last { margin-bottom: var(--s3); }
@media (max-height: 700px) {
  .js .nav ul { gap: var(--s2); }
}
