:root { --ink:#173242; --ink-deep:#102834; --paper:#f4f0e8; --paper-dark:#e8e1d5; --gold:#8a6a3d; --sage:#71827b; --line:rgba(23,50,66,.18); --sans:'Manrope',Arial,sans-serif; --serif:'Cormorant Garamond',Georgia,serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.6; } a { color:inherit; text-decoration:none; } .skip-link { position:absolute; left:-999px; } .skip-link:focus { left:1rem; top:1rem; z-index:100; padding:.8rem; background:white; }
.site-header { min-height:104px; display:flex; align-items:center; justify-content:space-between; padding:1.15rem clamp(1.5rem,5vw,5.5rem); border-bottom:1px solid var(--line); }.brand { display:flex; align-items:center; gap:.85rem; }.brand-logo { display:block; width:clamp(170px,17vw,248px); height:auto; }.brand-mark { display:grid; place-items:center; width:37px; height:37px; border:1px solid var(--gold); color:var(--gold); font-family:var(--serif); font-size:1.2rem; }.brand strong { display:block; font-family:var(--serif); letter-spacing:.14em; font-size:.88rem; line-height:1.2; }.brand small { display:block; margin-top:.25rem; letter-spacing:.115em; font-size:.52rem; font-weight:600; }.footer-mark { display:block; width:48px; height:48px; object-fit:contain; filter:brightness(0) invert(1) sepia(.16) saturate(.65); }.main-nav { display:flex; align-items:center; gap:2.1rem; text-transform:uppercase; letter-spacing:.1em; font-size:.67rem; font-weight:600; }.main-nav a { padding:.5rem 0; }.nav-cta { border-bottom:1px solid var(--gold); }.menu-toggle { display:none; border:0; background:none; font:600 .68rem var(--sans); text-transform:uppercase; letter-spacing:.1em; color:var(--ink); }
.hero { min-height:650px; display:grid; grid-template-columns:1.06fr .94fr; overflow:hidden; }.hero-copy { padding:clamp(5rem,12vw,10rem) clamp(1.5rem,8vw,9rem); align-self:center; }.eyebrow { margin:0 0 1.7rem; color:var(--gold); letter-spacing:.17em; font-size:.65rem; font-weight:600; }.hero h1,.section h2 { margin:0; font-family:var(--serif); font-weight:500; letter-spacing:-.045em; line-height:1.06; }.hero h1 { font-size:clamp(3.15rem,5.7vw,5.6rem); }.hero h1 em,.section h2 em { color:var(--gold); font-weight:400; }.hero-intro { max-width:485px; margin:2.2rem 0; font-size:.98rem; }.hero-intro strong { font-weight:600; }.hero-actions { display:flex; gap:1.7rem; align-items:center; flex-wrap:wrap; }.button { display:inline-flex; gap:2.3rem; align-items:center; justify-content:space-between; padding:1.05rem 1.35rem; border:0; font:600 .69rem var(--sans); letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }.button span { font-size:1.3rem; line-height:.6; }.button-gold { background:var(--gold); color:#fff; }.button-ink { width:100%; background:var(--ink); color:#fff; }.text-link { display:inline-flex; gap:.8rem; align-items:center; padding-bottom:.35rem; border-bottom:1px solid var(--gold); text-transform:uppercase; font-size:.66rem; font-weight:600; letter-spacing:.12em; }.text-link span { font-size:1rem; }.hero-art { position:relative; min-height:470px; overflow:hidden; background:linear-gradient(145deg,#d9d1c2 0%,#eae4d9 45%,#bac0bb 100%); }.hero-art::before { content:''; position:absolute; inset:8% 11% 0 17%; border:1px solid rgba(23,50,66,.2); border-bottom:0; border-radius:280px 280px 0 0; }.portrait-frame { position:absolute; inset:0; display:grid; place-items:center; align-content:center; color:var(--ink); }.portrait-frame span { margin-left:-.15em; font:clamp(9rem,18vw,15rem)/.8 var(--serif); letter-spacing:-.16em; color:rgba(23,50,66,.86); }.portrait-frame p { z-index:1; margin:2.2rem 0 0; padding:.6rem .8rem; background:rgba(244,240,232,.88); color:var(--ink); font-size:.55rem; font-weight:600; letter-spacing:.16em; line-height:1.7; text-align:center; }.portrait-note { position:absolute; bottom:1.8rem; left:clamp(1.5rem,5vw,4.5rem); display:flex; align-items:end; gap:1.1rem; }.portrait-note span { color:var(--gold); font:500 1.2rem var(--serif); letter-spacing:.1em; }.portrait-note p { margin:0; color:var(--ink); font-size:.53rem; font-weight:600; letter-spacing:.13em; line-height:1.7; text-transform:uppercase; }
.hero-portrait { background:#d6d0c7; }.hero-photo { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:50% 20%; filter:saturate(.82) contrast(.97); }.hero-art::before { z-index:1; pointer-events:none; }.portrait-note { z-index:2; padding:.65rem .75rem; background:rgba(244,240,232,.88); }.portrait-note span { color:var(--ink); }
.principles { display:flex; justify-content:center; gap:2.3rem; align-items:center; min-height:88px; padding:1rem; border-bottom:1px solid var(--line); font-size:.6rem; letter-spacing:.15em; font-weight:600; }.principles p { margin:0; }.principles span { height:5px; width:5px; border-radius:100%; background:var(--gold); }
.section { padding:clamp(4.5rem,10vw,8.5rem) clamp(1.5rem,8vw,9rem); }.section-label { color:var(--gold); font-size:.6rem; font-weight:600; letter-spacing:.16em; }.section-label span { display:inline-block; margin-right:.85rem; color:inherit; }.approach-content { display:grid; grid-template-columns:1.3fr .7fr; gap:5rem; margin-top:3.4rem; }.section h2 { font-size:clamp(2rem,4vw,3.6rem); }.approach-text { padding-top:.6rem; }.approach-text p { margin-top:0; max-width:370px; }.approach-text .text-link { margin-top:1rem; }
.section-dark { background:var(--ink); color:var(--paper); }.practice-header { display:flex; gap:4rem; justify-content:space-between; align-items:end; margin:3.3rem 0 4rem; }.practice-header p { max-width:330px; margin:0; color:rgba(245,240,232,.72); font-size:.9rem; }.practice-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(245,240,232,.26); }.practice-card { padding:2rem 2.1rem 2rem 0; min-height:320px; display:flex; flex-direction:column; border-right:1px solid rgba(245,240,232,.26); }.practice-card:not(:first-child) { padding-left:2.1rem; }.practice-card:last-child { border:0; }.practice-card>span { color:var(--gold); font:italic .9rem var(--serif); }.practice-card h3 { margin:2.3rem 0 1.2rem; color:var(--paper); font:400 clamp(1.4rem,2vw,2.1rem)/1.25 var(--serif); letter-spacing:-.04em; }.practice-card p { margin:0; color:rgba(245,240,232,.7); font-size:.88rem; }.practice-card a { margin-top:auto; padding-top:2rem; color:var(--gold); font-size:.64rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; }.practice-card b { margin-left:.4rem; font-size:1rem; }
.profile { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2.5rem,10vw,11rem); align-items:center; }.profile-portrait { position:relative; min-height:500px; overflow:hidden; background:var(--paper-dark); border:1px solid rgba(164,123,67,.55); }.profile-portrait img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:48% 22%; }.profile-copy>p:not(.eyebrow) { max-width:480px; }.profile-copy .text-link { margin-top:1rem; }
.process { background:#dce0da; }.process-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:5rem; align-items:end; margin:3.4rem 0 4rem; }.process-heading p { max-width:360px; margin:0; color:#43575a; font-size:.9rem; }.process-list { display:grid; grid-template-columns:repeat(3,1fr); gap:2.4rem; margin:0; padding:0; list-style:none; border-top:1px solid rgba(23,50,66,.22); }.process-list li { padding-top:1.8rem; }.process-list span { color:var(--gold); font:italic 1rem var(--serif); }.process-list h3 { margin:1rem 0 .55rem; font:500 1.75rem var(--serif); letter-spacing:-.03em; }.process-list p { max-width:280px; margin:0; color:#43575a; font-size:.84rem; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,12vw,12rem); background:var(--paper-dark); }.contact-intro>p:not(.eyebrow) { max-width:375px; }.contact-details { margin-top:3rem; }.contact-details a { display:block; margin-bottom:1rem; color:var(--gold); font:1.15rem var(--serif); }.contact address { font-style:normal; font-size:.86rem; }.contact-form { display:grid; gap:1.15rem; }.contact-form label { display:grid; gap:.45rem; font-size:.63rem; letter-spacing:.1em; font-weight:600; text-transform:uppercase; }.contact-form label span { color:#66757c; font-size:.58rem; }.contact-form input,.contact-form select { width:100%; padding:.8rem 0; border:0; border-bottom:1px solid var(--line); outline:0; color:var(--ink); background:transparent; font:400 1rem var(--sans); }.contact-form input:focus,.contact-form select:focus { border-color:var(--gold); }.form-notice { margin:1.1rem 0 .25rem; font-size:.73rem; line-height:1.5; color:#4f616b; }.form-success { margin:0; color:#365c4c; font-weight:600; }
.site-footer { display:grid; grid-template-columns:1fr 1.5fr auto; align-items:center; gap:3rem; padding:2.2rem clamp(1.5rem,5vw,5.5rem); background:var(--ink-deep); color:var(--paper); }.site-footer .brand-mark { border-color:var(--gold); }.site-footer p { margin:0; color:rgba(245,240,232,.6); font-size:.65rem; line-height:1.6; }.site-footer p:last-child { white-space:nowrap; }
@media (max-width:760px) { .site-header { min-height:86px; padding:.65rem 1.5rem; }.brand-logo { width:130px; }.menu-toggle { display:block; }.main-nav { display:none; position:absolute; top:86px; left:0; right:0; z-index:10; padding:1.5rem; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:start; gap:1rem; }.main-nav.open { display:flex; }.hero { grid-template-columns:1fr; }.hero-copy { padding-bottom:4rem; }.hero-art { min-height:380px; }.principles { gap:1rem; justify-content:space-around; }.principles span { display:none; }.principles p { max-width:96px; text-align:center; font-size:.5rem; }.approach-content,.profile,.contact,.process-heading { grid-template-columns:1fr; gap:2.5rem; }.practice-header { display:block; margin-bottom:2.5rem; }.practice-header p { margin-top:1.5rem; }.practice-grid,.process-list { grid-template-columns:1fr; }.practice-card,.practice-card:not(:first-child) { min-height:0; padding:1.6rem 0; border-right:0; border-bottom:1px solid rgba(245,240,232,.26); }.practice-card h3 { margin:1.2rem 0 .6rem; }.practice-card a { margin-top:1.3rem; padding-top:0; }.process-list { gap:0; }.process-list li { padding:1.35rem 0; border-bottom:1px solid rgba(23,50,66,.18); }.profile-portrait { min-height:340px; }.site-footer { grid-template-columns:1fr; gap:1.4rem; }.site-footer p:last-child { white-space:normal; } }
