:root { --green:#181818; --deep:#0d0d0d; --cream:#f7f4ee; --paper:#ffffff; --gold:#b89a62; --ink:#171717; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
section[id] { scroll-margin-top:24px; }
section:not(.hero) { content-visibility:auto; contain-intrinsic-size:auto 700px; }

.site-header { height:94px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(246,240,232,.14); position:absolute; inset:0 0 auto; z-index:10; color:var(--cream); }
.brand { display:flex; align-items:center; gap:13px; }
.brand-mark { width:47px; height:47px; border:1px solid var(--gold); border-radius:50%; display:grid; place-items:center; font-family:Georgia,"Times New Roman",serif; font-size:20px; color:var(--gold); }
.brand-name { font-family:Georgia,"Times New Roman",serif; font-size:19px; line-height:1; letter-spacing:.02em; }
.brand-name small { display:block; margin-top:6px; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:9px; letter-spacing:.34em; text-transform:uppercase; }
nav { display:flex; gap:34px; font-size:13px; }
nav a { opacity:.82; transition:.2s; } nav a:hover { opacity:1; }
.header-contact { font-size:13px; border-bottom:1px solid var(--gold); padding:9px 0; display:flex; gap:15px; transition:color .2s ease,border-color .2s ease; }
.header-contact span,.primary-button span,.contact-button span,.text-link span { transition:transform .25s ease; }
.header-contact:hover span { transform:translate(3px,-3px); }

.hero { min-height:790px; background:var(--green); color:var(--cream); padding:175px clamp(24px,7vw,110px) 80px; position:relative; overflow:hidden; display:flex; align-items:center; }
.hero:before { content:""; position:absolute; width:34vw; height:34vw; border:1px solid rgba(184,154,98,.14); border-radius:50%; right:-21vw; bottom:-20vw; z-index:2; }
.hero-copy { position:relative; z-index:3; width:min(58vw,760px); }
.eyebrow { text-transform:uppercase; letter-spacing:.2em; font-size:11px; font-weight:600; display:flex; align-items:center; gap:12px; color:var(--gold); margin:0 0 28px; }
.eyebrow span { width:34px; height:1px; background:currentColor; }
.eyebrow.light { color:#d7c096; }
h1,h2,h3,p { margin-top:0; }
h1 { font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(54px,6.7vw,98px); line-height:.97; letter-spacing:-.035em; max-width:800px; margin-bottom:32px; }
h1 em { color:#d5b777; font-weight:400; }
.hero-lead { font-size:17px; line-height:1.7; font-weight:300; max-width:560px; color:rgba(243,239,229,.78); }
.hero-actions { display:flex; align-items:center; gap:36px; margin-top:42px; }
.primary-button,.contact-button { background:var(--gold); color:#111111; padding:18px 25px; display:inline-flex; align-items:center; gap:26px; font-size:13px; font-weight:600; transition:transform .25s ease,background-color .25s ease,box-shadow .25s ease; }
.primary-button:hover,.contact-button:hover { background:#d0ad70; transform:translateY(-2px); }
.primary-button:hover span,.text-link:hover span { transform:translateY(4px); }
.contact-button:hover span { transform:translateY(-4px); }
.primary-button:active,.contact-button:active { transform:translateY(0) scale(.98); }
.text-link { font-size:13px; display:flex; gap:15px; color:rgba(243,239,229,.82); transition:color .2s ease; }
.text-link:hover { color:var(--cream); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid #d5b777; outline-offset:4px; }
.hero-photo { position:absolute; z-index:1; margin:0; inset:94px 0 0 auto; width:47%; max-width:none; overflow:hidden; }
.hero-photo:before { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,var(--green) 0%,rgba(24,24,24,.72) 22%,rgba(24,24,24,.08) 65%,rgba(24,24,24,.16) 100%); }
.hero-photo:after { content:""; position:absolute; inset:0; z-index:2; box-shadow:inset 0 0 90px rgba(0,0,0,.28); pointer-events:none; }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; filter:saturate(.84) contrast(1.04); }

.lead-section { background:#eeeae2; padding:55px clamp(24px,7vw,110px); }
.lead-form { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.15fr 1fr 1fr auto; gap:22px; align-items:end; }
.form-heading { padding-right:25px; }
.form-heading .eyebrow { margin-bottom:12px; }
.form-heading h2 { font-family:Georgia,"Times New Roman",serif; font-size:37px; font-weight:400; margin-bottom:8px; }
.form-heading>p:last-child { color:#6d6a65; font-size:11px; line-height:1.55; margin:0; max-width:340px; }
.lead-form label:not(.consent) { display:flex; flex-direction:column; gap:9px; }
.lead-form label>span { font-size:10px; text-transform:uppercase; letter-spacing:.14em; font-weight:600; }
.lead-form input,.lead-form select { appearance:none; width:100%; border:0; border-bottom:1px solid #bdb6a9; background:transparent; padding:12px 0; color:#24211f; font:13px Inter,ui-sans-serif,system-ui,sans-serif; border-radius:0; outline:none; }
.lead-form input:focus,.lead-form select:focus { border-color:var(--gold); }
.lead-form button { grid-column:4; grid-row:1; border:0; background:var(--deep); color:var(--cream); padding:17px 20px; font:600 12px Inter,ui-sans-serif,system-ui,sans-serif; display:flex; gap:20px; cursor:pointer; white-space:nowrap; transition:transform .2s ease,background-color .2s ease; }
.lead-form button:hover { background:#242424; transform:translateY(-2px); }
.lead-form button:active { transform:translateY(0) scale(.99); }
.form-status { grid-column:2/5; margin:0; font-size:11px; color:#5d584f; }

.practice { background:var(--deep); color:var(--cream); padding:120px clamp(24px,8vw,130px); display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.section-intro h2,.about h2,.process h2 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(40px,4.5vw,64px); line-height:1.08; font-weight:400; letter-spacing:-.025em; }
.section-intro>p:last-child { color:rgba(243,239,229,.57); line-height:1.8; max-width:430px; }
.practice-list article { display:grid; grid-template-columns:50px 1fr 30px; gap:20px; padding:32px 0; border-top:1px solid rgba(243,239,229,.15); align-items:start; }
.practice-list article:last-child { border-bottom:1px solid rgba(243,239,229,.15); }
.practice-list article>span { color:var(--gold); font-size:11px; }
.practice-list h3 { font-family:Georgia,"Times New Roman",serif; font-size:30px; font-weight:400; margin-bottom:9px; }
.practice-list p { color:rgba(243,239,229,.55); line-height:1.65; font-size:13px; margin:0; max-width:520px; }
.practice-list b { color:var(--gold); font-size:20px; font-weight:300; }

.about { padding:130px clamp(24px,9vw,150px); display:grid; grid-template-columns:.8fr 1.2fr; gap:11vw; align-items:center; }
.about-signature { aspect-ratio:1; max-width:370px; border:1px solid #d3c7b3; border-radius:50%; display:grid; place-items:center; text-align:center; position:relative; }
.about-signature:before { content:""; position:absolute; inset:22px; border:1px solid #e2d9ca; border-radius:50%; }
.about-signature>span { font-family:Georgia,"Times New Roman",serif; font-size:94px; color:var(--gold); line-height:1; }
.about-signature p { position:absolute; bottom:58px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; line-height:1.6; color:#77716a; }
.portrait-wrap { position:relative; max-width:390px; }
.portrait-frame { aspect-ratio:3/4; overflow:hidden; background:#d8d1c2; position:relative; }
.portrait-frame:after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(13,13,13,.32),transparent 55%); }
.portrait-frame img { width:100%; height:100%; max-width:none; display:block; object-fit:cover; object-position:center 28%; }
.portrait-caption { display:block; margin-top:15px; font-size:10px; text-transform:uppercase; letter-spacing:.18em; color:#6e756f; }
.about-copy { max-width:690px; }
.about-copy>p:not(.eyebrow) { color:#66706b; line-height:1.8; }
.about-copy .about-lead { color:var(--ink); font-size:19px; line-height:1.65; }
.credentials { display:grid; grid-template-columns:1fr; border-top:1px solid #d5d1c6; margin-top:40px; padding-top:26px; gap:30px; }
.credentials div { display:flex; flex-direction:column; gap:8px; }
.credentials strong { color:var(--green); font-size:12px; text-transform:uppercase; letter-spacing:.13em; }
.credentials span { color:#747b77; font-size:13px; }

.process { background:#eeeae2; padding:110px clamp(24px,8vw,130px); display:grid; grid-template-columns:1fr 1fr; gap:9vw; }
.process ol { list-style:none; padding:0; margin:0; }
.process li { display:grid; grid-template-columns:60px 1fr; border-top:1px solid #c6bcaa; padding:25px 0; }
.process li:last-child { border-bottom:1px solid #c6bcaa; }
.process li>span { color:var(--gold); font-size:11px; }
.process h3 { font-family:Georgia,"Times New Roman",serif; font-size:25px; font-weight:400; margin-bottom:7px; }
.process li p { color:#68706b; font-size:13px; margin:0; line-height:1.6; }

.contact { background:var(--green); color:var(--cream); text-align:center; padding:120px 24px 50px; }
.contact .eyebrow { justify-content:center; }
.contact h2 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(48px,6vw,84px); font-weight:400; line-height:1.05; margin-bottom:22px; }
.contact>p:not(.eyebrow) { color:rgba(243,239,229,.62); max-width:560px; margin:0 auto 35px; line-height:1.7; }
.contact-meta { border-top:1px solid rgba(243,239,229,.15); margin-top:90px; padding-top:25px; display:flex; justify-content:space-between; color:rgba(243,239,229,.53); font-size:11px; text-transform:uppercase; letter-spacing:.14em; }
.contact-meta a { color:#d7c096; }
footer { background:var(--deep); color:rgba(243,239,229,.55); padding:40px clamp(24px,5vw,76px); display:grid; grid-template-columns:1fr 1.5fr .6fr; gap:40px; align-items:center; font-size:10px; line-height:1.6; }
.footer-brand { color:var(--cream); } footer>span { text-align:right; }

@media (max-width:900px) {
  .site-header nav { display:none; }
  .hero { grid-template-columns:1fr; min-height:750px; padding-top:160px; }
  .hero:before { display:none; }
  .hero-copy { width:min(72vw,680px); }
  .hero-photo { width:52%; opacity:.72; }
  .lead-form { grid-template-columns:1fr 1fr; }
  .form-heading { grid-column:1/3; }
  .form-status { grid-column:1/3; }
  .lead-form button { grid-column:1/3; grid-row:auto; justify-content:center; }
  .practice,.about,.process { grid-template-columns:1fr; }
  .portrait-wrap { max-width:330px; }
  footer { grid-template-columns:1fr; } footer>span { text-align:left; }
}
@media (max-width:560px) {
  html { scroll-padding-top:16px; }
  body { overflow-x:hidden; }
  section[id] { scroll-margin-top:16px; }

  .site-header { height:80px; padding:0 16px; gap:10px; }
  .brand { gap:9px; min-width:0; }
  .brand-mark { width:38px; height:38px; flex:0 0 38px; font-size:17px; }
  .brand-name { font-size:14px; white-space:nowrap; }
  .brand-name small { margin-top:5px; font-size:7px; letter-spacing:.25em; }
  .header-contact { min-height:42px; padding:9px 10px; border:1px solid var(--gold); font-size:10px; gap:7px; white-space:nowrap; }
  .header-contact span { font-size:13px; }

  .hero { min-height:760px; padding:132px 20px 62px; align-items:flex-end; }
  .hero-copy { width:100%; }
  .hero-photo { display:block; inset:80px 0 0; width:100%; opacity:1; }
  .hero-photo:before { background:linear-gradient(180deg,rgba(13,13,13,.2) 0%,rgba(13,13,13,.48) 36%,rgba(13,13,13,.94) 78%,var(--deep) 100%); }
  .hero-photo:after { box-shadow:inset 0 0 55px rgba(0,0,0,.28); }
  .hero-photo img { object-position:58% 20%; }
  .eyebrow { font-size:9px; margin-bottom:19px; gap:9px; }
  .eyebrow span { width:25px; }
  h1 { font-size:clamp(43px,13.5vw,57px); line-height:1; margin-bottom:22px; max-width:430px; }
  .hero-lead { font-size:15px; line-height:1.6; max-width:410px; }
  .hero-actions { width:100%; align-items:stretch; flex-direction:column; gap:17px; margin-top:30px; }
  .primary-button { min-height:52px; justify-content:space-between; width:100%; padding:15px 18px; }
  .text-link { min-height:44px; align-items:center; justify-content:space-between; padding:0 4px; }

  .lead-section { padding:48px 20px; }
  .lead-form { grid-template-columns:1fr; gap:25px; }
  .form-heading,.form-status { grid-column:1; padding-right:0; }
  .form-heading h2 { font-size:34px; }
  .form-heading>p:last-child { font-size:12px; }
  .lead-form input,.lead-form select { min-height:48px; padding:12px 0; font-size:16px; }
  .lead-form button { grid-column:1; min-height:52px; justify-content:space-between; padding:15px 18px; }

  .practice,.about,.process { padding:76px 20px; gap:45px; }
  .section-intro h2,.about h2,.process h2 { font-size:clamp(38px,11vw,50px); }
  .section-intro>p:last-child { font-size:14px; }
  .practice-list article { grid-template-columns:34px 1fr 18px; gap:12px; padding:25px 0; }
  .practice-list h3 { font-size:27px; }
  .practice-list p { font-size:13px; }

  .about-signature { width:min(78vw,285px); margin:0 auto; }
  .about-signature>span { font-size:72px; }
  .about-signature p { bottom:42px; font-size:8px; }
  .about-copy .about-lead { font-size:17px; }
  .credentials { grid-template-columns:1fr; margin-top:30px; }

  .process li { grid-template-columns:43px 1fr; padding:22px 0; }
  .process h3 { font-size:24px; }

  .contact { padding:80px 20px 38px; }
  .contact h2 { font-size:clamp(43px,12vw,58px); }
  .contact-button { min-height:52px; width:100%; max-width:360px; justify-content:space-between; }
  .contact-meta { flex-direction:column; gap:16px; align-items:center; margin-top:60px; }

  footer { padding:38px 20px; gap:28px; }
  footer .brand-name { font-size:16px; }
  footer>p { max-width:330px; }
}
@media (prefers-reduced-motion:reduce) { * { transition:none!important; } }
