:root { --ink:#172521; --pine:#21463c; --cream:#f4f0e7; --paper:#fbfaf6; --gold:#b59054; --line:#d8d3c7; --muted:#5d6863; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.7; }
a { color:inherit; }
.site-header { height:96px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(23,37,33,.12); background:rgba(251,250,246,.92); backdrop-filter:blur(10px); position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; text-decoration:none; }
.brand img { display:block; width:min(300px,31vw); height:auto; mix-blend-mode:multiply; }
nav { display:flex; align-items:center; gap:34px; }
nav a { text-decoration:none; font-size:13px; font-weight:600; letter-spacing:.04em; }
.nav-cta { color:var(--paper); background:var(--pine); padding:13px 18px; }
.hero { min-height:500px; display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.38fr); background:var(--cream); }
.hero-content { padding:clamp(44px,5vw,72px) clamp(24px,8vw,128px); align-self:center; }
.eyebrow { margin:0 0 16px; text-transform:uppercase; color:var(--gold); font-size:11px; font-weight:600; letter-spacing:.22em; }
h1,h2,h3 { font-family:"Libre Caslon Display",serif; font-weight:400; margin-top:0; }
h1 { max-width:900px; margin-bottom:20px; font-size:clamp(52px,6.6vw,100px); line-height:1.02; letter-spacing:-.035em; }
.hero-copy { max-width:660px; color:var(--muted); font-size:clamp(17px,1.4vw,21px); line-height:1.65; }
.button { display:inline-flex; align-items:center; gap:38px; margin-top:20px; padding:16px 20px; background:var(--pine); color:white; text-decoration:none; font-size:13px; font-weight:600; }
.button span { color:#d7b477; font-size:18px; }
.hero-aside { position:relative; min-height:500px; overflow:hidden; background:var(--pine); color:var(--paper); }
.hero-aside > img { width:100%; height:100%; display:block; object-fit:cover; object-position:52% 28%; }
.portrait-caption { position:absolute; right:0; bottom:0; left:0; padding:26px 30px; background:linear-gradient(0deg,rgba(23,37,33,.94),rgba(23,37,33,.1)); }
.portrait-caption strong { display:block; font:28px/1.1 "Libre Caslon Display",serif; }
.portrait-caption span { display:block; margin-top:8px; color:#d8ddd9; font-size:10px; text-transform:uppercase; letter-spacing:.18em; }
.section { padding:clamp(44px,5vw,72px) clamp(24px,8vw,128px); }
.section-heading { display:grid; grid-template-columns:.35fr 1fr; gap:40px; align-items:start; margin-bottom:28px; }
.section-heading h2,.about h2,.contact h2 { font-size:clamp(42px,5vw,74px); line-height:1.08; letter-spacing:-.025em; }
.section-heading h2 { max-width:850px; }
.service-list { border-top:1px solid var(--line); }
.service-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:24px; padding:26px 0; border-bottom:1px solid var(--line); }
.service-card > span { padding-top:9px; color:var(--gold); font-size:11px; letter-spacing:.14em; }
.service-card > div { display:grid; grid-template-columns:minmax(260px,.7fr) minmax(300px,1fr); gap:48px; }
.service-card h3 { margin:0; font-size:clamp(28px,3vw,44px); line-height:1.18; }
.service-card h3 { grid-column:1; grid-row:1; }
.service-card p { grid-column:2; max-width:720px; margin:0 0 10px; color:var(--muted); }
.about { display:grid; grid-template-columns:.42fr 1fr; gap:clamp(36px,5vw,72px); background:var(--cream); }
.about aside { position:sticky; top:140px; align-self:start; }
.aside-quote { max-width:340px; margin-top:28px; padding-top:20px; border-top:1px solid var(--gold); font:28px/1.4 "Libre Caslon Display",serif; }
.about-copy { max-width:850px; }
.about-copy .lead { font:clamp(24px,2.4vw,36px)/1.45 "Libre Caslon Display",serif; color:var(--ink); }
.about-copy p { color:var(--muted); margin:0 0 18px; }
.about-copy strong { color:var(--ink); font-weight:600; }
.contact { padding:clamp(48px,5vw,72px) clamp(24px,8vw,128px); text-align:center; background:var(--pine); color:white; }
.contact h2 { max-width:950px; margin:0 auto 20px; }
.contact-intro { max-width:650px; margin:0 auto 26px; color:#d2dbd7; }
.contact-options { width:min(900px,100%); margin:0 auto; display:grid; grid-template-columns:1fr; border:1px solid rgba(255,255,255,.24); }
.contact-options a { display:grid; grid-template-columns:1fr auto; gap:8px 30px; padding:22px; text-align:left; text-decoration:none; }
.contact-options a + a { border-left:1px solid rgba(255,255,255,.24); }
.contact-options small { grid-column:1 / -1; color:#c6d1cc; text-transform:uppercase; letter-spacing:.18em; }
.contact-options strong { font:clamp(21px,2vw,29px)/1.2 "Libre Caslon Display",serif; overflow-wrap:anywhere; }
.contact-options span { color:var(--gold); font-size:22px; }
.contact-note { max-width:760px; margin:20px auto 0; color:#aebcb6; font-size:12px; }
.button.light { background:var(--paper); color:var(--ink); }
footer { min-height:100px; padding:22px clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; gap:24px; }
footer p { color:var(--muted); font-size:12px; }
footer p a { text-decoration:none; }
.footer-brand { pointer-events:none; }
.footer-brand img { width:min(340px,50vw); }
@media (max-width:900px) {
  .site-header { height:82px; }
  nav > a:not(.nav-cta) { display:none; }
  .nav-cta { padding:10px 12px; }
  .brand img { width:min(255px,47vw); }
  .hero { grid-template-columns:1fr; }
  .hero-aside { min-height:360px; }
  .section-heading,.about { grid-template-columns:1fr; }
  .about aside { position:static; }
  .aside-quote { margin-top:25px; }
  .service-card > div { grid-template-columns:1fr; gap:14px; }
  .service-card h3,.service-card p { grid-column:1; grid-row:auto; }
  .contact-options { grid-template-columns:1fr; }
  .contact-options a + a { border-left:0; border-top:1px solid rgba(255,255,255,.24); }
}
@media (max-width:560px) {
  .brand img { width:min(230px,63vw); }
  .nav-cta { display:none; }
  .hero-content { padding-top:40px; padding-bottom:40px; }
  .service-card { grid-template-columns:35px minmax(0,1fr); gap:14px; }
  footer { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
