/* ============================================================
   Eagle Nest Property Group · eaglenestpg.com
   Heritage Deco Institutional
   ============================================================ */

:root {
  /* Brand color DNA, extracted from source CSS variables */
  --ink: #12241B;
  --navy-deep: #12241B;
  --navy: #12241B;
  --navy-soft: #2B4A36;
  --gold: #C9A84C;
  --gold-deep: #987B2D;
  --gold-warm: #E8D5A3;
  --gold-text: #75601D;
  --parchment: #F5F2EC;
  --parchment-warm: #EDE6D6;
  --paper: #FCFBF7;
  --surface-card: #FFFDFA;
  --surface-card-2: #FCFAF6;
  --stone: #6B6358;
  --stone-light: #B5AC9E;
  --gold-label: #6B5618;
  --linkedin: #0A66C2;
  --linkedin-dark: #004182;

  --fg-dark: #1E2436;
  --fg-dark-muted: #565E72;
  --fg-light: #F2EFE7;
  --fg-light-muted: #C5BEA9;
  --fg-light-faint: #9C9582;

  --line-gold: rgba(201, 168, 76, 0.38);
  --line-gold-soft: rgba(201, 168, 76, 0.2);
  --line-navy: rgba(18, 36, 27, 0.14);
  --line-onnavy: rgba(232, 213, 163, 0.18);
  --line-control: rgba(18, 36, 27, 0.55);
  --line-gold-strong: rgba(201, 168, 76, 0.62);

  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Cormorant Garamond", Georgia, serif;
  --font-mono: "Inter", ui-monospace, "SF Mono", Menlo, monospace;
  --font-script: "Pinyon Script", cursive;

  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 18px;

  --space-1: clamp(2rem, 4vw, 3.5rem);
  --space-2: clamp(3.5rem, 7vw, 6.5rem);
  --space-3: clamp(5rem, 10vw, 9rem);
  --space-4: clamp(7rem, 13vw, 12rem);

  --gutter: clamp(1.25rem, 4vw, 3rem);
  --max: 1280px;
  --max-wide: 1440px;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-std: cubic-bezier(0.25, 0.1, 0.25, 1);

  /* Motion scale */
  --dur-1: 160ms;
  --dur-2: 220ms;
  --dur-3: 320ms;
  --dur-4: 480ms;
  --dur-5: 640ms;
  --move-sm: 12px;
  --move-md: 20px;

  /* ----- Premium motion system (signature vocabulary) -----
     One signature moment (What We Do deal stack); restraint everywhere else.
     Easings: premium-out for reveals/hero, measured for stat/section, controlled for paired in/out. */
  --ease-premium-out: cubic-bezier(0.16, 1, 0.3, 1);   /* == --ease-out */
  --ease-measured:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-controlled:  cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 180ms;     /* micro feedback */
  --dur-hover: 200ms;    /* hover transitions */
  --dur-reveal: 620ms;   /* viewport reveal */
  --dur-section: 720ms;  /* section intro / rule draw */
  --dur-stat: 800ms;     /* count-up (desktop) */
  --reveal-y: 24px;      /* standard desktop reveal travel */
  --reveal-y-sm: 16px;   /* mobile / group-child reveal travel */
  --hover-lift: -2px;    /* max card lift */
  --arrow-move: 4px;     /* directional-link arrow nudge */
  --wwd-pin-top: 96px;   /* sticky deal-stack top offset (88–112) */

  /* Elevation — warm, navy-toned (subtle ambient + key) */
  --elev-1: 0 1px 2px rgba(18, 36, 27, 0.04), 0 2px 6px rgba(18, 36, 27, 0.05);
  --elev-2: 0 2px 4px rgba(18, 36, 27, 0.05), 0 10px 24px rgba(18, 36, 27, 0.08);
  --elev-hover: 0 1px 0 var(--line-gold), 0 20px 48px -28px rgba(12, 17, 31, 0.52);

  --max-text: 760px;
  --gap-head: clamp(2.4rem, 4.5vw, 3.6rem);

  --header-h: 82px;
  --sticky-top: calc(var(--header-h) + 36px);
  --track-label: 0.14em;
  --linkedin-light: #2B7CD3;
  --error: #9B3B2E;
  --error-on-dark: #C97A63;
}

/* ---------- Cross-page transitions (progressive) ---------- */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none; }
}
/* Persist the masthead across navigations so the site reads as one continuous surface (supporting browsers) */
.site .logo { view-transition-name: en-masthead; }

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
/* `clip` prevents horizontal overflow WITHOUT creating a scroll container, so
   descendant position:sticky (the deal pile + sticky intros) still pins.
   Gated by @supports so engines without `clip` (Safari < 16) fall back to the
   default `visible` -- where sticky also works -- rather than `hidden`, which
   would make the body a scroll container and silently break every sticky.
   Decorative horizontal bleeds (hero eagle, invest sunray) are already clipped
   by their own overflow:hidden parents, so `visible` here is safe. */
@supports (overflow-x: clip) { html, body { overflow-x: clip; } }
body {
  margin: 0;
  text-rendering: optimizeLegibility;
  font-family: var(--font-body);
  font-size: clamp(1rem, 0.4vw + 0.92rem, 1.0625rem);
  line-height: 1.65;
  color: var(--fg-dark);
  background: var(--parchment);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  font-kerning: normal;
  font-optical-sizing: auto;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 {
  margin: 0; font-family: var(--font-display); line-height: 1.04; letter-spacing: -0.01em; font-weight: 400;
  text-wrap: balance; font-feature-settings: "kern" 1, "liga" 1;
}
p { margin: 0 0 1em; text-wrap: pretty; }
a { color: inherit; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; }
::selection { background: var(--gold); color: var(--navy-deep); }

:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
.dark :focus-visible, .darker :focus-visible, .hero :focus-visible, .subhero :focus-visible,
.cta-band :focus-visible, .footer :focus-visible, .mobile-menu :focus-visible,
.lightbox :focus-visible, .contact-card :focus-visible, .direct-card :focus-visible,
.sticky-cta :focus-visible, .site :focus-visible { outline-color: var(--gold); }
.btn:focus-visible, .nav-cta:focus-visible, .filter-chip:focus-visible, .text-link:focus-visible {
  outline-offset: 2px; box-shadow: 0 0 0 4px rgba(201, 168, 76, 0.18);
}

/* Branded scrollbar (thumb clears 3:1 against the track; same color both renderers) */
* { scrollbar-width: thin; scrollbar-color: var(--stone) var(--parchment-warm); }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--parchment-warm); }
::-webkit-scrollbar-thumb { background: var(--stone); border: 3px solid var(--parchment-warm); border-radius: 100px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold-deep); }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 2000;
  background: var(--gold); color: var(--navy-deep);
  padding: 12px 20px; font-weight: 600; text-decoration: none;
}
.skip-link:focus { left: 12px; top: 12px; }

.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.wrap-wide { max-width: var(--max-wide); }

/* ---------- Type system ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-body); font-size: 0.84rem; font-weight: 500;
  letter-spacing: 0.015em; text-transform: none;
  color: var(--gold-label);
}
.eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--gold); flex: none; transform-origin: left; }
@media (prefers-reduced-motion: no-preference) {
  .js .reveal.in .eyebrow::before, .js .eyebrow.reveal.in::before { animation: ruleDraw 700ms var(--ease-out-quint) backwards; animation-delay: 120ms; }
  @keyframes ruleDraw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}
.dark .eyebrow, .on-dark .eyebrow, .darker .eyebrow, .subhero .eyebrow, .cta-band .eyebrow { color: var(--gold); }

.h-xl { font-size: clamp(2.9rem, 7.4vw, 6.2rem); line-height: 0.92; letter-spacing: -0.018em; }
.h-lg { font-size: clamp(2.3rem, 5vw, 3.9rem); line-height: 1.08; letter-spacing: -0.014em; }
.h-md { font-size: clamp(1.55rem, 2.8vw, 2.25rem); line-height: 1.06; letter-spacing: -0.01em; }
.h-sm { font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.12; letter-spacing: 0; }

.serif-line {
  font-family: var(--font-serif); font-style: italic; font-weight: 500;
  letter-spacing: -0.005em;
}
.em-serif { font-family: var(--font-serif); font-style: italic; font-weight: 500; letter-spacing: 0; }
.lede { font-size: clamp(1.08rem, 1.4vw, 1.22rem); line-height: 1.7; color: var(--fg-dark-muted); }
.dark .lede, .darker .lede, .hero-lede, .subhero .lede, .cta-band .lede, .invest .lede { line-height: 1.74; }
.dark .lede, .darker .lede { color: var(--fg-light-muted); }

.mono-label {
  font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em;
  text-transform: none; color: var(--stone);
}
.dark .mono-label { color: var(--fg-light-faint); }

/* Tabular, lining figures wherever numbers carry weight — steady, aligned, expensive */
.summary-stat .n, .traffic .n, .cta-phone, .award-plaque .years, .spec-cell .v,
.direct-row a, .direct-row .v, .hero-line i, .practice-num, .svc-line .n,
.svc-head .num, .tr-firm-head .years, .nav-phone, .mobile-menu-phone,
.detail-table td, .deal-card__num, .nums {
  font-variant-numeric: tabular-nums lining-nums;
}

/* ---------- Buttons ---------- */
.btn {
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 14px 30px;
  font-family: var(--font-body); font-weight: 600; font-size: 1rem;
  text-decoration: none; border: 1px solid transparent; border-radius: var(--radius-sm);
  transition: background-color var(--dur-2) var(--ease-premium-out), color var(--dur-2) var(--ease-premium-out), border-color var(--dur-2) var(--ease-premium-out), transform var(--dur-2) var(--ease-out-quart), box-shadow var(--dur-2) var(--ease-premium-out);
}
.btn-gold {
  background: linear-gradient(180deg, #D0B25D, var(--gold));
  color: var(--navy-deep);
  box-shadow: inset 0 0 0 1px rgba(12, 26, 19, 0.18), 0 10px 24px -18px rgba(201, 168, 76, 0.72);
}
.btn-gold:hover {
  background: linear-gradient(180deg, var(--gold-warm), #CEAF58);
  box-shadow: inset 0 0 0 1px rgba(12, 26, 19, 0.16), 0 12px 28px -18px rgba(201, 168, 76, 0.82);
}
.btn-gold:active { transform: translateY(1px); }
.btn-navy { background: var(--navy); color: var(--fg-light); }
.btn-navy:hover { background: var(--navy-soft); box-shadow: 0 6px 18px -6px rgba(12, 26, 19, 0.4); }
.btn-navy:active { transform: translateY(1px); }
@media (hover: hover) {
  .btn:hover { transform: translateY(-1px); }
  .btn:active { transform: translateY(1px); }
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .btn-gold::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.18) 50%, transparent 58%);
    transform: translateX(-120%);
    transition: transform var(--dur-5) var(--ease-out-quart);
  }
  .btn-gold:hover::after { transform: translateX(120%); }
}

/* ---------- Brass reveal button (expanding chevron, transform-only) ----------
   A gold button whose label fades as a navy panel grows in from a brass
   chevron tab on the right (scaleX, never width). Reduced-motion / touch get
   the plain gold button. Use sparingly: one high-intent CTA. */
.btn-reveal { position: relative; overflow: hidden; padding-right: 58px; }
.btn-reveal::after { display: none; } /* no shine; the reveal is the hover */
.btn-reveal__t { position: relative; z-index: 2; }
.btn-reveal__fill {
  position: absolute; z-index: 1; inset: 5px; border-radius: var(--radius-sm);
  background: linear-gradient(180deg, var(--navy), var(--navy-deep));
  transform-origin: right center; transform: scaleX(0);
}
.btn-reveal__chev {
  position: absolute; z-index: 3; top: 5px; right: 5px; bottom: 5px; width: 44px;
  display: grid; place-items: center; border-radius: var(--radius-sm);
  background: rgba(12, 26, 19, 0.14); color: var(--navy-deep);
  font-style: normal; font-size: 1.15rem; line-height: 1;
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .btn-reveal__t { transition: opacity var(--dur-3) var(--ease-premium-out), transform var(--dur-3) var(--ease-premium-out); }
  .btn-reveal__fill { transition: transform var(--dur-4) var(--ease-premium-out); }
  .btn-reveal__chev { transition: color var(--dur-3) var(--ease-premium-out), background-color var(--dur-3) ease-out; }
  .btn-reveal:hover .btn-reveal__t { opacity: 0; transform: translateX(-8px); }
  .btn-reveal:hover .btn-reveal__fill { transform: scaleX(1); }
  .btn-reveal:hover .btn-reveal__chev { color: var(--gold-warm); background-color: transparent; }
}

.text-link {
  display: inline-flex; align-items: center; gap: 9px; min-height: 44px;
  font-weight: 600; text-decoration: none; color: var(--navy);
  border-bottom: 1px solid var(--line-gold); padding: 2px 0;
  transition: color var(--dur-2) var(--ease-premium-out), border-color var(--dur-2) var(--ease-premium-out);
}
.text-link:hover { color: var(--gold-text); border-color: var(--gold); }
.dark .text-link, .on-dark .text-link, .darker .text-link, .cta-band .text-link { color: var(--gold-warm); }
.dark .text-link:hover, .on-dark .text-link:hover, .darker .text-link:hover, .cta-band .text-link:hover { color: var(--gold); }
.text-link .arrow { transition: transform var(--dur-hover) var(--ease-premium-out); }
.text-link:hover .arrow, .text-link:focus-visible .arrow { transform: translateX(var(--arrow-move)); }
/* Directional cue follows the whole card on hover/focus (institutional, consistent) */
.route-card:hover .arrow, .route-card:focus-within .arrow,
.venture-card:hover .arrow, .venture-card:focus-within .arrow,
.dossier-grid:hover .arrow,
.deal-card__inner:hover .arrow { transform: translateX(var(--arrow-move)); }

/* Social icon link (LinkedIn) */
.social-link {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px; margin-left: -10px;
  color: var(--linkedin); text-decoration: none;
  transition: color var(--dur-2) ease-out, transform var(--dur-2) ease-out;
}
.social-link svg { width: 24px; height: 24px; fill: currentColor; display: block; }
.social-link:hover { color: var(--linkedin-dark); }

/* ---------- Header ---------- */
.site {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  background: rgba(12, 17, 31, 0.9);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(232, 213, 163, 0.14);
  transition: background-color 280ms ease-out, box-shadow 280ms ease-out, backdrop-filter 280ms ease-out;
}
.site.scrolled {
  background: var(--ink);
  box-shadow: 0 1px 0 var(--line-onnavy), 0 14px 30px -18px rgba(0, 0, 0, 0.55);
  /* The solid background already hides the blur; dropping backdrop-filter while
     scrolling stops it re-sampling moving content every frame (Retina shimmer). */
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.site.on-light-page { background: rgba(245, 242, 236, 0); }
.site.on-light-page.scrolled { background: rgba(12, 26, 19, 0.96); -webkit-backdrop-filter: none; backdrop-filter: none; }
.wrap.nav {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding-top: 19px; padding-bottom: 19px;
  max-width: var(--max-wide);
  transition: padding 280ms ease-out;
}
.site.scrolled .wrap.nav { padding-top: 14px; padding-bottom: 14px; }

.logo { display: inline-flex; align-items: center; gap: 13px; text-decoration: none; color: var(--fg-light); }
.logo img { width: auto; flex: none; }
.logo-name { display: flex; flex-direction: column; line-height: 1; }
.logo-name b {
  font-family: var(--font-display); font-weight: 500; font-size: 1.72rem;
  letter-spacing: 0.005em; color: var(--fg-light);
}
.logo-name span {
  font-family: var(--font-mono); font-size: 0.6rem; font-weight: 500;
  letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); margin-top: 5px;
}

.desktop-nav { display: none; }
.nav-right { display: none; }

@media (min-width: 1024px) {
  .desktop-nav { display: flex; align-items: center; gap: 2px; }
  .desktop-nav a {
    position: relative; display: inline-flex; align-items: center; min-height: 44px;
    padding: 6px 13px; text-decoration: none; font-weight: 500; font-size: 0.82rem;
    letter-spacing: 0.015em; text-transform: none;
    color: var(--fg-light-muted); transition: color var(--dur-2) var(--ease-premium-out);
  }
  .desktop-nav a::after {
    content: ""; position: absolute; left: 13px; right: 13px; bottom: 6px; height: 1px;
    background: var(--gold); transform: scaleX(0); transform-origin: left;
    transition: transform var(--dur-3) var(--ease-out-quart);
  }
  .desktop-nav a:hover { color: var(--fg-light); }
  .desktop-nav a:hover::after { transform: scaleX(1); }
  .desktop-nav a[aria-current="page"] { color: var(--gold-warm); }
  .desktop-nav a[aria-current="page"]::after { transform: scaleX(1); }
  .nav-right { display: flex; align-items: center; gap: 20px; }
  .nav-phone {
    font-family: var(--font-mono); font-size: 0.85rem; letter-spacing: 0.06em;
    color: var(--fg-light-muted); text-decoration: none; transition: color 200ms var(--ease-premium-out);
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .nav-phone:hover { color: var(--gold-warm); }
  .nav-cta {
    display: inline-flex; align-items: center; min-height: 44px; padding: 10px 22px;
    border: 1px solid var(--line-gold-strong); border-radius: var(--radius-sm);
    color: var(--gold-warm); font-weight: 600; font-size: 0.92rem; text-decoration: none;
    transition: background-color 200ms var(--ease-premium-out), color 200ms var(--ease-premium-out), border-color 200ms var(--ease-premium-out);
  }
  .nav-cta:hover { background: var(--gold); border-color: var(--gold); color: var(--navy-deep); }
}

.nav-toggle {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
  width: 48px; height: 48px; padding: 12px;
  background: none; border: 1px solid var(--line-onnavy); border-radius: var(--radius-sm);
  transition: border-color 200ms ease-out, background-color 200ms ease-out;
}
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--gold-warm); transition: transform 200ms ease-out; }
.nav-toggle:hover { border-color: var(--line-gold); background: rgba(232, 213, 163, 0.04); }
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { transform: scaleX(0); }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 1024px) { .nav-toggle { display: none; } }

/* ---------- Mobile menu ---------- */
.mobile-menu {
  position: fixed; inset: 0; z-index: 1000;
  background: var(--navy-deep);
  opacity: 0; visibility: hidden;
  transition: opacity 340ms var(--ease-std), visibility 0s linear 340ms;
}
.mobile-menu::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: url(/images/pattern-cartouche.webp);
  background-size: 360px auto;
  opacity: 0.055;
  mix-blend-mode: screen;
}
.mobile-menu.is-open { opacity: 1; visibility: visible; transition: opacity 340ms var(--ease-std); }
.mobile-menu-inner {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; height: 100%;
  padding: 0 var(--gutter);
  padding-top: env(safe-area-inset-top);
  padding-bottom: max(20px, env(safe-area-inset-bottom));
}
.mobile-menu-header {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 20px; padding-bottom: 20px;
}
.menu-close {
  position: relative; width: 48px; height: 48px;
  background: none; border: 1px solid var(--line-onnavy); border-radius: var(--radius-sm);
}
.menu-close span { position: absolute; left: 12px; top: 22px; width: 22px; height: 2px; background: var(--gold-warm); }
.menu-close span:first-child { transform: rotate(45deg); }
.menu-close span:last-child { transform: rotate(-45deg); }

.mobile-menu-nav { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.mobile-menu-link {
  display: flex; align-items: baseline; gap: 14px;
  font-family: var(--font-display); font-weight: 500; font-size: clamp(1.625rem, 6.5vw, 1.875rem);
  color: var(--fg-light); text-decoration: none;
  padding: 15px 0; border-bottom: 1px solid rgba(232, 213, 163, 0.08);
  opacity: 0; transform: translateY(14px);
  transition: opacity 260ms ease-out, transform 260ms ease-out, color 200ms ease-out;
}
.mobile-menu-link i {
  font-style: normal; font-family: var(--font-mono); font-weight: 400;
  font-size: 0.7rem; letter-spacing: 0.18em; color: var(--gold);
}
.mobile-menu-link:hover { color: var(--gold-warm); }
.mobile-menu-link[aria-current="page"] { color: var(--gold-warm); }
.mobile-menu.is-open .mobile-menu-link { opacity: 1; transform: translateY(0); }
.mobile-menu.is-open .mobile-menu-link:nth-child(1) { transition-delay: 120ms; }
.mobile-menu.is-open .mobile-menu-link:nth-child(2) { transition-delay: 170ms; }
.mobile-menu.is-open .mobile-menu-link:nth-child(3) { transition-delay: 220ms; }
.mobile-menu.is-open .mobile-menu-link:nth-child(4) { transition-delay: 270ms; }
.mobile-menu.is-open .mobile-menu-link:nth-child(5) { transition-delay: 320ms; }
.mobile-menu.is-open .mobile-menu-link:nth-child(6) { transition-delay: 370ms; }

.mobile-menu-footer { display: flex; flex-direction: column; gap: 14px; padding-top: 24px; }
.mobile-menu-phone {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px;
  font-family: var(--font-mono); font-size: 1.05rem; letter-spacing: 0.08em;
  color: var(--gold-warm); text-decoration: none;
  border: 1px solid var(--line-onnavy); border-radius: var(--radius-sm);
}
body.menu-open { overflow: hidden; position: fixed; width: 100%; }
@media (min-width: 1024px) { .mobile-menu { display: none; } }

/* ---------- Hero (home) ---------- */
.hero {
  position: relative; overflow: hidden;
  background: var(--ink);
  color: var(--fg-light);
  min-height: 94vh;
  min-height: 94svh;
  display: flex; flex-direction: column;
}
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background:
    radial-gradient(92% 86% at 74% 44%, rgba(201, 168, 76, 0.12), transparent 46%),
    linear-gradient(180deg, rgba(21, 28, 48, 0.28), rgba(12, 17, 31, 0.88));
  transform: none;
}
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(12, 17, 31, 0.94) 0%, rgba(12, 17, 31, 0.68) 45%, rgba(12, 17, 31, 0.22) 100%),
    linear-gradient(180deg, rgba(12, 17, 31, 0.08) 0%, rgba(12, 17, 31, 0.46) 100%);
}
.hero-atmosphere {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    radial-gradient(42% 42% at 78% 45%, rgba(232, 213, 163, 0.17), rgba(201, 168, 76, 0.055) 42%, transparent 72%),
    radial-gradient(62% 58% at 48% 20%, rgba(70, 84, 120, 0.14), transparent 64%);
  mix-blend-mode: screen;
  opacity: 0.74;
}
.hero-grain {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  opacity: 0.105;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  background-size: 160px 160px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 86%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 86%, transparent 100%);
}
.hero-vignette {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background:
    radial-gradient(110% 94% at 76% 48%, transparent 0%, rgba(12, 17, 31, 0.18) 62%, rgba(12, 17, 31, 0.74) 100%),
    linear-gradient(180deg, rgba(12, 17, 31, 0.1) 0%, transparent 30%, rgba(12, 17, 31, 0.44) 100%);
}
.hero-pattern {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background-image: url(/images/pattern-cartouche.webp);
  background-size: 330px auto;
  background-position: left top;
  --pat-rest: 0.025;
  opacity: var(--pat-rest);
  display: block;
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.72) 32%, rgba(0, 0, 0, 0.24) 56%, transparent 76%);
  mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.72) 32%, rgba(0, 0, 0, 0.24) 56%, transparent 76%);
}
@media (min-width: 1024px) {
  .hero-pattern {
    background-size: 430px auto;
    --pat-rest: 0.035;
    -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.78) 24%, rgba(0, 0, 0, 0.28) 42%, transparent 58%);
    mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.78) 24%, rgba(0, 0, 0, 0.28) 42%, transparent 58%);
  }
}
.hero-video {
  position: absolute; inset: 0; z-index: 1;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 1;
  filter: saturate(0.68) contrast(1.08) brightness(0.4);
  pointer-events: none;
}
.hero-frame {
  /* deco hairline frame inset */
  position: absolute; inset: clamp(10px, 1.6vw, 22px); pointer-events: none; z-index: 3;
  border: 1px solid var(--line-onnavy);
  display: none;
}
.hero-frame::before, .hero-frame::after,
.hero-frame i::before, .hero-frame i::after {
  content: ""; position: absolute; width: 26px; height: 26px;
  border-color: var(--gold); border-style: solid;
}
.hero-frame::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.hero-frame::after { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.hero-frame i::before { bottom: -1px; left: -1px; border-width: 0 0 2px 2px; }
.hero-frame i::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }
@media (min-width: 1024px) { .hero-frame { display: block; } }

.hero-mark {
  position: absolute; z-index: 3;
  right: clamp(-110px, -5vw, -20px); bottom: -6%;
  height: min(78vh, 640px);
  height: min(78svh, 640px); width: auto;
  aspect-ratio: 1091 / 1600;
  --eagle-rest: 0.48;
  --mark-x: 0px;
  --mark-y: 0px;
  opacity: var(--eagle-rest);
  transform: translate3d(var(--mark-x), var(--mark-y), 0);
  pointer-events: none; user-select: none;
  display: block;
}
.hero-mark-glow,
.hero-mark::before,
.hero-mark::after,
.hero-eagle {
  position: absolute; inset: 0; width: 100%; height: 100%;
}
.hero-mark-glow {
  background: radial-gradient(closest-side, rgba(232, 213, 163, 0.24), rgba(201, 168, 76, 0.08) 48%, transparent 76%);
  filter: blur(24px);
  opacity: 0.82;
  transform: translate3d(calc(var(--mark-x) * -0.35), calc(var(--mark-y) * -0.35), 0) scale(1.04);
}
.hero-mark::before,
.hero-mark::after {
  content: "";
  -webkit-mask: url(/images/eagle-mark.webp) center / contain no-repeat;
  mask: url(/images/eagle-mark.webp) center / contain no-repeat;
}
.hero-mark::before {
  background:
    linear-gradient(104deg, rgba(120, 92, 27, 0.78) 0%, var(--gold-deep) 20%, var(--gold-warm) 45%, var(--gold) 62%, rgba(98, 76, 25, 0.82) 100%);
  opacity: 0.9;
  filter: drop-shadow(0 16px 42px rgba(201, 168, 76, 0.16));
}
.hero-mark::after {
  background: linear-gradient(112deg, transparent 0%, transparent 38%, rgba(255, 244, 207, 0.88) 48%, transparent 58%, transparent 100%);
  mix-blend-mode: screen;
  opacity: 0;
  transform: translate3d(-120%, 0, 0);
}
.hero-eagle {
  object-fit: contain;
  opacity: 0.22;
  filter: sepia(0.45) saturate(0.9) brightness(0.9);
  mix-blend-mode: screen;
}
.hero-inner {
  position: relative; z-index: 4;
  flex: 1; display: flex; flex-direction: column; justify-content: center;
  padding-top: calc(var(--header-h) + clamp(6px, 1vh, 20px));
  padding-bottom: clamp(8px, 1.4vh, 18px);
  max-width: var(--max);
  margin-inline: auto;
}
.hero-meta {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
  font-family: var(--font-body); font-size: 0.84rem; font-weight: 500;
  letter-spacing: 0.015em; text-transform: none; color: var(--gold);
  margin-bottom: clamp(10px, 1.6vh, 16px);
}
.hero-meta .sep { color: var(--gold); opacity: 0.7; }
.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 6.6vw, 6.4rem);
  line-height: 0.92; letter-spacing: -0.02em; max-width: 9.5ch; font-weight: 500;
  color: var(--fg-light);
}
.hero h1 .gold-word { color: var(--gold-warm); font-style: normal; }
.hero-lede {
  max-width: 50ch; margin-top: clamp(12px, 1.8vh, 18px);
  font-size: clamp(1.04rem, 1.2vw, 1.16rem); line-height: 1.66; color: rgba(255, 255, 255, 0.77);
}
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: clamp(12px, 1.9vh, 22px); }

.hero-lines {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 4vw, 64px);
  margin-top: clamp(10px, 1.8vh, 22px);
  padding-top: clamp(8px, 1.3vh, 15px);
  border-top: 1px solid var(--line-onnavy);
  max-width: 620px;
}
.hero-line {
  display: flex; align-items: baseline; gap: 10px; text-decoration: none;
  padding: 8px 22px 8px 0; min-height: 44px;
  color: rgba(255, 255, 255, 0.92); font-family: var(--font-body); font-weight: 600;
  font-size: clamp(0.98rem, 1.2vw, 1.08rem); letter-spacing: 0;
  transition: color 200ms ease-out, transform 200ms ease-out;
}
.hero-line i { font-style: normal; font-family: var(--font-mono); font-weight: 400; font-size: 0.7rem; letter-spacing: 0.16em; color: var(--gold); }
.hero-line:hover { color: var(--gold-warm); }
@media (hover: hover) { .hero-line:hover { transform: translateX(3px); } }

.hero-award {
  position: absolute; z-index: 5;
  right: clamp(28px, 4vw, 64px); top: calc(var(--header-h) + clamp(8px, 1.6vh, 20px));
  display: none; align-items: center; gap: 16px;
  background: rgba(12, 17, 31, 0.48);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid var(--line-onnavy); border-radius: var(--radius-md);
  padding: 17px 22px; max-width: 340px;
  text-decoration: none; color: var(--fg-light);
  transition: border-color 240ms ease-out, transform 240ms ease-out;
}
.hero-award:hover { border-color: var(--line-gold); transform: translateY(-2px); }
.hero-award img { width: 104px; height: 42px; object-fit: contain; background: #fff; padding: 5px 8px; border-radius: var(--radius-sm); flex: none; }
.hero-award b { display: block; font-family: var(--font-display); font-weight: 500; font-size: 1.25rem; line-height: 1.2; }
.hero-award span { display: block; font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold); margin-top: 4px; }
.hero-award > span { margin-top: 0; color: inherit; letter-spacing: 0; text-transform: none; }
@media (min-width: 1100px) { .hero-award { display: flex; } }
/* Fallback: if backdrop-filter is unsupported/disabled, raise opacity so the plaque stays legible over the video */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .hero-award { background: rgba(12, 17, 31, 0.82); }
}

.hero-ticker {
  position: relative; z-index: 4;
  border-top: 1px solid rgba(12, 26, 19, 0.14);
  background: linear-gradient(180deg, var(--paper), var(--surface-card-2));
  box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.14);
}
.hero-ticker a {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px;
  padding: 13px var(--gutter); min-height: 44px; max-width: var(--max-wide); margin: 0 auto;
  text-decoration: none; color: var(--fg-dark-muted);
  font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none;
  transition: color 200ms var(--ease-premium-out);
}
.hero-ticker a:hover { color: var(--navy); }
/* Engraved rule — a short gold hairline that draws in on load, extends on hover */
.hero-ticker .t-rule {
  width: 22px; height: 1px; background: var(--gold); flex: none;
  transform-origin: left;
  transition: width 260ms var(--ease-out-quart);
}
.hero-ticker a:hover .t-rule { width: 38px; }
.hero-ticker .t-strong { color: var(--navy); font-weight: 700; }
.hero-ticker .t-arrow { margin-left: auto; color: var(--gold); }
/* On phones the ticker line gets tight; drop the trailing acreage detail */
@media (max-width: 600px) { .hero-ticker .t-meta-extra { display: none; } }

/* ---------- Section scaffolding ---------- */
section { position: relative; }
.sec { padding-top: var(--space-3); padding-bottom: var(--space-3); }
.sec-tight { padding-top: var(--space-2); padding-bottom: var(--space-2); }
.sec-deep { padding-top: var(--space-4); padding-bottom: var(--space-4); }
.dark {
  background:
    radial-gradient(120% 100% at 85% 0%, rgba(201, 168, 76, 0.05), transparent 55%),
    linear-gradient(168deg, var(--navy), var(--navy-deep));
  color: var(--fg-light);
}
.darker {
  background:
    radial-gradient(120% 100% at 15% 0%, rgba(201, 168, 76, 0.045), transparent 55%),
    linear-gradient(168deg, var(--navy-deep), var(--ink));
  color: var(--fg-light);
}
.warm { background: var(--parchment-warm); }
.paper { background: var(--paper); }

/* Brass seam at the major light->dark pivot (homepage opportunities band) */
#current-opportunities {
  box-shadow: inset 0 1px 0 var(--line-gold-soft);
}

