@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root { --ink:#26312d; --muted:#69716d; --cream:#f5f0e9; --sage:#34453f; --line:#d9d3ca; --white:#fffdf9; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:'DM Sans',sans-serif; line-height:1.6; }
a { color:inherit; text-decoration:none; }
.site-header { height:82px; padding:0 6vw; display:flex; align-items:center; gap:34px; border-bottom:1px solid var(--line); background:rgba(255,253,249,.96); position:sticky; top:0; z-index:10; }
.logo { font-size:14px; letter-spacing:.18em; font-weight:600; margin-right:auto; }
nav { display:flex; gap:28px; font-size:14px; }
nav a:hover, .text-link:hover { opacity:.65; }
.nav-button, .button { display:inline-block; padding:12px 20px; border:1px solid var(--sage); background:var(--sage); color:white; font-size:13px; letter-spacing:.04em; transition:.2s; }
.nav-button:hover, .button:hover { transform:translateY(-1px); opacity:.9; }
.hero { display:grid; grid-template-columns:42% 58%; min-height:680px; background:var(--cream); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:80px 8vw; }
.eyebrow { margin:0 0 18px; font-size:11px; letter-spacing:.2em; font-weight:600; color:#7a837e; }
h1,h2 { font-family:'Playfair Display',serif; font-weight:500; line-height:1.08; margin:0; }
h1 { font-size:clamp(48px,6vw,82px); max-width:620px; }
h2 { font-size:clamp(38px,4vw,58px); }
em { font-weight:500; }
.intro { max-width:470px; margin:28px 0 34px; color:var(--muted); font-size:17px; }
.hero-image { min-height:680px; overflow:hidden; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.services { padding:110px 8vw; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; margin-top:70px; }
.service-grid article { border-top:1px solid var(--line); padding-top:20px; }
.service-grid span { color:#929994; font-size:12px; }
h3 { font-family:'Playfair Display',serif; font-size:28px; margin:18px 0 8px; font-weight:500; }
.service-grid p { color:var(--muted); margin:0; max-width:330px; }
.feature { display:grid; grid-template-columns:58% 42%; background:#eee9e1; }
.feature-image { height:650px; overflow:hidden; }
.feature-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.feature-copy { padding:80px 8vw; display:flex; flex-direction:column; justify-content:center; }
.feature-copy p:not(.eyebrow) { color:var(--muted); max-width:420px; margin:28px 0; }
.text-link { font-size:13px; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:5px; width:max-content; }
.contact { text-align:center; padding:115px 20px; background:var(--sage); color:white; }
.contact .eyebrow { color:#c7cfca; }
.contact h2 { max-width:650px; margin:auto; }
.contact p:not(.eyebrow) { color:#d9dfdc; margin:24px auto 32px; }
.button.light { background:white; color:var(--sage); border-color:white; }
footer { display:flex; justify-content:space-between; padding:25px 6vw; font-size:11px; letter-spacing:.08em; color:#7c837f; }
@media (max-width:800px) {
  .site-header { padding:0 5vw; height:70px; }
  nav { display:none; }
  .hero, .feature { grid-template-columns:1fr; }
  .hero-copy { padding:70px 8vw; }
  .hero-image { min-height:480px; }
  .service-grid { grid-template-columns:1fr; gap:35px; margin-top:45px; }
  .services { padding:80px 8vw; }
  .feature-image { height:500px; }
  .feature-copy { padding:70px 8vw 85px; }
  footer { flex-direction:column; gap:8px; }
}
