/* Avesa — production stylesheet v2. Black & white only; photography carries all color.
   Naftali register: fixed transparent header -> white bar, 9vw gutters, full-bleed media.
   Type: Prata (display + marks as outlined SVG) + HK Grotesk. */

@font-face { font-family:'Prata'; font-weight:400; font-style:normal; font-display:swap;
  src:url('assets/fonts/prata-400.woff2') format('woff2'); }
@font-face { font-family:'HK Grotesk'; font-weight:400; font-style:normal; font-display:swap;
  src:url('assets/fonts/hkgrotesk-400.woff2') format('woff2'); }
@font-face { font-family:'HK Grotesk'; font-weight:700; font-style:normal; font-display:swap;
  src:url('assets/fonts/hkgrotesk-700.woff2') format('woff2'); }

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:#FFFFFF; color:#000;
  font-family:'HK Grotesk','Helvetica Neue',Arial,sans-serif;
  font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body.inner { padding-top:69px; } /* legacy; sub-pages now run hero under transparent header */
a { color:inherit; text-decoration:none; }
img, video { display:block; width:100%; height:100%; object-fit:cover; }
.serif { font-family:'Prata',Georgia,serif; font-weight:400; }

/* ---------- intro (index only): the Assembly ---------- */
#intro { position:fixed; inset:0; background:#000; z-index:50; cursor:pointer; }
#intro svg { width:100%; height:100%; }
#intro.done, #intro.skip { display:none; }
@media (prefers-reduced-motion: reduce) { #intro { display:none; } }

/* ---------- header: transparent over hero -> white bar ---------- */
header { position:fixed; top:0; left:0; width:100%; z-index:40; display:flex; align-items:center;
  padding:22px 9vw; color:#FFF; transition:background .35s ease, color .35s ease, padding .35s ease, box-shadow .35s ease; }
header .lockup { display:flex; align-items:center; gap:14px; color:inherit; }
header .lockup .mono { height:30px; width:auto; aspect-ratio:848/1046; }
header .lockup .wm { height:15px; width:auto; aspect-ratio:4995/944; }
nav { display:flex; align-items:center; gap:2.9vw; margin-left:auto; }
nav a { font-size:12px; letter-spacing:1px; text-transform:uppercase; font-weight:700; opacity:.92; }
nav a:hover, nav a.active { opacity:1; }
nav a.active { border-bottom:1px solid currentColor; padding-bottom:3px; }
nav a.cta { border:1px solid currentColor; padding:10px 20px; }
header.scrolled { background:#FFFFFF; color:#000; padding:14px 9vw; box-shadow:0 1px 0 #E4E4E4; }

/* ---------- hero: full-bleed clips ---------- */
.hero { position:relative; height:100vh; min-height:560px; overflow:hidden; background:#000; }
.hero video, .hero img { position:absolute; inset:0; }
.hero .scrim { position:absolute; inset:0; background:radial-gradient(ellipse 62% 46% at 50% 46%, rgba(0,0,0,.30), transparent 72%), linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.16) 40%, rgba(0,0,0,.46) 100%); }
.hero .copy { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 8%; gap:28px; }
.hero h1 { font-family:'Prata',Georgia,serif; font-weight:400; color:#FFF;
  font-size:clamp(26px, 3.6vw, 46px); line-height:1.25; max-width:21ch; text-wrap:balance; }
.hero .btn { border:1px solid rgba(255,255,255,.9); color:#FFF; padding:14px 34px;
  font-size:11px; letter-spacing:.24em; text-transform:uppercase; font-weight:700; }
.hero .btn:hover { background:#FFF; color:#000; }
.hero .hero-markets { position:absolute; bottom:34px; left:0; right:0; margin:0; text-align:center;
  font-family:'HK Grotesk',Arial,sans-serif; font-size:11px; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(255,255,255,.92); font-weight:700; }
.hero .hero-markets .dot { color:rgba(255,255,255,.45); padding:0 14px; }

/* ---------- interior page hero: title bottom-left at the gutter (Naftali) ---------- */
.page-hero { position:relative; height:min(56vh,500px); min-height:320px; overflow:hidden; }
.page-hero img { position:absolute; inset:0; }
.page-hero .scrim { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.52) 100%); }
.page-hero .copy { position:absolute; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; text-align:left; padding:0 9vw 6vh; gap:12px; }
.page-hero .heyebrow { font-size:11px; letter-spacing:.3em; text-transform:uppercase; font-weight:700; color:rgba(255,255,255,.85); }
.page-hero h1 { font-family:'Prata',Georgia,serif; font-weight:400; color:#FFF;
  font-size:clamp(28px, 3.4vw, 44px); line-height:1.22; max-width:22ch; text-wrap:balance; }

/* ---------- sub-page hero: full-viewport image, huge centered serif title (Naftali) ---------- */
.sub-hero { position:relative; height:100vh; min-height:560px; overflow:hidden; background:#000; }
.sub-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) brightness(1.06) contrast(1.04); }
.sub-hero .scrim { position:absolute; inset:0; background:radial-gradient(ellipse 58% 40% at 50% 50%, rgba(0,0,0,.46), transparent 72%), linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.30) 18%, rgba(0,0,0,.42) 100%); }
.sub-hero .copy { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:0 6vw; }
.sub-hero h1 { font-family:'Prata',Georgia,serif; font-weight:400; text-transform:uppercase; color:#FFF;
  font-size:clamp(38px, 5.6vw, 74px); line-height:1.15; letter-spacing:.05em; text-wrap:balance; }