.opportunity-narrative {
  display: grid;
  gap: clamp(2.2rem, 5vw, 4rem);
}
.opp-stage { display: none; }
.opp-chapters {
  display: grid;
  gap: clamp(2.4rem, 5vw, 4rem);
}
.opp-chapter {
  min-width: 0;
}
.opp-chapter__media {
  margin-bottom: clamp(1.35rem, 3vw, 2rem);
}
#current-opportunities .opp-chapter:nth-child(-n+2) .opp-chapter__media img {
  object-fit: contain;
  background: rgba(12, 17, 31, 0.62);
}
#current-opportunities .opp-chapter:nth-child(3) .opp-chapter__media img {
  object-fit: cover;
}
.opp-chapter .hero-actions {
  align-items: center;
}
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  .js .opportunity-narrative {
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.92fr);
    align-items: start;
  }
  .js .opp-stage {
    display: block;
    position: sticky;
    top: calc(var(--header-h) + 32px);
  }
  .js .opp-stage__frame {
    position: relative;
    aspect-ratio: 16 / 11;
    overflow: hidden;
    border: 1px solid var(--line-onnavy);
    background:
      radial-gradient(70% 70% at 70% 16%, rgba(201, 168, 76, 0.12), transparent 62%),
      linear-gradient(168deg, rgba(12, 26, 19, 0.98), rgba(12, 17, 31, 0.94));
    box-shadow: 0 1px 0 var(--line-gold-soft), 0 34px 80px -52px rgba(0, 0, 0, 0.86);
  }
  .js .opp-stage__frame::before {
    content: "";
    position: absolute; inset: 14px;
    border: 1px solid rgba(232, 213, 163, 0.12);
    pointer-events: none;
    z-index: 4;
  }
  /* Bottom scrim: mutes the image's own baked-in title/footer so the stage
     index + caption + progress rail read on a clean dark band (no collision). */
  .js .opp-stage__frame::after {
    content: "";
    position: absolute; left: 0; right: 0; bottom: 0; height: 40%;
    background: linear-gradient(180deg,
      transparent 0%,
      rgba(12, 17, 31, 0.62) 34%,
      rgba(12, 17, 31, 0.96) 62%,
      rgba(12, 17, 31, 0.96) 100%);
    pointer-events: none;
    z-index: 3;
  }
  .js .opp-stage__media {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    padding: clamp(16px, 2vw, 26px);
    opacity: 0;
    transform: scale(1.01);
    transition: opacity 520ms var(--ease-premium-out), transform 720ms var(--ease-premium-out);
  }
  .js .opp-stage__media.is-active {
    opacity: 1;
    transform: scale(1);
    z-index: 2;
  }
  .js .opp-stage__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: rgba(12, 17, 31, 0.28);
    box-shadow: 0 22px 54px -36px rgba(0, 0, 0, 0.8);
  }
  .js .opp-stage__media[data-fit="cover"] { padding: 0; }
  .js .opp-stage__media[data-fit="cover"] img {
    object-fit: cover;
    background: transparent;
  }
  .js .opp-stage__media[data-fit="cover"].is-active img {
    transform: scale(1.018);
    transition: transform 900ms var(--ease-premium-out);
  }
  .js .opp-stage__meta {
    position: absolute; left: clamp(18px, 2.2vw, 28px); right: clamp(18px, 2.2vw, 28px); bottom: clamp(16px, 2vw, 24px);
    z-index: 5;
    display: flex; align-items: center; gap: 16px;
    color: var(--gold-warm);
    font-family: var(--font-body);
    font-size: 0.84rem;
    letter-spacing: 0.015em;
    text-transform: none;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
  }
  .js .opp-stage__index {
    color: var(--gold);
    white-space: nowrap;
  }
  .js .opp-stage__caption {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .js .opp-stage__rail {
    position: absolute; left: clamp(18px, 2.2vw, 28px); right: clamp(18px, 2.2vw, 28px); bottom: clamp(40px, 3.2vw, 48px);
    z-index: 5;
    height: 1px;
    background: rgba(232, 213, 163, 0.18);
  }
  .js .opp-stage__rail i {
    display: block;
    width: 33.333%;
    height: 100%;
    background: linear-gradient(90deg, var(--gold-deep), var(--gold-warm));
    transform-origin: left center;
    transition: width 520ms var(--ease-premium-out);
  }
  .js .opp-chapters {
    gap: clamp(5rem, 15vh, 9rem);
    padding: clamp(0.5rem, 3vh, 1.8rem) 0 clamp(3rem, 8vh, 5rem);
  }
  .js .opp-chapter {
    min-height: clamp(330px, 54vh, 560px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: clamp(1rem, 2.5vw, 2rem);
    border-left: 1px solid rgba(232, 213, 163, 0.18);
    opacity: 0.75;
    transition: opacity 420ms var(--ease-premium-out), transform 420ms var(--ease-premium-out), border-color 420ms var(--ease-premium-out);
  }
  .js .opp-chapter.is-active {
    opacity: 1;
    transform: translateX(8px);
    border-left-color: var(--gold);
  }
  .js .opp-chapter__media { display: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .js .opp-chapter.reveal.in .opp-chapter__media .frame-clip img {
    animation: mediaReveal 700ms var(--ease-premium-out) backwards;
    animation-delay: 90ms;
  }
}

.sec-head { max-width: var(--max-text); margin-bottom: var(--gap-head); }
.sec-head h2 { margin-top: 14px; }
.sec-head .after { margin-top: 16px; }

/* deco corner ticks for plaque cards */
.deco-card { position: relative; }
.deco-card::before, .deco-card::after, .deco-card .tick::before, .deco-card .tick::after {
  content: ""; position: absolute; width: 18px; height: 18px;
  border-color: var(--gold); border-style: solid; pointer-events: none;
}
.deco-card::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.deco-card::after { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.deco-card .tick::before { bottom: -1px; left: -1px; border-width: 0 0 2px 2px; }
.deco-card .tick::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

/* ---------- Recognition band ---------- */
.recognition { background: var(--parchment); }
.recognition::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.28), transparent 52%);
}
.recognition > .wrap { position: relative; }
.recognition-grid { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.recognition-grid > * { min-width: 0; }
@media (min-width: 900px) { .recognition-grid { grid-template-columns: 1fr 0.78fr; } }
.award-plaque {
  background: linear-gradient(180deg, var(--paper), var(--surface-card-2)); border: 1px solid var(--line-navy);
  outline: 1px solid rgba(201, 168, 76, 0.18); outline-offset: -10px;
  padding: clamp(2rem, 4vw, 3.1rem);
  display: flex; flex-direction: column; gap: 18px;
}
.award-plaque img { width: min(280px, 70%); height: auto; }
.award-plaque .years {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(2.1rem, 3.8vw, 3rem); letter-spacing: 0.01em; color: var(--navy);
}
.award-plaque .years em { font-style: normal; color: var(--gold-deep); padding: 0 6px; }
.award-plaque p { margin: 0; color: var(--fg-dark-muted); }

/* ---------- Proof band ---------- */
.proof-band {
  padding-top: clamp(2.8rem, 5vw, 4.3rem);
  padding-bottom: clamp(2.8rem, 5vw, 4.3rem);
  border-top: 1px solid var(--line-onnavy);
  border-bottom: 1px solid var(--line-onnavy);
}
.proof-band-head {
  display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between;
  gap: 14px 32px; margin-bottom: clamp(1.6rem, 3vw, 2.2rem);
}
.proof-band-head p:last-child {
  margin: 0; max-width: 44ch; color: var(--fg-light-muted); font-size: 0.98rem;
}

/* ---------- What we do ledger ---------- */
.wwd-grid { display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); }
.wwd-grid > * { min-width: 0; }
@media (min-width: 1024px) {
  .wwd-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: start;
    column-gap: clamp(2.5rem, 4vw, 3rem);
  }
  .wwd-intro { position: sticky; top: var(--sticky-top); max-width: 660px; }
}
.practice { border-top: 1px solid var(--line-navy); }
.practice-row {
  border-bottom: 1px solid var(--line-navy);
  transition: background-color 260ms ease-out;
}
.practice-row:hover { background: rgba(201, 168, 76, 0.045); }
.practice-summary {
  list-style: none; cursor: pointer;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  column-gap: clamp(1.2rem, 3vw, 2.4rem); row-gap: 4px; align-items: baseline;
  padding: clamp(1.5rem, 3vw, 2.3rem) clamp(0.2rem, 1vw, 1rem);
}
.practice-summary::-webkit-details-marker { display: none; }
.practice-summary > .practice-num { grid-column: 1; grid-row: 1; }
.practice-summary > h3 { grid-column: 2; grid-row: 1; font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.practice-summary > .practice-kicker { grid-column: 2; grid-row: 2; }
.practice-summary > .practice-cue { grid-column: 3; grid-row: 1 / span 2; align-self: center; display: inline-flex; align-items: center; gap: 11px; }
.practice-cue-label { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); white-space: nowrap; }
.practice-cue-label::before { content: "Expand"; }
.practice-row[open] .practice-cue-label::before { content: "Close"; }
.practice-num {
  font-family: var(--font-mono); font-size: 0.8rem; font-weight: 500;
  color: var(--gold-text); letter-spacing: 0.08em;
}
.practice-toggle { position: relative; width: 20px; height: 20px; flex: none; }
.practice-toggle::before, .practice-toggle::after {
  content: ""; position: absolute; background: var(--gold-text);
  transition: transform 280ms ease, opacity 280ms ease;
}
.practice-toggle::before { left: 0; right: 0; top: 50%; height: 1.6px; transform: translateY(-50%); }
.practice-toggle::after { top: 0; bottom: 0; left: 50%; width: 1.6px; transform: translateX(-50%); }
.practice-row[open] .practice-toggle::after { opacity: 0; transform: translateX(-50%) scaleY(0); }
.practice-kicker { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); }
.practice-detail { padding: 4px clamp(0.2rem, 1vw, 1rem) clamp(1.6rem, 3vw, 2.4rem); }
.practice-detail > p { margin: 0; max-width: 56ch; color: var(--fg-dark-muted); }
.practice-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 8px 24px; margin-top: 18px; max-width: 560px; }
.practice-list li {
  position: relative; padding: 6px 0 6px 20px; font-size: 1rem; color: var(--fg-dark);
}
.practice-list li::before { content: ""; position: absolute; left: 0; top: 14px; width: 9px; height: 1.5px; background: var(--gold-deep); }
.practice-note { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); margin-top: 16px; }

/* ---------- Listing dossier (home) + cards ---------- */
.dossier-grid { display: grid; gap: clamp(2.2rem, 5vw, 4rem); align-items: center; }
@media (min-width: 1024px) { .dossier-grid { grid-template-columns: 1.08fr 0.92fr; } }
.dossier-media { position: relative; }
.dossier-media .frame {
  position: relative; border: 1px solid var(--line-onnavy); padding: clamp(10px, 1.6vw, 18px);
  background: rgba(12, 26, 19, 0.38);
  box-shadow: 0 24px 70px -48px rgba(0, 0, 0, 0.88);
}
.dossier-media .frame::after {
  content: ""; position: absolute; inset: clamp(10px, 1.6vw, 18px);
  pointer-events: none; box-shadow: inset 0 0 0 1px rgba(232, 213, 163, 0.14);
}
.dossier-media img { width: 100%; aspect-ratio: 16 / 12.3; object-fit: cover; }
.dossier-tag {
  position: absolute; top: clamp(-14px, -1vw, -12px); left: clamp(18px, 3vw, 30px);
  background: var(--gold); color: var(--navy-deep);
  font-family: var(--font-body); font-size: 0.84rem; font-weight: 500;
  letter-spacing: 0.015em; text-transform: none; padding: 7px 14px;
}
.spec-rail {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0;
  border: 1px solid var(--line-onnavy); margin-top: 26px;
}
.dossier-copy { margin: 16px 0 0; max-width: 48ch; color: var(--fg-light-muted); }
.spec-cell { padding: 14px 18px; border-top: 1px solid var(--line-onnavy); }
.spec-cell:nth-child(-n+2) { border-top: 0; }
.spec-cell:nth-child(odd) { border-right: 1px solid var(--line-onnavy); }
.spec-cell .k { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--fg-light-faint); display: block; margin-bottom: 5px; }
.spec-cell .v { font-family: var(--font-mono); font-size: 0.95rem; color: var(--gold-warm); }

.traffic { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(12px, 2vw, 24px); margin-top: 30px; }
.traffic .t {
  border-top: 1px solid var(--line-onnavy); padding-top: 14px;
}
.traffic .n {
  font-family: var(--font-display); font-weight: 500;
  font-size: clamp(1.9rem, 3.4vw, 2.7rem); letter-spacing: 0; color: var(--fg-light);
}
.traffic .n, .traffic .l, .summary-stat .n, .summary-stat .l { display: block; }
.traffic .l { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--fg-light-faint); margin-top: 6px; line-height: 1.5; }

/* ---------- Ventures ---------- */
.ventures-grid { display: grid; gap: clamp(2rem, 4vw, 3rem); }
.ventures-grid > * { min-width: 0; }
@media (min-width: 900px) {
  .ventures-grid { grid-template-columns: 1.06fr 0.94fr; align-items: start; }
  .venture-card:nth-child(2) { margin-top: var(--space-2); }
}
.venture-card {
  display: block; text-decoration: none; color: inherit;
  background: linear-gradient(180deg, var(--surface-card), var(--surface-card-2)); border: 1px solid var(--line-navy);
  box-shadow: none;
  transition: transform var(--dur-3) var(--ease-out-quart), box-shadow var(--dur-3) var(--ease-out-quart), border-color var(--dur-3) var(--ease-out-quart);
}
.venture-card:hover { border-color: var(--line-gold); box-shadow: 0 18px 42px -32px rgba(12, 17, 31, 0.44); transform: translateY(-2px); }
.venture-card figure { margin: 0; overflow: hidden; }
.venture-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 900ms var(--ease-out); }
.venture-card:hover img { transform: scale(1.04); }
.venture-body { padding: clamp(1.4rem, 3vw, 2.2rem); }
.venture-body .mono-label { display: block; margin-bottom: 12px; color: var(--gold-text); }
.venture-body h3 { font-size: clamp(1.55rem, 2.6vw, 2rem); }
.venture-body p { margin: 12px 0 18px; color: var(--fg-dark-muted); }
.venture-body .text-link { font-size: 0.95rem; }

/* ---------- Investments band ---------- */
.invest { text-align: center; position: relative; overflow: hidden; }
.invest::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: url(/images/pattern-sunray.webp);
  background-size: cover; background-position: center;
  opacity: 0.05;
}
.invest > .wrap { position: relative; }
.invest .serif-line { font-size: clamp(1.6rem, 3.6vw, 2.7rem); color: var(--gold-warm); }
.invest-inner { max-width: 680px; margin: 0 auto; }
.invest .chip {
  display: inline-block; margin: 26px 0 30px;
  font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none;
  color: var(--gold); border: 1px solid var(--line-onnavy); padding: 10px 18px; border-radius: var(--radius-sm);
}

/* ---------- Contact CTA band ---------- */
.cta-band { position: relative; overflow: hidden; background: var(--navy-deep); color: var(--fg-light); border-top: 1px solid var(--line-gold-soft); box-shadow: inset 0 1px 0 rgba(232, 213, 163, 0.1); }
.cta-band .bg {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0.34; filter: saturate(0.7);
}
.cta-band::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(100deg, rgba(12, 26, 19, 0.94) 18%, rgba(12, 26, 19, 0.55) 62%, rgba(12, 26, 19, 0.82));
}
.cta-inner { position: relative; z-index: 2; }
.cta-phone {
  display: inline-block; margin-top: 10px; text-decoration: none;
  font-variant-numeric: tabular-nums lining-nums;
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(2.2rem, 5.8vw, 4.1rem); letter-spacing: 0.01em; color: var(--gold-warm);
  transition: color 200ms ease-out;
}
.cta-phone:hover { color: var(--gold); }
.cta-mail { margin-top: 6px; }
.cta-actions { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; margin-top: 30px; }

/* ---------- Footer ---------- */
.footer { background: var(--ink); color: var(--fg-light-muted); font-size: 0.95rem; border-top: 1px solid rgba(232, 213, 163, 0.1); }
.footer-grid {
  display: grid; gap: clamp(2.2rem, 5vw, 3rem);
  padding-top: var(--space-2); padding-bottom: var(--space-1);
}
@media (min-width: 800px) { .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; } }
/* Mobile/tablet: brand full-width, the two link lists as 2 balanced columns */
@media (max-width: 799px) {
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(1.4rem, 4vw, 2rem);
    row-gap: clamp(1.8rem, 5vw, 2.4rem);
  }
  .footer-brand { grid-column: 1 / -1; }
  .footer .footer-h { margin-bottom: 10px; min-height: 2.4em; }
  .footer-col a { display: flex; justify-content: center; text-align: center; font-size: 0.88rem; min-height: 44px; overflow-wrap: break-word; }
}
.footer .logo-name b { font-size: 1.45rem; }
.footer-brand p { margin: 18px 0 0; max-width: 36ch; line-height: 1.7; }
.footer-brand .lic { margin-top: 14px; font-size: 0.82rem; color: var(--fg-light-faint); }
.footer .footer-h {
  font-family: var(--font-body); font-weight: 500; font-size: 0.84rem;
  letter-spacing: 0.015em; text-transform: none; color: var(--gold); margin-bottom: 18px;
}
.footer-col li { margin-bottom: 0; }
.footer-col a {
  display: inline-flex; min-height: 44px; align-items: center;
  color: var(--fg-light-muted); text-decoration: none; transition: color 200ms ease-out;
}
.footer-col a:hover { color: var(--gold-warm); }
.footer-trec {
  border-top: 1px solid rgba(232, 213, 163, 0.1);
  padding-top: 26px; padding-bottom: 26px;
  font-size: 0.82rem; color: var(--fg-light-faint); line-height: 1.7;
}
.footer-trec a { color: var(--fg-light-muted); text-decoration: underline; text-underline-offset: 3px; transition: color 200ms ease-out; }
.footer-trec a:hover { color: var(--gold-warm); }
.footer-base {
  display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; justify-content: space-between;
  border-top: 1px solid rgba(232, 213, 163, 0.1);
  padding-top: 22px; padding-bottom: max(22px, env(safe-area-inset-bottom));
  font-size: 0.82rem; color: var(--fg-light-faint);
}
.footer-base nav { display: flex; gap: 18px; }
.footer-base a { color: var(--fg-light-faint); text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; transition: color 200ms ease-out; }
.footer-base a:hover { color: var(--gold-warm); }
/* Sister Ventures — single horizontal row below the two balanced columns */
.footer-ventures {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px 26px;
  border-top: 1px solid rgba(232, 213, 163, 0.1); padding-top: 22px; padding-bottom: 2px;
}
.footer-ventures .footer-h { margin: 0; }
.footer-ventures ul { display: flex; flex-wrap: wrap; gap: 0 26px; margin: 0; padding: 0; list-style: none; }
.footer-ventures a { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.88rem; color: var(--fg-light-muted); text-decoration: none; transition: color 200ms ease-out; }
.footer-ventures a:hover { color: var(--gold-warm); }
/* Legal links + ultra-subtle design credit, grouped at the footer's right */
.footer-base-right { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.footer-credit { font-size: 0.72rem; letter-spacing: 0.02em; color: var(--fg-light-faint); opacity: 0.85; }
.footer-credit:hover { opacity: 1; }
/* Company LinkedIn — refined ghost button in the footer brand block */
.footer-linkedin {
  display: inline-flex; align-items: center; gap: 8px; flex: none;
  padding: 9px 12px; border: 1px solid var(--line-onnavy); border-radius: var(--radius-sm);
  color: var(--fg-light-muted); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.01em;
  text-decoration: none; -webkit-tap-highlight-color: transparent;
  transition: color 220ms ease-out, border-color 220ms ease-out, background-color 220ms ease-out, transform 220ms ease-out, box-shadow 220ms ease-out;
}
.footer-linkedin svg { width: 18px; height: 18px; fill: currentColor; flex: none; }
.footer-linkedin:hover {
  color: var(--gold-warm); border-color: var(--line-gold);
  background: rgba(201, 168, 76, 0.06); transform: translateY(-1px);
  box-shadow: 0 8px 22px -16px rgba(201, 168, 76, 0.55);
}
/* Logo + LinkedIn button share the top row of the footer brand block */
.footer-brand-top { display: flex; align-items: center; justify-content: space-between; gap: 10px 12px; flex-wrap: wrap; }
/* Mobile: show button beside logo; desktop: hide it there, show larger version below description */
.footer-linkedin-desktop { display: none; }
@media (min-width: 601px) {
  .footer-linkedin-mobile { display: none; }
  .footer-linkedin-desktop { display: inline-flex; margin-top: 20px; padding: 14px 26px; font-size: 1rem; }
  .footer-linkedin-desktop svg { width: 22px; height: 22px; }
}
/* Center the footer link columns (Services, Company) and their headings */
.footer-col { text-align: center; }

/* ---------- Subhero (inner pages) ---------- */
.subhero {
  position: relative; overflow: hidden;
  background: var(--navy); color: var(--fg-light);
  padding-top: calc(var(--header-h) + clamp(48px, 9vw, 110px));
  padding-bottom: clamp(40px, 7vw, 84px);
}
.subhero::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background:
    radial-gradient(50% 60% at 88% 10%, rgba(201, 168, 76, 0.1), transparent 60%),
    linear-gradient(165deg, var(--navy), var(--navy-deep));
}
.subhero::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: url(/images/pattern-cartouche.webp);
  background-size: 340px auto;
  background-position: left top;
  opacity: 0.055;
  mix-blend-mode: screen;
}
.subhero-eagle {
  position: absolute; right: -60px; top: -30px; height: 130%; width: auto;
  opacity: 0.07; pointer-events: none;
}
@media (min-width: 1024px) {
  .subhero::after {
    background-size: 440px auto;
    opacity: 0.052;
  }
}
.subhero .wrap { position: relative; z-index: 2; }
.subhero h1 { font-size: clamp(2.7rem, 6.2vw, 4.9rem); line-height: 1.06; letter-spacing: -0.016em; margin-top: 14px; max-width: 18ch; font-weight: 400; color: var(--gold-warm); }
.subhero .lede { max-width: 58ch; margin-top: 18px; color: var(--fg-light-muted); }

/* ---------- Market + service landing pages ---------- */
.landing-grid {
  display: grid;
  gap: clamp(2.3rem, 5vw, 4rem);
  align-items: start;
}
@media (min-width: 1024px) {
  .landing-grid { grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr); }
}
.landing-copy { max-width: 74ch; }
.landing-copy p { color: var(--fg-dark-muted); font-size: clamp(1.02rem, 0.55vw + 0.95rem, 1.12rem); line-height: 1.76; }
.landing-copy p + p { margin-top: 1.05em; }
.landing-copy .eyebrow + h2 { margin-top: 14px; }
.landing-aside { display: grid; gap: 14px; }
@media (min-width: 1024px) { .landing-aside { position: sticky; top: var(--sticky-top); } }
.mini-stat-panel {
  border: 1px solid var(--line-navy);
  background: linear-gradient(180deg, var(--surface-card), var(--surface-card-2));
  box-shadow: var(--elev-1);
}
.mini-stat {
  padding: 18px 20px;
  border-bottom: 1px solid var(--line-navy);
}
.mini-stat:last-child { border-bottom: 0; }
.mini-stat .k {
  display: block; margin-bottom: 7px;
  font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em;
  text-transform: none; color: var(--stone);
}
.mini-stat .v {
  display: block;
  font-family: var(--font-display); font-size: clamp(1.28rem, 2vw, 1.55rem);
  line-height: 1.12; color: var(--navy);
}
.insight-grid, .process-grid, .route-grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.25rem);
}
/* Tablet / large-phone intermediate: compose as a 2-up grid instead of a single-file stack */
@media (min-width: 560px) {
  .route-grid, .insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 820px) {
  .insight-grid { grid-template-columns: repeat(3, 1fr); }
  .process-grid { grid-template-columns: repeat(4, 1fr); }
  .route-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .route-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .capital-audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1040px; }
}
.insight-card, .process-step, .route-card {
  border: 1px solid var(--line-navy);
  background: linear-gradient(180deg, var(--surface-card), var(--surface-card-2));
  box-shadow: var(--elev-1);
}
.insight-card {
  padding: clamp(1.35rem, 2.5vw, 1.85rem);
  min-height: 100%;
}
.insight-card .mono-label, .route-card .mono-label { display: block; margin-bottom: 12px; color: var(--gold-text); }
.insight-card h3, .route-card h3, .process-step h3 {
  font-size: clamp(1.38rem, 2.2vw, 1.72rem);
  font-weight: 500;
}
.insight-card p, .route-card p, .process-step p {
  margin: 12px 0 0;
  color: var(--fg-dark-muted);
  font-size: 0.96rem;
  line-height: 1.65;
}
.route-card {
  position: relative;
  display: flex; flex-direction: column;
  min-height: 230px;
  padding: clamp(1.25rem, 2.4vw, 1.7rem);
  text-decoration: none; color: inherit;
  transition: border-color var(--dur-3) var(--ease-out-quart), transform var(--dur-3) var(--ease-out-quart), box-shadow var(--dur-3) var(--ease-out-quart), opacity var(--dur-3) var(--ease-out-quart);
}
.route-card:hover,
.route-card:focus-within {
  border-color: var(--line-gold);
  box-shadow: var(--elev-hover);
  transform: translateY(var(--hover-lift));
}
.route-card h3 { transition: transform var(--dur-3) var(--ease-out-quart); }
.route-card:hover h3, .route-card:focus-within h3 { transform: translateX(2px); }
.route-card .text-link { margin-top: auto; padding-top: 22px; align-self: flex-start; }
/* Mobile density: condense the home Who We Help teaser to tappable titles
   (full descriptions still live on /who-we-help and each detail page) */
@media (max-width: 760px) {
  #who-we-help .route-card { min-height: 0; padding: 15px 18px; }
  #who-we-help .route-card .mono-label,
  #who-we-help .route-card p { display: none; }
  #who-we-help .route-card h3 { font-size: 1.3rem; }
  #who-we-help .route-card .text-link { padding-top: 9px; }
}

/* Homepage Who We Help: editorial rows instead of a uniform card grid. */
.who-rows {
  border-top: 1px solid var(--line-navy);
  display: grid;
}
.who-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(190px, 0.72fr) minmax(0, 1.35fr) auto;
  gap: clamp(1rem, 3vw, 2.4rem);
  align-items: center;
  min-height: clamp(88px, 9vw, 126px);
  padding: clamp(1.15rem, 2.8vw, 1.8rem) 0;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--line-navy);
}
.who-row::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold), transparent 72%);
  transform: scaleX(0);
  transform-origin: left center;
}
.who-row__label {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 3.6vw, 3.15rem);
  line-height: 0.95;
  letter-spacing: -0.015em;
  color: var(--navy);
}
.who-row__value {
  max-width: 58ch;
  color: var(--fg-dark-muted);
  line-height: 1.62;
}
.who-row__cta {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  font-family: var(--font-body);
  font-size: 0.84rem;
  letter-spacing: 0.015em;
  text-transform: none;
  color: var(--gold-text);
  white-space: nowrap;
}
@media (prefers-reduced-motion: no-preference) {
  .js .who-rows.in > .who-row { animation: riseSm var(--dur-4) var(--ease-out-quint) backwards; }
  .js .who-rows.in > .who-row:nth-child(2) { animation-delay: 55ms; }
  .js .who-rows.in > .who-row:nth-child(3) { animation-delay: 110ms; }
  .js .who-rows.in > .who-row:nth-child(4) { animation-delay: 165ms; }
  .js .who-rows.in > .who-row:nth-child(5) { animation-delay: 220ms; }
  .js .who-rows.in > .who-row:nth-child(6) { animation-delay: 275ms; }
  .js .who-row.in::before,
  .js .who-rows.in .who-row::before { animation: ruleDraw var(--dur-section) var(--ease-premium-out) backwards; }
}
@media (hover: hover) {
  .who-row,
  .who-row .arrow,
  .who-row::before {
    transition:
      color var(--dur-3) var(--ease-out-quart),
      transform var(--dur-3) var(--ease-out-quart),
      opacity var(--dur-3) var(--ease-out-quart);
  }
  .who-rows:hover .who-row:not(:hover):not(:focus-visible) { opacity: 0.72; }
  .who-row:hover .who-row__label,
  .who-row:focus-visible .who-row__label { color: var(--gold-text); }
  .who-row:hover .arrow,
  .who-row:focus-visible .arrow { transform: translateX(var(--arrow-move)); }
  .who-row:hover::before,
  .who-row:focus-visible::before { transform: scaleX(1); }
}
@media (max-width: 760px) {
  .who-row {
    grid-template-columns: 1fr;
    gap: 8px;
    min-height: 0;
    padding: 20px 0;
  }
  .who-row__label { font-size: clamp(1.55rem, 8vw, 2.15rem); }
  .who-row__value { font-size: 0.96rem; }
  .who-row__cta { justify-self: start; margin-top: 4px; }
}

/* ============================================================
   WHO WE HELP — spotlight relationship grid
   Epic but restrained: a choreographed diagonal cascade reveals the six cards,
   and on desktop a spotlight focus lifts the hovered/focused relationship with
   a brass accent while its siblings quietly recede. transform + opacity only.
   ============================================================ */
/* brass top accent that draws on focus (desktop) */
#who-we-help .route-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-deep) 42%, transparent 78%);
  transform: scaleX(0); transform-origin: left center;
  transition: transform var(--dur-3) var(--ease-premium-out);
  pointer-events: none;
}

/* Choreographed cascade entrance (overrides the default reveal-group stagger) */
@media (prefers-reduced-motion: no-preference) {
  .js #who-we-help .route-grid.in > .route-card {
    animation: routeIn var(--dur-section) var(--ease-premium-out) backwards;
  }
  @keyframes routeIn {
    from { opacity: 0; transform: translateY(28px) scale(0.94); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  /* anti-diagonal wave across the 3-up desktop grid (still a clean stagger at 1/2-up) */
  .js #who-we-help .route-grid.in > .route-card:nth-child(1) { animation-delay: 0ms; }
  .js #who-we-help .route-grid.in > .route-card:nth-child(2) { animation-delay: 85ms; }
  .js #who-we-help .route-grid.in > .route-card:nth-child(3) { animation-delay: 170ms; }
  .js #who-we-help .route-grid.in > .route-card:nth-child(4) { animation-delay: 85ms; }
  .js #who-we-help .route-grid.in > .route-card:nth-child(5) { animation-delay: 170ms; }
  .js #who-we-help .route-grid.in > .route-card:nth-child(6) { animation-delay: 255ms; }
}

/* Spotlight focus (pointer devices, multi-column only) */
@media (hover: hover) and (min-width: 820px) {
  /* A short hover delay so the spotlight only engages when the pointer rests:
     scrolling with the cursor over the grid flips hover on each card it passes,
     and without this the chrome transitions would twitch/flicker. */
  #who-we-help .route-card, #who-we-help .route-card::before { transition-delay: 60ms; }
  /* Recede the siblings' chrome (border + shadow), not their text: a full-card
     opacity dim would drop the body copy below WCAG AA contrast. A whisper of
     opacity (0.94, AA-safe) plus flattened chrome reads as "stepped back". */
  #who-we-help .route-grid:hover > .route-card:not(:hover):not(:focus-within) {
    opacity: 0.94;
    border-color: rgba(18, 36, 27, 0.07);
    box-shadow: none;
  }
  #who-we-help .route-card:hover,
  #who-we-help .route-card:focus-within {
    transform: translateY(-4px);
    border-color: var(--line-gold-strong);
    box-shadow: 0 1px 0 var(--line-gold), 0 26px 56px -30px rgba(12, 17, 31, 0.55);
  }
  #who-we-help .route-card:hover::before,
  #who-we-help .route-card:focus-within::before { transform: scaleX(1); }
}

.process-step {
  position: relative;
  padding: clamp(1.3rem, 2.4vw, 1.7rem);
  min-height: 240px;
}
.process-step span {
  display: block; margin-bottom: 32px;
  font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.16em;
  color: var(--gold-text);
}
.process-step::before {
  content: ""; position: absolute; top: 45px; left: clamp(1.3rem, 2.4vw, 1.7rem);
  width: 28px; height: 1px; background: var(--gold);
}
.use-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: 0;
  border: 1px solid var(--line-navy);
  background: var(--line-navy);
}
.use-list li {
  position: relative;
  padding: 16px 18px 16px 34px;
  background: var(--surface-card);
  color: var(--fg-dark);
  font-weight: 500;
}
.use-list li::before {
  content: ""; position: absolute; left: 18px; top: 28px;
  width: 8px; height: 1.5px; background: var(--gold-deep);
}
.faq-list {
  display: grid;
  border-top: 1px solid var(--line-navy);
}
.faq-item {
  border-bottom: 1px solid var(--line-navy);
  padding: 0;
}
.faq-item summary {
  cursor: pointer;
  list-style: none;
  min-height: 64px;
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 1.55rem);
  color: var(--fg-dark);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  font-family: var(--font-mono); font-size: 1rem; color: var(--gold-text);
}
.faq-item[open] summary::after { content: "-"; }
.faq-item p {
  margin: 0 0 22px;
  max-width: 68ch;
  color: var(--fg-dark-muted);
}
.cta-split {
  display: grid;
  gap: clamp(1.8rem, 4vw, 3rem);
  align-items: end;
}
@media (min-width: 860px) { .cta-split { grid-template-columns: minmax(0, 1fr) auto; } }
.cta-split .after { margin-top: 16px; max-width: 60ch; color: var(--fg-light-muted); }
.cta-split .cta-actions { justify-content: flex-start; margin-top: 0; }

/* ---------- Services page ---------- */
.svc-block { border-top: 1px solid var(--line-navy); }
.svc-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 22px; margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.svc-head .num { font-family: var(--font-mono); font-size: 0.92rem; color: var(--gold-text); letter-spacing: 0.12em; }
.svc-grid { display: grid; gap: clamp(2rem, 5vw, 4rem); }
@media (min-width: 1024px) { .svc-grid { grid-template-columns: 0.9fr 1.4fr; align-items: start; } .svc-intro { position: sticky; top: var(--sticky-top); } }
.svc-intro p { color: var(--fg-dark-muted); max-width: 46ch; }
.svc-disclosure { font-size: 0.85rem; color: var(--stone); background: rgba(201, 168, 76, 0.05); box-shadow: inset 0 1px 0 var(--line-gold); padding: 14px 18px; margin-top: 18px; }
.svc-lines { border-top: 1px solid var(--line-navy); }
.svc-line {
  display: grid; grid-template-columns: auto 1fr; gap: 6px 20px;
  padding: 20px 6px; border-bottom: 1px solid var(--line-navy);
  transition: background-color 240ms ease-out;
}
.svc-line:hover { background: rgba(255, 255, 255, 0.55); }
.dark .svc-line:hover, .darker .svc-line:hover { background: rgba(255, 255, 255, 0.04); }
.svc-line .n { font-family: var(--font-mono); font-size: 0.75rem; color: var(--gold-text); padding-top: 6px; min-width: 26px; }
.svc-line h3 { font-size: 1.45rem; font-weight: 500; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.svc-line .ref {
  font-family: var(--font-body); font-size: 0.84rem; font-weight: 500; letter-spacing: 0.015em;
  text-transform: none; color: var(--gold-text); border: 1px solid var(--line-gold);
  padding: 3px 8px; border-radius: var(--radius-sm);
}
.svc-line p { margin: 6px 0 0; font-size: 1rem; color: var(--fg-dark-muted); max-width: 62ch; }
.focus-note {
  margin-top: 26px; padding: 18px 22px; background: var(--parchment-warm);
  border: 1px solid var(--line-navy); font-size: 0.95rem; color: var(--fg-dark);
}
.focus-note b { font-family: var(--font-body); font-size: 0.84rem; font-weight: 500; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); display: block; margin-bottom: 8px; }

