@font-face{font-family:GeistLocal;src:url('./assets/geist.woff2') format('woff2');font-display:swap;font-weight:100 900;unicode-range:U+0000-00FF,U+2010-2027,U+2190-21FF,U+20AC}
@font-face{font-family:CormorantLocal;src:url('./assets/cormorant.woff2') format('woff2');font-display:swap;font-weight:400 600}
:root{--navy:#071525;--navy2:#0b2036;--ink:#142131;--paper:#fbfaf7;--cream:#f1eee7;--gold:#b59967;--gold2:#d0b27a;--gold-text:#8b7043;--muted:#566574;--muted2:#596877;--line:rgba(15,35,55,.16);--line-light:rgba(255,255,255,.14);--serif:CormorantLocal,'Cormorant Garamond',Georgia,serif;--sans:GeistLocal,Geist,Arial,sans-serif;--pad:clamp(24px,8vw,128px);--sec:clamp(88px,9vw,132px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:clamp(15px,1.05vw,17px);line-height:1.65;overflow-x:clip}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{color:var(--gold)}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.025em;line-height:1.04;margin:0;text-wrap:balance}
p{text-wrap:pretty}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--navy);padding:10px 14px;z-index:100}
.skip:focus{left:12px;top:12px}
.eyebrow{display:flex;gap:16px;align-items:center;font-size:12px;letter-spacing:.2em;font-weight:600;color:#8c7955;margin:0}
.eyebrow span{color:#aeb5bd}
.eyebrow.light{color:#d5c7aa}
.lead{font-family:var(--serif);font-size:clamp(23px,2vw,29px);line-height:1.35;color:#24364a;margin:0}
.body-copy{color:var(--muted);font-size:clamp(15px,1.08vw,17px);line-height:1.82;margin:0}
.arrow-link{display:inline-flex;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold-text);border-bottom:1px solid var(--gold);padding-bottom:9px;align-self:flex-start}
.arrow-link:hover{color:var(--navy)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:17px 20px;font-size:11px;text-transform:uppercase;letter-spacing:.09em;border:1px solid;transition:.2s}
.button.primary{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.button.primary:hover{background:var(--gold2);border-color:var(--gold2);color:var(--navy)}
.button.ghost{border-color:rgba(255,255,255,.5);color:#fff}
.button.ghost:hover{background:#fff;color:var(--navy)}
.button.white{background:#fff;border-color:#fff;color:var(--navy);min-width:220px}
.button.white:hover{background:var(--gold);border-color:var(--gold)}

/* Header */
.nav-shell{position:sticky;top:0;z-index:30;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:12px clamp(18px,2vw,32px);padding:14px clamp(20px,5vw,80px);background:rgba(6,18,32,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.13);color:#fff}
.brand img{display:block;width:clamp(140px,14vw,190px);height:auto}
.nav-shell nav{display:flex;flex-wrap:wrap;gap:10px clamp(18px,2vw,32px);font-size:13px;letter-spacing:.04em}
.nav-shell nav a{color:#d5dae0;padding:6px 0}
.nav-shell nav a:hover{color:var(--gold)}
.nav-cta{display:inline-flex;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.11em;border-bottom:1px solid var(--gold);padding:12px 0;color:#fff;white-space:nowrap}
.nav-cta:hover{color:var(--gold2)}
.menu{display:none;position:static}
.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.menu summary::-webkit-details-marker{display:none}
.menu summary i{display:block;width:22px;height:12px;border-top:1.5px solid #fff;border-bottom:1.5px solid #fff}
.menu[open] summary i{border-top-color:var(--gold2);border-bottom-color:var(--gold2)}
.menu .sheet{position:absolute;left:0;right:0;top:100%;width:auto;background:#061220;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;padding:12px 24px 24px}
.menu .sheet a{display:block;padding:16px 0;font-size:15px;color:#e6ebf0;border-bottom:1px solid rgba(255,255,255,.08)}
.menu .sheet a.cta{color:var(--gold2);border-bottom:0;margin-top:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}

/* Hero */
.hero{position:relative;min-height:clamp(640px,calc(100svh - 84px),890px);display:flex;flex-direction:column;color:#fff;overflow:hidden;background:var(--navy2)}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,#071525 0%,rgba(7,21,37,.65) 42%,rgba(7,21,37,.05) 70%)}
.hero-scrim::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,12,22,.78),transparent 45%)}
.hero-content{position:relative;z-index:2;flex:1;display:flex;align-items:center;padding:clamp(64px,10vh,120px) var(--pad) clamp(56px,8vh,96px)}
.hero-content>div{max-width:760px}
.hero h1{font-weight:400;font-size:clamp(44px,6vw,88px);line-height:.96;margin:28px 0;color:#fff}
.hero h1 em,.split h2 em,.broker h2 em,.contact h2 em,.global h2 em{color:var(--gold2);font-style:italic;font-weight:400}
.hero-lead{max-width:620px;font-size:clamp(16px,1.2vw,19px);color:#d8dde3;margin:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.hero-actions .button{flex:1 1 220px;max-width:320px}
.hero-proof{position:relative;z-index:2;background:rgba(5,16,29,.72);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.15);padding:0 var(--pad)}
.hero-proof ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.hero-proof li{min-height:120px;display:flex;align-items:center;gap:18px;padding:12px clamp(18px,2vw,32px);border-left:1px solid rgba(255,255,255,.15)}
.hero-proof li:first-child{border-left-color:transparent;padding-left:0}
.hero-proof strong{font-family:var(--serif);font-size:37px;font-weight:400;color:#d5bd8f;flex:0 0 auto;line-height:1}
.hero-proof span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#d2d7dd;line-height:1.4}

/* Approach */
.approach{padding:var(--sec) var(--pad)}
.approach .intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:clamp(38px,8vw,130px);align-items:start;margin:50px 0 80px}
.approach h2{font-size:clamp(40px,4.2vw,62px)}
.approach .lead{margin-bottom:24px}
.values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);margin-left:calc(-1 * clamp(32px,3vw,44px) - 1px);overflow:hidden}
.values article{padding:clamp(32px,3vw,44px);border-left:1px solid var(--line);border-bottom:1px solid var(--line)}
.values svg{width:40px;height:40px;color:#9d8150;fill:none;stroke:currentColor;stroke-width:1.5}
.values h3{font-size:clamp(22px,1.8vw,26px);margin:28px 0 12px;letter-spacing:0}
.values p{font-size:clamp(14px,1vw,15.5px);line-height:1.72;color:var(--muted2);margin:0}

/* Buy / Sell */
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:820px}
.split.buy{background:var(--cream)}
.split-media{position:relative;min-height:clamp(430px,60vw,820px);overflow:hidden}
.split-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,18,31,.45),transparent 55%)}
.split-media span{position:absolute;z-index:1;bottom:40px;left:clamp(24px,4vw,50px);color:#fff;font-size:10px;letter-spacing:.28em}
.split.sell .split-media{order:2}
.split-body{padding:clamp(76px,8vw,124px) clamp(24px,7vw,112px);display:flex;flex-direction:column;justify-content:center;min-width:0}
.split h2{font-size:clamp(40px,4.2vw,62px);margin:38px 0 28px}
.steps{list-style:none;padding:0;margin:34px 0 38px;border-bottom:1px solid var(--line)}
.steps li{display:flex;gap:22px;padding:19px 0;border-top:1px solid var(--line)}
.steps b{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.3;color:#ae8d56}
.steps div{display:flex;flex-direction:column;gap:7px}
.steps strong,.points strong{font-size:clamp(13px,.95vw,14.5px);text-transform:uppercase;letter-spacing:.08em}
.steps span,.points p{font-size:clamp(14px,1vw,15.5px);line-height:1.72;color:var(--muted2);margin:0}
.points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;margin:34px 0 38px;align-items:start}
.points div{padding:22px 0;border-top:1px solid var(--line)}
.points p{margin-top:8px}

/* Partnership */
.expertise{background:var(--navy);color:#fff;padding:var(--sec) var(--pad)}
.expertise .head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 60px;margin:45px 0 60px}
.expertise h2{font-size:clamp(40px,4.2vw,62px);color:#fff}
.expertise .head p{max-width:470px;font-size:16px;line-height:1.8;color:#aeb8c3;margin:0}
.partner{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr) 46px minmax(0,1fr);align-items:stretch}
.partner .op{display:grid;place-items:center;font-family:var(--serif);font-size:34px;color:#b89b68;min-height:58px}
.pbox{border:1px solid rgba(255,255,255,.16);padding:clamp(30px,2.8vw,44px);min-height:420px;display:flex;flex-direction:column;align-items:flex-start;background:rgba(255,255,255,.02)}
.pbox.denison{background:var(--navy2);border-color:rgba(255,255,255,.22)}
.pbox.result{background:var(--gold);color:#081828;border:0;justify-content:center}
.pbox small{letter-spacing:.18em;font-size:9px;font-weight:600;color:#fff}
.pbox.result small{color:#26384a}
.pbox h3{font-size:32px;font-weight:400;margin:28px 0;letter-spacing:0}
.pbox .logo{display:block;width:190px;height:64px;object-fit:contain;object-position:left center}
.pbox.denison .logo{width:210px;height:70px;margin:20px 0 4px}
.pbox ul{list-style:none;padding:0;margin:0;width:100%}
.pbox li{font-size:14.5px;line-height:1.5;color:#c4ccd4;padding:11px 0;border-top:1px solid rgba(255,255,255,.1)}
.pbox.denison li{color:#fff;border-top-color:rgba(255,255,255,.18)}
.pbox.denison .more{display:inline-flex;gap:8px;margin-top:auto;padding-top:25px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.pbox.denison .more span:first-child{border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px}
.pbox.denison .more:hover{color:var(--gold2)}
.pbox.result p{font-size:16px;line-height:1.75;margin:0}

/* Global presence */
.global{background:var(--navy);color:#fff;padding:clamp(70px,7vw,100px) var(--pad);border-top:1px solid rgba(255,255,255,.08)}
.global small{font-size:12px;letter-spacing:.18em;color:#d5c7aa;font-weight:600}
.global h2{font-size:clamp(36px,3vw,42px);line-height:1.05;margin:22px 0 clamp(36px,4vw,52px);color:#fff}
.global-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.office-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,2.5vw,34px);align-items:center;padding:clamp(26px,2.6vw,38px) clamp(24px,2.8vw,40px);background:var(--navy2);border:1px solid rgba(255,255,255,.18)}
.office-card .mark{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-right:clamp(18px,2vw,30px);border-right:1px solid var(--line-light)}
.office-card .mark img{display:block;width:clamp(96px,9vw,128px)}
.office-card .mark small{font-size:8px;letter-spacing:.18em;color:var(--gold2)}
.office-card h3{font-size:clamp(23px,2vw,27px);line-height:1.15;letter-spacing:0}
.office-card p{font-size:14.5px;line-height:1.7;color:#aeb8c3;margin:10px 0 0}

/* Broker */
.broker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(48px,7vw,112px);align-items:center;padding:var(--sec) var(--pad)}
.portrait{position:relative;width:100%;max-width:570px;justify-self:center;margin-bottom:26px;background:linear-gradient(110deg,var(--cream) 0 70%,transparent 70%);padding:clamp(24px,4vw,48px) 0 0 clamp(24px,4vw,48px)}
.portrait img{width:100%;aspect-ratio:1/1;display:block;object-fit:cover;box-shadow:0 28px 70px rgba(7,21,37,.18)}
.portrait figcaption{position:absolute;left:clamp(15px,2vw,26px);right:clamp(-26px,-2vw,-10px);bottom:-26px;background:var(--navy);color:#fff;padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 18px}
.portrait figcaption span{font-size:9px;letter-spacing:.17em;color:var(--gold2);font-weight:600}
.portrait figcaption strong{font-family:var(--serif);font-size:18px;font-weight:400}
.broker .name{margin:40px 0 0;font-size:10px;letter-spacing:.18em;color:#9a7d4d;font-weight:600}
.broker h2{font-size:clamp(40px,4.2vw,62px);margin:22px 0 28px}
.broker .body-copy+.body-copy{margin-top:18px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:30px 0 30px -19px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:20px 18px;display:flex;flex-direction:column;gap:7px;border-left:1px solid var(--line)}
.facts small{font-size:8px;letter-spacing:.16em;color:#9a7d4d;font-weight:600}
.facts strong,.facts a.big{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink)}
.facts span{font-size:13.5px;line-height:1.5;color:#64707e}
.facts span a:hover,.facts a.big:hover{color:var(--gold-text)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:34px 0}
.chips span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;padding:10px 13px;border:1px solid var(--line)}
.profile-button{display:inline-flex;align-items:center;gap:10px;padding:15px 18px;background:var(--navy);color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.11em;border:1px solid var(--navy);transition:.2s}
.profile-button:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}

/* Contact */
.contact{background:linear-gradient(135deg,#0a2137,#061421);color:#fff;text-align:center;padding:clamp(80px,8vw,110px) var(--pad)}
.contact>div{max-width:780px;margin:0 auto}
.contact h2{font-weight:400;font-size:clamp(44px,5vw,70px);line-height:.94;margin:25px 0;color:#fff}
.contact p.sub{color:#aeb8c3;line-height:1.8;max-width:570px;margin:0 auto 35px;font-size:16px}

/* Footer */
.site-footer{background:#050f1c;color:#c9d1d9;font-size:15px;line-height:1.65}
.offices{background:#0a1a2c;padding:clamp(56px,6vw,84px) var(--pad)}
.offices>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,4vw,56px) clamp(32px,5vw,72px)}
.office{display:flex;flex-direction:column;gap:18px;min-width:0}
.office small{font-size:11px;letter-spacing:.22em;color:var(--gold2);font-weight:600}
.office address{font-style:normal;font-size:15px;line-height:1.7;color:#c9d1d9;margin:0}
.office address strong{display:block;color:#fff;font-weight:600;margin-bottom:6px}
.office p{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.office p a{color:#e6ebf0}
.office p a.mail{font-weight:600;color:var(--gold2);border-bottom:1px solid rgba(208,178,122,.6);padding-bottom:2px;word-break:break-all}
.office p a:hover{color:var(--gold2)}
.office p a.mail:hover{color:#fff;border-color:#fff}
.group{padding:clamp(56px,6vw,80px) var(--pad) 0}
.group .mes{display:inline-flex}
.group .mes img{display:block;width:clamp(160px,16vw,200px)}
.group .tagline{margin:36px 0 0;font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:#c9d1d9}
.brands{margin-top:44px;padding:clamp(36px,4vw,56px) 0;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(16px,3vw,40px)}
.brands a{display:flex;justify-content:center;min-width:0}
.brands a:hover{opacity:.8}
.brands img{display:block;width:min(100%,150px)}
.legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 28px;padding:24px 0 32px;border-top:1px solid rgba(255,255,255,.12);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8d98a4;line-height:1.6}
.legal p{margin:0}
.legal i{font-style:normal;color:#5c6773;padding:0 6px}
.legal a{color:#8d98a4;display:inline-flex;gap:6px}
.legal a:hover{color:var(--gold2)}

/* Responsive */
@media (max-width:1180px){.partner{grid-template-columns:1fr;gap:0}.partner .op{min-height:64px}.pbox{min-height:0}.pbox.result{min-height:0}}
@media (max-width:1100px){.values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1000px){.nav-shell nav,.nav-cta{display:none}.menu{display:block}.split{grid-template-columns:1fr;min-height:0}.split.sell .split-media{order:0}.split-media{min-height:clamp(300px,62vw,520px)}.broker{grid-template-columns:1fr}.portrait{margin-bottom:60px}.hero-proof li{min-height:100px}}
@media (max-width:860px){.hero-proof ul{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-proof li{min-height:88px;padding:12px clamp(14px,2vw,24px)}.hero-proof li:nth-child(3){border-left-color:transparent;padding-left:0}.hero-proof li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}.hero-proof strong{font-size:30px}.global-cards{grid-template-columns:1fr}.offices>div{grid-template-columns:1fr}.facts{grid-template-columns:1fr;margin-left:0}.facts div{border-left:0;border-top:1px solid var(--line)}.facts div:first-child{border-top:0}}
@media (max-width:640px){.values{grid-template-columns:1fr;margin-left:0}.values article{border-left:0;padding:28px 0}.points{grid-template-columns:1fr}.office-card{grid-template-columns:1fr}.office-card .mark{padding-right:0;padding-bottom:16px;border-right:0;border-bottom:1px solid var(--line-light)}.hero-actions .button{max-width:none}.portrait figcaption{right:0;left:0;bottom:-30px}.brand img{width:140px}.legal{justify-content:center;text-align:center}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.profile-button{transition:none}}