/* ---------- alternating split rows: image beside text, sides alternate (Naftali) ---------- */
.alt-row { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.alt-row .img { min-height:66vh; overflow:hidden; background:#F2F2F2; }
.alt-row .img img { width:100%; height:100%; object-fit:cover; display:block; }
.alt-row .txt { align-self:center; padding:11vh 9vw 11vh 6vw; }
.alt-row .founder-card { max-width:380px; }
.alt-row .txt .lbl { font-size:11px; letter-spacing:.26em; text-transform:uppercase; font-weight:700; margin-bottom:16px; }
.alt-row .txt h1, .alt-row .txt h2 { font-family:'Prata',Georgia,serif; font-weight:400;
  font-size:clamp(24px, 2.5vw, 34px); line-height:1.35; margin:0 0 24px; max-width:24ch; text-wrap:balance; }
.alt-row .txt p { max-width:56ch; color:#333; font-size:15px; line-height:1.8; margin:0 0 20px; }
.alt-row.flip .img { order:2; }
.alt-row.flip .txt { order:1; padding:11vh 6vw 11vh 9vw; }
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:34px 0 0; max-width:620px; }
.stats-row .num { font-family:'Prata',Georgia,serif; font-size:clamp(26px,2.2vw,34px); }
.stats-row .cap { font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:#6E6E6E; margin-top:6px; line-height:1.5; }
.steps-flow { list-style:none; margin:8px 0 0; padding:0; max-width:56ch; }
.steps-flow li { display:grid; grid-template-columns:44px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid #E4E4E4; }
.steps-flow .n { font-family:'Prata',Georgia,serif; font-size:20px; color:#6E6E6E; }
.steps-flow .t { font-weight:700; font-size:13.5px; margin-bottom:3px; }
.steps-flow .d { font-size:14.5px; color:#3A3A3A; line-height:1.7; }
.steps-flow .t, .steps-flow .d { display:block; }
.alt-row .txt .place { white-space:nowrap; }

/* ---------- editorial rows: the sub-page grammar (label | content) ---------- */
.ed-row { display:grid; grid-template-columns:200px 1fr; gap:5vw; padding:11vh 9vw; align-items:start; }
.ed-row.tight { padding-top:7vh; padding-bottom:7vh; }
.ed-row.first { padding-top:16vh; }
.ed-row.founder { grid-template-columns:300px 1fr; }
.ed-row .lbl { font-size:11px; letter-spacing:.26em; text-transform:uppercase; font-weight:700; color:#000; padding-top:10px; }
.ed-row h2, .services-block h2, .consult-block h2 { font-family:'Prata',Georgia,serif; font-weight:400; text-transform:uppercase;
  font-size:clamp(26px, 2.8vw, 40px); line-height:1.32; letter-spacing:.02em; margin:0 0 26px; max-width:26ch; text-wrap:balance; }
.ed-row .body p { max-width:66ch; color:#333; font-size:16px; line-height:1.75; margin:0 0 22px; }
.ed-row .body p:last-child { margin-bottom:0; }
.ed-row .btn-dark { margin-top:26px; }
.ed-row ul.svc.detail { max-width:660px; }
.ed-row ul.svc.detail .row { grid-template-columns:1fr; gap:8px; padding:28px 2px; }
.ed-row ul.svc.detail h3 { font-family:'Prata',Georgia,serif; font-weight:400; font-size:21px; margin:0; }

.page-head { padding:96px 24px 8px; text-align:center; }
.page-head h1 { font-family:'Prata',Georgia,serif; font-weight:400;
  font-size:clamp(26px, 3.2vw, 40px); line-height:1.25; max-width:22ch; margin:14px auto 0; text-wrap:balance; }
.eyebrow { font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:#6E6E6E; font-weight:700; }

/* ---------- statement ---------- */
.statement { padding:16vh 9vw; text-align:center; }
.statement.tight { padding:7vh 9vw 8vh; }
.statement p { font-family:'Prata',Georgia,serif; font-size:clamp(21px, 2.4vw, 30px);
  line-height:1.6; max-width:36ch; margin:0 auto; color:#000; text-wrap:balance; }
.statement .sub { font-family:'HK Grotesk',Arial,sans-serif; font-size:16px; color:#6E6E6E; max-width:46ch; }

/* ---------- full-bleed band ---------- */
.band { height:78vh; min-height:420px; overflow:hidden; }

/* ---------- services list ---------- */
.services-sec { padding:14vh 9vw; }
.services-sec .title { font-size:clamp(16px,1.05vw,20px); letter-spacing:1px; text-transform:uppercase; font-weight:700; margin-bottom:6vh; }
ul.svc { list-style:none; max-width:820px; }
ul.svc li { border-bottom:1px solid #E4E4E4; }
ul.svc li:first-child { border-top:1px solid #E4E4E4; }
ul.svc a, ul.svc .row { display:block; padding:30px 4px; }
ul.svc .t { font-family:'Prata',Georgia,serif; font-size:21px; display:block; }
ul.svc .d { display:block; font-size:14.5px; color:#3A3A3A; margin-top:7px; max-width:58ch; }
ul.svc a:hover .t { opacity:.55; }

/* ---------- prose / people / misc ---------- */
.narrow { max-width:640px; margin:0 auto; padding:0 24px; }
.prose p { color:#333; margin-bottom:22px; font-size:15.5px; line-height:1.8; }
.people { max-width:640px; margin:0 auto; padding:8px 24px 40px; list-style:none; }
.people li { padding:22px 0; border-bottom:1px solid #E4E4E4; }
.people .name { font-family:'Prata',Georgia,serif; font-size:17px; }
.people .role { color:#6E6E6E; font-size:13px; margin-top:2px; }
.fineprint { text-align:center; color:#999; font-size:12px; letter-spacing:.06em; padding:24px 24px 96px; }

.cta-band { text-align:center; padding:24px 24px 110px; }
.btn-dark { display:inline-block; border:1px solid #000; color:#000; padding:14px 34px;
  font-family:'HK Grotesk','Helvetica Neue',Arial,sans-serif; line-height:1.6;
  font-size:11px; letter-spacing:.24em; text-transform:uppercase; font-weight:700; background:none; cursor:pointer; }
.btn-dark:hover { background:#000; color:#FFF; }

.markets { text-align:center; padding:0 9vw 14vh; }
.markets .places { font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:#000; }
.markets .dot { color:#999; padding:0 16px; }

/* ---------- forms ---------- */
form.avesa { display:grid; gap:0; max-width:560px; margin:40px auto 0; text-align:left; }
form.avesa .fld { display:block; margin-top:30px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:#000; }
form.avesa .fld:first-child { margin-top:0; }
form.avesa input, form.avesa select, form.avesa textarea {
  width:100%; padding:12px 2px; border:0; border-bottom:1px solid #DDDDDD; background:transparent;
  font-family:'HK Grotesk',Arial,sans-serif; font-size:15px; font-weight:400; letter-spacing:0; text-transform:none; color:#000; border-radius:0; -webkit-appearance:none; appearance:none; }
form.avesa select { background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='black'/%3E%3C/svg%3E") no-repeat right 4px center; padding-right:26px; }
form.avesa textarea { min-height:72px; resize:vertical; }
form.avesa input:focus, form.avesa select:focus, form.avesa textarea:focus { border-bottom-color:#000; }
form.avesa input:focus-visible, form.avesa select:focus-visible, form.avesa textarea:focus-visible { outline:2px solid #000; outline-offset:3px; background:#FAFAFA; }
form.avesa button { margin-top:40px; justify-self:start; }
form.avesa .note { margin-top:22px; font-size:13px; color:#6E6E6E; }

.offices { max-width:640px; margin:0 auto; padding:16px 24px 80px; text-align:center; color:#6E6E6E; font-size:13.5px; line-height:2.1; }
.offices b { color:#000; font-weight:700; font-size:11px; letter-spacing:.18em; text-transform:uppercase; padding-right:10px; }
.offices a { color:#000; border-bottom:1px solid #000; }

/* ---------- next-page block: right-aligned editorial ending (Naftali) ---------- */
.next-page { padding:10vh 9vw 12vh; text-align:right; }
.next-page a { display:inline-block; text-align:right; }
.next-page .np-eyebrow { display:block; font-size:11px; letter-spacing:.3em; text-transform:uppercase; font-weight:700; color:#000; }
.next-page .np-title { display:block; font-family:'Prata',Georgia,serif; font-weight:400; text-transform:uppercase;
  font-size:clamp(28px, 3vw, 44px); line-height:1.2; letter-spacing:.04em; color:#000; margin:20px 0 28px; }
.next-page .np-arrow { display:block; font-size:26px; line-height:1; color:#000; }
.next-page a:hover .np-title { opacity:.55; }

/* ---------- footer ---------- */
footer { border-top:1px solid #E4E4E4; padding:44px 9vw; display:flex; align-items:center; gap:30px; flex-wrap:wrap; font-size:12px; color:#6E6E6E; }
footer .lockup { display:flex; align-items:center; gap:10px; color:#000; }
footer .lockup .mono { height:20px; width:auto; aspect-ratio:848/1046; }
footer .lockup .wm { height:11px; width:auto; aspect-ratio:4995/944; }
footer a:hover { color:#000; }
footer .copyright { margin-left:auto; }

/* ---------- expertise detail list ---------- */
ul.svc.detail { max-width:1080px; }
ul.svc.detail .row { display:grid; grid-template-columns:1fr 1.55fr; gap:44px; padding:44px 4px; }
ul.svc.detail .t { font-size:22px; line-height:1.35; }
ul.svc.detail .d { margin-top:0; font-size:14.5px; line-height:1.9; max-width:none; }

/* ---------- founder: plain portrait + name/role (Naftali leadership register) ---------- */
.founder-grid { display:grid; grid-template-columns:340px 1fr; gap:6vw; padding:9vh 9vw 10vh; align-items:start; }
.founder-card img { width:100%; aspect-ratio:4/5; object-fit:cover; display:block; filter:grayscale(1); }
.founder-card .fname { font-weight:700; font-size:14px; margin-top:14px; }
.founder-card .frole { color:#6E6E6E; font-size:12.5px; margin-top:2px; }
.founder-grid h1 { font-family:'Prata',Georgia,serif; font-weight:400;
  font-size:clamp(26px, 2.7vw, 38px); line-height:1.3; margin:0 0 5vh; }
.founder-grid .prose p { max-width:62ch; }
.cap-intro { font-size:11px; letter-spacing:.26em; text-transform:uppercase; font-weight:700; color:#000; margin:34px 0 6px; }
.cap-list { list-style:none; columns:2; column-gap:44px; margin:8px 0 26px; padding:0; max-width:640px; }
.cap-list li { font-size:13.5px; color:#444; padding:8px 0; border-bottom:1px solid #E4E4E4; break-inside:avoid; }

/* ---------- expertise split: scrolling text | pinned image ---------- */
.expertise-split { display:grid; grid-template-columns:1fr 1.2fr; align-items:start; }
.expertise-split .content { padding:9vh 9vw 10vh 5vw; }
.expertise-split .content h1 { font-family:'Prata',Georgia,serif; font-weight:400;
  font-size:clamp(26px, 2.7vw, 38px); line-height:1.3; margin:0 0 7vh; text-wrap:balance; }
.expertise-split ul.svc.detail .row { grid-template-columns:1fr; gap:9px; padding:34px 2px; }
.expertise-split .cta-row { margin-top:7vh; }
.expertise-split .visual { position:sticky; top:76px; height:calc(100vh - 76px); overflow:hidden; background:#F2F2F2; }

/* ---------- principle band (the one dark serif moment) ---------- */
.principle { position:relative; min-height:82vh; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center; background:#000; }
.principle > img { position:absolute; inset:0; }
.principle .scrim { position:absolute; inset:0; background:radial-gradient(ellipse 66% 56% at 50% 50%, rgba(0,0,0,.72), rgba(0,0,0,.58)); }
.principle .copy { position:relative; padding:14vh 9vw; display:grid; gap:26px; justify-items:center; max-width:1000px; }
.principle h2 { font-family:'Prata',Georgia,serif; font-weight:400; color:#FFF;
  font-size:clamp(24px, 2.9vw, 38px); line-height:1.42; max-width:26ch; text-wrap:balance; }
.principle p { color:rgba(255,255,255,.94); font-size:16.5px; line-height:1.9; max-width:50ch; }

/* ---------- contact split ---------- */
.contact-split { display:grid; grid-template-columns:1fr 1fr; gap:6vw; padding:6vh 9vw 12vh; align-items:stretch; }
.contact-split form.avesa { margin:0; max-width:520px; }
.contact-split .photo { overflow:hidden; min-height:520px; background:#F2F2F2; }
.contact-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:40px; padding:56px 9vw; border-top:1px solid #E4E4E4; }
.contact-strip h3 { font-size:11px; letter-spacing:.26em; text-transform:uppercase; font-weight:700; color:#6E6E6E; margin-bottom:10px; }
.contact-strip .v { font-family:'Prata',Georgia,serif; font-size:18px; color:#000; }
.contact-strip .s { font-size:12px; color:#6E6E6E; margin-top:4px; letter-spacing:.06em; }

/* ---------- consultation: form beside contact details (>=1024px) ---------- */
.consult-cols { display:grid; grid-template-columns:1fr; gap:48px; align-items:start; }
.consult-details { display:grid; gap:28px; align-content:start; }
.consult-details h3 { font-size:11px; letter-spacing:.26em; text-transform:uppercase; font-weight:700; color:#6E6E6E; margin-bottom:10px; }
.consult-details .v { font-family:'Prata',Georgia,serif; font-size:18px; color:#000; }
.consult-details .s { font-size:12px; color:#6E6E6E; margin-top:4px; letter-spacing:.06em; }
@media (min-width:1024px) {
  .consult-cols { grid-template-columns:minmax(0,560px) minmax(280px,340px); gap:5vw; justify-content:space-between; }
  .consult-details { padding-top:2px; border-left:1px solid #E4E4E4; padding-left:4vw; }
}
.portal-line { text-align:center; color:#6E6E6E; font-size:13px; padding:0 9vw 10vh; }
.portal-line a { color:#000; border-bottom:1px solid #000; }

/* ---------- founder: sticky portrait + staged narrative (founder.html) ---------- */
.founder-intro { display:grid; grid-template-columns:46vw 1fr; align-items:start; }
.founder-intro .portrait-col { position:relative; padding-left:9vw; }
.founder-intro .portrait-sticky { position:sticky; top:88px; }
.founder-intro .portrait-sticky img { width:100%; aspect-ratio:4/5; min-height:78vh; object-fit:cover; filter:grayscale(1); display:block; }
.founder-intro .portrait-cap { padding:18px 0 0 0; }
.founder-intro .portrait-cap .fname { font-weight:700; font-size:15px; }
.founder-intro .portrait-cap .frole { font-size:12.5px; color:#6E6E6E; margin-top:2px; }
.founder-intro .intro-col { padding:12vh 9vw 12vh 5vw; }
.founder-intro .intro-col .eyebrow { display:block; margin-bottom:20px; }
.founder-intro .intro-col h2 { font-family:'Prata',Georgia,serif; font-weight:400; text-transform:uppercase; letter-spacing:.02em; font-size:clamp(28px, 3vw, 38px); line-height:1.3; max-width:20ch; margin:0 0 26px; text-wrap:balance; }
.founder-intro .intro-col p { max-width:60ch; color:#333; font-size:16px; line-height:1.8; margin:0 0 22px; }
.founder-intro .intro-col p:last-child { margin-bottom:0; }

.stats-band { background:#FAFAFA; padding:9vh 9vw; border-top:1px solid #E4E4E4; border-bottom:1px solid #E4E4E4; }
.stats-band .stats-row { max-width:900px; margin:0 auto; grid-template-columns:repeat(3,1fr); gap:5vw; text-align:center; }
.stats-band .num { font-family:'Prata',Georgia,serif; font-size:40px; }

.capital-sec { padding:8vh 9vw 9vh; }
.capital-sec .lead { max-width:640px; margin:0 0 5vh; color:#333; font-size:16px; line-height:1.8; }
.capital-sec .eyebrow { display:block; margin-bottom:26px; }
/* full-width balanced 4-column matrix with a framing top rule — reads as an intentional index */
.capital-grid { list-style:none; margin:0; padding:0; max-width:none; border-top:1px solid #000;
  display:grid; grid-template-columns:repeat(4,1fr); column-gap:52px; }
.capital-grid li { font-size:13.5px; color:#333; padding:16px 2px; border-bottom:1px solid #E4E4E4; letter-spacing:.01em; }

/* ---------- founder bio: read-more button + tasteful modal ---------- */
.bio-more { margin-top:6px; background:none; border:0; cursor:pointer; padding:0;
  font-family:'HK Grotesk',Arial,sans-serif; font-size:11px; letter-spacing:.22em; text-transform:uppercase; font-weight:700; color:#000;
  border-bottom:1px solid #000; padding-bottom:3px; transition:opacity .2s ease; }
.bio-more:hover { opacity:.55; }
.bio-modal { display:none; position:fixed; inset:0; z-index:80; align-items:center; justify-content:center; padding:6vh 6vw; }
.bio-modal.open { display:flex; }
body.modal-lock { overflow:hidden; }
.bio-backdrop { position:absolute; inset:0; background:rgba(10,10,10,.62); }
.bio-panel { position:relative; background:#FFF; max-width:660px; width:100%; max-height:86vh; overflow-y:auto; padding:8vh 7vw 7vh; }
.bio-panel .eyebrow { display:block; margin-bottom:14px; }
.bio-panel h3 { font-family:'Prata',Georgia,serif; font-weight:400; font-size:clamp(24px,2.4vw,32px); margin:0 0 28px; }
.bio-panel p { color:#333; font-size:16px; line-height:1.85; margin:0 0 22px; max-width:56ch; }
.bio-panel p:last-child { margin-bottom:0; }
.bio-close { position:absolute; top:22px; right:26px; background:none; border:0; cursor:pointer; font-size:30px; line-height:1; color:#000; }
.bio-close:hover { opacity:.55; }

.closing-sec { padding:13vh 9vw 4vh; text-align:center; }
.closing-sec p { max-width:60ch; margin:0 auto; color:#1C1C1C; font-family:'Prata',Georgia,serif; font-size:clamp(19px,1.7vw,23px); line-height:1.7; text-wrap:balance; }

/* ---------- standard: How We Engage kick-off band (standard.html) ---------- */
.engage-sec { background:#FAFAFA; border-top:1px solid #E4E4E4; border-bottom:1px solid #E4E4E4; padding:9vh 9vw; }
.engage-sec .eyebrow { display:block; text-align:center; margin-bottom:6vh; }
.engage-grid { list-style:none; margin:0 auto; padding:0; max-width:1080px; display:grid; grid-template-columns:repeat(4,1fr); gap:0 5vw; }
.engage-grid li { display:flex; flex-direction:column; gap:8px; padding-top:24px; border-top:1px solid #E4E4E4; }
.engage-grid .n { font-family:'Prata',Georgia,serif; font-size:30px; color:#6E6E6E; }
.engage-grid .t { font-size:13.5px; font-weight:700; }
.engage-grid .d { font-size:14px; line-height:1.7; color:#3A3A3A; }

/* ---------- standard: principles sticky-image editorial split (standard.html) ---------- */
.principles-split { display:grid; grid-template-columns:46vw 1fr; align-items:start; }
.principles-split .img-col { position:relative; padding-left:9vw; }
.principles-split .img-sticky { position:sticky; top:88px; }
.principles-split .img-sticky img { width:100%; aspect-ratio:4/5; min-height:78vh; object-fit:cover; filter:grayscale(1); display:block; }
.principles-split .txt-col { padding:14vh 9vw 12vh 5vw; }
.principles-split .eyebrow { display:block; margin-bottom:20px; }
.principles-split h2 { font-family:'Prata',Georgia,serif; font-weight:400; text-transform:uppercase; letter-spacing:.02em; font-size:clamp(28px, 3vw, 38px); line-height:1.3; max-width:16ch; margin:0 0 26px; text-wrap:balance; }
.principles-split p { max-width:60ch; color:#333; font-size:16px; line-height:1.8; margin:0 0 22px; }
.principles-split p:last-child { margin-bottom:0; }

/* ---------- expertise: 2-col editorial service grid, no label gutter ---------- */
.services-block { padding:16vh 9vw 11vh; }
.services-block .eyebrow { display:block; margin-bottom:14px; color:#000; }
.svc-grid { list-style:none; margin:0; padding:0; width:100%; max-width:1180px; display:grid; grid-template-columns:repeat(2,1fr); column-gap:5vw; align-items:start; }
.svc-grid li { padding:28px 0; border-top:1px solid #E4E4E4; }
.svc-grid h3 { font-family:'Prata',Georgia,serif; font-weight:400; font-size:21px; line-height:1.35; margin:0 0 10px; }
.svc-grid p { font-size:14.5px; line-height:1.8; color:#3A3A3A; max-width:58ch; margin:0; }

/* ---------- contact: label-above-heading (no gutter); form/details as adjacent pair ---------- */
.consult-block { padding:16vh 9vw 11vh; }
.consult-block .eyebrow { display:block; margin-bottom:14px; color:#000; }
.consult-block h2 { margin:0 0 6vh; max-width:26ch; }

/* ---------- focus visibility ---------- */
a:focus-visible, button:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline:2px solid #000; outline-offset:3px; }

/* ---------- mobile menu ---------- */
.menu-btn { display:none; background:none; border:0; cursor:pointer; color:inherit;
  font-family:'HK Grotesk',Arial,sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; padding:6px 0 6px 18px; }
.mobile-menu { display:none; }
body.menu-open { overflow:hidden; }
body.menu-open .mobile-menu { display:flex; position:fixed; inset:0; z-index:60; background:#FFF;
  flex-direction:column; align-items:center; justify-content:center; gap:30px; }
.mobile-menu a { font-family:'Prata',Georgia,serif; font-size:26px; color:#000; }
.mobile-menu a.small { font-family:'HK Grotesk',Arial,sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#6E6E6E; }
.mobile-menu a.cta { font-family:'HK Grotesk',Arial,sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; border:1px solid #000; padding:13px 24px; margin-top:8px; }
.mobile-menu .close { position:absolute; top:22px; right:26px; background:none; border:0; cursor:pointer;
  font-size:26px; line-height:1; color:#000; }

@media (max-width:820px) {
  header { padding:18px 20px; } header.scrolled { padding:14px 20px; }
  nav a { display:none; }
  header .lockup .mono { height:26px; } header .lockup .wm { height:13px; }
  .menu-btn { display:block; margin-left:auto; }
  body.inner { padding-top:58px; }
  .statement { padding:12vh 24px; }
  .services-sec { padding:10vh 20px; } .markets { padding:0 20px 10vh; }
  .markets .dot { display:none; }
  .markets .place { display:block; padding:5px 0; }
  .hero .hero-markets { font-size:9px; letter-spacing:.2em; bottom:24px; padding:0 16px; line-height:2.1; }
  .hero .hero-markets .dot { padding:0 8px; }
  ul.svc.detail .row { grid-template-columns:1fr; gap:10px; padding:34px 2px; }
  .expertise-split { grid-template-columns:1fr; }
  .expertise-split .visual { position:static; height:38vh; min-height:260px; order:-1; }
  .expertise-split .content { padding:7vh 20px 8vh; }
  .founder-grid { grid-template-columns:1fr; gap:34px; padding:6vh 20px 8vh; }
  .founder-card { max-width:260px; }
  .alt-row .founder-card { max-width:300px; }
  .cap-list { columns:1; max-width:none; }
  .ed-row, .ed-row.founder { grid-template-columns:1fr; gap:20px; padding:7vh 20px; }
  .ed-row.first { padding-top:10vh; }
  .ed-row .lbl:empty { display:none; }
  .next-page { padding:10vh 20px 8vh; }
  .page-hero .copy { padding:0 20px 5vh; }
  .alt-row, .alt-row.flip { grid-template-columns:1fr; }
  .alt-row .img, .alt-row.flip .img { order:0; min-height:40vh; }
  .alt-row .txt, .alt-row.flip .txt { order:1; padding:6vh 20px 7vh; }
  .alt-row .txt .place { display:block; padding:2px 0; }
  .alt-row .txt .dot { display:none; }
  .stats-row { grid-template-columns:repeat(3,1fr); gap:16px; }
  .stats-row .cap { font-size:9.5px; letter-spacing:.08em; }
}

@media (max-width:420px) {
  .stats-band .stats-row { grid-template-columns:1fr; gap:22px; max-width:220px; margin:34px auto 0; text-align:center; }
  .stats-band .stats-row .cap { font-size:11px; letter-spacing:.12em; }
}

@media (max-width:820px) {
  .contact-split { grid-template-columns:1fr; padding:4vh 20px 8vh; }
  .contact-split .photo { min-height:300px; order:-1; }
  .contact-strip { grid-template-columns:1fr; gap:26px; padding:40px 20px; }
  footer { padding:36px 20px 44px; flex-direction:column; align-items:center; gap:16px; text-align:center; }
  footer .copyright { margin-left:0; }

  .founder-intro { grid-template-columns:1fr; }
  .founder-intro .portrait-sticky { position:static; top:auto; }
  .founder-intro .portrait-sticky img { min-height:0; height:auto; }
  .founder-intro .portrait-cap { padding:14px 0 0 20px; }
  .founder-intro .intro-col { padding:6vh 20px 7vh; }
  .stats-band { padding:7vh 20px; }
  .stats-band .num { font-size:30px; }
  .capital-sec { padding:6vh 20px 7vh; }
  .capital-grid { grid-template-columns:1fr 1fr; column-gap:24px; }
  .bio-panel { padding:7vh 24px 6vh; max-height:88vh; }
  .bio-panel .bio-close { top:16px; right:18px; }
  .closing-sec { padding:6vh 20px 7vh; }

  .engage-sec { padding:6vh 20px; }
  .engage-sec .eyebrow { margin-bottom:4vh; }
  .engage-grid { grid-template-columns:1fr; gap:0; }
  .engage-grid li { padding:20px 0; }

  .principles-split { grid-template-columns:1fr; }
  .principles-split .img-col { padding-left:0; }
  .principles-split .img-sticky { position:static; top:auto; }
  .principles-split .img-sticky img { min-height:56vh; }
  .principles-split .txt-col { padding:7vh 20px 8vh; }

  .services-block { padding:9vh 20px 8vh; }
  .svc-grid { grid-template-columns:1fr; }

  .consult-block { padding:9vh 20px 8vh; }
}

/* ---------- strict B&W photography: single grayscale grade (sub-pages; index unaffected) ---------- */
.alt-row .img img, .principle > img, .contact-split .photo img, .band img { filter:grayscale(1); }
.principle > img[src*="expertise-still"] { object-position:50% 82%; }
.band img[src*="about-still"] { object-position:50% 62%; }
.alt-row .img img[src*="fpo-boardroom"] { filter:grayscale(1) brightness(1.15) contrast(.94); }
.alt-row .img img[src*="fpo-lounge"], .contact-split .photo img[src*="fpo-lounge"] { filter:grayscale(1) contrast(.9); }
.alt-row .img img[src*="fpo-limestone"] { filter:grayscale(1) brightness(.96); }
.alt-row .img img[src*="fpo-arrival"] { filter:grayscale(1) contrast(1.06) brightness(.96); }
.alt-row .img img[src*="fpo-dc"], .contact-split .photo img[src*="fpo-dc"] { filter:grayscale(1) brightness(1.06); }

/* Leadership biographies */
.founder-intro .intro-col { padding-top:6vh; }
.founder-intro .portrait-sticky img { min-height:0; }
.leadership-member { padding-top:8vh; padding-bottom:8vh; border-top:1px solid #e5e5e5; }
@media(max-width:760px) { .founder-intro .portrait-col { padding:0 20px; } .founder-intro .portrait-cap { padding-left:0; } }