/* process process: sticky sequence on desktop, vertical list everywhere else. */
.cm-process { overflow: clip; }
.cm-sequence {
  display: grid;
  gap: clamp(1.8rem, 5vw, 4rem);
  border-top: 1px solid var(--line-navy);
  padding-top: clamp(1.2rem, 3vw, 1.9rem);
}
.cm-sequence__rail {
  position: relative;
  min-width: 0;
}
.cm-sequence__rail ol {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 18px;
  border-left: 1px solid var(--line-navy);
}
.cm-sequence__rail li {
  position: relative;
  display: flex;
  gap: 12px;
  align-items: baseline;
  padding: 11px 0 11px 18px;
  color: var(--fg-dark-muted);
  font-family: var(--font-mono);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  transition: color var(--dur-3) var(--ease-premium-out), opacity var(--dur-3) var(--ease-premium-out);
}
.cm-sequence__rail li::before {
  content: "";
  position: absolute;
  left: -20px;
  top: 12px;
  width: 3px;
  height: 24px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: center top;
  transition: transform var(--dur-3) var(--ease-premium-out);
}
.cm-sequence__rail li span {
  color: var(--gold-text);
}
.cm-sequence__rail li.is-active {
  color: var(--navy);
}
.cm-sequence__rail li.is-active::before {
  transform: scaleY(1);
}
/* process process: thin-line stage icons (client pack) centered on an
   engraved plate. BASE rules paint the static state (one icon) that mobile,
   reduced-motion, and no-JS receive; the per-stage icon swap lives only in the
   gated desktop block below, so non-desktop / reduced-motion stays static. */
/* The big plate's stage swap only runs on desktop + no-preference (below), so it
   is hidden everywhere else; instead each step carries its own stage icon (.cm-step__ic).
   This flips inside the desktop+motion gate: plate shown, per-step icons hidden. */
.cm-linework {
  display: none;
  position: relative;
  margin-top: clamp(1.3rem, 3vw, 2rem);
  border: 1px solid var(--line-navy);
  background:
    radial-gradient(62% 72% at 26% 16%, var(--line-gold-soft), transparent 58%),
    linear-gradient(180deg, var(--surface-card), var(--surface-card-2));
  overflow: hidden;
}
.cm-step__ic { display: block; width: 52px; height: 52px; margin-bottom: 14px; }
.cm-step__ic path, .cm-step__ic circle, .cm-step__ic rect { fill: var(--navy); }
.cm-plate { display: block; width: 100%; height: auto; }
.cm-plate rect, .cm-plate path { fill: none; }
.cm-plate .cm-fr-edge   { stroke: var(--line-control); stroke-width: 1; }
.cm-plate .cm-fr-tick   { stroke: var(--gold-deep); stroke-width: 1.4; }
.cm-plate .cm-glyph     { fill: var(--navy); stroke: none; }
.cm-plate .cm-prog-tick { stroke: var(--line-control); stroke-width: 2.4; }
.cm-plate .cm-prog-1    { stroke: var(--gold-deep); }
.cm-ic { opacity: 0; }
.cm-ic--uw { opacity: 1; }
.cm-sequence__steps {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line-navy);
}
.cm-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 22px;
  padding: clamp(1.3rem, 3vw, 2rem) 0;
  border-bottom: 1px solid var(--line-navy);
  transition: opacity var(--dur-3) var(--ease-premium-out), transform var(--dur-3) var(--ease-premium-out);
}
.cm-step .n {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--gold-text);
  padding-top: 7px;
  min-width: 26px;
}
.cm-step h3 { font-size: clamp(1.55rem, 3vw, 2.2rem); font-weight: 500; }
.cm-step p { margin: 8px 0 0; color: var(--fg-dark-muted); max-width: 62ch; }
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  /* Desktop + motion + JS: the swapping plate replaces the per-step icons.
     Everywhere else (mobile, reduced-motion, no-JS) keeps the per-step icons. */
  .js .cm-linework { display: block; }
  .js .cm-step__ic { display: none; }
  .js .cm-sequence {
    grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.35fr);
    align-items: start;
  }
  .js .cm-sequence__rail {
    position: sticky;
    top: var(--sticky-top);
  }
  .js .cm-sequence__steps { border-top: 0; }
  .js .cm-step {
    min-height: clamp(300px, 48vh, 460px);
    align-content: center;
    padding-inline: clamp(0px, 2vw, 24px);
    opacity: 0.72;
  }
  .js .cm-step.is-active {
    opacity: 1;
    transform: translateX(8px);
  }

  /* Process artifact: one thin-line icon per active stage; opacity crossfade
     only (no idle loop). JS-prefixed so no-JS keeps the static base icon. */
  .cm-ic { transition: opacity var(--dur-4) var(--ease-premium-out); }
  .js .cm-ic { opacity: 0; }
  .js .cm-plate .cm-prog-tick { stroke: var(--line-control); }
  .js .cm-sequence.cm-stage-1 .cm-ic--uw { opacity: 1; }
  .js .cm-sequence.cm-stage-1 .cm-prog-1 { stroke: var(--gold-deep); }
  .js .cm-sequence.cm-stage-2 .cm-ic--pk { opacity: 1; }
  .js .cm-sequence.cm-stage-2 .cm-prog-2 { stroke: var(--gold-deep); }
  .js .cm-sequence.cm-stage-3 .cm-ic--cp { opacity: 1; }
  .js .cm-sequence.cm-stage-3 .cm-prog-3 { stroke: var(--gold-deep); }
  .js .cm-sequence.cm-stage-4 .cm-ic--cl { opacity: 1; }
  .js .cm-sequence.cm-stage-4 .cm-prog-4 { stroke: var(--gold-deep); }
}
@media (max-width: 760px), (prefers-reduced-motion: reduce) {
  .cm-step { opacity: 1; transform: none; }
}

/* ---- Services blocks: collapsible accordion on mobile, fully expanded on desktop ---- */
/* HTML ships each block open (no-JS = fully expanded, no regression); main.js collapses
   all but the first on phones. Desktop summaries are non-interactive headings. */
.svc-acc { margin: 0; }
.svc-acc > summary.svc-acc-head { list-style: none; pointer-events: none; }
.svc-acc > summary.svc-acc-head::-webkit-details-marker { display: none; }
.svc-acc-cue { display: none; }
@media (max-width: 600px) {
  .svc-acc > summary.svc-acc-head {
    pointer-events: auto; cursor: pointer; flex-wrap: nowrap; align-items: center;
    gap: 8px 14px; min-height: 44px; margin-bottom: 0; padding: 6px 0;
    -webkit-tap-highlight-color: transparent;
  }
  .svc-acc > summary.svc-acc-head > .num { flex: none; white-space: nowrap; align-self: center; }
  .svc-acc > summary.svc-acc-head > h2 { margin-right: auto; }
  .svc-acc[open] > summary.svc-acc-head { margin-bottom: clamp(1.5rem, 4.5vw, 2.1rem); }
  .svc-acc-cue { display: inline-flex; align-items: center; gap: 9px; flex: none; }
  .svc-acc-label { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); white-space: nowrap; }
  .svc-acc-label::before { content: "Expand"; }
  .svc-acc[open] .svc-acc-label::before { content: "Close"; }
  .svc-acc-toggle { position: relative; width: 18px; height: 18px; flex: none; }
  .svc-acc-toggle::before, .svc-acc-toggle::after { content: ""; position: absolute; background: var(--gold-text); transition: transform 220ms ease, opacity 220ms ease; }
  .svc-acc-toggle::before { left: 0; right: 0; top: 50%; height: 1.6px; transform: translateY(-50%); }
  .svc-acc-toggle::after { top: 0; bottom: 0; left: 50%; width: 1.6px; transform: translateX(-50%); }
  .svc-acc[open] .svc-acc-toggle::after { opacity: 0; transform: translateX(-50%) scaleY(0); }
}

/* Services page (mobile only): lead with the four service-line accordions, then
   the Capability Library and Who We Help card grids. Desktop keeps source order. */
@media (max-width: 600px) {
  .services-stack { display: flex; flex-direction: column; }
  .services-stack > section:not(.svc-block) { order: 1; }
}

/* Capital sources grid (process · lender network) — hairline deco grid */
.cap-grid {
  display: grid; gap: 1px; background: var(--line-navy);
  border: 1px solid var(--line-navy);
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
}
.cap-cell { background: var(--surface-card); padding: 18px 20px; }
.cap-cell .mono-label { display: block; margin-bottom: 8px; color: var(--gold-text); }
.cap-cell p { margin: 0; font-size: 0.92rem; line-height: 1.6; color: var(--fg-dark-muted); }

.invest-panels { display: grid; gap: clamp(1.4rem, 3vw, 2.2rem); }
@media (min-width: 860px) { .invest-panels { grid-template-columns: 1fr 1fr; } }
.invest-panel {
  border: 1px solid var(--line-navy); padding: clamp(1.6rem, 3.4vw, 2.6rem);
  background: var(--parchment-warm);
  transition: border-color 240ms ease-out, transform 240ms ease-out;
}
.invest-panel:hover { border-color: var(--line-gold); transform: translateY(-4px); }
.invest-panel .status { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); display: block; margin-bottom: 14px; }
.invest-panel h3 { font-size: clamp(1.45rem, 2.4vw, 1.85rem); color: var(--fg-dark); }
.invest-panel p { margin: 14px 0 0; color: var(--fg-dark-muted); }

/* ---------- Opportunities page ---------- */
.filterbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.filter-chip {
  background: none; border: 1px solid var(--line-control); border-radius: var(--radius-sm);
  padding: 10px 18px; min-height: 44px;
  font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none;
  color: var(--fg-dark-muted);
  transition: background-color 200ms ease-out, color 200ms ease-out, border-color 200ms ease-out;
}
.filter-chip:hover { border-color: var(--gold-deep); color: var(--navy); }
.filter-chip:active { transform: scale(0.97); }
.filter-chip[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--gold-warm); }

.listing-card {
  position: relative; display: grid; text-decoration: none; color: inherit;
  background: var(--surface-card); border: 1px solid var(--line-navy); overflow: hidden;
  box-shadow: var(--elev-1);
  transition: transform var(--dur-3) var(--ease-out-quart), box-shadow var(--dur-3) var(--ease-out-quart), border-color var(--dur-3) var(--ease-out-quart);
}
.listing-card:hover { border-color: var(--line-gold); box-shadow: var(--elev-hover); transform: translateY(-2px); }
@media (min-width: 900px) { .listing-card { grid-template-columns: 1fr 1.1fr; } }
.listing-card figure { margin: 0; position: relative; overflow: hidden; }
.listing-card figure img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; transition: transform 900ms var(--ease-out); }
.listing-card:hover figure img { transform: scale(1.04); }
.status-tag {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  background: var(--gold); color: var(--navy-deep);
  font-family: var(--font-body); font-size: 0.84rem; font-weight: 500;
  letter-spacing: 0.015em; text-transform: none; padding: 7px 13px;
}
.listing-card-body { padding: clamp(1.5rem, 3.4vw, 2.6rem); display: flex; flex-direction: column; gap: 12px; }
.listing-card-body .mono-label { color: var(--gold-text); }
.listing-card-body h3 { font-size: clamp(1.55rem, 2.8vw, 2.15rem); }
.listing-card-body .addr { color: var(--fg-dark-muted); font-size: 0.96rem; }
.listing-card-body .sum { color: var(--fg-dark-muted); margin: 4px 0 8px; }
.listing-facts {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0; margin: 6px 0 12px; border: 1px solid var(--line-navy);
  background: rgba(243, 239, 230, 0.42);
}
.listing-facts div { min-width: 0; padding: 12px 14px; }
.listing-facts div + div { border-left: 1px solid var(--line-navy); }
@media (max-width: 374px) {
  .listing-facts { grid-template-columns: 1fr 1fr; }
  .listing-facts div:nth-child(3) { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line-navy); }
}
.listing-facts dt {
  margin: 0 0 5px; font-family: var(--font-body); font-size: 0.84rem;
  letter-spacing: 0.015em; text-transform: none; color: var(--stone);
}
.listing-facts dd {
  margin: 0; font-family: var(--font-mono); font-size: 0.78rem;
  line-height: 1.45; color: var(--navy); overflow-wrap: break-word;
  font-variant-numeric: tabular-nums lining-nums;
}
.listing-card-body .row { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-top: auto; }
.listing-card .stretch { position: relative; z-index: 1; }
.listing-card .stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.listing-card .row { position: relative; z-index: 3; }
.listing-card .row .btn,
.listing-card .row .text-link { position: relative; z-index: 4; }
.off-market-note {
  margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(1.4rem, 3vw, 2rem);
  border: 1px dashed var(--line-navy); color: var(--fg-dark-muted); font-size: 0.95rem;
}

/* ---------- Listing detail ---------- */
.ld-head { padding-top: calc(var(--header-h) + clamp(40px, 7vw, 80px)); padding-bottom: clamp(32px, 5vw, 56px); }
.ld-breadcrumb { margin-bottom: 22px; }
.ld-breadcrumb a {
  color: var(--fg-light-muted); text-decoration: none; font-family: var(--font-body);
  font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none;
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  transition: color 200ms ease-out;
}
.ld-breadcrumb a:hover { color: var(--gold-warm); }
.ld-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.ld-tag {
  font-family: var(--font-body); font-size: 0.84rem; font-weight: 500; letter-spacing: 0.015em;
  text-transform: none; padding: 7px 13px; border-radius: var(--radius-sm);
}
.ld-tag.gold { background: var(--gold); color: var(--navy-deep); }
.ld-tag.line { border: 1px solid var(--line-onnavy); color: var(--gold-warm); }
.ld-addr { margin-top: 14px; color: var(--fg-light-muted); display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.ld-addr a { color: var(--gold-warm); }

.gallery { display: grid; gap: 12px; }
@media (min-width: 860px) { .gallery { grid-template-columns: repeat(4, 1fr); } .gallery .g-main { grid-column: span 4; } }
.g-item { position: relative; padding: 0; border: 1px solid var(--line-navy); background: none; cursor: zoom-in; overflow: hidden; }
.g-item img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; transition: transform 700ms var(--ease-out), opacity 250ms ease-out; }
.g-item.g-main img { aspect-ratio: 16 / 9.5; }
.g-item:hover img { transform: scale(1.03); }
.g-item figcaption, .g-cap {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 12px 16px 10px; text-align: left;
  background: linear-gradient(transparent, rgba(12, 26, 19, 0.82));
  color: var(--fg-light); font-family: var(--font-body); font-size: 0.84rem;
  letter-spacing: 0.015em; text-transform: none;
}
.lead-cinema {
  padding: 0;
  background: var(--ink);
  overflow: hidden;
}
.lead-cinema__button {
  width: 100%;
  min-height: min(76vh, 760px);
  border: 0;
  border-radius: 0;
  display: block;
  cursor: zoom-in;
}
.lead-cinema__button::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(12, 17, 31, 0.78) 0%, rgba(12, 17, 31, 0.48) 34%, transparent 62%),
    linear-gradient(180deg, rgba(12, 17, 31, 0.14), rgba(12, 17, 31, 0.44));
}
.lead-cinema__button img {
  width: 100%;
  min-height: min(76vh, 760px);
  max-height: 840px;
  aspect-ratio: auto;
  object-fit: cover;
  transform-origin: center;
}
.lead-cinema__overlay {
  position: absolute;
  left: var(--gutter);
  bottom: clamp(52px, 8vw, 96px);
  z-index: 2;
  width: min(520px, calc(100% - var(--gutter) * 2));
  color: var(--fg-light);
  text-align: left;
  pointer-events: none;
}
.lead-cinema__overlay .mono-label {
  color: var(--gold);
  display: block;
  margin-bottom: 12px;
}
.lead-cinema__title {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 6vw, 5.6rem);
  line-height: 0.92;
  letter-spacing: -0.018em;
  color: var(--gold-warm);
}
.lead-cinema .g-cap {
  z-index: 2;
  background: none;
  left: auto;
  right: var(--gutter);
  color: rgba(245, 240, 230, 0.78);
}
@media (prefers-reduced-motion: no-preference) {
  .js .lead-cinema__button.reveal.in img {
    animation: leadMaskIn 900ms var(--ease-premium-out) backwards;
  }
  @keyframes leadMaskIn {
    from { opacity: 0; clip-path: inset(0 0 0 18%); transform: scale(1.03); }
    to { opacity: 1; clip-path: inset(0 0 0 0); transform: scale(1); }
  }
}
@media (max-width: 760px) {
  .lead-cinema__button,
  .lead-cinema__button img { min-height: 58vh; min-height: 58svh; }
  .lead-cinema__button::before {
    background:
      linear-gradient(180deg, rgba(12, 17, 31, 0.2) 0%, rgba(12, 17, 31, 0.24) 40%, rgba(12, 17, 31, 0.74) 100%);
  }
  .lead-cinema__overlay {
    bottom: 48px;
  }
  .lead-cinema .g-cap { display: none; }
}

.ld-grid { display: grid; gap: clamp(2.4rem, 5vw, 4rem); }
.ld-grid > * { min-width: 0; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (min-width: 1024px) { .ld-grid { grid-template-columns: 1.5fr 0.9fr; align-items: start; } }
.ld-block { margin-bottom: clamp(2.4rem, 5vw, 3.6rem); }
.ld-block h2 { font-size: clamp(1.45rem, 2.4vw, 1.85rem); margin-bottom: 18px; }
.info-list li {
  position: relative; padding: 10px 0 10px 24px; border-bottom: 1px solid var(--line-navy);
  color: var(--fg-dark);
}
.info-list li::before { content: ""; position: absolute; left: 2px; top: 21px; width: 10px; height: 1.5px; background: var(--gold-deep); }

.detail-table { width: 100%; border-collapse: collapse; border: 1px solid var(--line-navy); }
.detail-table th, .detail-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--line-navy); font-size: 1rem; }
.detail-table th { font-family: var(--font-body); font-weight: 500; font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); width: 38%; }
.detail-table td { font-weight: 500; color: var(--fg-dark); }
.detail-table tr:last-child th, .detail-table tr:last-child td { border-bottom: 0; }
.detail-table tbody tr { transition: background-color 150ms ease; }
.detail-table tbody tr:hover { background: rgba(18, 36, 27, 0.035); }

.demo-table { width: 100%; border-collapse: collapse; border: 1px solid var(--line-navy); font-variant-numeric: tabular-nums lining-nums; }
.demo-table th, .demo-table td { padding: 12px 14px; border-bottom: 1px solid var(--line-navy); font-size: 0.95rem; text-align: right; white-space: nowrap; }
.demo-table th:first-child, .demo-table td:first-child { text-align: left; }
.demo-table thead th { font-family: var(--font-body); font-weight: 500; font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); border-bottom: 2px solid var(--line-gold); }
.demo-table tbody tr:last-child td, .demo-table tbody tr:last-child th { border-bottom: 0; }
.demo-table tbody tr { transition: background-color 150ms ease; }
.demo-table tbody tr:hover { background: rgba(18, 36, 27, 0.035); }
.demo-table td { color: var(--fg-dark); font-weight: 500; }
.demo-table tbody th { font-family: var(--font-body); font-weight: 500; font-size: 0.92rem; color: var(--fg-dark-muted); text-transform: none; letter-spacing: 0; }
.src-note { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); margin-top: 10px; }

.ld-aside { position: sticky; top: var(--sticky-top); display: flex; flex-direction: column; gap: 22px; }
.contact-card {
  background: var(--navy); color: var(--fg-light); padding: clamp(1.6rem, 3vw, 2.2rem);
}
.contact-card .mono-label { color: var(--gold); margin-bottom: 14px; display: block; }
.contact-card .who b { display: block; font-family: var(--font-display); font-weight: 500; font-size: 1.5rem; }
.contact-card .who span { color: var(--fg-light-muted); font-size: 0.9rem; }
.contact-card .ways { margin-top: 18px; display: flex; flex-direction: column; }
.contact-card .ways a {
  display: inline-flex; align-items: center; min-height: 44px;
  color: var(--gold-warm); text-decoration: none; font-family: var(--font-mono); font-size: 0.92rem;
  letter-spacing: 0.04em; transition: color 200ms ease-out;
}
.contact-card .ways a:hover { color: var(--gold); }
.contact-card .btn { margin-top: 18px; width: 100%; }
.download-card {
  border: 1px solid var(--line-navy); background: var(--surface-card); padding: 22px;
  display: flex; align-items: center; gap: 16px; text-decoration: none; color: inherit;
  box-shadow: var(--elev-1);
  transition: border-color var(--dur-3) var(--ease-out-quart), transform var(--dur-3) var(--ease-out-quart), box-shadow var(--dur-3) var(--ease-out-quart);
}
.download-card:hover { border-color: var(--line-gold); transform: translateY(-2px); box-shadow: var(--elev-hover); }
.download-card .doc {
  width: 46px; height: 56px; flex: none; border: 1px solid var(--line-gold);
  display: grid; place-items: center; font-family: var(--font-mono); font-size: 0.62rem;
  letter-spacing: 0.08em; color: var(--gold-text);
}
.download-card b { display: block; font-family: var(--font-display); font-weight: 500; font-size: 1.3rem; }
.download-card span { font-size: 0.84rem; color: var(--fg-dark-muted); }

.location-card { border: 1px solid var(--line-navy); background: var(--surface-card); padding: 22px; box-shadow: var(--elev-1); }
.location-card b { display: block; font-family: var(--font-display); font-weight: 500; font-size: 1.3rem; margin-bottom: 6px; }
.location-card p { margin: 0 0 12px; color: var(--fg-dark-muted); font-size: 0.95rem; }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 1100; background: rgba(12, 17, 31, 0.94);
  display: none; align-items: center; justify-content: center; padding: clamp(16px, 4vw, 48px);
}
.lightbox.is-open { display: flex; }
@media (prefers-reduced-motion: no-preference) {
  .lightbox.is-open { animation: lbFade 220ms ease-out; }
  .lightbox.is-open img { animation: lbZoom 240ms var(--ease-out-quart); }
  @keyframes lbFade { from { opacity: 0; } to { opacity: 1; } }
  @keyframes lbZoom { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: scale(1); } }
}
.lightbox img { max-width: 100%; max-height: 82vh; width: auto; height: auto; border: 1px solid var(--line-onnavy); }
.lightbox-cap { position: absolute; bottom: clamp(18px, 4vw, 36px); left: 0; right: 0; text-align: center; color: var(--fg-light-muted); font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; }
.lb-btn {
  position: absolute; z-index: 2; width: 52px; height: 52px;
  background: rgba(18, 36, 27, 0.8); border: 1px solid var(--line-onnavy); border-radius: var(--radius-sm);
  color: var(--gold-warm); font-size: 1.3rem; line-height: 1;
  display: grid; place-items: center; transition: background-color 200ms ease-out, border-color 200ms ease-out;
}
.lb-btn:hover { background: var(--navy-soft); border-color: var(--line-gold); }
.lb-close { top: clamp(14px, 3vw, 28px); right: clamp(14px, 3vw, 28px); }
.lb-prev { left: clamp(8px, 2vw, 24px); top: 50%; transform: translateY(-50%); }
.lb-next { right: clamp(8px, 2vw, 24px); top: 50%; transform: translateY(-50%); }

/* ---------- About page ---------- */
/* Partner profiles: restrained portrait scale, aligned cards, editorial balance */
#stuart .sec-head { margin-bottom: clamp(1.4rem, 3vw, 2rem); }
.bio-mobile-portrait, .bio-mobile-links { display: none; }
.bio-grid { display: grid; gap: clamp(2.6rem, 5vw, 5rem); }
@media (min-width: 1024px) {
  .bio-grid {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
    align-items: start;
  }
}
@media (max-width: 1023px) {
  .bio-mobile-head {
    display: grid;
    justify-items: center;
    gap: 13px;
    text-align: center;
    margin-bottom: clamp(1.45rem, 5vw, 2.1rem);
  }
  #stuart .bio-mobile-head .sec-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0;
    min-width: 0;
  }
  .bio-mobile-head h2 {
    order: 1;
    font-size: 2.18rem;
    line-height: 0.98;
    letter-spacing: 0;
    white-space: nowrap;
    text-wrap: nowrap;
  }
  .bio-mobile-head .bio-role {
    order: 2;
    margin: 0;
    justify-content: center;
  }
  .bio-mobile-portrait {
    display: block;
    order: 1;
    width: clamp(88px, 25vw, 108px);
    margin: 0;
  }
  .bio-mobile-portrait img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: 50% 28%;
    filter: grayscale(100%) contrast(1.04);
    border: 1px solid rgba(18, 36, 27, 0.18);
    box-shadow: 0 12px 28px rgba(13, 18, 35, 0.12);
  }
  .bio-mobile-head .sec-head {
    order: 2;
  }
  .bio-mobile-links {
    display: flex;
    order: 3;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 10px;
    max-width: 100%;
  }
  .bio-mobile-linkedin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    color: var(--linkedin);
    text-decoration: none;
    border: 1px solid rgba(10, 102, 194, 0.18);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.42);
  }
  .bio-mobile-linkedin svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
  }
  .bio-mobile-email {
    flex: 0 1 auto;
    min-width: 0;
    color: var(--navy);
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    overflow-wrap: normal;
  }
  .bio-grid {
    row-gap: clamp(1.2rem, 4vw, 1.8rem);
  }
  .bio-grid > .bio-aside {
    display: contents;
    position: static;
  }
  .bio-grid > .bio-aside .bio-portrait-card {
    display: none;
  }
  .bio-grid > .bio-aside .fact-card {
    order: 1;
  }
  .bio-grid > .bio-aside .fact-card:last-child {
    display: none;
  }
}
@media (max-width: 380px) {
  .bio-mobile-head {
    gap: 12px;
  }
  .bio-mobile-links {
    gap: 8px;
  }
  .bio-mobile-head h2 {
    font-size: 1.95rem;
  }
  .bio-mobile-linkedin {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
  }
  .bio-mobile-email {
    font-size: 0.9rem;
  }
}
@media (max-width: 330px) {
  .bio-mobile-links {
    gap: 7px;
  }
  .bio-mobile-head h2 {
    font-size: 1.76rem;
  }
  .bio-mobile-linkedin {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
  .bio-mobile-email {
    font-size: 0.82rem;
  }
}
.bio-copy p { color: var(--fg-dark); max-width: 66ch; }
.bio-copy p + p { margin-top: 1.2em; }
.bio-aside { position: sticky; top: var(--sticky-top); display: grid; gap: 14px; align-self: start; }
.bio-portrait-card {
  position: relative;
  display: grid; grid-template-columns: minmax(108px, 132px) minmax(0, 1fr);
  gap: 18px; align-items: stretch;
  padding: 16px;
  background: linear-gradient(180deg, var(--surface-card), var(--surface-card-2));
  border: 1px solid var(--line-navy);
  box-shadow: var(--elev-1);
}
.bio-portrait { margin: 0; min-width: 0; }
.bio-portrait img {
  display: block; width: 100%; aspect-ratio: 4 / 5;
  object-fit: cover; object-position: 50% 28%;
  filter: grayscale(100%) contrast(1.04);
  background: var(--surface-card);
  border: 1px solid rgba(18, 36, 27, 0.18);
}
.bio-id {
  min-width: 0; align-self: stretch;
  display: flex; flex-direction: column; justify-content: center;
  padding: 7px 0;
}
.bio-id .mono-label {
  display: block; margin-bottom: 14px; padding-right: 42px;
  color: var(--gold-text); line-height: 1.35;
}
.bio-id b {
  display: block;
  font-family: var(--font-display); font-size: clamp(1.55rem, 2.2vw, 1.95rem);
  font-weight: 500; line-height: 1.05; color: var(--fg-dark);
}
.bio-id > span:not(.mono-label) {
  display: block; margin-top: 7px; color: var(--fg-dark-muted);
  font-size: 0.94rem;
}
.bio-contact-links {
  display: block; margin-top: 0; padding-top: 18px;
}
.bio-id .bio-email, .bio-id .bio-phone {
  display: inline-block; margin-top: 0;
  font-size: 0.96rem; line-height: 1.25;
  color: var(--navy); font-weight: 600; text-decoration-thickness: 1px;
  text-underline-offset: 4px; overflow-wrap: anywhere;
}
.bio-id .bio-phone { margin-top: 8px; }
.bio-portrait-card > .social-link {
  position: absolute; top: 16px; right: 16px; z-index: 1;
  width: 28px; height: 28px; padding: 0; margin: 0;
  color: var(--linkedin); background: #fff; flex: none;
  border-radius: var(--radius-sm);
  box-shadow: 0 0 0 1px rgba(10, 102, 194, 0.1), 0 2px 8px rgba(18, 36, 27, 0.08);
}
.bio-portrait-card > .social-link svg { width: 23px; height: 23px; }
.bio-portrait-card > .social-link:hover { color: var(--linkedin-dark); transform: translateY(-1px); }
.fact-card { border: 1px solid var(--line-navy); background: var(--surface-card); padding: 22px 24px; box-shadow: var(--elev-1); }
.fact-card .mono-label { display: block; margin-bottom: 10px; color: var(--gold-text); }
.fact-card b { font-family: var(--font-display); font-weight: 500; font-size: 1.32rem; display: block; line-height: 1.25; }
.fact-card p { margin: 8px 0 0; font-size: 0.92rem; color: var(--fg-dark-muted); }
.fact-card img { width: min(180px, 76%); margin-top: 10px; }

.leader-panel { max-width: 460px; margin-left: auto; }
.leader-profile { background: linear-gradient(168deg, var(--navy), var(--navy-deep)); border-color: var(--line-gold); box-shadow: 0 1px 0 var(--line-gold-soft), 0 26px 60px -38px rgba(0, 0, 0, 0.72); }
/* In the merged Request Financing section the card lives in the left intro column:
   keep it flush-left and full-width, and don't let the column stick on scroll. */
#request-financing .svc-intro { position: static; }
.svc-intro .leader-panel { margin-left: 0; max-width: 100%; }
.leader-profile .bio-portrait img { border-color: var(--line-gold-soft); box-shadow: none; }
.leader-profile .bio-id b { color: var(--fg-light); }
.leader-profile .bio-id > span:not(.mono-label) { color: var(--fg-light-muted); }
.leader-profile .bio-id .bio-email, .leader-profile .bio-id .bio-phone { color: var(--gold-warm); }
.leader-profile .bio-id .mono-label { color: var(--gold-warm); }
.leader-profile > .social-link { color: var(--linkedin); }
.leader-profile > .social-link:hover { color: var(--linkedin-light); }

@media (max-width: 560px) {
  .bio-portrait-card { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .bio-portrait-card > .social-link { top: 12px; right: 12px; width: 26px; height: 26px; }
  .bio-portrait-card > .social-link svg { width: 22px; height: 22px; }
  .bio-id { padding: 2px 0; }
  .bio-id .mono-label { margin-bottom: 8px; padding-right: 34px; font-size: 0.66rem; letter-spacing: 0.12em; }
  .bio-id b { font-size: 1.42rem; }
  .bio-contact-links { padding-top: 12px; }
  .bio-id .bio-email, .bio-id .bio-phone { font-size: 0.88rem; }
}

.principles { display: grid; gap: clamp(1.4rem, 3vw, 2.2rem); }
@media (min-width: 860px) { .principles { grid-template-columns: repeat(3, 1fr); } }
.principle { border-top: 1px solid var(--line-gold); padding-top: 22px; position: relative; }
.principle::before { content: ""; position: absolute; top: -1px; left: 0; width: 28px; height: 1px; background: var(--gold); }
.principle h3 { font-size: 1.45rem; }
.principle p { margin: 12px 0 0; color: var(--fg-light-muted); font-size: 0.97rem; }

.tr-firm { border-top: 1px solid var(--line-navy); padding-top: clamp(1.8rem, 4vw, 2.6rem); margin-top: clamp(2.2rem, 5vw, 3.4rem); }
.tr-firm:first-of-type { margin-top: 0; }
.tr-firm-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; margin-bottom: clamp(1.4rem, 3vw, 2rem); }
/* Track-record accordion (native <details>) */
details.tr-firm > summary.tr-firm-head { cursor: pointer; list-style: none; min-height: 44px; transition: color 200ms ease-out; }
details.tr-firm > summary.tr-firm-head::-webkit-details-marker { display: none; }
details.tr-firm:not([open]) > summary.tr-firm-head { margin-bottom: 0; }
details.tr-firm:not([open]) > .tr-entries { display: none; }
details.tr-firm > summary:hover h3 { color: var(--gold-deep); }
.tr-chev { align-self: center; width: 9px; height: 9px; margin-left: auto; border-right: 1.5px solid var(--gold-deep); border-bottom: 1.5px solid var(--gold-deep); transform: rotate(45deg); transition: transform 240ms var(--ease-out-quart); }
details.tr-firm[open] > summary .tr-chev { transform: rotate(-135deg); }
.tr-firm-head h3 { font-size: clamp(1.55rem, 2.8vw, 2.15rem); }
.tr-firm-head .role { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); }
.tr-firm-head .years { margin-left: auto; font-family: var(--font-mono); font-size: 0.8rem; color: var(--stone); }
.tr-entries { display: grid; gap: 0; border-top: 1px solid var(--line-navy); }
.tr-entry {
  display: grid; gap: 8px 26px; padding: 20px 6px;
  border-bottom: 1px solid var(--line-navy);
  transition: background-color 240ms ease-out;
}
.tr-entry:hover { background: rgba(255, 255, 255, 0.55); }
@media (min-width: 860px) { .tr-entry { grid-template-columns: 200px 1fr; } }
.tr-meta { display: flex; flex-direction: column; gap: 6px; }
.tr-chip {
  align-self: flex-start; font-family: var(--font-body); font-size: 0.84rem; font-weight: 500;
  letter-spacing: 0.015em; text-transform: none; color: var(--gold-text);
  border: 1px solid var(--line-gold); padding: 4px 9px; border-radius: var(--radius-sm);
}
.tr-loc { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); }
.tr-entry h4 { font-size: 1.4rem; font-weight: 500; }
.tr-entry p { margin: 6px 0 0; font-size: 0.95rem; color: var(--fg-dark-muted); max-width: 64ch; }
.tr-entry p a { color: var(--navy); }

