@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Manrope:wght@400;500;600&display=swap');
:root { --black:#090909; --paper:#f2f0eb; --line:#c9c7c1; --muted:#6d6b66; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--black); font-family:"Manrope",sans-serif; font-size:15px; letter-spacing:-.005em; }
a { color:inherit; text-decoration:none; }
.site-header { height:92px; padding:0 4.5vw; display:flex; align-items:center; justify-content:space-between; background:var(--paper); position:relative; z-index:20; }
.brand { display:flex; align-items:center; gap:18px; }
.brand-mark { font-family:"Libre Baskerville",serif; font-size:23px; border-right:1px solid var(--line); padding-right:18px; letter-spacing:-.08em; }
.brand-name { font-size:11px; font-weight:600; letter-spacing:.14em; line-height:1.45; }
.brand-name small { display:block; font-size:8px; font-weight:400; letter-spacing:.3em; }
.desktop-nav { display:flex; gap:34px; font-size:11px; font-weight:500; letter-spacing:.02em; }
.desktop-nav a { transition:opacity .2s; }
.desktop-nav a:hover { opacity:.45; }
.header-cta { background:var(--black); color:white; padding:14px 18px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.header-cta span { margin-left:24px; }
.mobile-menu { display:none; }
.hero { height:calc(100vh - 92px); min-height:650px; position:relative; overflow:hidden; color:white; background:#111; }
.hero>img { width:100%; height:100%; object-fit:cover; object-position:center; position:absolute; inset:0; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.28) 48%,rgba(0,0,0,.02) 100%); }
.hero-content { position:absolute; left:7vw; top:50%; transform:translateY(-50%); max-width:700px; }
.eyebrow,.section-kicker { text-transform:uppercase; letter-spacing:.22em; font-size:10px; font-weight:500; }
.eyebrow:before,.section-kicker:before { content:""; display:inline-block; width:32px; border-top:1px solid currentColor; vertical-align:middle; margin-right:13px; }
.hero h1,.section-heading h2,.contact h2,.intro h2,.approach h2 { font-family:"Libre Baskerville",serif; font-weight:400; margin:24px 0; line-height:.98; letter-spacing:-.055em; }
.hero h1 { font-size:clamp(58px,6.8vw,108px); max-width:920px; }
em { font-weight:400; }
.hero-copy { max-width:430px; line-height:1.8; font-size:13px; color:#d4d4d4; letter-spacing:.01em; }
.outline-button { display:inline-flex; justify-content:space-between; min-width:260px; border:1px solid #777; padding:16px 18px; margin-top:25px; text-transform:uppercase; letter-spacing:.12em; font-size:10px; }
.outline-button:hover { background:white; color:black; }
.hero-index { position:absolute; bottom:25px; right:4vw; font-size:9px; text-transform:uppercase; letter-spacing:.18em; }
.hero-index span { margin:0 12px; }
.intro { display:grid; grid-template-columns:1fr 2.1fr; padding:130px 7vw 140px; gap:7vw; }
.section-index { font:italic 15px "Libre Baskerville"; color:var(--muted); margin-top:50px; }
.intro h2 { font-size:clamp(46px,5.5vw,84px); }
.intro h2 span { color:#9b9993; font-style:italic; }
.intro-copy>p { max-width:590px; font-size:16px; line-height:1.9; margin-left:26%; color:#494843; }
.text-link { display:inline-block; margin:35px 0 0 26%; padding-bottom:8px; border-bottom:1px solid #111; font-size:11px; text-transform:uppercase; letter-spacing:.13em; }
.text-link span { margin-left:55px; }
.services { background:var(--black); color:white; padding:120px 7vw 60px; }
.section-heading { display:grid; grid-template-columns:1fr 2.1fr; gap:7vw; margin-bottom:85px; }
.section-heading h2 { font-size:clamp(54px,6vw,94px); margin-top:0; }
.section-heading h2 em,.contact h2 em,.approach h2 em { color:#888; }
.light { color:#b5b5b5; }
.service-row { display:grid; grid-template-columns:70px 1.2fr 1fr 30px; align-items:center; gap:30px; border-top:1px solid #444; padding:35px 5px; transition:background .25s,padding .25s; }
.service-row:hover { background:#141414; padding-left:20px; padding-right:20px; }
.service-row>span:first-child { font:italic 14px "Libre Baskerville"; color:#888; }
.service-row h3 { font:400 clamp(27px,2.8vw,42px)/1.15 "Libre Baskerville"; letter-spacing:-.035em; margin:0; }
.service-row p { color:#aaa; font-size:13px; line-height:1.7; max-width:420px; }
.arrow { font-size:20px; }
.legal-note { font-size:9px; color:#777; letter-spacing:.06em; margin-top:45px; }
.approach { display:grid; grid-template-columns:1.2fr 1fr; min-height:850px; }
.approach-image { position:relative; overflow:hidden; background:#222; }
.approach-image img { width:100%; height:100%; object-fit:cover; filter:contrast(1.05); }
.approach-image span { position:absolute; left:25px; bottom:22px; color:white; font-size:9px; text-transform:uppercase; letter-spacing:.16em; }
.approach-content { padding:110px 7vw; }
.approach h2 { font-size:clamp(58px,6vw,92px); margin:65px 0 80px; }
.principles>div { display:grid; grid-template-columns:50px 1fr; padding:22px 0; border-top:1px solid var(--line); }
.principles span { font:italic 13px "Libre Baskerville"; color:#8b8984; }
.principles p { margin:0; color:#6b6964; font-size:12px; line-height:1.5; }
.principles strong { display:block; color:#111; font:400 19px "Libre Baskerville"; letter-spacing:-.02em; margin-bottom:7px; }
.numbers { padding:55px 7vw; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:40px; align-items:center; }
.numbers>p { font-size:10px; text-transform:uppercase; letter-spacing:.16em; }
.numbers>div { display:flex; align-items:center; gap:17px; }
.numbers strong { font:italic 45px "Libre Baskerville"; font-weight:400; letter-spacing:-.05em; }
.numbers span { font-size:10px; line-height:1.5; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.sectors { padding:130px 7vw; display:grid; grid-template-columns:1fr 1.2fr; gap:10vw; }
.sectors-heading h2,.process-title h2,.team-intro h2,.insights-head h2,.faq-title h2 { font:400 clamp(42px,4.4vw,68px)/1.08 "Libre Baskerville"; letter-spacing:-.05em; margin:45px 0 30px; }
.sectors-heading>p:last-child,.team-intro>p:last-child { max-width:570px; color:var(--muted); line-height:1.8; font-size:14px; }
.sector-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.sector-grid div { border-bottom:1px solid var(--line); padding:28px 10px; min-height:130px; }
.sector-grid div:nth-child(odd) { border-right:1px solid var(--line); }
.sector-grid span { font:italic 12px "Libre Baskerville"; color:#999; }
.sector-grid p { font:400 20px/1.25 "Libre Baskerville"; letter-spacing:-.025em; max-width:220px; margin:25px 0 0; }
.process { background:#171717; color:white; padding:120px 7vw; }
.process-title { display:grid; grid-template-columns:1fr 2fr; gap:7vw; align-items:start; }
.process-title h2 { margin-top:0; }
.process-title h2 em { color:#777; }
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); margin-top:85px; border-top:1px solid #484848; }
.process-steps article { padding:35px 30px 20px 0; border-right:1px solid #484848; min-height:290px; }
.process-steps article:not(:first-child) { padding-left:30px; }
.process-steps article:last-child { border-right:0; }
.process-steps span { font:italic 13px "Libre Baskerville"; color:#777; }
.process-steps h3 { font:400 27px "Libre Baskerville"; letter-spacing:-.03em; margin:70px 0 15px; }
.process-steps p { color:#9b9b9b; font-size:12px; line-height:1.7; }
.team { padding:130px 7vw; display:grid; grid-template-columns:1fr 1.2fr; gap:10vw; }
.team-list { border-top:1px solid var(--line); }
.team-list article { display:grid; grid-template-columns:110px 1fr; align-items:center; padding:35px 0; border-bottom:1px solid var(--line); }
.team-list>article>span { font:italic 27px "Libre Baskerville"; color:#888; }
.team-list h3 { font:400 27px "Libre Baskerville"; letter-spacing:-.03em; margin:0 0 7px; }
.team-list p { font-size:12px; margin:0 0 10px; }
.team-list small { color:#888; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.insights { padding:120px 7vw 70px; background:var(--black); color:white; }
.insights-head { display:grid; grid-template-columns:1fr 2fr; gap:7vw; }
.insights-head h2 { margin-top:0; }
.insights-head h2 em { color:#777; }
.article-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:80px; border-top:1px solid #444; }
.article-grid article { padding:30px 35px 25px 0; border-right:1px solid #444; min-height:355px; display:flex; flex-direction:column; }
.article-grid article:not(:first-child) { padding-left:35px; }
.article-grid article:last-child { border-right:0; }
.article-grid span { color:#777; font-size:9px; text-transform:uppercase; letter-spacing:.14em; }
.article-grid h3 { font:400 25px/1.25 "Libre Baskerville"; letter-spacing:-.035em; margin:50px 0 20px; }
.article-grid p { color:#999; font-size:12px; line-height:1.7; }
.article-grid a { margin-top:auto; border-bottom:1px solid #555; padding-bottom:10px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; display:flex; justify-content:space-between; }
.faq { padding:130px 7vw; display:grid; grid-template-columns:1fr 1.4fr; gap:10vw; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer; list-style:none; display:grid; grid-template-columns:45px 1fr 20px; gap:10px; padding:27px 0; font:400 18px/1.45 "Libre Baskerville"; letter-spacing:-.025em; align-items:center; }
.faq-list summary span { font:italic 12px "Libre Baskerville"; color:#999; }
.faq-list summary b { font:400 20px "Manrope"; }
.faq-list details[open] summary b { transform:rotate(45deg); }
.faq-list details>p { margin:0 35px 30px 55px; color:var(--muted); font-size:13px; line-height:1.8; }
.contact { background:var(--black); color:white; padding:120px 7vw; display:grid; grid-template-columns:1fr 2.1fr; gap:7vw; }
.contact h2 { font-size:clamp(58px,6vw,96px); margin:0 0 30px; }
.contact-main>p { color:#aaa; max-width:480px; line-height:1.7; }
.contact-actions { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:70px; }
.contact-actions a { border-top:1px solid #555; padding:25px 0; font-size:13px; display:flex; justify-content:space-between; }
footer { background:var(--black); color:#aaa; border-top:1px solid #333; padding:65px 7vw; display:grid; grid-template-columns:.7fr 1.5fr 1fr 1.3fr; gap:40px; font-size:11px; line-height:1.8; }
.footer-brand { font:32px "Libre Baskerville"; color:white; letter-spacing:-.08em; }
footer strong { color:white; font-weight:500; text-transform:uppercase; letter-spacing:.12em; font-size:9px; }
.footer-legal { text-align:right; }
.footer-legal small { display:block; margin-top:14px; color:#666; }

@media (max-width:850px) {
  .site-header { height:72px; padding:0 20px; }
  .desktop-nav,.header-cta { display:none; }
  .mobile-menu { display:block; position:relative; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
  .mobile-menu summary { list-style:none; cursor:pointer; }
  .mobile-menu nav { position:absolute; right:0; top:30px; width:190px; padding:20px; background:var(--paper); box-shadow:0 20px 40px #0002; display:grid; gap:18px; }
  .hero { height:calc(100svh - 72px); min-height:620px; }
  .hero>img { object-position:68% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(0,0,0,.85),rgba(0,0,0,.2)); }
  .hero-content { left:22px; right:20px; }
  .hero h1 { font-size:52px; }
  .hero-copy { max-width:300px; }
  .intro,.section-heading,.contact { grid-template-columns:1fr; }
  .intro { padding:85px 22px; }
  .section-index { margin-top:20px; }
  .intro-copy>p,.text-link { margin-left:0; }
  .services { padding:80px 22px 45px; }
  .section-heading { margin-bottom:45px; }
  .service-row { grid-template-columns:35px 1fr 25px; gap:12px; }
  .service-row p { grid-column:2 / 4; margin:0 0 10px; }
  .approach { grid-template-columns:1fr; }
  .approach-image { min-height:480px; }
  .approach-content { padding:80px 22px; }
  .approach h2 { margin:45px 0; }
  .numbers { grid-template-columns:1fr 1fr; padding:45px 22px; }
  .sectors,.team,.faq { grid-template-columns:1fr; padding:85px 22px; }
  .process,.insights { padding:85px 22px; }
  .process-title,.insights-head { grid-template-columns:1fr; }
  .process-title h2,.insights-head h2 { margin-top:45px; }
  .process-steps { grid-template-columns:1fr 1fr; }
  .process-steps article:nth-child(2) { border-right:0; }
  .process-steps article { min-height:240px; }
  .article-grid { grid-template-columns:1fr; }
  .article-grid article,.article-grid article:not(:first-child) { padding:30px 0; border-right:0; border-bottom:1px solid #444; min-height:310px; }
  .contact { padding:80px 22px; }
  .contact-actions { grid-template-columns:1fr; margin-top:45px; }
  footer { grid-template-columns:1fr 1fr; padding:55px 22px; }
  .footer-legal { text-align:left; }
}

@media (max-width:520px) {
  .brand-name { display:none; }
  .hero h1 { font-size:45px; line-height:1.05; }
  .outline-button { min-width:250px; }
  .intro h2,.section-heading h2,.contact h2,.approach h2 { font-size:48px; }
  .approach-image { min-height:380px; }
  .numbers { grid-template-columns:1fr; }
  .sector-grid,.process-steps { grid-template-columns:1fr; }
  .sector-grid div:nth-child(odd),.process-steps article { border-right:0; }
  .process-steps article:not(:first-child) { padding-left:0; }
  footer { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
