:root {
  --green: #657b68;
  --green-dark: #35483b;
  --cream: #f5f1e9;
  --paper: #fbfaf6;
  --sand: #ddd4c2;
  --ink: #263129;
  --muted: #6e756f;
  --line: rgba(53,72,59,.16);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: "DM Sans", sans-serif; line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
.nav {
  height: 78px; padding: 0 6vw; display:flex; align-items:center; justify-content:space-between;
  position: sticky; top:0; z-index:10; background:rgba(251,250,246,.92); backdrop-filter: blur(12px);
  border-bottom:1px solid var(--line);
}
.brand { font-size: 15px; font-weight:600; letter-spacing:.02em; }
.brand span { color:var(--green); padding:0 5px; }
.nav nav { display:flex; align-items:center; gap:30px; font-size:13px; }
.nav nav a { color:#56605a; }
.nav .nav-cta { padding:10px 17px; border:1px solid var(--green); border-radius:30px; color:var(--green-dark); }
.hero {
  min-height: calc(100vh - 78px); padding: 7vw 8vw;
  display:grid; grid-template-columns: 1fr .9fr; gap:7vw; align-items:center;
  background:var(--cream);
}
.eyebrow,.section-label { font-size:11px; letter-spacing:.18em; font-weight:600; color:var(--green); }
h1,h2 { font-family:"Playfair Display", serif; font-weight:500; line-height:1.05; letter-spacing:-.025em; margin:18px 0 25px; }
h1 { font-size:clamp(44px,5.5vw,76px); }
h2 { font-size:clamp(38px,4.2vw,58px); }
em { color:var(--green); font-style:normal; }
.lead { max-width:590px; color:#626a63; font-size:18px; }
.actions { display:flex; gap:24px; align-items:center; margin-top:34px; }
.button { background:var(--green-dark); color:white; padding:15px 22px; border-radius:3px; font-size:14px; }
.text-link { font-size:14px; color:var(--green-dark); }
.hero-photo { position:relative; max-width:520px; width:100%; justify-self:end; }
.photo-placeholder {
  aspect-ratio: 4/5; background:
    linear-gradient(135deg, rgba(101,123,104,.22), rgba(221,212,194,.7)),
    repeating-linear-gradient(45deg, rgba(255,255,255,.25) 0 2px, transparent 2px 10px);
  display:flex; align-items:center; justify-content:center; text-align:center; color:rgba(53,72,59,.58);
  letter-spacing:.14em; font-size:10px; font-weight:600;
}
.photo-frame { aspect-ratio:4/5; overflow:hidden; }
.photo-frame img { width:100%; height:100%; object-fit:cover; display:block; }
.badge {
  position:absolute; left:-30px; bottom:30px; background:var(--paper); padding:17px 20px;
  box-shadow:0 12px 35px rgba(37,49,41,.12); font-size:12px; line-height:1.4;
}
.intro { padding:10vw 13vw; display:grid; grid-template-columns:.65fr 1.35fr; gap:7vw; }
.intro p { color:var(--muted); max-width:700px; font-size:17px; }
.services { padding:9vw 8vw; background:#eef0e9; }
.section-heading { max-width:650px; margin-bottom:50px; }
.section-heading p { color:var(--muted); }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.card { background:var(--paper); padding:34px; min-height:320px; position:relative; }
.card.featured { background:var(--green-dark); color:white; transform:translateY(-12px); }
.card.featured p { color:#dbe1db; }
.number { position:absolute; right:24px; top:22px; font-size:11px; opacity:.5; }
.icon { font-size:28px; margin:35px 0 24px; }
.card h3 { font-family:"Playfair Display",serif; font-size:29px; line-height:1.05; font-weight:500; }
.card p { color:var(--muted); font-size:14px; }
.approach { padding:10vw 13vw; display:grid; grid-template-columns:.85fr 1fr; gap:9vw; align-items:center; }
.photo-placeholder.small { aspect-ratio:1/1.05; }
.approach-copy p { color:var(--muted); font-size:17px; }
.approach-copy ul { list-style:none; padding:0; margin-top:30px; display:grid; gap:12px; font-size:14px; }
.approach-copy li { border-bottom:1px solid var(--line); padding-bottom:12px; }
.contact {
  padding:8vw 13vw; background:var(--green-dark); color:white;
  display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center;
}
.contact .section-label { color:#c4d1c5; }
.contact h2 { margin-bottom:18px; }
.contact p { color:#d5ddd6; max-width:520px; }
.contact-box { border-top:1px solid rgba(255,255,255,.25); }
.contact-item {
  padding:20px 0; border-bottom:1px solid rgba(255,255,255,.25);
  display:flex; justify-content:space-between; font-size:14px;
}
.contact-item span { opacity:.65; }
footer { padding:25px 8vw; display:flex; justify-content:space-between; gap:20px; color:#7a817b; font-size:11px; }
@media(max-width:800px) {
  .nav { padding:0 5vw; } .nav nav a:not(.nav-cta) { display:none; }
  .hero,.intro,.approach,.contact { grid-template-columns:1fr; }
  .hero { padding:13vw 7vw; gap:50px; }
  .hero-photo { justify-self:center; max-width:430px; }
  .intro,.approach,.contact { padding:18vw 8vw; gap:45px; }
  .cards { grid-template-columns:1fr; }
  .card.featured { transform:none; }
  footer { flex-direction:column; padding:25px 8vw; }
}

.service-area{margin-top:28px;display:flex;align-items:center;gap:12px;font-size:13px;color:var(--green-dark);letter-spacing:.01em}.service-area span{opacity:.45}.area-note{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:13px;color:var(--green-dark)}.contact-location{margin-top:24px;padding:15px 18px;border-left:2px solid rgba(255,255,255,.45);color:#d5ddd6;font-size:14px}@media(max-width:800px){.service-area{flex-wrap:wrap}}