.summary-band {
  border-top: 1px solid var(--line-onnavy); border-bottom: 1px solid var(--line-onnavy);
  background: rgba(12, 26, 19, 0.24);
}
.summary-grid { display: grid; gap: clamp(1.6rem, 4vw, 2.2rem); padding: clamp(2rem, 4vw, 3rem) 0; }
@media (min-width: 620px) { .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.65rem, 3vw, 2.2rem) 0; max-width: 1120px; margin-inline: auto; } }
.summary-stat { text-align: left; padding: 0 clamp(0px, 2.5vw, 3rem); }
/* Tablet: 2-up ledger (e.g. 6 stats = 2x3) */
@media (min-width: 620px) and (max-width: 959px) {
  .summary-stat:nth-child(2n) { border-left: 1px solid var(--line-onnavy); }
  .summary-stat:nth-child(n+3) { padding-top: clamp(1.65rem, 3vw, 2.2rem); border-top: 1px solid var(--line-onnavy); }
}
/* Desktop: 3-up ledger (6 stats = 3x2) with dividers redrawn for 3 columns */
@media (min-width: 960px) {
  .summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1180px; }
  .summary-stat:not(:nth-child(3n+1)) { border-left: 1px solid var(--line-onnavy); }
  .summary-stat:nth-child(n+4) { padding-top: clamp(1.65rem, 3vw, 2.2rem); border-top: 1px solid var(--line-onnavy); }
}
.summary-stat .n { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.1rem, 4.4vw, 3.3rem); color: var(--gold-warm); font-variant-numeric: tabular-nums lining-nums; letter-spacing: -0.01em; white-space: nowrap; }
.summary-stat .u { font-size: 0.46em; letter-spacing: 0.02em; color: var(--gold-warm); }
.summary-stat .l { margin-top: 8px; color: var(--fg-light-muted); font-size: 0.95rem; }
.execution-record {
  position: relative;
  overflow: hidden;
}
.execution-record::before {
  content: "";
  position: absolute;
  left: var(--gutter);
  right: var(--gutter);
  top: clamp(1.4rem, 3vw, 2.1rem);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-gold-strong), transparent);
  transform-origin: left center;
}
.execution-record::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(48% 80% at 18% 18%, rgba(201, 168, 76, 0.085), transparent 66%),
    radial-gradient(36% 54% at 92% 72%, rgba(232, 213, 163, 0.055), transparent 72%);
}
.execution-record .summary-grid {
  position: relative;
  z-index: 1;
}
@media (min-width: 960px) {
  .execution-record .summary-grid {
    grid-template-columns: 1.05fr 1fr 1fr;
    align-items: end;
    gap: 0;
    padding: clamp(2.7rem, 4.6vw, 4.2rem) 0 clamp(2.6rem, 4.4vw, 3.8rem);
  }
  .execution-record .summary-stat {
    min-height: clamp(104px, 10.5vw, 142px);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  .execution-record .summary-stat:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; justify-content: center; }
  .execution-record .summary-stat:nth-child(2) { grid-column: 2; grid-row: 1; }
  .execution-record .summary-stat:nth-child(3) { grid-column: 3; grid-row: 1; }
  .execution-record .summary-stat:nth-child(4) { grid-column: 1; grid-row: 3; }
  .execution-record .summary-stat:nth-child(5) { grid-column: 2; grid-row: 2 / span 2; justify-content: center; }
  .execution-record .summary-stat:nth-child(6) { grid-column: 3; grid-row: 2 / span 2; justify-content: center; }
  .execution-record .summary-stat:nth-child(n) {
    border-left: 0;
    border-top: 1px solid var(--line-onnavy);
  }
  .execution-record .summary-stat:not(:nth-child(3n+1)) {
    border-left: 1px solid var(--line-onnavy);
  }
  .execution-record .summary-stat .n {
    font-size: clamp(2.3rem, 3.7vw, 3.95rem);
    line-height: 0.95;
  }
  .execution-record .summary-stat:nth-child(1) .n,
  .execution-record .summary-stat:nth-child(5) .n {
    font-size: clamp(2.65rem, 4.3vw, 4.55rem);
  }
}
@media (prefers-reduced-motion: no-preference) {
  .js .execution-record:has(.summary-stat.in)::before {
    animation: ruleDraw var(--dur-section) var(--ease-premium-out) backwards;
  }
}
/* Mobile: compact 2-up ledger (6 stats = 2x3) instead of a tall stack of huge numbers */
@media (max-width: 619px) {
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; max-width: 440px; margin-inline: auto; padding: clamp(1.5rem, 6vw, 2.2rem) 0; }
  .summary-stat { padding: 13px clamp(8px, 3.5vw, 16px); }
  .summary-stat:nth-child(2n) { border-left: 1px solid var(--line-onnavy); }
  .summary-stat:nth-child(n+3) { padding-top: clamp(15px, 4.5vw, 22px); border-top: 1px solid var(--line-onnavy); }
  .summary-stat .n { font-size: clamp(1.25rem, 5.6vw, 1.6rem); }
  .summary-stat .l { font-size: 0.66rem; margin-top: 3px; line-height: 1.35; letter-spacing: 0.01em; }
}

.signature-block { text-align: center; }
.signature-block .sig { font-family: var(--font-script); font-size: clamp(2.6rem, 6vw, 4rem); color: var(--gold-warm); line-height: 1.2; }
.signature-block .sig-sub { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--fg-light-faint); margin-top: 10px; }

/* ---------- Contact page ---------- */
.contact-grid { display: grid; gap: clamp(2.6rem, 5vw, 4.5rem); }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: 1.3fr 0.9fr; align-items: start; } }
.form-grid { display: grid; gap: 20px; }
@media (min-width: 640px) { .form-grid { grid-template-columns: 1fr 1fr; } .form-grid .full { grid-column: span 2; } }
.field label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 8px; color: var(--fg-dark); }
.field label .req { color: var(--gold-text); }
.field input, .field select, .field textarea {
  width: 100%; padding: 14px 16px; min-height: 52px;
  font: inherit; color: var(--fg-dark);
  background: var(--surface-card); border: 1px solid var(--line-control); border-radius: var(--radius-sm);
  transition: border-color 200ms ease-out, box-shadow 200ms ease-out;
}
.field textarea { resize: vertical; min-height: 140px; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--stone-light); }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--gold-deep); box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.18);
}
/* Inline invalid state, in a desaturated brick that fits the parchment palette (not bright red) */
.field input:user-invalid, .field select:user-invalid, .field textarea:user-invalid {
  border-color: var(--error); box-shadow: 0 0 0 3px rgba(155, 59, 46, 0.14);
}
.field select { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding-right: 44px; background-image: linear-gradient(45deg, transparent 50%, var(--stone) 50%), linear-gradient(135deg, var(--stone) 50%, transparent 50%); background-position: calc(100% - 19px) calc(50% + 1px), calc(100% - 14px) calc(50% + 1px); background-size: 5px 5px; background-repeat: no-repeat; }

/* Short, optional inquiries on the existing dark investment/property sections. */
.interest-capture { max-width: 620px; margin: 28px auto 0; text-align: left; }
.interest-capture .form-grid { gap: 20px; }
.interest-capture .field { min-width: 0; }
.interest-capture .field label { color: var(--fg-light); }
.interest-capture .field-optional { font-weight: 400; margin-left: 6px; color: rgba(245, 240, 230, 0.75); }
.interest-capture .field input {
  min-width: 0;
  padding: 14px 16px; min-height: 52px;
  font: inherit; color: var(--fg-light);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(232, 213, 163, 0.6); border-radius: var(--radius-sm);
  transition: border-color 200ms ease-out, box-shadow 200ms ease-out;
}
.interest-capture .field input::placeholder { color: rgba(245, 240, 230, 0.72); }
.interest-capture .field input:hover { border-color: var(--gold-warm); }
.interest-capture .field input:focus { outline: 2px solid var(--gold-warm); outline-offset: 3px; }
.interest-capture .field input:user-invalid { border-color: var(--error-on-dark); box-shadow: 0 0 0 3px rgba(201, 122, 99, 0.16); }
.interest-capture .btn { flex: 0 0 auto; }
.interest-capture .form-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.interest-capture .form-actions a { color: var(--fg-light); text-underline-offset: 4px; font-size: 0.88rem; }
.capture-note { margin: 0 0 16px; color: rgba(245, 240, 230, 0.78); font-size: 0.88rem; }
.invest-form__note { margin: 14px 0 0; font-size: 0.82rem; color: rgba(245, 240, 230, 0.55); }
.flyer-request { max-width: 620px; margin: 28px auto 0; text-align: left; }
.flyer-request summary { cursor: pointer; padding: 14px 0; color: var(--gold-warm); text-decoration: underline; text-underline-offset: 5px; }
.flyer-request .interest-capture { margin-top: 20px; }
.interest-capture .form-error { color: var(--gold-warm); }
@media (max-width: 639px) {
  .interest-capture .form-grid { grid-template-columns: 1fr; }
  .interest-capture .form-actions { align-items: stretch; gap: 14px; }
  .interest-capture .btn { width: 100%; }
}

/* Condensed mobile forms — applies to BOTH the contact form (.contact-grid)
   and the process financing form (any .form-grid). Goal: the full
   form fits on a phone screen at once so the visitor can see what they're
   filling out. Smaller labels, shorter fields, tighter gaps, and a small
   textarea (the heading and the field on screen establish what to write). */
@media (max-width: 600px) {
  .contact-grid { gap: 1.4rem; }
  .form-grid { gap: 8px; }
  .form-grid .field label { margin-bottom: 3px; font-size: 0.78rem; }
  .form-grid .field input,
  .form-grid .field select,
  .form-grid .field textarea {
    padding: 8px 12px; min-height: 38px;
    font-size: 0.92rem;
    border-radius: var(--radius-sm);
  }
  .form-grid .field textarea { min-height: 60px; height: 64px; }
  /* the brass select chevron must follow the new vertical center */
  .form-grid .field select {
    background-position: calc(100% - 16px) calc(50% + 1px),
                         calc(100% - 11px) calc(50% + 1px);
  }
  /* the submit button doesn't need to scream — trim it to match field height */
  .form-grid + button.btn,
  .form-grid .btn { padding: 11px 22px; min-height: 42px; }
  /* trim the section padding around the form so vertical breathing room is in
     the FORM, not the empty space above/below it. :has() targets any .sec that
     wraps one of these forms — contact + process — without needing IDs. */
  .sec:has(.form-grid) { padding-top: 36px; padding-bottom: 36px; }
}
.hidden { position: absolute; left: -9999px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.direct-card { background: var(--navy); color: var(--fg-light); padding: clamp(1.8rem, 4vw, 2.6rem); }
.direct-card .mono-label { color: var(--gold); display: block; margin-bottom: 20px; }
.direct-row { padding: 16px 0; border-bottom: 1px solid var(--line-onnavy); }
.direct-row:last-of-type { border-bottom: 0; }
.direct-row .k { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--fg-light-faint); display: block; margin-bottom: 6px; }
.direct-row a, .direct-row .v {
  font-family: var(--font-display); font-weight: 500; font-size: clamp(1.3rem, 2.2vw, 1.6rem);
  color: var(--gold-warm); text-decoration: none; transition: color 200ms ease-out;
}
.direct-row a:hover { color: var(--gold); }
.contact-blurb { margin-top: 24px; }
.contact-blurb p { color: var(--fg-dark-muted); font-size: 0.97rem; }
.contact-blurb .lic { font-size: 0.85rem; color: var(--stone); padding: 4px 0; }

/* ---------- Legal pages ---------- */
.legal-body { max-width: 760px; }
.legal-body h2 { font-size: clamp(1.45rem, 2.6vw, 1.85rem); margin: clamp(2rem, 4vw, 2.8rem) 0 14px; }
.legal-body h3 { font-size: 1.25rem; margin: 1.6rem 0 10px; }
.legal-body p, .legal-body li { color: var(--fg-dark-muted); }
.legal-body ul { list-style: none; padding: 0; margin: 0 0 1em; }
.legal-body li { position: relative; padding: 5px 0 5px 22px; }
.legal-body li::before { content: ""; position: absolute; left: 0; top: 16px; width: 10px; height: 1.5px; background: var(--gold-deep); }
.legal-body a { color: var(--navy); }
.legal-updated { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); }

/* ---------- Sticky mobile CTA bar ---------- */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 800;
  display: grid; grid-template-columns: 1fr 1fr;
  transform: translateY(110%);
  visibility: hidden;
  transition: transform 320ms var(--ease-std), visibility 0s linear 320ms;
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--navy-deep);
  box-shadow: 0 -8px 30px rgba(12, 17, 31, 0.35);
}
.sticky-cta.show { transform: translateY(0); visibility: visible; transition: transform 320ms var(--ease-std); }
.sticky-cta { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
.sticky-cta a {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 56px; font-weight: 600; font-size: 0.95rem; text-decoration: none;
}
.sticky-cta .call { color: var(--gold-warm); }
.sticky-cta .act { background: var(--gold); color: var(--navy-deep); }
@media (min-width: 1024px) { .sticky-cta { display: none; } }
@media (max-width: 1023px) { html { scroll-padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }
body.menu-open .sticky-cta { display: none; }

/* ---------- Reveal motion ----------
   Content is visible by default (no-JS, crawlers, full-page capture all safe).
   The .in class, added on viewport entry, replays a rise animation. */
.reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
  /* Once the observer is live (html.reveal-ready, set by JS after setup), pre-hide
     not-yet-revealed elements so they fade IN cleanly instead of flashing
     visible-then-snapping-to-0. If the script never sets up, content stays
     visible (no .reveal-ready), preserving the no-JS-safe fallback. */
  .reveal-ready .reveal:not(.in) { opacity: 0; }
  .reveal-ready .reveal-group:not(.in) > * { opacity: 0; }
  .js .reveal.in { animation: rise 720ms var(--ease-out-quint) backwards; }
  .js .reveal-d1.in { animation-delay: 60ms; }
  .js .reveal-d2.in { animation-delay: 120ms; }
  .js .reveal-d3.in { animation-delay: 180ms; }
  @keyframes rise {
    from { opacity: 0; transform: translateY(var(--reveal-y, 24px)); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes riseSm {
    from { opacity: 0; transform: translateY(var(--reveal-y-sm, 16px)); }
    to { opacity: 1; transform: translateY(0); }
  }
  /* Internal stagger: children of a .reveal-group arrive in sequence (gentler travel) */
  .js .reveal-group.in > * { animation: riseSm var(--dur-4) var(--ease-out-quint) backwards; }
  .js .reveal-group.in > *:nth-child(2) { animation-delay: 60ms; }
  .js .reveal-group.in > *:nth-child(3) { animation-delay: 120ms; }
  .js .reveal-group.in > *:nth-child(4) { animation-delay: 180ms; }
  .js .reveal-group.in > *:nth-child(5) { animation-delay: 240ms; }
  .js .reveal-group.in > *:nth-child(n+6) { animation-delay: 280ms; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; animation-delay: 0ms !important; transition-delay: 0ms !important; }
  .hero::before { animation: none; }
}

/* ---------- Page entry + hero choreography ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js body { animation: pageIn 420ms ease-out; }
  @keyframes pageIn { from { opacity: 0; } to { opacity: 1; } }

  /* Header settles first (spec: y -8 -> 0, 420ms) */
  .js .site { animation: headerIn 420ms var(--ease-premium-out) backwards; }
  @keyframes headerIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

  /* signature entrance: frame, field light, pattern, eagle, masthead, headline, lede, actions, rail, ticker */
  .js .hero-frame { animation: frameIn 1100ms var(--ease-out-quint) backwards; }
  .js .hero-atmosphere { animation: heroLightIn 1800ms var(--ease-out-quint) backwards 120ms; }
  .js .hero-pattern { animation: patternIn 1400ms ease-out backwards; }
  .js .hero-mark { animation: eagleIn 1500ms var(--ease-out-quint) backwards 150ms; }
  .js .hero-mark::after { animation: eagleSheen 1450ms var(--ease-controlled) 780ms both; }
  .js .hero-meta { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 120ms; }
  /* H1 reveals line by line through an overflow mask (LineReveal) — not char-by-char */
  .js .hero h1 .lr-i { animation: lineMask var(--dur-section) var(--ease-premium-out) backwards; }
  .js .hero h1 .lr-line:nth-child(1) .lr-i { animation-delay: 180ms; }
  .js .hero h1 .lr-line:nth-child(2) .lr-i { animation-delay: 270ms; }
  .js .hero h1 .lr-line:nth-child(3) .lr-i { animation-delay: 360ms; }
  @keyframes lineMask { from { transform: translateY(125%); } to { transform: translateY(0); } }
  .js .hero-lede { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 380ms; }
  .js .hero-actions { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 480ms; }
  .js .hero-lines .hero-line:nth-child(1) { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 560ms; }
  .js .hero-lines .hero-line:nth-child(2) { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 620ms; }
  .js .hero-lines .hero-line:nth-child(3) { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 680ms; }
  .js .hero-lines .hero-line:nth-child(4) { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 740ms; }
  .js .hero-lines { animation: lineFade var(--dur-5) ease-out backwards 540ms; }
  .js .hero-award { animation: chIn var(--dur-4) var(--ease-out-quint) backwards 760ms; }
  .js .hero-ticker { animation: tickerIn var(--dur-5) var(--ease-out-quint) backwards 600ms; }
  .js .hero-ticker .t-rule { animation: ruleDraw 600ms var(--ease-out-quint) backwards 820ms; }

  @keyframes frameIn { from { opacity: 0; transform: scale(1.012); } to { opacity: 1; transform: scale(1); } }
  @keyframes heroLightIn { from { opacity: 0; transform: scale(0.985); } to { opacity: 0.74; transform: scale(1); } }
  @keyframes patternIn { from { opacity: 0; } to { opacity: var(--pat-rest, 0.055); } }
  @keyframes eagleIn { from { opacity: 0; transform: translateY(24px); } to { opacity: var(--eagle-rest, 0.055); transform: translateY(0); } }
  @keyframes eagleSheen {
    0% { opacity: 0; transform: translate3d(-130%, 0, 0); }
    26% { opacity: 0.56; }
    68% { opacity: 0.22; }
    100% { opacity: 0; transform: translate3d(130%, 0, 0); }
  }
  @keyframes chIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes headlineIn { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes lineFade { from { border-top-color: transparent; } to { border-top-color: var(--line-onnavy); } }
  @keyframes tickerIn { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: translateY(0); } }
}

/* ============================================================
   Responsive refinements — tablet + phone, designed not shrunk
   ============================================================ */

/* ---------- Tablet (701–1023px): close the dead-zone ---------- */
@media (min-width: 701px) and (max-width: 1023px) {
  .hero-inner { padding-top: calc(var(--header-h) + 52px); }
  .hero-lines { max-width: none; gap: 0 clamp(28px, 5vw, 56px); }
  .wwd-grid, .dossier-grid, .recognition-grid, .ventures-grid { gap: clamp(2rem, 4vw, 3rem); }
}

/* ---------- Phone + small tablet (≤860px) ---------- */
@media (max-width: 860px) {
  .hero-lines { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px clamp(16px, 5vw, 32px); max-width: 520px; }
  .hero-line { min-height: 44px; padding: 9px 0; font-size: 1rem; }
  .hero-line i { font-size: 0.64rem; }
  .spec-rail { grid-template-columns: 1fr 1fr; }
  /* traffic reads like a tear sheet: two up, last spans full */
  .traffic { grid-template-columns: 1fr 1fr; gap: 20px 22px; }
  .traffic .t:last-child { grid-column: 1 / -1; }
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .gallery .g-main { grid-column: span 2; }
  .ld-aside, .bio-aside { position: static; }
}

/* ---------- Phone (≤600px): the elite first impression ---------- */
@media (max-width: 600px) {
  :root { --header-h: 78px; }
  .wrap.nav { padding-top: 14px; padding-bottom: 14px; }
  .site.scrolled .wrap.nav { padding-top: 12px; padding-bottom: 12px; }

  .hero { min-height: 90vh; min-height: 90svh; }
  .hero h1 { font-size: clamp(2.9rem, 11.5vw, 4.2rem); line-height: 0.94; max-width: 12ch; }
  .hero-inner { padding-top: calc(var(--header-h) + clamp(22px, 5vh, 40px)); padding-bottom: clamp(34px, 6vh, 56px); }
  .hero-mark { right: -32vw; bottom: 0; height: 58vh; height: 58svh; --eagle-rest: 0.38; }
  .hero-lede { font-size: 1.04rem; max-width: 40ch; }
  .hero-meta { display: none; }
  .hero-actions { gap: 14px 22px; }

  /* practice accordion: full measure on small screens */
  .practice-summary { padding-left: 0; padding-right: 0; column-gap: 16px; }
  .practice-detail { padding-left: 0; padding-right: 0; }
  .practice-row:hover { background: transparent; }
  .practice-detail, .practice-list { min-width: 0; }
  .practice-detail > p { max-width: none; }
  .practice-list { grid-template-columns: 1fr; }
  .practice-cue { gap: 7px; }
  .practice-cue-label { font-size: 0.54rem; letter-spacing: 0.08em; }

  .ventures-grid { gap: clamp(2.2rem, 7vw, 3rem); }
  .sec-head { margin-bottom: clamp(1.8rem, 7vw, 2.6rem); }

  /* sticky CTA: engineered action bar, not a utility strip */
  .sticky-cta { border-top: 1px solid var(--line-onnavy); }
  .sticky-cta a { min-height: 60px; }
  .sticky-cta .call { box-shadow: inset -1px 0 0 rgba(232, 213, 163, 0.14); }
  .listing-facts { grid-template-columns: 1fr; }
  .listing-facts div + div { border-left: 0; border-top: 1px solid var(--line-navy); }
}

@media (max-width: 420px) {
  .award-plaque img { width: 200px; }
  .hero h1 { font-size: clamp(2.6rem, 12vw, 3.4rem); }
  .hero-actions .btn { flex: 0 0 auto; min-width: 190px; }
}
@media (max-width: 1023px) {
  .footer-base { padding-bottom: calc(max(22px, env(safe-area-inset-bottom)) + 64px); }
}
@media (max-width: 480px) {
  .demo-table th, .demo-table td { padding: 10px 8px; font-size: 0.85rem; }
  .demo-table thead th { letter-spacing: 0.06em; }
}

/* ---------- Mobile editorial polish: keep proof visible, tuck away secondary copy ---------- */
@media (max-width: 600px) {
  :root {
    --space-2: clamp(2.9rem, 12vw, 4.2rem);
    --space-3: clamp(3.65rem, 15vw, 5.2rem);
    --space-4: clamp(4.25rem, 17vw, 6rem);
    --gap-head: clamp(1.75rem, 7vw, 2.4rem);
  }

  body { line-height: 1.58; }
  p { text-wrap: pretty; }
  .lede { font-size: 1.02rem; line-height: 1.58; }
  .subhero { padding-top: calc(var(--header-h) + 34px); padding-bottom: 38px; }
  .subhero h1 { font-size: clamp(2.35rem, 10.2vw, 3.45rem); max-width: 16ch; -webkit-hyphens: manual; hyphens: manual; text-wrap: balance; }
  .subhero .lede { margin-top: 14px; max-width: 34ch; }
  .sec-head h2 { margin-top: 10px; }
  .sec-head .after { margin-top: 12px; }

  #who-we-help .route-grid,
  .capital-audience-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  #who-we-help .route-card,
  .capital-audience-grid .route-card {
    justify-content: center;
    min-height: 94px;
    padding: 14px;
  }
  #who-we-help .route-card .mono-label,
  #who-we-help .route-card p,
  #who-we-help .route-card .text-link,
  .capital-audience-grid .route-card .mono-label,
  .capital-audience-grid .route-card p,
  .capital-audience-grid .route-card .text-link {
    display: none;
  }
  #who-we-help .route-card h3,
  .capital-audience-grid .route-card h3 {
    font-family: var(--font-body);
    font-size: 0.96rem;
    line-height: 1.22;
    font-weight: 600;
    letter-spacing: 0;
    text-decoration: underline;
    text-decoration-color: var(--gold-deep);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
  }

  #current-opportunities .dossier-grid {
    gap: 1.15rem;
  }
  #current-opportunities .dossier-grid + .dossier-grid {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--line-onnavy);
  }
  #current-opportunities .dossier-media .frame {
    padding: 8px;
  }
  #current-opportunities .dossier-media .frame::after {
    inset: 8px;
  }
  #current-opportunities .dossier-media img {
    aspect-ratio: 16 / 9.2;
  }
  #current-opportunities .dossier-tag,
  .status-tag {
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    padding: 6px 10px;
  }
  #current-opportunities .dossier-copy,
  .venture-body p,
  .invest-inner > p,
  .listing-card-body .sum,
  .svc-line p,
  .cap-cell p,
  .process-step p,
  .insight-card p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  #current-opportunities .dossier-copy { -webkit-line-clamp: 3; line-clamp: 3; }
  .venture-body p,
  .invest-inner > p,
  .listing-card-body .sum,
  .svc-line p,
  .cap-cell p,
  .process-step p,
  .insight-card p {
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  #current-opportunities .hero-actions {
    margin-top: 18px !important;
  }

  .venture-card img { aspect-ratio: 16 / 8.8; }
  .venture-body { padding: 1.15rem; }
  .venture-body .mono-label { margin-bottom: 8px; font-size: 0.64rem; letter-spacing: 0.11em; }
  .venture-body p { margin-bottom: 10px; }
  .invest .chip { margin: 18px 0 22px; }

  .svc-line { padding: 15px 0; gap: 5px 15px; }
  .svc-line h3 { font-size: 1.24rem; }
  .svc-line .n { min-width: 20px; }
  .svc-intro p + p { margin-top: 0.85em; }
  .svc-disclosure,
  .focus-note,
  .off-market-note {
    padding: 13px 15px;
    font-size: 0.88rem;
    line-height: 1.55;
  }
  .cap-cell { padding: 14px 15px; }
  .use-list li { padding-top: 13px; padding-bottom: 13px; }
  #process .svc-intro p:nth-of-type(2),
  #lender-network .svc-intro .svc-disclosure {
    display: none;
  }

  .listing-card { border-color: rgba(18, 36, 27, 0.2); }
  .listing-card + .listing-card { margin-top: 1.1rem; }
  .listing-card figure img { aspect-ratio: 16 / 9.8; }
  .listing-card-body { padding: 1.15rem; gap: 8px; }
  .listing-card-body h3 a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .listing-card-body .addr { font-size: 0.9rem; }
  .listing-card .listing-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 4px 0 10px;
  }
  .listing-card .listing-facts div { padding: 10px 8px; }
  .listing-card .listing-facts div + div { border-top: 0; border-left: 1px solid var(--line-navy); }
  .listing-facts dt { font-size: 0.56rem; letter-spacing: 0.1em; }
  .listing-facts dd { font-size: 0.7rem; }
  .listing-card-body .row { gap: 8px 14px; }
  .listing-card-body .row .btn { width: 100%; min-height: 48px; }

  .ld-addr a,
  .bio-portrait-card > .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
  }
  .bio-portrait-card > .social-link {
    top: 8px;
    right: 8px;
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.92);
  }
  .bio-portrait-card > .social-link svg { width: 23px; height: 23px; }
  /* Let wide demographic/detail tables scroll horizontally instead of clipping off-screen */
  .detail-table, .demo-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .demo-table th,
  .demo-table td {
    padding: 9px 6px;
    font-size: 0.79rem;
  }
  .demo-table thead th {
    font-size: 0.58rem;
    letter-spacing: 0.04em;
  }

  .footer-grid {
    padding-top: 3rem;
    padding-bottom: 1.6rem;
    row-gap: 1.35rem;
  }
  .footer-brand p { margin-top: 12px; line-height: 1.55; }
  .footer-brand .lic { margin-top: 10px; }
  .footer .footer-h {
    min-height: 0;
    margin-bottom: 6px;
    font-size: 0.62rem;
    letter-spacing: 0.13em;
  }
  .footer .logo,
  .footer-col a { min-height: 44px; font-size: 0.82rem; }
  .footer-trec {
    padding-top: 18px;
    padding-bottom: 18px;
    font-size: 0.76rem;
  }
  .footer-trec a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
  }
  .footer-base { padding-top: 16px; }
}

/* Touch devices: don't let a tap fire-and-stick the pointer hover lift / image zoom */
@media (hover: none) {
  .route-card:hover, .venture-card:hover, .listing-card:hover, .invest-panel:hover, .download-card:hover { transform: none; }
  .venture-card:hover img, .listing-card:hover figure img, .g-item:hover img { transform: none; }
}

/* print: keep it readable */
@media print {
  .site, .mobile-menu, .sticky-cta, .hero-ticker { display: none; }
  body { background: #fff; color: #000; }
}

/* ============================================================
   PREMIUM MOTION SYSTEM
   One signature moment (What We Do deal stack); restraint elsewhere.
   Progressive enhancement only: every effect is gated by `.js` AND
   @media (prefers-reduced-motion: no-preference). The un-classed
   defaults are the final, readable states, so no-JS, reduced-motion,
   crawlers and full-page captures always see complete content.
   Animations use transform + opacity only.
   ============================================================ */

/* ---- Mobile: shorter reveal travel + tighter feel ---- */
@media (max-width: 767px) {
  :root { --reveal-y: 7px; --reveal-y-sm: 6px; }
}
/* ---- Mobile: calmer reveals — quicker settle + near-flat cascade ----
   On a long phone page ~35 reveals firing over 720ms with up to 280ms of cascade
   read as "a lot." Here each reveal family is sped up and its stagger collapsed to
   a 0-50ms whisper, so the page settles softly instead of parading in. Travel is
   the trimmed --reveal-y above. Overrides are LONGHANDS only (duration/delay), so
   the base keyframes, easing (--ease-out-quint), and `backwards` fill are preserved
   and every .in element still resolves to opacity:1. Motion-gated, so reduced
   motion stays fully static; base .reveal{opacity:1} is untouched (no-JS safe). */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  .js .reveal.in { animation-duration: 420ms; }
  .js .reveal-d1.in { animation-delay: 25ms; }
  .js .reveal-d2.in { animation-delay: 40ms; }
  .js .reveal-d3.in { animation-delay: 50ms; }

  .js .reveal-group.in > * { animation-duration: 380ms; }
  .js .reveal-group.in > *:nth-child(2) { animation-delay: 25ms; }
  .js .reveal-group.in > *:nth-child(3) { animation-delay: 40ms; }
  .js .reveal-group.in > *:nth-child(4) { animation-delay: 50ms; }
  .js .reveal-group.in > *:nth-child(5) { animation-delay: 50ms; }
  .js .reveal-group.in > *:nth-child(n+6) { animation-delay: 50ms; }

  /* Home Who We Help rows (same riseSm family) tightened to match. */
  .js .who-rows.in > .who-row { animation-duration: 380ms; }
  .js .who-rows.in > .who-row:nth-child(2) { animation-delay: 25ms; }
  .js .who-rows.in > .who-row:nth-child(3) { animation-delay: 40ms; }
  .js .who-rows.in > .who-row:nth-child(4) { animation-delay: 50ms; }
  .js .who-rows.in > .who-row:nth-child(5) { animation-delay: 50ms; }
  .js .who-rows.in > .who-row:nth-child(6) { animation-delay: 50ms; }
}

/* ---- LineReveal: line-by-line headline rise behind an overflow mask ---- */
.line-reveal { display: block; }
/* padding/negative-margin give the mask vertical breathing room so a tight
   line-height headline is never clipped at rest, while still hiding the rise. */
.line-reveal .lr-line { display: block; overflow: hidden; padding: 0.14em 0.04em; margin: -0.14em -0.04em; }
.line-reveal .lr-i { display: block; }
/* Rotating headline word: a restrained masked swap through the disciplines that
   settles on the anchor. The line sizes to its current word (max-content) so a
   long word like "process." isn't clipped sideways by the vertical mask. */
.lr-line--rotate { overflow: hidden; width: max-content; max-width: none; }
.word-rotate { display: inline-block; white-space: nowrap; }
@media (prefers-reduced-motion: no-preference) {
  .js .word-rotate { transition: transform 380ms var(--ease-premium-out), opacity 320ms var(--ease-premium-out); }
  .js .word-rotate.wr-out { transform: translateY(-120%); opacity: 0; }
  .js .word-rotate.wr-pre { transform: translateY(120%); opacity: 0; transition: none; }
}
/* (hero h1 animation lives in the hero choreography block above) */

