:root{
  --paper:#F4F1EA; --card:#FBFAF6; --ink:#2A2723; --ink-soft:#5F5B52;
  --sage:#5C7460; --forest:#2F3D33; --brass:#A9762F; --brass-deep:#8E621F;
  --line:#E2DCD0; --tick:rgba(92,116,96,.55);
  --maxw:1080px;
  --serif:"Spectral",Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --fs-base:1.0625rem;   /* the one body size */
  --fs-head:1.5rem;      /* every heading except the H1 */
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-base);line-height:1.65;-webkit-font-smoothing:antialiased;}

/* THREE SIZES ONLY: H1 (large) · all other headings (mid) · everything else (base) */
h1{font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:-.01em;color:var(--forest);font-size:clamp(2.4rem,5vw,2.9rem);margin:0 0 22px;}
h2,h3{font-family:var(--serif);font-weight:500;line-height:1.24;letter-spacing:-.005em;color:var(--forest);font-size:var(--fs-head);margin:0 0 10px;}

a{color:var(--brass-deep);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.eyebrow{font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin:0 0 14px;}
.eyebrow.light{color:#9DB0A0;}
.tickrule{height:11px;margin:30px 0;background-image:repeating-linear-gradient(to right,var(--tick) 0,var(--tick) 1px,transparent 1px,transparent 30px);background-size:100% 8px;background-repeat:no-repeat;background-position:left bottom;border-bottom:1px solid var(--line);}
.tickrule.short{max-width:230px;}

header.site{position:sticky;top:0;z-index:30;background:rgba(244,241,234,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:66px;}
.brand{font-family:var(--serif);font-size:1.18rem;color:var(--forest);text-decoration:none;font-weight:600;line-height:1;white-space:nowrap;}
.brand small{font-family:var(--sans);font-weight:600;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--sage);display:block;margin-top:3px;}
.nav-links{display:flex;gap:26px;align-items:center;}
.nav-links a{font-weight:500;color:var(--ink-soft);text-decoration:none;white-space:nowrap;}
.nav-links a:hover,.nav-links a.active{color:var(--forest);}
.btn{display:inline-block;font-family:var(--sans);font-weight:700;text-decoration:none;border-radius:2px;padding:13px 24px;transition:transform .15s ease,background .15s ease,opacity .25s ease;cursor:pointer;}
.btn-primary{background:var(--brass);color:#fff;}
.btn-primary:hover{background:var(--brass-deep);transform:translateY(-1px);}
.btn-ghost{border:1px solid var(--sage);color:var(--forest);background:transparent;}
.btn-ghost:hover{background:rgba(92,116,96,.08);}
.nav .btn{padding:10px 18px;}
.nav-cta{transition:opacity .25s ease,transform .25s ease;}
@media(min-width:861px){.nav-cta--hidden{opacity:0;transform:translateY(-8px);pointer-events:none;}}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--forest);}
.burger svg{display:block;}

.hero{padding:88px 0 52px;}
.hero h1{max-width:16ch;}
.hero .lede{color:var(--ink-soft);max-width:52ch;margin:0 0 30px;}
.page-hero{padding:72px 0 34px;}
.page-hero h1{max-width:20ch;}
.page-hero .lede{color:var(--ink-soft);max-width:58ch;margin:0 0 28px;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.trust{margin-top:26px;color:var(--ink-soft);display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.trust .dot{width:5px;height:5px;border-radius:50%;background:var(--sage);display:inline-block;}

.nature-band{height:300px;background:var(--sage) center/cover no-repeat;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:8px 0;}
.pillar{border-top:1px solid var(--line);padding-top:18px;}
.pillar::before{content:"";display:block;width:38px;height:8px;margin-bottom:14px;background-image:repeating-linear-gradient(to right,var(--brass) 0,var(--brass) 1.5px,transparent 1.5px,transparent 8px);}
.pillar p{margin:0;color:var(--ink-soft);}

.band{padding:58px 0;border-top:1px solid var(--line);}
.band h2{margin:0 0 6px;}
.lead-para{max-width:64ch;}
.lead-para + .lead-para{margin-top:16px;color:var(--ink-soft);}
.inperson{margin-top:22px;color:var(--sage);font-weight:600;}

.threeway{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:22px;margin-top:30px;}
.col{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--sage);border-radius:3px;padding:24px 22px;}
.col p{margin:0;color:var(--ink-soft);}
a.col.link{text-decoration:none;display:flex;flex-direction:column;transition:transform .15s ease;}
a.col.link:hover{transform:translateY(-2px);}
a.col.link .more{margin-top:14px;color:var(--brass-deep);font-weight:600;}

.note{margin-top:28px;padding:22px 24px;background:rgba(92,116,96,.07);border-radius:4px;max-width:70ch;}
.note p{margin:0;color:var(--ink);}

.about-grid{display:grid;grid-template-columns:170px 1fr;gap:36px;align-items:start;margin-top:24px;}
.portrait{width:170px;height:204px;border-radius:4px;background:var(--forest);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:3.6rem;font-weight:500;background-size:cover;background-position:center;}

.faq{margin-top:26px;border-top:1px solid var(--line);max-width:80ch;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{list-style:none;cursor:pointer;padding:19px 36px 19px 0;position:relative;font-family:var(--serif);color:var(--forest);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:6px;top:16px;font-family:var(--sans);font-size:1.4rem;color:var(--sage);}
.faq details[open] summary::after{content:"\2013";}
.faq .answer{padding:0 36px 22px 0;color:var(--ink-soft);max-width:66ch;}

.related{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px;}
a.rel{text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:22px 24px;transition:transform .15s ease;}
a.rel:hover{transform:translateY(-2px);}
a.rel p{margin:0;color:var(--ink-soft);}

.contact-card{background:var(--forest);color:#EDE9DF;border-radius:5px;padding:46px 40px;margin-top:26px;}
.contact-card h2{color:#fff;}
.contact-card a{color:#E8C98A;}
.contact-rows{display:flex;flex-wrap:wrap;gap:34px;margin:22px 0 30px;}
.contact-rows .label{letter-spacing:.1em;text-transform:uppercase;color:#9DB0A0;margin-bottom:5px;font-weight:600;}

.facts{display:flex;flex-wrap:wrap;gap:30px;margin-top:24px;}
.facts .label{letter-spacing:.1em;text-transform:uppercase;color:var(--sage);margin-bottom:5px;font-weight:600;}

footer.site{padding:38px 0;border-top:1px solid var(--line);color:var(--ink-soft);}
footer.site .frow{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;}
footer.site a{color:var(--ink-soft);}
footer.site .fname{color:var(--forest);font-family:var(--serif);}
footer.site .classes{width:100%;margin-top:10px;color:var(--sage);font-weight:500;}
footer.site .legalese{width:100%;margin-top:8px;color:var(--ink-soft);opacity:.85;}

:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none;}}

@media(max-width:820px){.pillars{grid-template-columns:repeat(2,1fr);gap:28px;}.threeway{grid-template-columns:1fr;}.subservices{grid-template-columns:1fr;gap:28px;}.related{grid-template-columns:1fr;}}
@media(max-width:620px){.about-grid{grid-template-columns:1fr;}.portrait{width:140px;height:168px;}}
@media(max-width:460px){.pillars{grid-template-columns:1fr;}}
@media(max-width:860px){
  .burger{display:block;}
  .nav-links{position:absolute;top:66px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 24px 18px;display:none;}
  .nav-links.open{display:flex;}
  .nav-links a:not(.btn){width:100%;padding:12px 0;border-bottom:1px solid var(--line);}
  .nav-links .btn{margin-top:14px;}
}

/* reviews + welcome */
.reviews{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px;}
a.review-card{text-decoration:none;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:3px;padding:24px;transition:transform .15s ease;}
a.review-card:hover{transform:translateY(-2px);}
a.review-card .stars{color:var(--brass);letter-spacing:2px;}
a.review-card h3{margin:8px 0 6px;}
a.review-card p{margin:0;color:var(--ink-soft);}
.ratings{color:var(--ink-soft);margin:0;}
.hero .ratings{margin-top:14px;}
.hero .ratings a,.ratings a{color:var(--brass-deep);font-weight:600;text-decoration:none;}
.welcome{color:var(--ink);max-width:68ch;}
@media(max-width:820px){.reviews{grid-template-columns:1fr;}}

/* colleague recommendations */
.recs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:26px;}
.rec{margin:0;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--sage);border-radius:3px;padding:24px 22px;}
.rec blockquote{margin:0 0 12px;font-family:var(--serif);line-height:1.45;color:var(--forest);font-style:italic;}
.rec figcaption{color:var(--ink-soft);font-weight:600;}

/* section tones */
.band--sage{background:#E8EBE1;}
.band--forest{background:var(--forest);border-top:none;}
.band--forest .eyebrow{color:#9DB0A0;}
.band--forest h2{color:#F4F1EA;}
.band--forest .welcome,.band--forest p,.band--forest .lead-para{color:#E5E2D8;}
.band--forest a{color:#E8C98A;}

/* hero portrait */
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:50px;align-items:center;}
.hero-portrait{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 14px 0;box-shadow:0 20px 44px -28px rgba(47,61,51,.55);max-width:360px;width:100%;justify-self:end;}
.hero-portrait img{display:block;width:100%;height:auto;border-radius:4px;}
.hp-cap{margin:0;padding:14px 4px 16px;}
.hp-cap strong{display:block;font-family:var(--serif);font-weight:500;color:var(--forest);}
.hp-cap span{display:block;color:var(--ink-soft);margin-top:3px;}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;gap:34px;}.hero-portrait{justify-self:start;max-width:320px;}}

/* measured visual + tracking layout */
.measure-card{background:var(--card);border:1px solid var(--line);border-radius:5px;padding:22px 22px 20px;box-shadow:0 18px 40px -28px rgba(47,61,51,.55);}
.measure-card .vlabel{font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin:0 0 12px;}
.measure-card svg{display:block;width:100%;height:auto;}
.measure-card .vcap{margin:14px 0 0;color:var(--ink-soft);line-height:1.5;}
.track-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:30px;}
@media(max-width:860px){.track-grid{grid-template-columns:1fr;gap:26px;}}

/* welcome image */
.welcome-figure{margin:0 0 26px;}
.welcome-figure img{display:block;width:100%;height:260px;object-fit:cover;border-radius:5px;}

/* office photo + recurring brand band + methods list */
.brand-band{height:170px;background:var(--sage) center/cover no-repeat;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.office-figure{margin:8px 0 0;}
.office-figure img{display:block;width:100%;height:320px;object-fit:cover;border-radius:5px;}
.office-figure figcaption{margin-top:10px;color:var(--ink-soft);}
.methods{list-style:none;margin:18px 0 0;padding:0;max-width:72ch;display:grid;gap:13px;}
.methods li{padding-left:20px;position:relative;}
.methods li::before{content:"";position:absolute;left:0;top:12px;width:9px;height:2px;background:var(--brass);}
.methods a{font-weight:600;}