/* ---- SectionRule: a hairline that draws in left-to-right (scaleX) ---- */
.section-rule { display: block; width: 100%; height: 1px; border: 0; background: var(--line-gold); transform-origin: left center; }
.section-rule.on-navy { background: var(--line-onnavy); }
.recognition .section-rule { margin: clamp(22px, 3vw, 30px) 0 0; max-width: 460px; }
.ventures .section-rule, #ventures .section-rule { margin: clamp(22px, 3vw, 30px) 0 0; max-width: 520px; }
@media (prefers-reduced-motion: no-preference) {
  .js .reveal.in .section-rule,
  .js .section-rule.reveal.in { animation: ruleDraw var(--dur-section) var(--ease-premium-out) backwards; animation-delay: 160ms; }
}

/* ---- Recognition: credential card slides + scales in like a filed record ---- */
@media (prefers-reduced-motion: no-preference) {
  .js .award-plaque.reveal.in { animation: credentialIn var(--dur-reveal) var(--ease-premium-out) backwards; }
  @keyframes credentialIn { from { opacity: 0; transform: translateX(28px) scale(0.99); } to { opacity: 1; transform: none; } }
}

/* ---- Opportunities: framed image reveals (opacity + slight scale) + restrained hover zoom ----
   The clip lives on .frame-clip (around the image only), so the "FOR LEASE"
   tag that sits above the frame at top:-12px is never cut off. */
.dossier-media .frame-clip { display: block; overflow: hidden; }
.dossier-media .frame-clip img { transform-origin: center; }
@media (prefers-reduced-motion: no-preference) {
  .js .dossier-media.reveal.in .frame-clip img { animation: mediaReveal 700ms var(--ease-premium-out) backwards; animation-delay: 90ms; }
  @keyframes mediaReveal { from { opacity: 0; transform: scale(1.015); } to { opacity: 1; transform: scale(1); } }
}
@media (hover: hover) and (min-width: 1024px) {
  .dossier-media .frame-clip img { transition: transform var(--dur-3) var(--ease-out-quart); }
  .dossier-grid:hover .dossier-media .frame-clip img { transform: scale(1.02); }
}

/* ============================================================
   WHAT WE DO — Institutional Deal Stack (the one signature moment)
   Base = a readable vertical list of solid deal cards (mobile / tablet /
   no-JS / reduced-motion: CardStackLite).
   Desktop + motion upgrades to a native CSS sticky pile: each card is
   position:sticky with a staggered top, so the browser stacks them as you
   scroll. No scroll-jacking, no transforms, no opacity tricks. A tiny scroll
   handler only highlights the active step-index item.
   ============================================================ */

.deal-stack { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(16px, 2.4vw, 26px); }
.deal-card {
  position: relative; margin: 0; min-width: 0;
  display: flex; align-items: center; /* centers content when cards are equalized to one height */
  background: linear-gradient(168deg, var(--surface-card) 0%, var(--surface-card-2) 100%);
  border: 1px solid var(--line-navy);
  border-radius: var(--radius-md);
  box-shadow: var(--elev-1);
}
.deal-card::before {
  content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 2px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-deep) 26%, transparent 70%);
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.deal-card__inner { padding: clamp(1.5rem, 3vw, 2.5rem); display: flex; flex-direction: column; align-items: flex-start; min-width: 0; width: 100%; }
.deal-card__num { font-family: var(--font-mono); font-size: 0.8rem; font-weight: 500; letter-spacing: 0.1em; color: var(--gold-text); }
.deal-card__title { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1; letter-spacing: -0.012em; color: var(--fg-dark); margin: 10px 0 0; }
.deal-card__scope { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--stone); margin: 13px 0 0; }
.deal-card__desc { margin: 14px 0 0; max-width: 54ch; color: var(--fg-dark-muted); line-height: 1.66; font-size: 1rem; }
.deal-card__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 6px 24px; margin: 18px 0 0; padding: 0; list-style: none; width: 100%; min-width: 0; max-width: 560px; }
.deal-card__desc, .deal-card__scope, .deal-card__num, .deal-card__note, .deal-card__title { max-width: 100%; }
@media (max-width: 767px) { .deal-card__list { grid-template-columns: 1fr; } }
.deal-card__list li { position: relative; padding: 6px 0 6px 20px; font-size: 0.98rem; color: var(--fg-dark); }
.deal-card__list li::before { content: ""; position: absolute; left: 0; top: 14px; width: 9px; height: 1.5px; background: var(--gold-deep); }
.deal-card__note { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0.015em; text-transform: none; color: var(--gold-text); margin: 16px 0 0; }
.deal-card__link { margin: 22px 0 0; }
.wwd-index { display: none; }
.deal-spacer { display: none; }

/* ---- Native CSS sticky pile (cross-browser, no scroll-jacking; desktop AND mobile) ----
   Each card is position:sticky with a staggered top, so the browser stacks them
   natively as you scroll: the current card sits at the top of the pile, previous
   cards stay beneath it with their top edge peeking. Cards are solid and their
   content is always visible. The fixed header is cleared by --wwd-pin-top.
   Disabled under reduced motion (plain vertical list). */
@media (prefers-reduced-motion: no-preference) and (min-height: 640px) {
  .wwd .deal-stack { display: block; }
  /* a real spacer (counts as content, unlike padding) gives the last card room
     to scroll to the top of the pile and hold the full stack before release */
  .wwd .deal-spacer { display: block; height: clamp(130px, 24vh, 320px); }
  .wwd .deal-card {
    position: sticky;
    top: calc(var(--wwd-pin-top) + var(--i, 0) * 14px);
    min-height: clamp(320px, 56vh, 500px);
    margin-bottom: clamp(36px, 7vh, 120px);
    box-shadow: 0 24px 54px -34px rgba(12, 17, 31, 0.5);
    /* static layer promotion so the soft shadow rasterizes once instead of
       re-rasterizing at sub-pixel offsets every scroll frame (Retina shimmer).
       translateZ(0) over will-change: an intentional, permanent layer rather
       than a "change is coming" hint the browser must keep speculatively warm. */
    transform: translateZ(0);
  }
  .wwd .deal-card:last-child { margin-bottom: 0; }
  /* a focused card comes to the front so its focus ring is never hidden behind a stacked card (keyboard a11y) */
  .wwd .deal-card:focus-within { z-index: 5; }
}

/* Step index + animated active-card cue only on desktop (the sticky intro column
   has room for the index, and animating box-shadow is kept off mobile GPUs to
   avoid paint-during-scroll). On mobile the pile is pure CSS with a static shadow. */
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  .wwd .deal-card { transition: box-shadow var(--dur-3) var(--ease-premium-out); }
  .wwd .deal-card.is-active { box-shadow: 0 34px 72px -38px rgba(12, 17, 31, 0.62); }
  /* Deck step index in the sticky column: makes the four-card scroll obvious */
  .wwd-index {
    display: block; list-style: none; margin: clamp(28px, 3.4vw, 44px) 0 0; padding: 0;
    border-left: 1px solid var(--line-navy);
  }
  .wwd-index li {
    position: relative; padding: 11px 0 11px 22px;
    font-family: var(--font-mono); font-size: 0.85rem; letter-spacing: 0.02em;
    color: var(--fg-dark-muted); opacity: 0.5;
    transition: opacity var(--dur-3) var(--ease-premium-out), color var(--dur-3) var(--ease-premium-out);
  }
  .wwd-index li::before {
    content: ""; position: absolute; left: -1px; top: 8px; bottom: 8px; width: 2px;
    background: var(--gold); transform: scaleY(0); transform-origin: center;
    transition: transform var(--dur-3) var(--ease-premium-out);
  }
  .wwd-index li.is-current { opacity: 1; color: var(--navy); }
  .wwd-index li.is-current::before { transform: scaleY(1); }
  .wwd-index__n { color: var(--gold-text); margin-right: 11px; }
  .wwd-index li.is-current .wwd-index__n { color: var(--gold-label); }
}

/* ===== Icon system: thin-line glyphs from the client pack (currentColor fill) ===== */
.ico { display: inline-block; vertical-align: middle; width: 1.5em; height: 1.5em; color: var(--navy); flex: none; transition: color var(--dur-hover) var(--ease-premium-out); }
.ico path, .ico rect, .ico circle, .ico polygon, .ico line, .ico ellipse { fill: currentColor; }
/* Discipline marks on What We Do cards (home + services) */
.deal-card__icon { display: block; line-height: 0; margin-bottom: 14px; }
.deal-card__icon .ico { width: 44px; height: 44px; }
/* Persona marks on the Who We Help rows (home) */
.who-row__head { display: flex; align-items: center; gap: 16px; min-width: 0; }
.who-row__icon { display: inline-flex; line-height: 0; }
.who-row__icon .ico { width: 30px; height: 30px; }
.who-row:hover .who-row__icon .ico, .who-row:focus-visible .who-row__icon .ico { color: var(--gold-deep); }
/* Source marks on the lender-network cells (process) */
.cap-cell__icon { display: block; line-height: 0; width: 32px; height: 32px; margin-bottom: 12px; }
/* Leading marks on route cards (services + who we help) */
.route-card__icon { display: block; line-height: 0; width: 34px; height: 34px; margin-bottom: 14px; }
.route-card:hover .route-card__icon, .route-card:focus-visible .route-card__icon { color: var(--gold-deep); }

/* Public-site refinement: the same Eagle Nest palette and type, with quieter
   surfaces and a shared, softly rounded shape for controls and framed media. */
.link-arrow { width: 18px; height: 18px; display: inline-block; vertical-align: middle; flex: none; }
.btn { border-radius: var(--radius-md); font-weight: 500; }
.btn-gold { background: var(--gold); box-shadow: none; }
.btn-gold:hover { background: var(--gold-warm); box-shadow: none; }
.btn-gold::after, .btn-reveal__fill { display: none; }
.btn-reveal__chev { background: none; border-left: 0; }
.btn-reveal:hover .btn-reveal__t { opacity: 1; transform: none; }
.btn-reveal:hover .btn-reveal__chev { color: inherit; transform: translateX(2px); }
.text-link {
  border-bottom: 0; font-weight: 500;
  text-decoration: underline; text-decoration-color: var(--line-gold-strong);
  text-decoration-thickness: 1px; text-underline-offset: 6px;
}
.text-link:hover { text-decoration-color: currentColor; }
.desktop-nav a { font-size: 0.95rem; letter-spacing: 0; text-transform: none; }
.nav-phone, .mobile-menu-phone, .contact-card .ways a { font-family: var(--font-body); letter-spacing: 0; }
.nav-cta { border-radius: var(--radius-sm); }
.nav-toggle, .menu-close { border-color: transparent; border-radius: var(--radius-sm); }
.mobile-menu-link { border-color: var(--line-onnavy); }
.mobile-menu-link i { display: none; }
.hero h1 { line-height: 1.02; letter-spacing: -0.015em; width: 12.5ch; max-width: 100%; }
.hero h1 .lr-line { padding-inline: 0; margin-inline: 0; }
.hero-lede { max-width: 51ch; }
.hero-line { font-weight: 400; }
.hero-lines { border-color: var(--line-onnavy); gap: 0 30px; max-width: 560px; }
.hero-award {
  border: 0; padding: 14px 0; background: none;
  -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none;
}
.hero-award:hover { transform: none; }
.hero-award span { font-family: var(--font-body); font-size: 0.84rem; letter-spacing: 0; text-transform: none; }
.hero-ticker a { font-size: 0.9rem; letter-spacing: 0; gap: 8px 18px; }
.hero-ticker .t-rule { display: none; }
.hero-ticker .t-strong { font-weight: 500; }
.hero-ticker .t-arrow { color: var(--gold-text); }
.sec-head h2 { margin-top: 0; }
.section-title { font-family: var(--font-display); font-size: 1.65rem; line-height: 1.2; color: var(--fg-light); }
.bio-role { font-size: 1rem; color: var(--gold-text); margin: 12px 0 0; }
.dark .bio-role { color: var(--gold-warm); }
.deco-card::before, .deco-card::after, .deco-card .tick::before, .deco-card .tick::after,
.deal-card::before, .js .opp-stage__frame::before, .dossier-media .frame::after { display: none; }
.award-plaque {
  border: 0; outline: none; border-radius: var(--radius-lg);
  background: var(--paper); box-shadow: 0 12px 36px -24px rgba(18, 36, 27, 0.16);
}
.award-plaque .mono-label { display: none; }
.deal-card { border: 0; background: var(--surface-card); border-radius: var(--radius-lg); }
.deal-card__title { margin-top: 0; line-height: 1.1; }
.deal-card__scope, .deal-card__note { font-size: 0.88rem; line-height: 1.6; }
.deal-card__icon .ico { width: 36px; height: 36px; }
.wwd-index li { font-family: var(--font-body); font-size: 0.95rem; opacity: 0.8; }
.dossier-media .frame { border: 0; padding: 0; border-radius: var(--radius-lg); box-shadow: none; background: none; }
.frame-clip, .dossier-media img, .js .opp-stage__frame { border-radius: var(--radius-lg); }
.dossier-tag { position: static; display: inline-block; background: none; color: var(--gold-warm); padding: 0 0 12px; font-size: 0.9rem; }
.venture-card { border: 0; background: transparent; }
.venture-card:hover { transform: none; box-shadow: none; }
.venture-card figure { border-radius: var(--radius-lg); }
.venture-body { padding-inline: 0; }
.listing-card { border: 0; border-radius: var(--radius-lg); box-shadow: 0 8px 24px -20px rgba(18, 36, 27, 0.25); }
.listing-card h2, .listing-card h3 { line-height: 1.1; }
.listing-card .listing-img { overflow: hidden; }
.status-tag { border-radius: var(--radius-sm); font-size: 0.84rem; letter-spacing: 0; }
.listing-facts { border: 0; border-radius: var(--radius-sm); }
.listing-facts dt { font-size: 0.78rem; letter-spacing: 0; }
.listing-facts dd { font-family: var(--font-body); font-size: 0.85rem; }
.filter-chip { border-color: var(--line-navy); border-radius: var(--radius-sm); font-size: 0.95rem; padding: 10px 20px; }
.ld-tag { border-radius: var(--radius-sm); font-size: 0.86rem; letter-spacing: 0; }
.ld-tag.line { border: 0; padding-inline: 0; }
.insight-card, .route-card, .process-step, .invest-panel, .cap-cell,
.contact-card, .direct-card, .download-card, .location-card, .off-market-note {
  border-radius: var(--radius-md);
}
.route-card, .insight-card, .process-step { border-color: rgba(18, 36, 27, 0.08); }
.route-card:hover, .route-card:focus-within { box-shadow: none; }
.route-card .mono-label { display: none; }
.g-item, .photo-frame, .bio-mobile-portrait img { border-radius: var(--radius-md); }
.g-item.lead-cinema__button { border-radius: 0; }
.spec-rail { border-radius: var(--radius-md); overflow: hidden; }
.detail-table { border: 0; }
.detail-table th { font-size: 0.9rem; }
.invest .chip { border: 0; border-radius: 0; padding: 0; font-size: 0.92rem; color: var(--gold-warm); }
.footer-linkedin { border: 0; padding-left: 0; }
.footer-h { font-size: 1rem; font-weight: 500; }
.footer .footer-h { font-size: 0.9rem; letter-spacing: 0; color: var(--gold-warm); }
.footer-legal a, .footer-bottom { letter-spacing: 0; }
.summary-stat .l { font-family: var(--font-body); font-size: 0.88rem; letter-spacing: 0; text-transform: none; }
.field input, .field select, .field textarea { border-radius: var(--radius-sm); }
.sr-hero-media, .sr-siteplan, .sr-pad, .sr-dev-photo, .sr-cta .pcard { border-radius: var(--radius-md); }
.sr-hero-media, .sr-dev-photo { overflow: hidden; }
.form-error { margin: 8px 0 0; font-size: 0.88rem; color: var(--error); }
.invest-form .form-error { color: var(--gold-warm); }
.section-note { display: block; margin: 10px 0 16px; font-size: 0.9rem; color: var(--fg-dark-muted); }
.dark .section-note { color: var(--fg-light-muted); }

/* Inner pages follow the same quiet, open treatment as the main pages. */
.fact-card, .focus-note { border: 0; border-radius: var(--radius-md); box-shadow: none; }
.landing-aside .fact-card { background: var(--parchment-warm); }
.landing-aside .focus-note { margin-top: 4px; padding: 12px 0 0; background: transparent; }
.mini-stat-panel { border-radius: var(--radius-md); overflow: hidden; box-shadow: none; }
.cap-grid { border-radius: var(--radius-md); overflow: hidden; }
.cap-grid .cap-cell { border-radius: 0; }
.off-market-note { border: 0; background: var(--parchment-warm); }
.bio-portrait-card { border: 0; border-radius: var(--radius-lg); background: var(--surface-card); box-shadow: none; padding: 20px; gap: 22px; }
.bio-portrait img { border: 0; border-radius: var(--radius-md); filter: none; }
.bio-aside { gap: 20px; }
.bio-aside .bio-id b { font-size: clamp(1.45rem, 1.8vw, 1.8rem); line-height: 1.14; }
.bio-aside .bio-id-role { font-size: 0.9rem; color: var(--gold-text); margin-top: 9px; }
.bio-aside .bio-contact-links { display: grid; justify-items: start; gap: 2px; padding-top: 16px; }
.bio-aside .bio-email { min-height: 44px; display: inline-flex; align-items: center; font-size: 0.9rem; font-weight: 400; }
.bio-social { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 0.88rem; text-decoration: none; color: var(--navy); }
.bio-social svg { width: 18px; height: 18px; fill: currentColor; }
.bio-social:hover { text-decoration: underline; text-underline-offset: 4px; }
.bio-aside .fact-card { background: transparent; border: 0; border-top: 1px solid var(--line-navy); border-radius: 0; padding: 22px 0 0; }
.bio-aside .fact-card .mono-label { font-size: 0.9rem; margin-bottom: 8px; }
.bio-aside .fact-card b { font-size: 1.4rem; line-height: 1.25; }
.bio-aside .fact-card img { max-width: 180px; }
.leader-profile { background: var(--navy); }
.bio-portrait-card > .social-link { min-width: 44px; min-height: 44px; box-shadow: none; background: transparent; }
@media (max-width: 1023px) {
  .bio-mobile-portrait { width: clamp(108px, 30vw, 132px); }
  .bio-mobile-portrait img { border: 0; border-radius: var(--radius-lg); box-shadow: none; filter: none; }
  .bio-mobile-head h2 { line-height: 1.12; }
  .bio-mobile-email { display: inline-flex; align-items: center; min-height: 44px; font-weight: 400; }
  .bio-mobile-linkedin { width: 44px; height: 44px; flex-basis: 44px; border: 0; color: var(--navy); background: transparent; }
  .bio-mobile-linkedin svg { width: 22px; height: 22px; }
}
.use-list { border: 0; background: transparent; gap: 0 24px; }
.use-list li { background: transparent; padding: 15px 0 15px 18px; border-bottom: 1px solid var(--line-navy); }
.use-list li::before { left: 0; top: 27px; }
.process-step { min-height: 0; padding: 24px 0 0; border: 0; border-top: 1px solid var(--line-navy); border-radius: 0; background: transparent; box-shadow: none; }
.process-step::before { display: none; }
.process-step span { font-family: var(--font-body); font-size: 0.88rem; letter-spacing: 0; margin-bottom: 18px; }
.route-grid.compact { grid-template-columns: 1fr; gap: 0; }
.route-grid.compact .route-card { min-height: 0; padding: 22px 0; border: 0; border-bottom: 1px solid var(--line-navy); border-radius: 0; background: transparent; box-shadow: none; }
.route-grid.compact .route-card:first-child { border-top: 1px solid var(--line-navy); }
.route-grid.compact .route-card:hover { transform: none; }
.route-grid.compact .route-card h3 { font-size: 1.5rem; }
.route-grid.compact .route-card .text-link { padding-top: 12px; }
.route-grid.compact .route-card__icon { display: none; }
.page-back { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; margin: -14px 0 18px; color: var(--fg-light-muted); font-size: 0.92rem; text-decoration: none; }
.page-back svg { width: 20px; height: 20px; }
.page-back:hover { color: var(--gold-warm); text-decoration: underline; text-underline-offset: 5px; }
.filterbar { margin-bottom: 18px; }
.filter-status { margin: 0 0 28px; color: var(--fg-dark-muted); font-size: 0.9rem; }
.filter-status:empty { display: none; }
.form-help { font-size: 0.88rem; line-height: 1.6; color: var(--fg-dark-muted); margin-bottom: 20px; }
.form-privacy { margin: 14px 0 0; }
.form-help a { color: var(--navy); text-underline-offset: 3px; }
.contact-context { margin: 0 0 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line-navy); color: var(--navy); font-weight: 500; overflow-wrap: anywhere; }
.contact-context[hidden] { display: none; }
.invest-form input[type="email"]::placeholder { color: rgba(245, 240, 230, 0.68); }
.invest-form__note { color: rgba(245, 240, 230, 0.72); }

/* Keep the full photo separate from captions and touch controls. */
.lightbox { padding: 80px 80px 118px; }
.lightbox img { max-height: calc(100dvh - 210px); border: 0; border-radius: var(--radius-sm); object-fit: contain; }
.lightbox.is-loading img, .lightbox.has-error img { visibility: hidden; }
.lightbox-info { position: absolute; left: 80px; right: 80px; bottom: max(26px, env(safe-area-inset-bottom)); display: grid; justify-items: center; gap: 8px; }
.lightbox-cap { position: static; margin: 0; max-width: 70ch; font-size: 0.92rem; line-height: 1.5; }
.lightbox-count { font-size: 0.8rem; color: var(--gold-warm); font-variant-numeric: tabular-nums; }
.lightbox-original { display: inline-flex; align-items: center; min-height: 32px; color: var(--gold-warm); font-size: 0.86rem; text-underline-offset: 4px; }
.lightbox-status { position: absolute; left: 80px; right: 80px; top: 42%; text-align: center; color: var(--fg-light-muted); }
.lb-btn svg { width: 24px; height: 24px; }
.lb-btn[hidden] { display: none; }
@media (max-width: 600px) {
  .form-grid { gap: 16px; }
  .form-grid .field label { font-size: 0.88rem; margin-bottom: 6px; }
  .form-grid .field input, .form-grid .field select, .form-grid .field textarea { min-height: 48px; padding: 11px 14px; font-size: 16px; }
  .form-grid .field textarea { min-height: 128px; height: 128px; }
  .form-grid .btn { min-height: 48px; }
  .contact-grid { gap: 32px; }
  .lightbox { padding: 76px 16px 190px; }
  .lightbox img { max-height: calc(100dvh - 280px); }
  .lightbox-info { left: 70px; right: 70px; bottom: max(24px, env(safe-area-inset-bottom)); min-height: 120px; align-content: center; }
  .lightbox-cap { font-size: 0.86rem; }
  .lightbox-status { left: 30px; right: 30px; }
  .lb-prev, .lb-next { top: auto; bottom: max(70px, env(safe-area-inset-bottom)); transform: none; width: 44px; height: 48px; }
  .lb-close { width: 44px; height: 44px; }
}
/* The page and decorative pattern paint immediately, without a fade from blank. */
.js body, .js .hero-pattern { animation: none; }
@media (max-width: 1023px) {
  .js .hero h1 .lr-i, .js .hero-lede, .js .hero-actions, .js .hero-lines,
  .js .hero-lines .hero-line { animation: none; }
}
.hero-poster { display: none; }
@media (max-width: 1023px) {
  .hero-video { display: none; }
  .hero-poster { display: block; position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.68) contrast(1.08) brightness(0.4); }
}

@media (max-width: 600px) {
  .hero h1 { line-height: 1.04; }
  .hero-actions { gap: 12px 22px; }
  .hero-ticker a { font-size: 0.8rem; line-height: 1.5; padding-block: 14px; }
  .hero-ticker .t-strong { flex-basis: 100%; }
  .hero-ticker .t-arrow { display: none; }
  .summary-stat .l { font-size: 0.78rem; }
  #current-opportunities .dossier-tag { font-size: 0.84rem; letter-spacing: 0; padding: 0 0 12px; }
  #current-opportunities .dossier-media .frame { padding: 0; }
  .venture-body .mono-label { font-size: 0.8rem; letter-spacing: 0; }
  .bio-mobile-head h2 { white-space: normal; text-wrap: balance; line-height: 1.08; }
  .bio-mobile-head .bio-role { order: 2; }
  .field input, .field select, .field textarea { min-height: 48px; }
}

/* ============================================================
   Brand refresh, September 2026 (Claude + Codex agreed spec)
   Light touch: type and color only, structure unchanged.
   - Inter everywhere outside the logo. The logo keeps its own lettering.
   - Navy as bookends: hero at the top, contact band and footer at the bottom.
   - No decorative patterns, no section numbers, no uppercase mono labels, no line icons.
   ============================================================ */
:root {
  --font-display: "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-script: "Inter", "Helvetica Neue", Arial, sans-serif;
  --track-label: 0;
}

/* The logo is unchanged: Cormorant capitals with the spaced subtitle, exactly as on shirts and signatures */
.logo-name b { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.14em; font-size: 1.28rem; }
.logo-name span { font-family: var(--font-body); font-weight: 600; letter-spacing: 0.28em; font-size: 0.56rem; }
.footer .logo-name b { font-size: 1.2rem; }

/* Headlines: Inter medium, slightly tight, never light-weight */
h1, h2, h3, .h-xl, .h-lg, .h-md, .display { font-weight: 500; letter-spacing: -0.02em; }
h1 em, h2 em, h3 em { font-style: normal; }

/* Labels read as ordinary text: sentence case, normal spacing, no mono */
.hero-line i, .practice-num, .process-step span, .svc-head .num, .svc-line .n, .cm-sequence__rail li,
.cm-step .n, .listing-facts dd, .contact-card .ways a, .download-card .doc, .tr-firm-head .years,
.deal-card__num, .wwd-index li, .spec-cell .v, .mobile-menu-link i, .nav-phone, .mobile-menu-phone {
  letter-spacing: 0; font-variant-numeric: tabular-nums;
}
[class*="eyebrow"], [class*="kicker"] { text-transform: none; letter-spacing: 0; }

/* No section numbers */
.svc-head .num, .svc-line .n, .practice-num, .deal-card__num { display: none; }

/* No decorative line icons on the audience rows */
.who-row__icon { display: none; }

/* No deco pattern fields */
.mobile-menu::before, .subhero::after { background-image: none !important; }
.hero-pattern { display: none !important; }
[style*="pattern-sunray"], [style*="pattern-cartouche"] { background-image: none !important; }

/* Signature script retired: the sign-off reads as a normal name */
.signature-block .sig { font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 500; letter-spacing: -0.01em; }
.invest::before { display: none; }

/* Execution record on a light band: navy figures, quiet labels, no glow */
.proof-band.warm { border-color: var(--line-navy); }
.proof-band.warm .section-title { color: var(--navy); }
.proof-band.warm .proof-band-head p:last-child { color: var(--fg-dark-muted); }
.proof-band.warm .summary-band { background: transparent; border-color: transparent; box-shadow: none; }
.proof-band.warm .execution-record::before, .proof-band.warm .execution-record::after { display: none; }
.proof-band.warm .summary-stat .n { color: var(--navy); font-weight: 500; letter-spacing: -0.02em; }
.proof-band.warm .summary-stat .u { color: var(--fg-dark-muted); }
.proof-band.warm .summary-stat .l { color: var(--fg-dark-muted); }
.proof-band.warm .summary-stat, .proof-band.warm .summary-stat:nth-child(n) { border-color: var(--line-navy) !important; }
@media (min-width: 960px) {
  .proof-band.warm .execution-record .summary-stat .n { font-size: clamp(2rem, 3.1vw, 3.1rem); }
  .proof-band.warm .execution-record .summary-stat:nth-child(1) .n,
  .proof-band.warm .execution-record .summary-stat:nth-child(5) .n { font-size: clamp(2.3rem, 3.6vw, 3.6rem); }
}
.serif-line { font-style: normal; font-weight: 500; letter-spacing: -0.02em; }

/* Inter sets larger than Cormorant at the same size: bring headlines down a notch */
.h-xl { font-size: clamp(2.5rem, 6.2vw, 5.2rem); line-height: 1; }
.h-lg { font-size: clamp(2rem, 4.1vw, 3.2rem); line-height: 1.08; }
.h-md { font-size: clamp(1.4rem, 2.4vw, 1.95rem); line-height: 1.1; }
/* No decorative line icons on the service cards */
.deal-card__icon { display: none; }
.hero h1 { font-size: clamp(2.8rem, 5.4vw, 5.2rem); line-height: 1.02; }
/* No decorative line icons on route cards or discipline markers */
.route-card__icon, .ico--disc, .ico--who { display: none !important; }

/* Opportunities list: breathing room between listing cards at every width (was mobile-only) */
.listing-card + .listing-card { margin-top: clamp(1.1rem, 2vw, 1.75rem); }
.listing-card figure .card-cap { position: absolute; left: 12px; bottom: 12px; z-index: 2; padding: 4px 9px; background: rgba(12, 26, 19, 0.72); color: rgba(242, 239, 231, 0.9); font-size: 0.74rem; line-height: 1.3; border-radius: 4px; }

/* ======================================================================
   Design elevation, October 2026
   One system with the /sign portal: a navy brand band, a
   white sheet rising over it, and space and hairlines doing the grouping
   instead of boxes. Gold stays in the crest. Inter outside the logo.
   New components carry an e- prefix so pages that are not converted yet
   keep their earlier styles until their batch.
   ====================================================================== */
:root {
  --e-navy: #12241B;
  --e-navy-2: #1B3226;
  --e-navy-deep: #12241B;
  --e-ink: #12241B;
  --e-text: #262C3E;
  --e-muted: #5A6072;
  --e-paper: #FFFFFF;
  --e-page: #F5F2EC;
  --e-field: #F6F4EE;
  --e-field-hover: #F1EEE6;
  --e-hair: rgba(18, 36, 27, 0.11);
  --e-hair-2: rgba(18, 36, 27, 0.2);
  --e-on: #F4EFE3;
  --e-on-muted: rgba(244, 239, 227, 0.72);
  --e-on-hair: rgba(244, 239, 227, 0.16);
  --e-gold: #C9A84C;
  --e-gold-warm: #E8D5A3;
  --e-gold-soft: rgba(201, 168, 76, 0.16);
  --e-r-field: 12px;
  --e-r-btn: 14px;
  --e-r-media: 18px;
  --e-r-sheet: clamp(22px, 2.6vw, 34px);
  --e-sec: clamp(4.5rem, 2.6rem + 5.4vw, 8.25rem);
  --e-gap: clamp(1.5rem, 0.9rem + 2vw, 3rem);
  --e-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --e-shadow-btn: 0 1px 2px rgba(12, 26, 19, 0.14), 0 10px 22px -12px rgba(12, 26, 19, 0.55);
  --header-h: 80px;
  --sticky-top: calc(var(--header-h) + 16px);
}
@media (max-width: 1023px) { :root { --header-h: 68px; } }

/* ---------- Shell: header ---------- */
.site {
  background: var(--e-navy);
  box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  transition: box-shadow 280ms ease-out;
}
.site.scrolled { background: var(--e-navy); box-shadow: 0 1px 0 var(--e-on-hair), 0 16px 32px -24px rgba(6, 14, 10, 0.7); }
.site .wrap.nav, .site.scrolled .wrap.nav { padding-top: 0; padding-bottom: 0; min-height: var(--header-h); max-width: var(--max-wide); }
.site .logo { gap: 0; }
.logo-lockup { display: block; height: 50px; width: auto; }
@media (max-width: 1023px) { .logo-lockup { height: 42px; } }
@media (min-width: 1024px) {
  .desktop-nav { gap: 4px; }
  .desktop-nav a { color: var(--e-on-muted); font-size: 0.95rem; font-weight: 500; padding: 6px 14px; }
  .desktop-nav a::after { left: 14px; right: 14px; bottom: 7px; background: var(--e-on); }
  .desktop-nav a:hover, .desktop-nav a[aria-current="page"] { color: var(--e-on); }
  .nav-right { gap: 22px; }
  .nav-phone { color: var(--e-on-muted); font-size: 0.95rem; }
  .nav-phone:hover { color: var(--e-on); }
  .nav-cta {
    border: 1px solid rgba(244, 239, 227, 0.34); border-radius: var(--e-r-btn);
    color: var(--e-on); font-weight: 500; font-size: 0.95rem; padding: 10px 20px;
  }
  .nav-cta:hover, .nav-cta[aria-current="page"] { background: var(--e-on); border-color: var(--e-on); color: var(--e-navy); }
}
.nav-toggle { border: 0; border-radius: var(--e-r-btn); width: 48px; height: 48px; margin-right: -10px; }
.nav-toggle span { background: var(--e-on); width: 22px; }
.nav-toggle:hover { background: rgba(244, 239, 227, 0.06); }
.mobile-menu { background: var(--e-navy); }
.mobile-menu-header { min-height: var(--header-h); padding: 0; }
.menu-close { border: 0; margin-right: -10px; }
.menu-close span { background: var(--e-on); }
.mobile-menu-link { font-family: var(--font-body); font-size: clamp(1.75rem, 7vw, 2.125rem); letter-spacing: -0.02em; border-color: var(--e-on-hair); color: var(--e-on); }
.mobile-menu-link:hover, .mobile-menu-link[aria-current="page"] { color: var(--e-gold-warm); }
.mobile-menu-phone { border-color: var(--e-on-hair); border-radius: var(--e-r-btn); color: var(--e-on); font-size: 1.0625rem; letter-spacing: 0; }
.mobile-menu-footer .btn-gold { background: var(--e-on); color: var(--e-navy); border-radius: var(--e-r-btn); }

/* No-JS: phones and tablets keep a working navigation row */
@media (max-width: 1023px) {
  html:not(.js) .nav-toggle { display: none; }
  html:not(.js) .site { position: relative; }
  html:not(.js) .site .wrap.nav { flex-wrap: wrap; padding-block: 12px; }
  html:not(.js) .desktop-nav { display: flex; width: 100%; gap: 6px 18px; flex-wrap: wrap; }
  html:not(.js) .desktop-nav a { color: var(--e-on); min-height: 44px; display: inline-flex; align-items: center; text-decoration: none; font-weight: 500; }
  html:not(.js) .e-hero, html:not(.js) .e-band, html:not(.js) .e-home-band { padding-top: clamp(2.5rem, 7vw, 4rem); }
}

/* ---------- Shared type, links and actions ---------- */
.e-h1, .e-h2, .e-h3 { font-family: var(--font-body); font-weight: 500; color: var(--e-ink); text-wrap: balance; }
.e-h1 { font-size: clamp(2.6rem, 1.5rem + 3.9vw, 4.6rem); line-height: 1.02; letter-spacing: -0.034em; }
.e-h2 { font-size: clamp(2rem, 1.35rem + 2.3vw, 3.25rem); line-height: 1.06; letter-spacing: -0.03em; }
.e-h3 { font-size: clamp(1.375rem, 1.17rem + 0.75vw, 1.875rem); line-height: 1.15; letter-spacing: -0.02em; }
.e-h4 { font-family: var(--font-body); font-weight: 500; font-size: 1.25rem; line-height: 1.25; letter-spacing: -0.012em; color: var(--e-ink); margin: 0; }
.e-lede { font-size: clamp(1.125rem, 1.03rem + 0.35vw, 1.3125rem); line-height: 1.55; color: var(--e-muted); max-width: 54ch; margin: 1.1rem 0 0; text-wrap: pretty; }
.e-meta { display: block; font-size: 0.9375rem; line-height: 1.5; color: var(--e-muted); margin: 0; }
.e-caption { display: block; margin-top: 10px; font-size: 0.875rem; color: var(--e-muted); }
.e-prose p { font-size: 1.0625rem; line-height: 1.7; color: var(--e-text); max-width: 64ch; }
.e-prose p:first-child { font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem); line-height: 1.6; color: var(--e-ink); }
.e-prose p:last-child { margin-bottom: 0; }

.e-link {
  display: inline-flex; align-items: center; min-height: 44px; gap: 8px;
  color: var(--e-ink); font-weight: 500; text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: 6px;
  text-decoration-color: var(--e-hair-2);
  transition: text-decoration-color 200ms ease-out, color 200ms ease-out;
}
.e-link:hover { text-decoration-color: currentColor; }
.e-on .e-link, .e-link--on { color: var(--e-on); text-decoration-color: rgba(244, 239, 227, 0.4); }
.e-on .e-link:hover, .e-link--on:hover { text-decoration-color: var(--e-on); }

/* Older pages: links read as underlined text, no arrow glyphs */
.text-link .arrow, .text-link .link-arrow { display: none; }
.text-link { text-decoration-color: var(--e-hair-2); text-underline-offset: 6px; }
.dark .text-link, .darker .text-link, .subhero .text-link, .cta-band .text-link { text-decoration-color: rgba(244, 239, 227, 0.4); }

.e-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 24px;
  font-family: var(--font-body); font-weight: 500; font-size: 1rem; line-height: 1.2; letter-spacing: 0;
  border: 0; border-radius: var(--e-r-btn);
  background: var(--e-navy); color: #fff; text-decoration: none;
  box-shadow: var(--e-shadow-btn);
  transition: background-color 200ms ease-out, color 200ms ease-out, transform 150ms ease-out, box-shadow 200ms ease-out;
}
.e-btn:hover { background: #2B4A36; }
.e-btn--light { background: var(--e-on); color: var(--e-navy); box-shadow: 0 10px 26px -14px rgba(0, 0, 0, 0.6); }
.e-btn--light:hover { background: #fff; color: var(--e-navy); }
@media (hover: hover) { .e-btn:active { transform: translateY(1px); } }
.e-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; margin-top: 30px; }

:focus-visible { outline: 3px solid var(--e-gold); outline-offset: 3px; }
.e-paper :focus-visible, .e-page-bg :focus-visible { outline-color: var(--e-navy); }

/* ---------- Sections ---------- */
.e-sec { padding-block: var(--e-sec); background: var(--e-paper); color: var(--e-text); }
.e-sec--page { background: var(--e-page); }
.e-sec--navy { background: var(--e-navy); color: var(--e-on); }
.e-sec--navy .e-h2, .e-sec--navy .e-h3 { color: var(--e-on); }
.e-sec--navy .e-lede, .e-sec--navy .e-meta { color: var(--e-on-muted); }
.e-sec-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 18px 40px; margin-bottom: clamp(2.25rem, 1.5rem + 2.4vw, 4rem); }
.e-sec-head > div { max-width: 46rem; }
.e-sec-head .e-link { margin-bottom: -6px; }
.e-rule { border: 0; border-top: 1px solid var(--e-hair); margin: 0; }

/* The band and the rising sheet: any section after an .e-band reads as paper sliding over navy */
.e-band, .e-home-band, .e-hero { position: relative; isolation: isolate; }
.e-band::after, .e-home-band::after, .e-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; z-index: 6;
  height: var(--e-r-sheet); background: var(--e-sheet, var(--e-paper));
  border-radius: var(--e-r-sheet) var(--e-r-sheet) 0 0;
  pointer-events: none;
}

/* ---------- Home hero: licensed Caprock Canyons footage, with lighter chrome ---------- */
.e-hero {
  background: var(--e-navy-deep); color: var(--e-on);
  min-height: 88vh; min-height: 88svh;
  display: flex; flex-direction: column; overflow: hidden;
}
.e-hero .hero-video, .e-hero .hero-poster {
  position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.78) brightness(0.62); pointer-events: none;
}
.e-hero .hero-poster { display: none; }
@media (max-width: 1023px) {
  .e-hero .hero-video { display: none; }
  .e-hero .hero-poster { display: block; object-position: center; }
}
@media (max-width: 599px) {
  .e-hero.is-mobile-video .hero-video { display: block; object-position: center; }
  .e-hero.is-mobile-video .hero-poster { display: none; }
}
.e-hero-scrim {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(20, 26, 45, 0.92) 0%, rgba(20, 26, 45, 0.72) 38%, rgba(20, 26, 45, 0.18) 72%, rgba(20, 26, 45, 0.1) 100%),
    linear-gradient(180deg, rgba(20, 26, 45, 0.35) 0%, rgba(20, 26, 45, 0) 30%, rgba(20, 26, 45, 0) 62%, rgba(20, 26, 45, 0.72) 100%);
}
@media (max-width: 760px) {
  .e-hero-scrim { background: linear-gradient(180deg, rgba(20, 26, 45, 0.41) 0%, rgba(20, 26, 45, 0.68) 45%, rgba(20, 26, 45, 0.88) 100%); }
}
.e-hero-crest {
  position: absolute; z-index: 2; right: clamp(40px, 6vw, 110px); top: 50%;
  height: min(46vh, 420px); width: auto; aspect-ratio: 1091 / 1600;
  transform: translateY(-46%); opacity: 0.34; pointer-events: none; user-select: none;
}
@media (max-width: 1023px) { .e-hero-crest { display: none; } }
.e-hero-inner {
  position: relative; z-index: 3; flex: 1;
  display: flex; flex-direction: column; justify-content: center;
  padding-top: calc(var(--header-h) + clamp(2.5rem, 6vh, 4.5rem));
  padding-bottom: clamp(2rem, 5vh, 3.5rem);
}
.e-hero-title { color: var(--e-on); max-width: 11ch; font-size: clamp(2.9rem, 1.4rem + 4.8vw, 5.6rem); line-height: 0.98; letter-spacing: -0.038em; }
.e-hero-title .gold-word, .e-home-band .gold-word { color: var(--e-gold-warm); }
.e-hero-title .lr-line { padding-inline: 0; margin-inline: 0; }
.e-hero-lede { color: var(--e-on-muted); max-width: 46ch; margin-top: 1.4rem; font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.6; }
.e-hero .e-actions { margin-top: 2rem; }
.e-lines { display: flex; flex-wrap: wrap; gap: 0 clamp(18px, 2.6vw, 34px); margin-top: clamp(1.75rem, 4vh, 2.75rem); }
.e-lines a { display: inline-flex; align-items: center; min-height: 44px; color: var(--e-on-muted); text-decoration: none; font-size: 0.975rem; transition: color 200ms ease-out; }
.e-lines a:hover { color: var(--e-on); }
@media (max-width: 600px) { .e-lines { display: grid; grid-template-columns: 1fr 1fr; } }
.e-hero-foot {
  position: relative; z-index: 3;
  border-top: 1px solid var(--e-on-hair);
  padding-bottom: calc(var(--e-r-sheet) + 6px);
}
.e-hero-foot .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 28px; }
.e-now, .e-credential {
  display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px;
  min-height: 52px; padding-block: 12px; text-decoration: none; color: var(--e-on-muted); font-size: 0.95rem;
  transition: color 200ms ease-out;
}
.e-now b, .e-credential b { color: var(--e-on); font-weight: 500; }
.e-now:hover, .e-credential:hover { color: var(--e-on); }
.e-now:hover span { text-decoration: underline; text-underline-offset: 5px; text-decoration-color: rgba(244, 239, 227, 0.4); }

/* ---------- Home: current opportunities ---------- */
.e-listings { padding-top: clamp(3.5rem, 2.5rem + 3vw, 6rem); }
.e-lead { display: grid; gap: var(--e-gap); align-items: center; }
@media (min-width: 900px) { .e-lead { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 4vw, 4.5rem); } }
.e-media { margin: 0; }
.e-media img { width: 100%; height: auto; border-radius: var(--e-r-media); background: var(--e-page); }
.e-media--16x10 img { aspect-ratio: 16 / 10; object-fit: cover; }
.e-media--3x2 img { aspect-ratio: 3 / 2; object-fit: cover; }
.e-media--contain img { object-fit: contain; background: var(--e-page); }
.e-status { display: block; font-size: 0.9375rem; color: var(--e-muted); margin: 0 0 12px; }
.e-lead .e-h3 { font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem); line-height: 1.08; letter-spacing: -0.03em; }
.e-lead .e-meta { margin-top: 12px; }
.e-lead p.e-desc { margin: 18px 0 0; font-size: 1.0625rem; line-height: 1.65; color: var(--e-text); max-width: 46ch; }
.e-listing-grid { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 3.5rem) var(--e-gap); margin-top: clamp(3rem, 2rem + 3vw, 5rem); padding-top: clamp(2.5rem, 2rem + 2vw, 3.5rem); border-top: 1px solid var(--e-hair); }
@media (min-width: 760px) { .e-listing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.e-listing .e-media { margin-bottom: 20px; }
.e-listing .e-status { margin-bottom: 8px; }
.e-listing .e-h4 a { color: inherit; text-decoration: none; }
.e-listing .e-h4 a:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.e-listing .e-meta { margin-top: 6px; }
.e-listing p.e-desc { margin: 12px 0 0; font-size: 1rem; line-height: 1.6; color: var(--e-text); }
.e-listing .e-link { margin-top: 10px; }

/* ---------- Home: recognition and execution record ---------- */
.e-recognition { display: grid; gap: var(--e-gap); align-items: center; }
@media (min-width: 900px) { .e-recognition { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.e-award { display: grid; gap: 14px; justify-items: start; padding-left: clamp(0px, 3vw, 40px); }
@media (min-width: 900px) { .e-award { border-left: 1px solid var(--e-hair-2); } }
.e-award img { width: 185px; height: auto; mix-blend-mode: multiply; }
.e-award .e-years { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); font-weight: 500; letter-spacing: -0.02em; color: var(--e-ink); font-variant-numeric: tabular-nums lining-nums; margin: 4px 0 0; }
.e-award p { margin: 0; max-width: 34ch; color: var(--e-muted); }
.e-record { display: grid; gap: var(--e-gap); margin-top: clamp(3.5rem, 2.5rem + 3vw, 5.5rem); padding-top: clamp(2.5rem, 2rem + 2vw, 3.5rem); border-top: 1px solid var(--e-hair-2); }
@media (min-width: 900px) { .e-record { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }
.e-record p { color: var(--e-muted); max-width: 34ch; margin: 12px 0 0; }
.e-ledger { display: grid; gap: 0 clamp(2rem, 5vw, 5rem); margin: 0; }
@media (min-width: 640px) { .e-ledger { grid-template-columns: 1fr 1fr; } }
.e-ledger div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--e-hair); }
.e-ledger dt { color: var(--e-muted); font-size: 1rem; }
.e-ledger dd { margin: 0; color: var(--e-ink); font-weight: 500; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); letter-spacing: -0.015em; font-variant-numeric: tabular-nums lining-nums; white-space: nowrap; }

/* ---------- Home: disciplines ---------- */
.e-disciplines { display: grid; gap: clamp(2.75rem, 2rem + 2.5vw, 4rem) clamp(2rem, 5vw, 5.5rem); }
@media (min-width: 820px) { .e-disciplines { grid-template-columns: 1fr 1fr; } }
.e-discipline { padding-top: 26px; border-top: 1px solid var(--e-hair-2); }
.e-discipline .e-meta { margin-top: 8px; }
.e-discipline p.e-desc { margin: 16px 0 0; color: var(--e-text); max-width: 50ch; }
.e-list { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 6px 28px; color: var(--e-text); }
@media (min-width: 560px) { .e-list--2 { grid-template-columns: 1fr 1fr; } }
.e-list li { font-size: 0.975rem; line-height: 1.5; padding: 2px 0; }
.e-note { margin: 16px 0 0; font-size: 0.9375rem; color: var(--e-muted); }
.e-discipline .e-link { margin-top: 12px; }

/* ---------- Rows: audience paths and route links ---------- */
.e-rows { display: grid; gap: 0 clamp(2rem, 5vw, 5.5rem); }
@media (min-width: 820px) { .e-rows { grid-template-columns: 1fr 1fr; } }
.e-row {
  display: block; padding: 24px 0 26px; border-top: 1px solid var(--e-hair-2);
  color: var(--e-text); text-decoration: none;
  transition: background-color 220ms ease-out;
}
.e-row b { display: block; font-weight: 500; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); letter-spacing: -0.018em; line-height: 1.2; color: var(--e-ink); }
.e-row span { display: block; margin-top: 8px; color: var(--e-muted); font-size: 1rem; line-height: 1.55; max-width: 48ch; }
.e-row:hover b { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2); }
@media (min-width: 820px) {
  .e-rows--3 { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Home: ventures ---------- */
.e-ventures { display: grid; gap: clamp(3rem, 2rem + 3vw, 4rem) var(--e-gap); }
@media (min-width: 760px) { .e-ventures { grid-template-columns: 1fr 1fr; } }
.e-venture { display: block; color: inherit; text-decoration: none; }
.e-venture .e-media { margin-bottom: 22px; }
.e-venture .e-media img { aspect-ratio: 3 / 2; object-fit: cover; }
.e-venture .e-meta { margin-bottom: 8px; }
.e-venture p { margin: 12px 0 0; color: var(--e-text); max-width: 50ch; }
.e-venture .e-link { margin-top: 8px; }
.e-venture:hover .e-link { text-decoration-color: currentColor; }

/* ---------- Home: investments and forms ---------- */
.e-invest { display: grid; gap: var(--e-gap); align-items: start; }
@media (min-width: 900px) { .e-invest { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6rem); } }
.e-invest .e-meta { margin-top: 22px; color: var(--e-on); }
.e-form-sheet { background: var(--e-paper); color: var(--e-text); border-radius: clamp(20px, 2vw, 26px); padding: clamp(24px, 3vw, 40px); box-shadow: 0 40px 80px -48px rgba(0, 0, 0, 0.7); }
.e-form .capture-note { margin: 0 0 18px; font-size: 0.9375rem; color: var(--e-muted); }
.e-form .form-grid { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .e-form .form-grid { grid-template-columns: 1fr 1fr; } .e-form .field.full, .e-form .form-actions.full { grid-column: 1 / -1; } }
.e-form .field { display: grid; gap: 7px; margin: 0; }
.e-form .field label { font-size: 0.9375rem; font-weight: 500; color: var(--e-ink); text-transform: none; letter-spacing: 0; font-family: var(--font-body); }
.e-form .field-optional { font-weight: 400; color: var(--e-muted); margin-left: 6px; }
.e-form input:not([type="hidden"]), .e-form select, .e-form textarea {
  width: 100%; min-height: 52px; padding: 13px 15px;
  font: inherit; font-size: 1rem; color: var(--e-text);
  background: var(--e-field); border: 1.5px solid transparent; border-radius: var(--e-r-field);
  box-shadow: none; transition: background-color 180ms ease-out, border-color 180ms ease-out, box-shadow 180ms ease-out;
}
.e-form input::placeholder, .e-form textarea::placeholder { color: #6E7383; }
.e-form input:hover, .e-form select:hover, .e-form textarea:hover { background: var(--e-field-hover); }
.e-form input:focus, .e-form select:focus, .e-form textarea:focus { outline: none; background: #fff; border-color: var(--e-ink); box-shadow: 0 0 0 4px var(--e-gold-soft); }
.e-form [aria-invalid="true"] { border-color: #B42318; background: #fff; }
.e-form .form-error { color: #B42318; font-size: 0.875rem; margin: 2px 0 0; }
.e-form .form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 4px; }
.e-form .form-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; border: 0; border-radius: var(--e-r-btn); background: var(--e-navy); color: #fff; font: inherit; font-weight: 500; font-size: 1rem; cursor: pointer; box-shadow: var(--e-shadow-btn); transition: background-color 200ms ease-out; }
.e-form .form-actions button:hover { background: #2B4A36; }
.e-form .form-actions button:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 3px; }
.e-form .form-actions a { color: var(--e-muted); font-size: 0.9375rem; text-underline-offset: 4px; min-height: 44px; display: inline-flex; align-items: center; }
.e-form .invest-form__note { margin: 18px 0 0; font-size: 0.9375rem; color: var(--e-muted); }
.e-form .hidden { position: absolute !important; left: -9999px !important; }

/* ---------- Home: closing contact ---------- */
.e-close { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 3.5rem); align-items: center; }
@media (min-width: 900px) { .e-close { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); } }
.e-close h2 { margin: 0; }
.e-close h2 img { width: min(100%, 520px); height: auto; }
.e-phone { display: inline-block; font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem); font-weight: 500; letter-spacing: -0.03em; line-height: 1.1; color: var(--e-ink); text-decoration: none; font-variant-numeric: tabular-nums lining-nums; }
.e-phone:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 8px; text-decoration-color: var(--e-hair-2); }
.e-close .e-mail { margin: 10px 0 0; }
.e-close .e-actions { margin-top: 24px; }

/* ---------- Footer ---------- */
.e-footer { background: var(--e-navy); color: var(--e-on-muted); font-size: 0.9375rem; line-height: 1.6; }
.e-footer a { color: var(--e-on-muted); text-decoration: none; transition: color 200ms ease-out; }
.e-footer a:hover { color: var(--e-on); }
.e-footer-top { display: grid; gap: clamp(2.25rem, 2rem + 2vw, 3rem) clamp(2rem, 4vw, 4rem); padding-top: clamp(3.5rem, 3rem + 3vw, 5.5rem); padding-bottom: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
@media (min-width: 560px) { .e-footer-top { grid-template-columns: 1fr 1fr; } .e-footer-brand { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .e-footer-top { grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2fr)); } .e-footer-brand { grid-column: auto; } }
.e-footer-brand img { height: 58px; width: auto; display: block; }
.e-footer-brand p { margin: 22px 0 0; max-width: 38ch; }
.e-footer-brand .lic { margin-top: 12px; font-size: 0.875rem; }
.e-footer-contact { display: grid; gap: 2px; margin-top: 18px; }
.e-footer-contact a { color: var(--e-on); min-height: 36px; display: inline-flex; align-items: center; }
.e-footer-linkedin { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; min-height: 44px; color: var(--e-on); }
.e-footer-linkedin svg { width: 18px; height: 18px; fill: currentColor; }
.e-footer-h { margin: 0 0 10px; color: var(--e-on); font-weight: 500; font-size: 0.9375rem; }
.e-footer ul { list-style: none; margin: 0; padding: 0; }
.e-footer ul a { display: inline-flex; align-items: center; min-height: 40px; }
.e-footer-legal { border-top: 1px solid var(--e-on-hair); padding-top: 22px; padding-bottom: 22px; font-size: 0.875rem; }
.e-footer-legal p { margin: 0; max-width: 90ch; }
.e-footer-legal p + p { margin-top: 8px; }
.e-footer-legal a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(244, 239, 227, 0.35); }
.e-footer-base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 24px; border-top: 1px solid var(--e-on-hair); padding-top: 18px; padding-bottom: max(22px, env(safe-area-inset-bottom)); font-size: 0.875rem; }
.e-footer-base p { margin: 0; }
.e-footer-base nav { display: flex; flex-wrap: wrap; gap: 0 20px; }
.e-footer-base nav a, .e-footer-base .footer-credit { min-height: 44px; display: inline-flex; align-items: center; }
.e-footer-base .footer-credit { font-size: 0.8125rem; opacity: 1; letter-spacing: 0; color: var(--e-on-muted); }
.e-footer-base .e-footer-right { display: flex; flex-wrap: wrap; align-items: center; gap: 0 22px; }
.e-footer .footer-brands { margin: 0; flex-basis: 100%; }
@media (max-width: 1023px) { .e-footer-base { padding-bottom: calc(max(22px, env(safe-area-inset-bottom)) + 64px); } }

/* ---------- Mobile action bar ---------- */
.sticky-cta { background: var(--e-navy); box-shadow: 0 -1px 0 var(--e-on-hair); }
.sticky-cta a { font-family: var(--font-body); letter-spacing: 0; font-weight: 500; }
.sticky-cta .call { color: var(--e-on); background: transparent; }
.sticky-cta .act { background: var(--e-on); color: var(--e-navy); }

/* ---------- Interior page band ---------- */
.e-band { background: var(--e-navy); color: var(--e-on); padding-top: calc(var(--header-h) + clamp(2.25rem, 1.5rem + 3vw, 4.5rem)); padding-bottom: calc(var(--e-r-sheet) + clamp(2.5rem, 2rem + 2.5vw, 4.25rem)); overflow: hidden; }
.e-band::before { content: ""; position: absolute; inset: auto 0 0 0; height: 75%; z-index: -1; background: radial-gradient(90% 100% at 50% 100%, var(--e-navy-2), transparent 72%); pointer-events: none; }
.e-band .e-h1 { color: var(--e-on); max-width: 18ch; }
.e-band .e-lede { color: var(--e-on-muted); max-width: 58ch; }
.e-back { display: inline-flex; align-items: center; min-height: 44px; margin: -8px 0 14px; color: var(--e-on-muted); font-size: 0.95rem; text-decoration: none; }
.e-back:hover { color: var(--e-on); text-decoration: underline; text-underline-offset: 5px; }
.e-band--parchment { --e-sheet: var(--e-page); }

/* ---------- Interior landing components ---------- */
.e-intro { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 4rem); }
@media (min-width: 960px) { .e-intro { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(3rem, 6vw, 7rem); } }
.e-aside { display: grid; gap: 28px; align-content: start; }
@media (min-width: 960px) { .e-aside { position: sticky; top: var(--sticky-top); padding-left: clamp(24px, 3vw, 40px); border-left: 1px solid var(--e-hair-2); } }
.e-aside-item h3, .e-aside-item .e-h5 { font-size: 0.9375rem; font-weight: 500; color: var(--e-ink); margin: 0 0 8px; letter-spacing: 0; }
.e-aside-item p { margin: 0; color: var(--e-text); font-size: 1rem; line-height: 1.6; }
.e-aside-item a { color: var(--e-ink); text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); }
.e-aside-statement { font-size: 1.125rem !important; line-height: 1.5 !important; color: var(--e-ink) !important; }
.e-disclosure { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--e-hair); font-size: 0.9375rem; color: var(--e-muted); max-width: 64ch; }
.e-facts { display: grid; gap: 14px; margin: 0; }
.e-facts div { display: grid; gap: 2px; }
.e-facts dt { font-size: 0.9375rem; color: var(--e-muted); }
.e-facts dd { margin: 0; color: var(--e-ink); font-size: 1.0625rem; line-height: 1.45; }

.e-feature { display: grid; gap: var(--e-gap); align-items: center; }
@media (min-width: 900px) { .e-feature { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); } }
.e-feature .e-h3 a { color: inherit; text-decoration: none; }
.e-feature .e-h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.e-feature p.e-desc { margin: 16px 0 0; max-width: 46ch; color: var(--e-text); }

.e-points { display: grid; gap: clamp(2.25rem, 2rem + 2vw, 3rem) var(--e-gap); }
@media (min-width: 820px) { .e-points { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.e-point { padding-top: 22px; border-top: 1px solid var(--e-hair-2); }
.e-point p { margin: 12px 0 0; color: var(--e-text); }

.e-steps { display: grid; gap: clamp(2rem, 1.5rem + 2vw, 3rem) var(--e-gap); counter-reset: none; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .e-steps { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .e-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.e-step { padding-top: 22px; border-top: 1px solid var(--e-hair-2); }
.e-step .e-num { display: block; font-size: 0.9375rem; color: var(--e-muted); font-variant-numeric: tabular-nums; margin-bottom: 14px; }
.e-step p { margin: 10px 0 0; color: var(--e-text); font-size: 1rem; }

.e-split { display: grid; gap: clamp(2rem, 1.5rem + 2vw, 3rem); }
@media (min-width: 900px) { .e-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 6vw, 6rem); } }
.e-fit { margin: 0; padding: 0; list-style: none; display: grid; gap: 0 clamp(1.5rem, 4vw, 3rem); border-top: 1px solid var(--e-hair-2); }
@media (min-width: 560px) { .e-fit { grid-template-columns: 1fr 1fr; } }
.e-fit li { padding: 16px 0; font-size: 1.125rem; color: var(--e-ink); border-bottom: 1px solid var(--e-hair); }

.e-faq { border-top: 1px solid var(--e-hair-2); }
.e-faq .faq-item { border: 0; border-bottom: 1px solid var(--e-hair-2); border-radius: 0; background: none; padding: 0; margin: 0; box-shadow: none; }
.e-faq .faq-item summary {
  position: relative; display: block; list-style: none; cursor: pointer;
  padding: 22px 56px 22px 0; min-height: 44px;
  font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem); font-weight: 500; line-height: 1.4; color: var(--e-ink);
}
.e-faq .faq-item summary::-webkit-details-marker { display: none; }
.e-faq .faq-item summary::after, .e-faq .faq-item summary::before {
  content: ""; position: absolute; right: 12px; top: 50%; width: 16px; height: 1.5px; margin-top: -1px;
  background: var(--e-ink); border-radius: 2px; transition: transform 220ms var(--e-ease), opacity 220ms ease-out;
}
.e-faq .faq-item summary::before { transform: rotate(90deg); }
.e-faq .faq-item[open] summary::before { transform: rotate(0deg); opacity: 0; }
.e-faq .faq-item summary:hover { color: #000; }
.e-faq .faq-item p { margin: 0 0 24px; max-width: 66ch; color: var(--e-text); font-size: 1.0625rem; line-height: 1.7; }

.e-cta { display: grid; gap: 28px; align-items: end; }
@media (min-width: 900px) { .e-cta { grid-template-columns: minmax(0, 7fr) auto; gap: 40px 80px; } }
.e-cta .e-actions { margin-top: 0; }

/* Quiet reveals: content is visible without JS; motion only when allowed */
@media (prefers-reduced-motion: no-preference) {
  .reveal-ready .e-reveal:not(.in) { opacity: 0; transform: translateY(14px); }
  .e-reveal.in { animation: eRise 700ms var(--e-ease) both; }
  @keyframes eRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}

/* Tighter rhythm on phones */
@media (max-width: 600px) {
  :root { --e-sec: 4.25rem; }
  .e-sec-head { margin-bottom: 2rem; }
  .e-hero { min-height: 0; }
  .e-hero-inner { padding-top: calc(var(--header-h) + 2.75rem); padding-bottom: 2.25rem; }
  .e-hero-title { font-size: clamp(2.6rem, 11vw, 3.25rem); }
  .e-hero .e-actions { flex-direction: column; align-items: stretch; }
  .e-hero .e-actions .e-btn { width: 100%; }
  .e-hero .e-actions .e-link { justify-content: center; }
  .e-hero-foot .wrap { flex-direction: column; align-items: flex-start; gap: 0; }
  .e-now, .e-credential { min-height: 44px; padding-block: 10px; }
  .e-ledger div { padding: 13px 0; }
}

/* Lead partner block, footer balance (October layer, continued) */
.e-person { display: grid; grid-template-columns: 88px 1fr; gap: 16px; align-items: center; }
.e-person img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; object-position: 50% 28%; }
.e-person b { display: block; font-weight: 500; color: var(--e-ink); font-size: 1.0625rem; }
.e-person span { display: block; color: var(--e-muted); font-size: 0.9375rem; }
.e-person a { display: inline-flex; align-items: center; min-height: 36px; margin-right: 14px; font-size: 0.9375rem; color: var(--e-ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); }
.e-person a.e-linkedin { color: #0A66C2; text-decoration-color: rgba(10, 102, 194, 0.35); }
.e-person a:hover { text-decoration-color: currentColor; }
.e-aside-item h3 a { color: inherit; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); }
.e-prose h2.e-h3 { margin: 0 0 1.25rem; max-width: 24ch; }
.e-footer-top { grid-template-columns: 1fr 1fr; }
.e-footer-brand, .e-footer-ventures { grid-column: 1 / -1; }
.e-footer-ventures ul { display: flex; flex-wrap: wrap; gap: 0 26px; }
@media (min-width: 560px) {
  .e-footer-top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .e-footer-ventures { grid-column: auto; }
  .e-footer-ventures ul { display: block; }
}
@media (min-width: 1024px) {
  .e-footer-top { grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2fr)); }
  .e-footer-brand { grid-column: auto; }
}

.e-media--top img { object-position: 50% 0; }

/* Round 1 fixes */
.e-h3 a, .e-h4 a { color: inherit; text-decoration: none; }
.e-h3 a:hover, .e-h4 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2); }
.e-fit li { border-bottom: 0; padding: 14px 0 0; }
.e-fit { padding-top: 6px; gap: 4px clamp(1.5rem, 4vw, 3rem); }
@media (min-width: 1024px) { :root { --header-h: 84px; } .logo-lockup { height: 56px; } }
/* ---------- Round 2 fixes (bounded QA batch, Oct 2) ---------- */
/* Focus: navy ring on light surfaces, gold only on navy (3:1 either way) */
:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 3px; }
.site :focus-visible, .mobile-menu :focus-visible, .sticky-cta :focus-visible, .e-hero :focus-visible,
.e-home-band :focus-visible, .e-band :focus-visible, .e-sec--navy :focus-visible, .e-footer :focus-visible,
.dark :focus-visible, .darker :focus-visible, .subhero :focus-visible, .cta-band :focus-visible,
.contact-card :focus-visible, .direct-card :focus-visible, .lightbox :focus-visible { outline-color: var(--e-gold); }
.e-form-sheet :focus-visible { outline-color: var(--e-navy); }
.e-footer-brand > a { display: inline-block; border-radius: 6px; }
main:focus { outline: none; }
.mobile-menu-link:focus-visible { border-radius: 10px; }
.site .wrap.nav { transition: none; }

/* Forms: visible invalid state and a placeholder that clears 4.5:1 */
.e-form input[aria-invalid="true"]:not([type="hidden"]), .e-form select[aria-invalid="true"], .e-form textarea[aria-invalid="true"] { border-color: #B42318; background: #fff; }
.e-form input::placeholder, .e-form textarea::placeholder { color: var(--e-muted); }

/* No JS on phones: Contact stays reachable, the poster replaces the video */
@media (max-width: 1023px) {
  html:not(.js) .nav-right { display: flex; align-items: center; }
  html:not(.js) .nav-phone { display: none; }
  html:not(.js) .nav-cta { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid rgba(244, 239, 227, 0.34); border-radius: var(--e-r-btn); color: var(--e-on); text-decoration: none; }
}
html:not(.js) .e-hero .hero-video { display: none; }
html:not(.js) .e-hero .hero-poster { display: block; }

/* Hero: one content edge with the page, the legacy brass seam gone, a quieter whole crest */
#current-opportunities { box-shadow: none; }
.e-hero-crest { height: min(40vh, 340px); }
.e-hero-foot-end { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 24px; }
.e-band + .e-sec { padding-top: calc(var(--e-sec) - var(--e-r-sheet)); }
.e-band--legacy { --e-sheet: #FCFBF7; }

/* Captions sit under every listing figure so titles share a baseline */
.e-listing .e-caption, .e-lead .e-caption { margin-top: 8px; }
.e-listing .e-media { margin-bottom: 18px; }
.e-lead .e-meta { margin-top: 12px; }

/* Rows read as links at rest on touch screens */
.e-row b { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2); }
.e-row:hover b { text-decoration-color: currentColor; }
.e-row:active { background: rgba(18, 36, 27, 0.04); }

/* 44px targets */
.site .logo { min-height: 44px; display: inline-flex; align-items: center; }
.e-phone { min-height: 44px; display: inline-flex; align-items: center; }
.e-footer-contact a, .e-footer ul a, .e-person a { min-height: 44px; }
.e-footer-legal a { display: inline-block; padding-block: 6px; }
.e-listing .e-h4 a, .e-lead .e-h3 a { display: inline-block; padding-block: 8px; margin-block: -8px; }

/* Mobile action bar: two soft buttons on a navy bar, not a hard split box */
.sticky-cta { gap: 8px; padding: 8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); background: var(--e-navy); box-shadow: 0 -1px 0 var(--e-on-hair); }
.sticky-cta a { min-height: 48px; border-radius: var(--e-r-btn); font-size: 0.95rem; }
.sticky-cta .call { color: var(--e-on); box-shadow: inset 0 0 0 1px rgba(244, 239, 227, 0.3); }
.sticky-cta .act { background: var(--e-on); color: var(--e-navy); }

/* Footer hairlines start and end with the content */
.e-footer-legal, .e-footer-base { border-top: 0; position: relative; }
.e-footer-legal::before, .e-footer-base::before { content: ""; position: absolute; top: 0; left: var(--gutter); right: var(--gutter); height: 1px; background: var(--e-on-hair); }

/* Recognition: the credential sits with the partners it belongs to */
@media (max-width: 899px) { .e-award { padding-left: 0; } }
.e-partners { display: grid; grid-template-columns: 1fr 1fr; gap: 20px clamp(14px, 1.8vw, 24px); width: 100%; }
.e-portrait { margin: 0; }
.e-portrait img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; border-radius: var(--e-r-media); background: var(--e-page); }
.e-portrait figcaption { margin-top: 14px; }
.e-portrait figcaption > b { display: block; font-weight: 500; font-size: 1.0625rem; letter-spacing: -0.01em; color: var(--e-ink); }
.e-portrait figcaption > span { display: block; font-size: 0.9375rem; margin-top: 2px; color: var(--e-muted); }
.e-portrait .e-linkedin { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.9375rem; color: #0A66C2; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(10, 102, 194, 0.35); }
.e-recognition--people { align-items: start; }
.e-recognition--people .e-partners { max-width: 600px; }
@media (min-width: 900px) {
  .e-recognition--people { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "copy people" "award people"; column-gap: clamp(3rem, 6vw, 6rem); row-gap: 2.5rem; }
  .e-recognition--people .e-rec-copy { grid-area: copy; }
  .e-recognition--people .e-partners { grid-area: people; justify-self: end; }
  .e-recognition--people .e-award { grid-area: award; border-left: 0; padding-left: 0; padding-top: 2rem; border-top: 1px solid var(--e-hair-2); }
}

/* Interior band: page action and, where the page names one, the lead partner */
.e-band__grid { display: grid; gap: 2.25rem; align-items: end; }
@media (min-width: 1024px) { .e-band__grid--person { grid-template-columns: minmax(0, 1fr) auto; gap: 4rem; } }
.e-band .e-actions { margin-top: 1.75rem; }
.e-band__person { padding-top: 1.5rem; border-top: 1px solid var(--e-on-hair); max-width: 380px; }
@media (min-width: 1024px) { .e-band__person { border-top: 0; padding-top: 0; padding-left: 2.5rem; border-left: 1px solid var(--e-on-hair); } }
.e-band__person-h { margin: 0 0 12px; color: var(--e-on-muted); font-size: 0.9375rem; }
.e-person--on b { color: var(--e-on); }
.e-person--on span { color: var(--e-on-muted); }
.e-person--on a { color: var(--e-on); text-decoration-color: rgba(244, 239, 227, 0.35); }
.e-person--on a.e-linkedin { color: #78A9E6; text-decoration-color: rgba(120, 169, 230, 0.4); }

/* Phones: lighter discipline blocks (the description carries the substance) */
@media (max-width: 600px) { .e-discipline .e-list { display: none; } }

/* Interim for pages not converted yet: no seams against the new shell */
.subhero.ld-head { background-color: var(--e-navy); background-image: none; }
main > section.darker:last-child, main > section.sr-cta:last-child { background: var(--e-navy); }

/* ---------- Current opportunities viewer (Oct 2, final direction) ----------
   Stacked articles by default (phones, tablets, no JS). At 1024px and up,
   main.js adds .is-viewer: the articles share one stage and a rail selects. */
.e-opp-stage { display: grid; gap: clamp(2.75rem, 2rem + 3vw, 4rem) var(--e-gap); }
@media (min-width: 760px) { .e-opp-stage { grid-template-columns: 1fr 1fr; } .e-opp:first-child { grid-column: 1 / -1; } }
.e-opp { margin: 0; min-width: 0; }
.e-opp-media { margin: 0 0 20px; }
.e-opp .e-h3 { font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.2; }
.e-opp .e-meta { margin-top: 8px; }
.e-opp .e-desc { margin: 14px 0 0; font-size: 1rem; line-height: 1.6; color: var(--e-text); max-width: 54ch; }
.e-opp-facts { display: flex; flex-wrap: wrap; gap: 10px clamp(18px, 2.5vw, 32px); margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--e-hair); }
.e-opp-facts div { display: grid; gap: 1px; }
.e-opp-facts dt { font-size: 0.875rem; color: var(--e-muted); }
.e-opp-facts dd { margin: 0; font-size: 1rem; font-weight: 500; color: var(--e-ink); font-variant-numeric: tabular-nums lining-nums; }
.e-opp-cta { margin-top: 22px; }
.e-opp:not(:first-child) .e-opp-cta {
  min-height: 44px; padding: 0; background: none; color: var(--e-ink); box-shadow: none; justify-content: flex-start;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2);
}
.e-opp:not(:first-child) .e-opp-cta:hover { background: none; text-decoration-color: currentColor; }
@media (min-width: 760px) {
  .e-opp:first-child .e-opp-body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 3vw, 3.5rem); align-items: start; }
  .e-opp:first-child .e-h3 { font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem); line-height: 1.08; letter-spacing: -0.03em; }
  .e-opp:first-child .e-desc { margin-top: 0; }
}
@media (min-width: 1024px) {
  .e-opps.is-viewer { display: grid; grid-template-columns: minmax(0, 8fr) minmax(250px, 3.3fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: start; }
  .is-viewer .e-opp-stage { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .is-viewer .e-opp { grid-area: 1 / 1; opacity: 0; visibility: hidden; }
  .is-viewer .e-opp.is-active { opacity: 1; visibility: visible; }
  .is-viewer .e-opp .e-opp-body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
  .is-viewer .e-opp .e-h3 { font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.375rem); line-height: 1.08; letter-spacing: -0.03em; }
  .is-viewer .e-opp .e-desc { margin-top: 0; }
  .is-viewer .e-opp .e-opp-cta { min-height: 52px; padding: 0 24px; background: var(--e-navy); color: #fff; box-shadow: var(--e-shadow-btn); text-decoration: none; justify-content: center; }
  .is-viewer .e-opp .e-opp-cta:hover { background: #2B4A36; }
  .e-opp-rail { position: sticky; top: var(--sticky-top); display: grid; border-top: 1px solid var(--e-hair-2); }
  .e-opp-tab {
    display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; align-items: center;
    width: 100%; margin: 0; padding: 14px 8px 14px 0; border: 0; border-bottom: 1px solid var(--e-hair); border-radius: 0;
    background: none; color: var(--e-muted); font: inherit; text-align: left; cursor: pointer;
  }
  .e-opp-tab img { width: 76px; height: 57px; object-fit: cover; border-radius: 9px; opacity: 0.7; filter: grayscale(0.4); transition: opacity 260ms ease-out, filter 260ms ease-out, box-shadow 260ms ease-out; }
  .e-opp-tab b { display: block; font-weight: 500; font-size: 1rem; line-height: 1.3; color: var(--e-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: transparent; transition: text-decoration-color 200ms ease-out; }
  .e-opp-tab span span { display: block; margin-top: 2px; font-size: 0.875rem; color: var(--e-muted); }
  .e-opp-tab:hover img { opacity: 1; filter: none; }
  .e-opp-tab:hover b { text-decoration-color: var(--e-hair-2); }
  .e-opp-tab[aria-selected="true"] img { opacity: 1; filter: none; box-shadow: 0 0 0 2px var(--e-paper), 0 0 0 3.5px var(--e-navy); }
  .e-opp-tab[aria-selected="true"] b { text-decoration-color: currentColor; }
  .e-opp-tab:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 2px; border-radius: 10px; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  .is-viewer .e-opp { transition: opacity 480ms var(--e-ease), visibility 0s linear 480ms; }
  .is-viewer .e-opp.is-active { transition: opacity 480ms var(--e-ease), visibility 0s; }
}

/* The existing desktop viewer gains a natural scroll chapter on roomy screens.
   The listing stays in view while its selectable rail moves through real work. */
@media (min-width: 1280px) and (min-height: 900px) and (prefers-reduced-motion: no-preference) {
  .e-opps.is-scroll-story > .e-opp-stage {
    position: sticky;
    top: var(--sticky-top);
    align-self: start;
  }
  .is-scroll-story .e-opp-media { margin-bottom: 14px; }
  .is-scroll-story .e-opp-media img {
    height: clamp(340px, 43vh, 400px);
    object-fit: cover;
    object-position: center 44%;
  }
  .e-opps.is-scroll-story > .e-opp-rail {
    position: static;
    border-top: 0;
    padding-bottom: min(39vh, 350px);
  }
  .is-scroll-story .e-opp-tab {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    min-height: clamp(300px, 39vh, 380px);
    padding: 28px 12px 28px 20px;
    border-left: 2px solid var(--e-hair);
    align-content: center;
    transition: border-color 360ms var(--e-ease), background-color 360ms var(--e-ease);
  }
  .is-scroll-story .e-opp-tab img {
    width: 100%;
    height: 150px;
    border-radius: var(--e-r-media);
    opacity: 0.78;
    filter: grayscale(0.25);
  }
  .is-scroll-story .e-opp-tab b {
    font-size: 1.25rem;
    letter-spacing: -0.018em;
  }
  .is-scroll-story .e-opp-tab[aria-selected="true"] {
    border-left-color: var(--e-gold);
    background: linear-gradient(90deg, rgba(201, 168, 76, 0.07), transparent 72%);
  }
}

/* ---------- Hero refinements ---------- */
/* A light navy grade so the stock footage sits in the brand's own color */
.e-hero .hero-video, .e-hero .hero-poster { filter: saturate(0.8) contrast(1.05) brightness(0.64); }
@media (max-width: 599px) {
  .e-hero .hero-video, .e-hero .hero-poster { filter: saturate(0.82) contrast(1.05) brightness(0.72); }
}
.e-hero-scrim::after { content: ""; position: absolute; inset: 0; background: var(--e-navy); mix-blend-mode: color; opacity: 0.22; }
/* The crest as a small, crisp signature over the darkest part of the frame */
.e-hero-crest { top: auto; bottom: calc(var(--e-r-sheet) + 84px); right: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))); height: clamp(96px, 11vh, 128px); transform: none; opacity: 0.94; }
/* The sheet casts a soft edge onto the footage */
.e-hero::after { box-shadow: 0 -16px 34px -22px rgba(6, 14, 10, 0.6); }
/* Quiet, physical hover on actions */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .e-btn { transition: background-color 200ms ease-out, color 200ms ease-out, transform 200ms var(--e-ease), box-shadow 200ms ease-out; }
  .e-btn:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(12, 26, 19, 0.14), 0 16px 28px -16px rgba(12, 26, 19, 0.6); }
  .e-btn--light:hover { box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.7); }
}
.e-award img { width: 170px; }

/* ---------- B2: /services and /opportunities hubs ---------- */
/* Filter: a quiet text row (the portal's choice-row idea), not boxed chips */
.e-filter { display: flex; flex-wrap: nowrap; gap: 4px clamp(14px, 2.4vw, 30px); margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); padding-bottom: 2px; border-bottom: 1px solid var(--e-hair-2); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.e-filter::-webkit-scrollbar { display: none; }
.e-filter .filter-chip {
  flex: none; min-height: 48px; padding: 0 2px; margin-bottom: -3px;
  border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none;
  color: var(--e-muted); font-family: var(--font-body); font-size: 1rem; font-weight: 500; letter-spacing: 0;
  transition: color 200ms ease-out, border-color 200ms ease-out;
}
.e-filter .filter-chip:hover { color: var(--e-ink); border-color: var(--e-hair-2); }
.e-filter .filter-chip[aria-pressed="true"] { background: none; color: var(--e-ink); border-color: var(--e-navy); }
.e-filter .filter-chip:active { transform: none; }
.e-filter .filter-chip:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 2px; border-radius: 6px; box-shadow: none; }
.e-opps-hub .filter-status { margin: 0 0 1.5rem; color: var(--e-muted); font-size: 0.9375rem; }
.e-opps-hub .filter-status:empty { display: none; }

/* Listings as editorial rows: real image, then the facts, no card chrome */
.e-listing-row { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); background: none; border: 0; border-radius: 0; box-shadow: none; overflow: visible; padding: clamp(2rem, 4vw, 3rem) 0; border-top: 1px solid var(--e-hair-2); }
.e-listing-row:hover { transform: none; box-shadow: none; border-color: var(--e-hair-2); }
.e-listing-row + .e-listing-row { margin-top: 0; }
@media (min-width: 900px) { .e-listing-row { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; } }
.e-listing-row figure { margin: 0; overflow: visible; }
.e-listing-row figure img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--e-r-media); background: var(--e-page); transition: none; }
.e-listing-row:hover figure img { transform: none; }
.e-listing-row .listing-card-body { padding: 0; gap: 0; display: block; }
.e-listing-row .listing-card-body h3 { font-family: var(--font-body); font-weight: 500; font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); line-height: 1.1; letter-spacing: -0.028em; color: var(--e-ink); margin: 0; }
.e-listing-row .listing-card-body h3 a { color: inherit; text-decoration: none; }
.e-listing-row .listing-card-body h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2); }
.e-listing-row .listing-card-body .addr { margin: 10px 0 0; color: var(--e-text); font-size: 1rem; }
.e-listing-row .listing-card-body .e-meta { margin-top: 4px; }
.e-listing-row .listing-card-body .sum { margin: 16px 0 0; color: var(--e-text); font-size: 1.0625rem; line-height: 1.6; max-width: 52ch; display: block; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }
.e-listing-row .listing-facts { display: flex; flex-wrap: wrap; gap: 10px clamp(18px, 2.5vw, 32px); margin: 20px 0 0; padding: 14px 0 0; border: 0; border-top: 1px solid var(--e-hair); background: none; }
.e-listing-row .listing-facts div, .e-listing-row .listing-facts div + div, .e-listing-row .listing-facts div:nth-child(3) { padding: 0; border: 0; grid-column: auto; display: grid; gap: 1px; }
.e-listing-row .listing-facts dt { margin: 0; font-size: 0.875rem; color: var(--e-muted); letter-spacing: 0; }
.e-listing-row .listing-facts dd { font-family: var(--font-body); font-size: 1rem; font-weight: 500; color: var(--e-ink); }
.e-listing-row .row { margin-top: 24px; gap: 12px 26px; }
.e-listing-row .figure-cap, .e-listing-row figcaption { margin-top: 8px; }
.e-opps-hub .e-note-block { margin: 2rem 0 0; color: var(--e-text); }
.e-opps-hub .e-note-block a, .e-inquiry a { color: var(--e-ink); text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); }
.e-inquiry { margin-top: clamp(1rem, 2vw, 1.5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--e-hair-2); max-width: 70ch; }
.e-inquiry p { margin: 10px 0 0; color: var(--e-text); }
.e-cta .e-phone { margin-top: 14px; }
@media (max-width: 760px) { .e-filter { -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent); mask-image: linear-gradient(90deg, #000 82%, transparent); padding-right: 32px; } }

/* ======================================================================
   B3: listing detail pages
   S. Cooper Street, Slaughter Ranch and 8820 John Hickman use
   the navy band with the sheet rising straight into the lead image.
   Keeps its markup and reaches the same look
   through the shared listing classes below.
   Groups are hairlines and space. No pills, chips, tiles or dark boxes.
   ====================================================================== */

/* ---------- Band ---------- */
.e-ld-band { padding-top: calc(var(--header-h) + clamp(1.75rem, 1rem + 2.6vw, 3.5rem)); padding-bottom: calc(var(--e-r-sheet) + clamp(2rem, 1.5rem + 2vw, 3.25rem)); }
.e-ld-band .e-back { margin-bottom: 10px; }
.e-ld-band .e-h1 { max-width: 15ch; }
.e-ld-head { display: grid; gap: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.e-ld-facts { display: grid; gap: 6px; align-content: end; }
.e-ld-meta { margin: 0; color: var(--e-on); font-size: 1.0625rem; line-height: 1.5; }
.e-ld-place { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 18px; color: var(--e-on-muted); font-size: 1rem; line-height: 1.55; }
.e-ld-place a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -10px; color: var(--e-on); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: rgba(244, 239, 227, 0.4); transition: text-decoration-color 200ms ease-out; }
.e-ld-place a:hover { text-decoration-color: var(--e-on); }
.e-ld-note { margin: 0; color: var(--e-on-muted); font-size: 0.9375rem; line-height: 1.55; }
.e-ld-facts .e-actions { margin-top: 1.25rem; }
@media (min-width: 1024px) {
  .e-ld-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(3rem, 6vw, 6rem); align-items: end; }
  .e-ld-head > .e-ld-facts { padding-left: clamp(1.75rem, 2.5vw, 2.5rem); border-left: 1px solid var(--e-on-hair); padding-bottom: 6px; }
}
@media (max-width: 600px) {
  .e-ld-facts .e-actions { gap: 4px 22px; }
}

/* Slaughter Ranch: the copy stacks on the left, the locator map sits right */
.e-ld-head--map .e-ld-facts { margin-top: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
@media (min-width: 1024px) { .e-ld-head--map { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 1080px) { .e-ld-head--map { grid-template-columns: minmax(0, 1fr) minmax(380px, 460px); align-items: center; } }
.sr-head-map { display: none; margin: 0; }
@media (min-width: 1080px) { .sr-head-map { display: block; } }
.sr-head-map iframe { display: block; width: 100%; height: 330px; border: 0; border-radius: var(--e-r-media); background: var(--e-navy-2); }
.sr-head-map .bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 16px; margin-top: 8px; font-size: 0.875rem; line-height: 1.5; color: var(--e-on-muted); }
.sr-head-map .bar a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -10px; color: var(--e-on); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: rgba(244, 239, 227, 0.4); }
.sr-head-map .bar a:hover { text-decoration-color: var(--e-on); }

/* ---------- Lead image: the property leads right where the sheet rises ---------- */
.e-band.e-ld-band + .e-ld-lead, .e-band.e-ld-band + .sr-chapters + .e-ld-lead { padding-top: clamp(0.75rem, 0.4rem + 1vw, 1.5rem); }
.e-ld-lead .sr-hero-frame + .gallery, .e-ld-lead .sr-hero-frame + .e-ld-over { margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
.sr-hero-frame--wide .sr-hero-media { aspect-ratio: 1700 / 715; }
.sr-hero-frame--concept .sr-hero-media { aspect-ratio: 1700 / 1053; }

/* ---------- Gallery: rounded media, captions under, rows that balance ---------- */
.gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 1.1rem + 1.4vw, 2.5rem) clamp(14px, 1.6vw, 24px); align-items: start; }
.gallery .g-item.g-main { grid-column: 1 / -1; }
@media (min-width: 760px) {
  .gallery { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .gallery .g-item { grid-column: span 2; }
  .gallery .g-item.g-main { grid-column: 1 / -1; }
  .gallery:has(> .g-main:first-child + .g-item + .g-item:last-child) > .g-item:not(.g-main),
  .gallery:has(> .g-main:first-child + .g-item + .g-item + .g-item + .g-item:last-child) > .g-item:not(.g-main) { grid-column: span 3; }
}
@media (max-width: 759px) {
  .gallery:has(> .g-main:first-child + .g-item + .g-item + .g-item:last-child) { grid-template-columns: minmax(0, 1fr); }
}
.g-item {
  display: block; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: none; color: inherit; font: inherit; text-align: left; cursor: zoom-in; overflow: visible;
}
.g-item img {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover;
  border-radius: var(--e-r-media); background: var(--e-page);
  transition: filter 280ms ease-out;
}
.g-item.g-main img { aspect-ratio: auto; }
/* Drawings show whole on a parchment mat: plats, site plans, floor plans */
.g-item.g-drawing img, .g-item.g-plan img,
.g-item img[src*="-plat."], .g-item img[src*="siteplan"] {
  object-fit: contain; padding: clamp(8px, 1.2vw, 16px); background: var(--e-page);
}
.g-item .g-cap, .g-item figcaption {
  position: static; display: block; margin-top: 10px; padding: 0; background: none;
  color: var(--e-muted); font-family: var(--font-body); font-size: 0.875rem; line-height: 1.5; letter-spacing: 0; text-transform: none;
  transition: color 200ms ease-out;
}
.g-item:hover img { transform: none; }
@media (hover: hover) {
  .g-item:hover img { filter: brightness(1.05); }
  .g-item:hover .g-cap { color: var(--e-ink); }
}
.g-item:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 4px; border-radius: calc(var(--e-r-media) + 4px); }

/* The campus rendering sits in the content column like every other lead */
.lead-cinema.e-ld-lead { background: var(--e-paper); overflow: visible; }
.lead-cinema .lead-cinema__button { min-height: 0; border-radius: 0; }
.lead-cinema .lead-cinema__button::before { content: none; }
.lead-cinema .lead-cinema__button img { min-height: 0; max-height: none; aspect-ratio: auto; animation: none; clip-path: none; }
.lead-cinema .g-cap { position: static; display: block; right: auto; color: var(--e-muted); }

/* ---------- Details: hairline groups on parchment ---------- */
.ld-grid { display: grid; gap: clamp(3rem, 2rem + 3vw, 4.5rem); }
@media (min-width: 1024px) { .ld-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); column-gap: clamp(3rem, 6vw, 6.5rem); align-items: start; } }
.ld-block { margin: 0 0 clamp(2.75rem, 2rem + 2vw, 3.75rem); padding-top: 24px; border-top: 1px solid var(--e-hair-2); }
.ld-grid > div > .ld-block:last-child, .e-ld-details--wide .ld-block:last-child { margin-bottom: 0; }
.ld-block h2 {
  margin: 0 0 18px; font-family: var(--font-body); font-weight: 500; color: var(--e-ink);
  font-size: clamp(1.375rem, 1.17rem + 0.75vw, 1.875rem); line-height: 1.15; letter-spacing: -0.02em; text-wrap: balance;
}
.ld-block h2 .mono-label, .ld-block h2 .e-ld-src {
  display: block; margin: 6px 0 0 !important; font-family: var(--font-body); font-weight: 400;
  font-size: 0.9375rem; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--e-muted);
}
.ld-block .section-note { margin: -8px 0 18px; font-size: 0.9375rem; line-height: 1.5; color: var(--e-muted); }
.ld-block > p, .ld-block-body > p { max-width: 64ch; color: var(--e-text); font-size: 1.0625rem; line-height: 1.7; }
.ld-block p:last-child { margin-bottom: 0; }
.ld-block .src-note, .ld-block-body > p.src-note { margin: 14px 0 0; font-size: 0.875rem; line-height: 1.55; color: var(--e-muted); max-width: 72ch; }

/* Slaughter Ranch has no aside: heading left, content right, like the execution record */
@media (min-width: 1024px) {
  .e-ld-details--wide .ld-block { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(2.5rem, 5vw, 5.5rem); }
  .e-ld-details--wide .ld-block-head { position: sticky; top: calc(var(--header-h) + 76px); align-self: start; }
  .e-ld-details--wide .ld-block-head h2 { margin-bottom: 0; }
  .e-ld-details--wide .ld-block-head .section-note { margin: 10px 0 0; }
}

.info-list { margin: 0; padding: 0; list-style: none; border-top: 0; }
.info-list li { position: relative; margin: 0; padding: 13px 0 14px; border-bottom: 1px solid var(--e-hair); color: var(--e-text); font-size: 1.0625rem; line-height: 1.55; }
.info-list li::before { content: none; }
.info-list li:first-child { padding-top: 0; }
.info-list li:last-child { border-bottom: 0; padding-bottom: 0; }
#details .info-list { columns: auto; }

.detail-table { display: table; width: 100%; border: 0; border-collapse: collapse; font-variant-numeric: tabular-nums lining-nums; }
.detail-table th, .detail-table td { padding: 14px 0; border: 0; border-bottom: 1px solid var(--e-hair); text-align: left; vertical-align: baseline; font-size: 1rem; line-height: 1.5; }
.detail-table th { width: 38%; padding-right: 20px; font-family: var(--font-body); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--e-muted); font-size: 0.9375rem; }
.detail-table td { font-weight: 400; color: var(--e-ink); }
.detail-table tr:first-child th, .detail-table tr:first-child td { padding-top: 0; }
.detail-table tr:last-child th, .detail-table tr:last-child td { border-bottom: 0; padding-bottom: 0; }
.detail-table tbody tr:hover, .demo-table tbody tr:hover { background: none; }

.demo-table { display: table; width: 100%; border: 0; border-collapse: collapse; font-variant-numeric: tabular-nums lining-nums; }
.demo-table th, .demo-table td { padding: 13px 0 13px 16px; border: 0; border-bottom: 1px solid var(--e-hair); text-align: right; white-space: nowrap; font-size: 1rem; line-height: 1.45; }
.demo-table th:first-child, .demo-table td:first-child { padding-left: 0; text-align: left; white-space: normal; }
.demo-table thead th { padding-top: 0; font-family: var(--font-body); font-weight: 500; font-size: 0.9375rem; letter-spacing: 0; text-transform: none; color: var(--e-ink); border-bottom: 1px solid var(--e-hair-2); }
.demo-table tbody th { font-family: var(--font-body); font-weight: 400; font-size: 0.9375rem; letter-spacing: 0; color: var(--e-muted); }
.demo-table td { color: var(--e-ink); font-weight: 400; }
.demo-table td:last-child, .demo-table thead th:last-child { font-weight: inherit; color: inherit; }
.demo-table thead th:last-child { color: var(--e-ink); }
.demo-table td:last-child { color: var(--e-ink); }
.demo-table + .demo-table { margin-top: clamp(1.75rem, 1.5rem + 1vw, 2.25rem); }
.demo-table--drive { max-width: 520px; }
.src-note { margin: 14px 0 0; font-family: var(--font-body); font-size: 0.875rem; line-height: 1.55; letter-spacing: 0; text-transform: none; color: var(--e-muted); max-width: 72ch; }

/* Traffic counts and campus scale: a ledger on light, label left, figure right */
.ld-block.dark { background: none; color: var(--e-text); padding: 24px 0 0 !important; border-radius: 0; box-shadow: none; }
.ld-block.dark::before, .ld-block.dark::after { content: none; }
.ld-block.dark h2 { color: var(--e-ink) !important; }
.ld-block.dark p { color: var(--e-text) !important; }
.ld-block.dark .section-note { color: var(--e-muted) !important; }
.ld-block .traffic { display: grid; grid-template-columns: minmax(0, 1fr) !important; gap: 0 clamp(2rem, 5vw, 4rem); margin: 0 !important; }
.ld-block .traffic .t {
  display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: baseline; gap: 20px;
  margin: 0; padding: 15px 0 16px; border: 0; border-bottom: 1px solid var(--e-hair); background: none; border-radius: 0;
}
.ld-block .traffic .t:first-child { padding-top: 4px; }
.ld-block .traffic .t:last-child { grid-column: auto; border-bottom: 0; padding-bottom: 0; }
.ld-block .traffic .n {
  display: block; flex: none; font-family: var(--font-body); font-weight: 500; color: var(--e-ink);
  font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.2; letter-spacing: -0.015em;
  font-variant-numeric: tabular-nums lining-nums; white-space: nowrap;
}
.ld-block .traffic .l { display: block; margin: 0; font-family: var(--font-body); font-size: 0.9375rem; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--e-muted); }
.ld-block .traffic .l::first-line { color: var(--e-ink); }
.ld-block .traffic .t::before, .ld-block .traffic .t::after { content: none; }
@media (min-width: 760px) {
  .e-ld-details--wide .traffic { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .e-ld-details--wide .traffic .t:nth-child(-n+2) { padding-top: 4px; }
  .e-ld-details--wide .traffic .t:nth-last-child(-n+2):nth-child(odd), .e-ld-details--wide .traffic .t:last-child { border-bottom: 0; padding-bottom: 0; }
}

/* ---------- Aside: the listing contact, the flyer and the map ---------- */
.ld-aside { position: static; display: grid; gap: clamp(2.25rem, 2rem + 1vw, 2.75rem); align-content: start; }
@media (min-width: 1024px) { .ld-aside { padding-left: clamp(24px, 3vw, 40px); border-left: 1px solid var(--e-hair-2); } }
@media (min-width: 1024px) and (min-height: 1000px) { .ld-aside { position: sticky; top: var(--sticky-top); } }
.contact-card, .download-card, .location-card {
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--e-text);
}
.contact-card .mono-label, .e-ld-h, .location-card > b {
  display: block; margin: 0 0 12px; font-family: var(--font-body); font-weight: 500;
  font-size: 0.9375rem; line-height: 1.4; letter-spacing: 0; text-transform: none; color: var(--e-ink);
}
.contact-card .who b { display: block; font-family: var(--font-body); font-weight: 500; font-size: 1.25rem; line-height: 1.25; letter-spacing: -0.012em; color: var(--e-ink); }
.contact-card .who span { display: block; margin-top: 2px; color: var(--e-muted); font-size: 0.9375rem; }
.contact-card .ways { display: grid; justify-items: start; margin-top: 8px; }
.contact-card .ways + .who { margin-top: 22px !important; }
.contact-card .ways a {
  display: inline-flex; align-items: center; min-height: 44px;
  font-family: var(--font-body); font-size: 1rem; letter-spacing: 0; font-variant-numeric: tabular-nums lining-nums;
  color: var(--e-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: var(--e-hair-2);
  transition: text-decoration-color 200ms ease-out;
}
.contact-card .ways a:hover { color: var(--e-ink); text-decoration-color: currentColor; }
.contact-card .e-btn, .contact-card .btn {
  margin-top: 20px; width: auto; min-height: 52px; padding: 0 24px;
  background: var(--e-navy); color: #fff; border: 0; border-radius: var(--e-r-btn);
  font-family: var(--font-body); font-weight: 500; font-size: 1rem; box-shadow: var(--e-shadow-btn);
}
.contact-card .btn:hover { background: #2B4A36; color: #fff; }
.contact-card :focus-visible, .download-card:focus-visible, .location-card :focus-visible { outline-color: var(--e-navy); }
.download-card {
  display: block; padding-top: 22px; border-top: 1px solid var(--e-hair-2);
  text-decoration: none; transition: none;
}
.download-card:hover { transform: none; box-shadow: none; border-color: var(--e-hair-2); }
.download-card .doc { display: none; }
.download-card b {
  display: inline; font-family: var(--font-body); font-weight: 500; font-size: 1.125rem; line-height: 1.35; color: var(--e-ink);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2);
  transition: text-decoration-color 200ms ease-out;
}
.download-card:hover b { text-decoration-color: currentColor; }
.download-card span span { display: block; margin-top: 6px; font-size: 0.9375rem; color: var(--e-muted); }
.download-card:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 4px; border-radius: 6px; }
.location-card { display: flex; flex-direction: column; align-items: flex-start; padding-top: 22px; border-top: 1px solid var(--e-hair-2); }
.location-card > * { order: 4; }
.location-card > b, .location-card > .e-ld-h { order: 1; }
.location-card > .location-map { order: 2; }
.location-card > p { order: 3; }
.location-card .location-map { width: 100% !important; height: 220px !important; margin: 2px 0 0 !important; border-radius: var(--e-r-media) !important; background: var(--e-page); }
.location-card p { margin: 10px 0 0; color: var(--e-muted); font-size: 0.9375rem; line-height: 1.5; }
.location-card .text-link, .location-card .e-link { margin-top: 2px; font-size: 1rem; font-weight: 500; color: var(--e-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: var(--e-hair-2); border: 0; }
.location-card .text-link:hover, .location-card .e-link:hover { color: var(--e-ink); text-decoration-color: currentColor; }
.location-card .text-link .arrow { display: none; }

/* ---------- Slaughter Ranch ---------- */
/* Chapter nav: a quiet paper rail under the header, the active chapter underlined in navy */
.sr-chapters {
  position: sticky; top: var(--header-h); z-index: 800;
  background: var(--e-paper); -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: 0 1px 0 var(--e-hair);
}
.sr-chapters ul { list-style: none; display: flex; gap: clamp(18px, 2.4vw, 34px); margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.sr-chapters ul::-webkit-scrollbar { display: none; }
.sr-chapters a {
  display: flex; align-items: center; min-height: 52px; padding: 2px 1px 0;
  font-family: var(--font-body); font-size: 0.9375rem; font-weight: 500; letter-spacing: 0; text-transform: none; white-space: nowrap;
  color: var(--e-muted); text-decoration: none; border-bottom: 2px solid transparent;
  transition: color 200ms ease-out, border-color 200ms ease-out;
}
.sr-chapters a:hover { color: var(--e-ink); }
.sr-chapters a.on { color: var(--e-ink); border-bottom-color: var(--e-navy); }
.sr-chapters a:focus-visible { outline: 3px solid var(--e-navy); outline-offset: -3px; border-radius: 6px; }
@media (max-width: 1023px) {
  html:not(.js) .sr-chapters { top: 0; }
  .sr-chapters ul { -webkit-mask-image: linear-gradient(90deg, #000 80%, transparent); mask-image: linear-gradient(90deg, #000 80%, transparent); padding-right: 40px; }
}

/* Overview: concept rendering beside the statement, then the facts as a ledger */
.e-ld-over { display: grid; gap: clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem); }
@media (min-width: 1024px) { .e-ld-over { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(2.5rem, 5vw, 5rem); align-items: center; } }
.sr-lede { margin: 0; max-width: 32ch; font-family: var(--font-body); font-weight: 500; color: var(--e-ink); font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.4; letter-spacing: -0.015em; text-wrap: pretty; }
.sr-lede em { font-style: normal; color: inherit; }
.sr-facts {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 clamp(2rem, 4vw, 4rem);
  margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); padding-top: 8px; border: 0; border-top: 1px solid var(--e-hair-2); border-radius: 0; background: none; overflow: visible;
}
@media (min-width: 640px) { .sr-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sr-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sr-facts > div { display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: baseline; gap: 16px; padding: 15px 0 16px; background: none; text-align: left; border-bottom: 1px solid var(--e-hair); }
.sr-facts .n { display: block; flex: none; font-family: var(--font-body); font-weight: 500; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.2; letter-spacing: -0.015em; color: var(--e-ink); font-variant-numeric: tabular-nums lining-nums; }
.sr-facts .l { display: block; margin: 0; font-family: var(--font-body); font-size: 0.9375rem; line-height: 1.45; letter-spacing: 0; text-transform: none; color: var(--e-muted); }

/* The site: the plan never stretches, the tracts are plain hairline groups */
.e-sec-head .section-note { margin: 12px 0 0; font-size: 1rem; color: var(--e-muted); }
.sr-tracts-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 1.5rem + 2vw, 3rem); align-items: start; }
@media (min-width: 1160px) {
  .sr-tracts-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(2.5rem, 4.5vw, 4.5rem); }
  .sr-tract-stage { position: sticky; top: calc(var(--header-h) + 76px); }
}
.sr-tract-stage { margin: 0; border: 0; border-radius: 0; background: none; overflow: visible; }
.sr-tract-stage img { display: block; width: 100%; height: auto; border-radius: var(--e-r-media); background: var(--e-page); }
.sr-tract-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; height: auto; }
@media (min-width: 640px) and (max-width: 1159px) { .sr-tract-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 4vw, 3rem); } }
.tract-card {
  display: block; padding: 20px 0 22px; border: 0; border-top: 1px solid var(--e-hair-2); border-radius: 0; background: none; box-shadow: none; text-align: left;
}
@media (min-width: 1160px) { .tract-card:first-child { padding-top: 0; border-top: 0; } }
.tract-card h3 { margin: 0; display: block; }
.tract-card .tract-status { margin: 4px 0 0; font-size: 0.9375rem; font-weight: 500; color: var(--e-ink); }
.tract-card p { margin: 8px 0 0; font-size: 1rem; line-height: 1.6; color: var(--e-text); }
.tract-card .chip { display: inline; margin: 0; padding: 0; background: none; border-radius: 0; color: var(--e-ink); font-size: 0.9375rem; font-weight: 500; }
.sr-tract-note { margin-top: clamp(1.75rem, 1.5rem + 1vw, 2.5rem); }

/* Development, demand and location blocks */
.sr-dev-grid { display: grid; gap: clamp(1.75rem, 1.5rem + 1vw, 2.5rem); margin: 0 0 clamp(1.75rem, 1.5rem + 1vw, 2.25rem); }
@media (min-width: 1160px) { .sr-dev-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); align-items: start; } }
.sr-dev-copy p { margin: 0 0 14px; color: var(--e-text); font-size: 1.0625rem; line-height: 1.7; max-width: 60ch; }
.sr-dev-copy p:first-child { color: var(--e-ink); }
.sr-dev-copy b { font-weight: 500; color: var(--e-ink); }
.sr-dev-photo { margin: 0; border: 0; border-radius: 0; overflow: visible; }
.sr-dev-photo img { display: block; width: 100%; height: auto; border-radius: var(--e-r-media); background: var(--e-page); }
.sr-dev-photo figcaption { margin-top: 10px; padding: 0; font-family: var(--font-body); font-size: 0.875rem; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--e-muted); }
.sr-demand-intro { margin: 0 0 clamp(1.5rem, 1.25rem + 1vw, 2rem); }
.sr-demand { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.5rem, 1.25rem + 1vw, 2rem) clamp(1.5rem, 3vw, 2.5rem); margin: 0; }
@media (min-width: 760px) { .sr-demand { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sr-demand > div { padding-top: 18px; border-top: 1px solid var(--e-hair-2); }
.sr-demand .e-ld-h { margin-bottom: 8px; }
.sr-demand p { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--e-text); }
.sr-demand-close { margin: clamp(1.75rem, 1.5rem + 1vw, 2.5rem) 0 0; font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem) !important; line-height: 1.5; color: var(--e-ink) !important; }
.sr-demand-close em { font-style: normal; }
.sr-map-frame { margin: 0; border: 0; border-radius: 0; background: none; overflow: visible; }
.sr-map-frame .sr-hero-map { display: block; width: 100%; height: clamp(320px, 36vw, 480px); border: 0; border-radius: var(--e-r-media); background: var(--e-page); }
.sr-map-frame .sr-map-bar { align-items: center; }
.sr-map-frame .sr-map-bar .e-link { min-height: 44px; font-size: 0.9375rem; }

/* Closing: the next step, the people and the flyer request on paper */
.e-ld-close .e-cta { align-items: end; }
.e-ld-close .e-h2 { max-width: 20ch; }
.e-ld-close-meta { margin: 14px 0 0; font-size: 1rem; color: var(--e-muted); }
.e-ld-close .e-lede { margin-top: 14px; }
.e-ld-people { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--e-gap); margin-top: clamp(3rem, 2.5rem + 2vw, 4.5rem); }
@media (min-width: 760px) { .e-ld-people { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.e-ld-person { display: grid; justify-items: start; align-content: start; padding: 22px 0 24px; border-top: 1px solid var(--e-hair-2); }
.e-ld-person b { font-weight: 500; font-size: 1.25rem; line-height: 1.25; letter-spacing: -0.012em; color: var(--e-ink); }
.e-ld-person span { margin: 4px 0 8px; font-size: 0.9375rem; color: var(--e-muted); }
.e-ld-person a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1rem; color: var(--e-ink); font-variant-numeric: tabular-nums lining-nums; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: var(--e-hair-2); transition: text-decoration-color 200ms ease-out; }
.e-ld-person a:hover { text-decoration-color: currentColor; }
.e-ld-close .flyer-request { max-width: none; margin: clamp(1rem, 0.75rem + 1vw, 1.5rem) 0 0; text-align: left; border-top: 1px solid var(--e-hair-2); border-bottom: 1px solid var(--e-hair-2); }
.e-ld-close .flyer-request summary {
  position: relative; display: block; list-style: none; cursor: pointer;
  min-height: 44px; padding: 22px 56px 22px 0;
  font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem); font-weight: 500; line-height: 1.4; color: var(--e-ink); text-decoration: none;
}
.e-ld-close .flyer-request summary::-webkit-details-marker { display: none; }
.e-ld-close .flyer-request summary::before, .e-ld-close .flyer-request summary::after {
  content: ""; position: absolute; right: 12px; top: 50%; width: 16px; height: 1.5px; margin-top: -1px;
  background: var(--e-ink); border-radius: 2px; transition: transform 220ms var(--e-ease), opacity 220ms ease-out;
}
.e-ld-close .flyer-request summary::before { transform: rotate(90deg); }
.e-ld-close .flyer-request[open] summary::before { transform: rotate(0deg); opacity: 0; }
.e-ld-close .flyer-request summary:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 3px; border-radius: 6px; }
.e-ld-close .flyer-request > .capture-note { margin: 0 0 6px; color: var(--e-muted); font-size: 0.9375rem; }
.e-ld-form { max-width: 720px; margin: 0; padding: 0 0 28px; }
.e-ld-form .capture-note { margin: 0 0 18px; color: var(--e-muted); font-size: 0.9375rem; }
@media (max-width: 600px) { .e-ld-form .form-actions button { width: 100%; } }

/* ---------- Listing page, through its existing classes only ---------- */
.subhero.ld-head {
  overflow: hidden; isolation: isolate; background: var(--e-navy); color: var(--e-on);
  padding-top: calc(var(--header-h) + clamp(1.75rem, 1rem + 2.6vw, 3.5rem));
  padding-bottom: calc(var(--e-r-sheet) + clamp(2rem, 1.5rem + 2vw, 3.25rem));
}
.subhero.ld-head::before { inset: auto 0 0 0; height: 75%; z-index: -1; background: radial-gradient(90% 100% at 50% 100%, var(--e-navy-2), transparent 72%); }
.subhero.ld-head::after {
  inset: auto 0 -1px 0; z-index: 6; height: var(--e-r-sheet); opacity: 1; mix-blend-mode: normal;
  background: var(--e-paper); border-radius: var(--e-r-sheet) var(--e-r-sheet) 0 0;
}
.subhero.ld-head .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.subhero.ld-head .ld-breadcrumb { order: 1; margin: 0 0 10px; }
.subhero.ld-head h1 { order: 2; }
.subhero.ld-head .ld-tags { order: 3; }
.subhero.ld-head .ld-addr { order: 4; }
.subhero.ld-head .wrap > .mono-label { order: 5; }
.ld-breadcrumb a { min-height: 44px; margin-top: -8px; color: var(--e-on-muted); font-size: 0.95rem; letter-spacing: 0; }
.ld-breadcrumb a:hover { color: var(--e-on); text-decoration: underline; text-underline-offset: 5px; }
.subhero.ld-head h1 {
  margin: 0; max-width: 15ch !important; font-family: var(--font-body); font-weight: 500; color: var(--e-on);
  font-size: clamp(2.6rem, 1.5rem + 3.9vw, 4.6rem); line-height: 1.02; letter-spacing: -0.034em; text-wrap: balance;
}
.ld-tags { display: flex; flex-wrap: wrap; gap: 0; margin: clamp(1.25rem, 1rem + 1vw, 1.75rem) 0 0; }
.ld-tag, .ld-tag.gold, .ld-tag.line { padding: 0; border: 0; border-radius: 0; background: none; color: var(--e-on); font-family: var(--font-body); font-size: 1.0625rem; font-weight: 400; letter-spacing: 0; line-height: 1.5; }
.ld-tag + .ld-tag::before { content: "\00B7"; margin: 0 9px; color: var(--e-on-muted); }
.ld-addr { margin: 6px 0 0; gap: 0 18px; color: var(--e-on-muted); font-size: 1rem; }
.ld-addr a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -10px; color: var(--e-on); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: rgba(244, 239, 227, 0.4); }
.subhero.ld-head .wrap > .mono-label { margin: 6px 0 0 !important; color: var(--e-on-muted) !important; font-size: 0.9375rem; letter-spacing: 0; }
.enmb { background: var(--e-paper) !important; padding: clamp(0.75rem, 0.4rem + 1vw, 1.5rem) 0 0 !important; }
.enmb .wrap { display: flex; flex-direction: column; }
.enmb .enmb-frame { order: 1; border: 0 !important; border-radius: var(--e-r-media) !important; box-shadow: none !important; }
.enmb .enmb-label { order: 2; margin: 10px 0 0 !important; font-size: 0.875rem !important; font-weight: 400 !important; color: var(--e-muted) !important; }
.enmb + .sec-tight { padding-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
main > .subhero.ld-head ~ section.paper { background: var(--e-paper); }

/* ---------- Lightbox: navy, soft controls, no gold ---------- */
.lightbox { background: rgba(17, 23, 42, 0.96); }
.lightbox img { border: 0; border-radius: var(--e-r-field); }
.lb-btn {
  width: 48px; height: 48px; border: 0; border-radius: var(--e-r-btn);
  background: rgba(244, 239, 227, 0.08); color: var(--e-on);
  transition: background-color 200ms ease-out;
}
.lb-btn:hover { background: rgba(244, 239, 227, 0.16); border: 0; }
.lightbox-cap { color: var(--e-on); font-size: 0.9375rem; letter-spacing: 0; }
.lightbox-count { color: var(--e-on-muted); }
.lightbox-original { color: var(--e-on); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: rgba(244, 239, 227, 0.4); }
.lightbox-original:hover { text-decoration-color: var(--e-on); }

/* ---------- Phones ---------- */
@media (max-width: 600px) {
  .ld-block { padding-top: 20px; }
  .detail-table, .detail-table tbody, .detail-table tr { display: block; width: 100%; }
  .detail-table th, .detail-table td { display: block; width: auto; padding: 0; border: 0; }
  .detail-table tr { padding: 12px 0 13px; border-bottom: 1px solid var(--e-hair); }
  .detail-table tr:first-child { padding-top: 0; }
  .detail-table tr:last-child { border-bottom: 0; padding-bottom: 0; }
  .detail-table th { margin-bottom: 2px; font-size: 0.875rem; }
  .detail-table tr:first-child th, .detail-table tr:first-child td { padding-top: 0; }
  .demo-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .demo-table th, .demo-table td { padding: 11px 0 11px 12px; font-size: 0.9375rem; }
  .demo-table thead th { font-size: 0.875rem; letter-spacing: 0; }
  .demo-table tbody th { font-size: 0.875rem; }
  .ld-block .traffic .t { gap: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .g-item img, .sr-chapters a, .lb-btn { transition: none; }
}

/* ---------- B4: /team, /contact, legal bodies, /thanks, /404 (Oct 2026) ----------
   Overrides only. Appended after the existing October layer; nothing above is
   edited or reordered. New portrait exports (dist/images, from the 746px masters):
     python3 -c "from PIL import Image
     for n in ('stuart-monteith',):
         s=Image.open(f'dist/images/{n}.jpg').convert('RGB')
         for w in (360,720): s.resize((w,w),Image.LANCZOS).save(f'dist/images/{n}-{w}.webp','WEBP',quality=82,method=6)"
*/

/* /team: each partner opens on their own portrait */
.e-bio { display: grid; gap: 1.75rem; }
.e-bio__portrait { margin: 0; width: min(100%, 360px); }
.e-bio__portrait img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 30%; border-radius: var(--e-r-media); background: var(--e-page); }
.e-bio__main .e-h2 { margin: 0; }
.e-bio__role { margin: 12px 0 0; font-size: 1.0625rem; line-height: 1.5; color: var(--e-muted); }
.e-bio__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; margin: 6px 0 0; }
.e-bio__links a {
  display: inline-flex; align-items: center; min-height: 44px; font-size: 1rem; color: var(--e-ink);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: var(--e-hair-2);
  transition: text-decoration-color 200ms ease-out, color 200ms ease-out;
}
.e-bio__links a:hover { text-decoration-color: currentColor; }
.e-bio__links a.e-linkedin { color: #0A66C2; text-decoration-color: rgba(10, 102, 194, 0.35); }
.e-bio__links a.e-linkedin:hover { text-decoration-color: currentColor; }
.e-bio__copy { margin-top: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); }
.e-bio__copy p { margin: 0; }
.e-bio__copy p + p { margin-top: 1.15em; }
.e-bio__facts { margin-top: 0.75rem; }
.e-bio__facts dl { margin: 0; border-top: 1px solid var(--e-hair-2); }
.e-bio__facts dl > div { padding: 16px 0 18px; border-bottom: 1px solid var(--e-hair); }
.e-bio__facts dt { font-weight: 500; font-size: 1.0625rem; line-height: 1.35; letter-spacing: -0.01em; color: var(--e-ink); }
.e-bio__facts dd { margin: 4px 0 0; max-width: 44ch; font-size: 0.9375rem; line-height: 1.55; color: var(--e-muted); }
.e-bio__facts dd.e-bio__mark { margin: 12px 0 8px; }
.e-bio__mark img { display: block; width: 148px; height: auto; }
@media (min-width: 960px) {
  .e-bio {
    grid-template-columns: minmax(0, 360px) minmax(0, 1fr); grid-template-rows: auto 1fr;
    grid-template-areas: "media main" "facts main";
    column-gap: clamp(3.5rem, 7vw, 7.5rem); row-gap: 2.25rem; align-items: start;
  }
  .e-bio__portrait { grid-area: media; width: 100%; }
  .e-bio__main { grid-area: main; padding-top: 4px; }
  .e-bio__facts { grid-area: facts; margin-top: 0; }
}

/* /team: execution figures as the homepage ledger, three across on wide screens */
.e-ledger--team { margin-bottom: clamp(3.25rem, 2.4rem + 2.6vw, 5rem); border-top: 1px solid var(--e-hair-2); }
@media (min-width: 1024px) { .e-ledger--team { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* /team: the firm record as a hairline list (native details; main.js still collapses .tr-firm on phones) */
.tr-firm.e-firm { margin: 0; padding: 0; border-top: 0; }
.e-firm__head {
  position: relative; display: flex; align-items: center; min-height: 72px;
  padding: 20px 56px 20px 0; border-top: 1px solid var(--e-hair-2);
  list-style: none; cursor: pointer;
}
.e-firm__head::-webkit-details-marker { display: none; }
.e-firm__head .e-h3 { margin: 0; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; text-decoration-color: transparent; transition: text-decoration-color 200ms ease-out; }
.e-firm__head:hover .e-h3 { text-decoration-color: var(--e-hair-2); }
.e-firm__head::before, .e-firm__head::after {
  content: ""; position: absolute; right: 12px; top: 50%; width: 18px; height: 1.5px; margin-top: -1px;
  background: var(--e-ink); border-radius: 2px; transition: transform 220ms var(--e-ease), opacity 220ms ease-out;
}
.e-firm__head::before { transform: rotate(90deg); }
.e-firm[open] > .e-firm__head::before { transform: rotate(0deg); opacity: 0; }
.e-firm__head:focus-visible { outline: 3px solid var(--e-navy); outline-offset: 3px; border-radius: 8px; }
.e-firm__list { border-bottom: 1px solid var(--e-hair); }
.e-deal { display: grid; gap: 6px; padding: 20px 0 22px; border-top: 1px solid var(--e-hair); }
.e-deal__meta { display: flex; flex-wrap: wrap; gap: 0 14px; margin: 0; font-size: 0.9375rem; line-height: 1.5; color: var(--e-muted); }
.e-deal__meta span:first-child { color: var(--e-text); }
.e-deal .e-h4 { margin: 2px 0 0; }
.e-deal .e-deal__desc { margin: 2px 0 0; max-width: 62ch; font-size: 1rem; line-height: 1.6; color: var(--e-text); }
.e-deal__desc a { color: var(--e-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); }
.e-deal__desc a:hover { text-decoration-color: currentColor; }
@media (min-width: 760px) {
  .e-deal { grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); grid-template-areas: "meta title" "meta desc"; column-gap: clamp(2rem, 4vw, 3.5rem); row-gap: 6px; padding: 22px 0 24px; }
  .e-deal__meta { grid-area: meta; flex-direction: column; gap: 2px; padding-top: 3px; }
  .e-deal .e-h4 { grid-area: title; margin: 0; }
  .e-deal .e-deal__desc { grid-area: desc; margin: 0; }
}
@media (min-width: 1100px) {
  .e-deal { grid-template-columns: minmax(0, 2.1fr) minmax(0, 3.3fr) minmax(0, 5fr); grid-template-areas: "meta title desc"; align-items: baseline; }
}

/* /team: a calm closing line */
.e-sec--close { padding-block: clamp(3.75rem, 2.75rem + 3vw, 6rem); }
.e-sign { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px 48px; }
.e-sign__line { margin: 0; font-size: clamp(1.375rem, 1.17rem + 0.75vw, 1.875rem); font-weight: 500; line-height: 1.15; letter-spacing: -0.02em; color: var(--e-ink); }
.e-sign .e-actions { margin-top: 0; }
.e-sign__line span { white-space: nowrap; }
@media (max-width: 359px) { .e-sign__line span { white-space: normal; } }

/* /contact: form first, direct lines beside it (above it on phones) */
.e-contact { display: grid; gap: clamp(2.25rem, 1.8rem + 2vw, 3rem); }
.e-direct { margin: 0; border-top: 1px solid var(--e-hair-2); }
.e-direct > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 16px; min-height: 56px; padding: 4px 0; border-bottom: 1px solid var(--e-hair); }
.e-direct dt { font-size: 0.9375rem; color: var(--e-muted); }
.e-direct dd { margin: 0; font-size: 1.0625rem; font-weight: 500; color: var(--e-ink); }
.e-direct a {
  display: inline-flex; align-items: center; min-height: 44px; color: var(--e-ink);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: var(--e-hair-2);
  transition: text-decoration-color 200ms ease-out;
}
.e-direct a:hover { text-decoration-color: currentColor; }
.e-direct > div:first-child dd { font-variant-numeric: tabular-nums lining-nums; }
.e-contact__about p { margin: 0; max-width: 46ch; font-size: 0.9375rem; line-height: 1.6; color: var(--e-muted); }
.e-contact__about p + p { margin-top: 10px; }
@media (max-width: 959px) { .e-contact__about { padding-top: 1.75rem; border-top: 1px solid var(--e-hair); } }
@media (min-width: 960px) {
  .e-contact {
    grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); grid-template-rows: auto 1fr;
    grid-template-areas: "form direct" "form about"; column-gap: clamp(3rem, 6vw, 7rem); row-gap: 0; align-items: start;
  }
  .e-contact__form { grid-area: form; }
  .e-contact__direct, .e-contact__about { padding-left: clamp(24px, 3vw, 40px); border-left: 1px solid var(--e-hair-2); }
  .e-contact__direct { grid-area: direct; padding-bottom: 2.25rem; }
  .e-contact__about { grid-area: about; align-self: start; }
  .e-direct { display: grid; gap: 22px; border-top: 0; }
  .e-direct > div { display: grid; gap: 2px; min-height: 0; padding: 0; border: 0; }
  .e-direct > div:first-child dd { font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem); letter-spacing: -0.02em; line-height: 1.2; }
}

/* /contact: the system field, beating the legacy condensed phone form */
.e-contact form > .form-help { margin: 0 0 22px; font-size: 0.9375rem; color: var(--e-muted); }
.e-contact .contact-context:not([hidden]) { margin: 0 0 20px; padding: 0 0 16px; border: 0; border-bottom: 1px solid var(--e-hair); font-size: 1.0625rem; font-weight: 500; color: var(--e-ink); }
.e-contact .e-form .form-grid { gap: 20px 18px; }
.e-contact .e-form .field label { margin: 0; font-size: 0.9375rem; font-weight: 500; color: var(--e-ink); }
.e-contact .e-form .field label .req { color: var(--e-muted); font-weight: 400; }
.e-contact .e-form .field input:not([type="hidden"]),
.e-contact .e-form .field select,
.e-contact .e-form .field textarea {
  min-height: 52px; padding: 13px 15px; font-size: 1rem; color: var(--e-text);
  background-color: var(--e-field); border: 1.5px solid transparent; border-radius: var(--e-r-field); box-shadow: none;
}
.e-contact .e-form .field input:not([type="hidden"]):hover,
.e-contact .e-form .field select:hover,
.e-contact .e-form .field textarea:hover { background-color: var(--e-field-hover); }
.e-contact .e-form .field input:not([type="hidden"]):focus,
.e-contact .e-form .field select:focus,
.e-contact .e-form .field textarea:focus { outline: none; background-color: #fff; border-color: var(--e-ink); box-shadow: 0 0 0 4px var(--e-gold-soft); }
.e-contact .e-form .field select {
  -webkit-appearance: none; appearance: none; padding-right: 46px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.75l5.5 5.5 5.5-5.5' fill='none' stroke='%235A6072' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 18px center; background-size: 14px 9px; background-repeat: no-repeat;
}
.e-contact .e-form .field textarea { min-height: 168px; height: auto; resize: vertical; line-height: 1.55; }
.e-contact .e-form .field input:not([type="hidden"]):user-invalid,
.e-contact .e-form .field select:user-invalid,
.e-contact .e-form .field textarea:user-invalid,
.e-contact .e-form .field input[aria-invalid="true"]:not([type="hidden"]),
.e-contact .e-form .field select[aria-invalid="true"],
.e-contact .e-form .field textarea[aria-invalid="true"] { border-color: #B42318; background-color: #fff; box-shadow: none; }
.e-contact .e-form .field input[aria-invalid="true"]:not([type="hidden"]):focus,
.e-contact .e-form .field textarea[aria-invalid="true"]:focus { border-color: #B42318; box-shadow: 0 0 0 4px rgba(180, 35, 24, 0.12); }
.e-form-submit { display: grid; justify-items: start; margin-top: 10px; }
.e-form-submit .e-btn { cursor: pointer; }
.e-form-submit .form-help { margin: 18px 0 0; max-width: 60ch; font-size: 0.9375rem; line-height: 1.55; color: var(--e-muted); }
.e-form-submit .form-help + .form-help { margin-top: 6px; }
.e-form-submit .form-privacy a { color: var(--e-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); }
.e-form-submit .form-privacy a:hover { text-decoration-color: currentColor; }
@media (max-width: 600px) {
  .e-contact .e-form .form-grid { gap: 18px; }
  .e-contact .e-form .field textarea { min-height: 150px; height: auto; }
  .e-form-submit { justify-items: stretch; }
  .e-form-submit .e-btn { width: 100%; }
}

/* Legal bodies: text unchanged, a reading measure, a clear heading scale, quiet meta */
.e-legal { display: grid; gap: 1.25rem; }
.e-legal .legal-updated { margin: 0; font-size: 0.9375rem; line-height: 1.5; letter-spacing: 0; color: var(--e-muted); }
.e-legal .legal-body { max-width: 68ch; }
.e-legal .legal-body p, .e-legal .legal-body li { font-size: 1.0625rem; line-height: 1.7; color: var(--e-text); }
.e-legal .legal-body p { margin: 0 0 1.1em; }
.e-legal .legal-body > p:first-child { font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem); line-height: 1.6; color: var(--e-ink); }
.e-legal .legal-body > p:last-child { margin-bottom: 0; }
.e-legal .legal-body h2 {
  margin: clamp(2.25rem, 1.9rem + 1.5vw, 3.25rem) 0 1rem; padding-top: clamp(1.5rem, 1.25rem + 0.8vw, 2rem); border-top: 1px solid var(--e-hair-2);
  font-family: var(--font-body); font-weight: 500; font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem); line-height: 1.2; letter-spacing: -0.02em; color: var(--e-ink); text-wrap: balance;
}
.e-legal .legal-body h3 { margin: 1.75rem 0 0.55rem; font-family: var(--font-body); font-weight: 500; font-size: 1.1875rem; line-height: 1.3; letter-spacing: -0.012em; color: var(--e-ink); }
.e-legal .legal-body ul { list-style: disc; margin: 0 0 1.25em; padding: 0 0 0 1.2rem; }
.e-legal .legal-body li { position: static; padding: 3px 0 3px 4px; }
.e-legal .legal-body li::before { content: none; display: none; }
.e-legal .legal-body li::marker { color: var(--e-muted); }
.e-legal .legal-body a { color: var(--e-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--e-hair-2); transition: text-decoration-color 200ms ease-out; }
.e-legal .legal-body a:hover { text-decoration-color: currentColor; }
@media (min-width: 960px) {
  .e-legal { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); column-gap: clamp(3rem, 6vw, 6rem); align-items: start; }
  .e-legal .legal-updated { position: sticky; top: var(--sticky-top); padding-top: 6px; }
}

/* /thanks and /404: calm, with the existing actions */
.e-simple > * { max-width: 46rem; }
.e-simple > .e-lede { margin: 0; color: var(--e-ink); }
.e-simple > .e-actions:first-child { margin-top: 0; }
.e-simple .e-actions { margin-top: 1.5rem; }
.e-simple__more { margin: 2.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--e-hair); font-size: 1.0625rem; color: var(--e-text); }
.e-simple__more > a:not(.e-link) { display: inline-block; padding-block: 10px; color: var(--e-ink); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: var(--e-hair-2); font-variant-numeric: tabular-nums lining-nums; }
.e-simple__more > a:not(.e-link):hover { text-decoration-color: currentColor; }

/* Phones: full-width primary actions on these short pages */
@media (max-width: 600px) {
  .e-sign .e-actions, .e-simple .e-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .e-sign .e-btn, .e-simple .e-btn { width: 100%; }
  .e-sign .e-link, .e-simple .e-actions .e-link { justify-content: center; }
}

/* ---------- r6 fix batch ---------- */
/* Viewer: the tablist now precedes the panels in the DOM; keep it visually on the right */
@media (min-width: 1024px) {
  .e-opps.is-viewer > .e-opp-stage { grid-column: 1; grid-row: 1; }
  .e-opps.is-viewer > .e-opp-rail { grid-column: 2; grid-row: 1; }
  .is-viewer .e-opp-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .e-opp-tab { min-height: 96px; }
}
/* Listing titles in the stacked articles get a full 44px hit area without moving the layout */
.e-opp .e-h3 a { display: inline-block; padding-block: 10px; margin-block: -10px; }
/* The crest leaves short and narrow desktops, where the hero foot wraps under it */
@media (max-width: 1279px) { .e-hero-crest { display: none; } }
/* Filter row: 44px-wide targets, and a focus ring the scroller cannot clip */
.e-filter .filter-chip { min-width: 44px; padding: 0 8px; text-align: center; }
.e-filter .filter-chip:focus-visible { outline-offset: -3px; }
/* Footer: legal and base-row links meet the 44px floor */
.e-footer-legal a { padding-block: 10px; }
.e-footer-base nav a { min-width: 44px; justify-content: center; }
.e-opp .e-h3 a:focus-visible { border-radius: 10px; }

/* Homepage desktop density: keep the hero's scale, then let each viewport
   show more of the opportunity and the surrounding work. */
@media (min-width: 1024px) {
  .home-page { --e-sec: clamp(4.25rem, 4.5vw, 5.5rem); }
  .home-page main > .e-sec > .wrap { max-width: 1380px; }
  .home-page main > .e-sec .e-h2 { font-size: clamp(2.125rem, 1.4rem + 1.4vw, 2.75rem); line-height: 1.08; }
  .home-page main > .e-sec .e-lede { font-size: clamp(1.0625rem, 0.99rem + 0.2vw, 1.1875rem); line-height: 1.5; }
  .home-page .e-sec-head { margin-bottom: clamp(1.75rem, 2.5vw, 2.5rem); }
  .home-page .e-listings { padding-top: clamp(3.25rem, 4vw, 4.5rem); }

  .home-page .is-viewer .e-opp-media img {
    height: clamp(280px, 36vh, 340px);
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center 48%;
  }
  .home-page .is-viewer #opp-slaughter-ranch .e-opp-media img { object-position: center 62%; }
  .home-page .is-viewer .e-opp .e-opp-body { gap: clamp(1.25rem, 2.2vw, 2rem); }
  .home-page .is-viewer .e-opp .e-h3 { font-size: clamp(1.625rem, 1.25rem + 0.8vw, 2rem); line-height: 1.12; }
  .home-page .is-viewer .e-opp-facts { margin-top: 14px; padding-top: 12px; }
  .home-page .is-viewer .e-opp-cta { margin-top: 16px; }

  .home-page .e-recognition--people { row-gap: 1.5rem; }
  .home-page .e-recognition--people .e-partners { max-width: 520px; }
  .home-page .e-recognition--people .e-award { padding-top: 1.25rem; }
  .home-page .e-record { margin-top: 3rem; padding-top: 2rem; }
  .home-page .e-ledger div { padding-block: 12px; }

  .home-page .e-disciplines { gap: 2.25rem 3rem; }
  .home-page .e-discipline { padding-top: 18px; }
  .home-page .e-discipline p.e-desc { margin-top: 10px; }
  .home-page .e-discipline .e-list { margin-top: 12px; gap: 3px 22px; }
  .home-page .e-discipline .e-link { margin-top: 8px; }
  .home-page .e-row { padding-block: 16px 18px; }

  .home-page .e-venture .e-media { margin-bottom: 16px; }
  .home-page .e-venture .e-media img { aspect-ratio: 16 / 9; }
  .home-page .e-venture p { margin-top: 9px; }
  .home-page .e-close h2 img { width: min(100%, 440px); }
  .home-page .e-phone { font-size: clamp(2.25rem, 2.8vw, 3rem); }
}

@media (min-width: 1400px) {
  .home-page .is-viewer .e-opp-facts { grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); column-gap: 10px; }
  .home-page .is-viewer .e-opp-facts dd { font-size: 0.9375rem; }
}

@media (min-width: 1280px) and (min-height: 900px) and (prefers-reduced-motion: no-preference) {
  .home-page .is-scroll-story .e-opp-media img { height: clamp(320px, 36vh, 360px); }
  .home-page .is-scroll-story .e-opp-tab {
    min-height: clamp(230px, 28vh, 280px);
    padding: 18px 12px 18px 20px;
  }
  .home-page .is-scroll-story .e-opp-tab img { height: 112px; }
  .home-page .is-scroll-story .e-opp-tab b { font-size: 1.0625rem; }
  .home-page .e-opps.is-scroll-story > .e-opp-rail { padding-bottom: min(28vh, 280px); }
}

/* Keep the hero crest and foot together in a short desktop browser window. */
@media (min-width: 1280px) {
  .home-page .e-hero-inner {
    padding-top: calc(var(--header-h) + clamp(1.5rem, 3.5vh, 3.375rem));
    padding-bottom: clamp(1.25rem, 3vh, 2.5rem);
  }
  .home-page .e-hero-title { font-size: clamp(4.75rem, 10.75vh, 5.6rem); }
  .home-page .e-hero-lede { margin-top: clamp(1rem, 2.25vh, 1.4rem); margin-bottom: 10px; }
  .home-page .e-hero .e-actions { margin-top: 24px; }
  .home-page .e-lines { margin-top: 18px; }
  .home-page .e-hero-foot { padding-bottom: calc(var(--e-r-sheet) + 2px); }
}
@media (min-width: 1280px) and (max-height: 750px) {
  .home-page .e-hero-inner { padding-top: calc(var(--header-h) + 1.5rem); padding-bottom: 20px; }
  .home-page .e-hero-title { font-size: clamp(4.5rem, 10vh, 5rem); }
  .home-page .e-hero-lede { margin-top: 1rem; }
  .home-page .e-hero .e-actions { margin-top: 20px; }
  .home-page .e-lines { margin-top: 18px; }
}

/* eaglenest-site-v2, 11/1/26: process removed, so the discipline grids hold 3 tiles
   and the team ledger holds 4 stats. Re-balance both. */
@media (min-width: 1100px) { .e-disciplines.e-disciplines--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .e-disciplines--3 .e-list--2 { grid-template-columns: 1fr; } }
@media (min-width: 1024px) { .e-ledger--team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
