:root{
  --ivory:#F6F5EF;
  --surface:#FFFFFF;
  --ink:#1E2A22;
  --ink-soft:#4E5B54;
  --sage:#4E835D;
  --sage-deep:#35604A;
  --sage-tint:#E4ECE5;
  --line:#DAE1DA;
  --line-strong:#C4CEC5;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ivory:#131912;
    --surface:#1A211B;
    --ink:#ECEFE9;
    --ink-soft:#B4BFB3;
    --sage:#7CB48D;
    --sage-deep:#5A9270;
    --sage-tint:#20291F;
    --line:#2A332A;
    --line-strong:#3A453A;
  }
}
:root[data-theme="dark"]{
  --ivory:#131912;
  --surface:#1A211B;
  --ink:#ECEFE9;
  --ink-soft:#B4BFB3;
  --sage:#7CB48D;
  --sage-deep:#5A9270;
  --sage-tint:#20291F;
  --line:#2A332A;
  --line-strong:#3A453A;
}

*{box-sizing:border-box;}
html,body{background:var(--ivory);}
body{
  color:var(--ink);
  font-family:"Public Sans", -apple-system, "Segoe UI", sans-serif;
  font-size:16px;
  line-height:1.6;
  margin:0;
  padding-inline:20px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.wordmark{
  font-family:"Fraunces", Georgia, "Times New Roman", serif;
  font-weight:600;
  text-wrap:balance;
  color:var(--ink);
}
a{color:inherit;}
img{max-width:100%;}
.wrap{max-width:1120px;margin-inline:auto;}
.eyebrow{
  font-family:"Public Sans", sans-serif;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--sage-deep);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .eyebrow{color:var(--sage);}}
:root[data-theme="dark"] .eyebrow{color:var(--sage);}

/* ---------- header ---------- */
header{
  position:sticky;
  top:0;
  z-index:20;
  background:color-mix(in srgb, var(--ivory) 88%, transparent);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-block:16px;
}
.wordmark{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:19px;
  letter-spacing:.01em;
  white-space:nowrap;
  text-decoration:none;
}
nav{display:flex;align-items:center;gap:28px;}
nav a{
  font-size:14.5px;
  font-weight:500;
  color:var(--ink-soft);
  text-decoration:none;
}
nav a:hover{color:var(--sage-deep);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) nav a:hover{color:var(--sage);}}
:root[data-theme="dark"] nav a:hover{color:var(--sage);}
nav a.active{color:var(--ink);}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  padding:11px 20px;
  border-radius:3px;
  white-space:nowrap;
}
.btn-primary{background:var(--sage-deep);color:#FBFBF8;}
.btn-primary:hover{background:var(--sage);}
.btn-ghost{
  border:1px solid var(--line-strong);
  color:var(--ink);
}
.btn-ghost:hover{border-color:var(--sage-deep);}
nav .btn{display:none;}
@media (min-width:760px){ nav .btn{display:inline-flex;} }

/* ---------- hero ---------- */
.hero{
  padding-block:64px 56px;
  display:grid;
  grid-template-columns:1.3fr .9fr;
  gap:48px;
  align-items:center;
}
@media (max-width:820px){ .hero{grid-template-columns:1fr;padding-block:44px 40px;} }
.hero h1{
  font-size:clamp(32px,4.6vw,50px);
  line-height:1.12;
  margin:14px 0 20px;
}
.hero h1 em{
  font-style:italic;
  color:var(--sage-deep);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .hero h1 em{color:var(--sage);}}
:root[data-theme="dark"] .hero h1 em{color:var(--sage);}
.hero p.lede{
  max-width:52ch;
  font-size:17px;
  color:var(--ink-soft);
  margin-bottom:28px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;}
.hero-figure{
  display:flex;
  justify-content:center;
  align-items:center;
}
.scales{width:100%;max-width:280px;height:auto;}

.credential-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
  padding-block:18px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:13.5px;
  color:var(--ink-soft);
}
.credential-strip span{display:flex;align-items:center;gap:8px;}
.credential-strip svg{width:15px;height:15px;flex:none;color:var(--sage-deep);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .credential-strip svg{color:var(--sage);}}
:root[data-theme="dark"] .credential-strip svg{color:var(--sage);}

/* ---------- sections ---------- */
section{padding-block:64px;}
.page-head{padding-block:48px 8px;}
.page-head h1{font-size:clamp(30px,4vw,44px);margin:12px 0 14px;}
.page-head p{max-width:62ch;color:var(--ink-soft);font-size:16px;}
.section-head{max-width:60ch;margin-bottom:36px;}
.section-head h2{font-size:clamp(24px,3vw,32px);margin:10px 0 12px;}
.section-head p{color:var(--ink-soft);font-size:15.5px;}

.services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
@media (max-width:880px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .services-grid{grid-template-columns:1fr;} }
.service-card{
  background:var(--surface);
  padding:28px 26px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.service-card .num{
  font-family:"Fraunces", serif;
  font-size:13px;
  color:var(--ink-soft);
  letter-spacing:.04em;
}
.service-card h3{font-size:19px;line-height:1.3;}
.service-card p{font-size:14.5px;color:var(--ink-soft);}
.service-card ul{
  list-style:none;
  margin:2px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:7px;
}
.service-card ul li{
  font-size:13.5px;
  color:var(--ink-soft);
  padding-left:16px;
  position:relative;
}
.service-card ul li::before{
  content:"";
  position:absolute;left:0;top:8px;
  width:6px;height:6px;border-radius:50%;
  background:var(--sage-deep);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .service-card ul li::before{background:var(--sage);}}
:root[data-theme="dark"] .service-card ul li::before{background:var(--sage);}
.service-card ul li.excluded{color:var(--ink-soft);opacity:.75;font-style:italic;}
.service-card ul li.excluded::before{background:transparent;border:1px solid var(--line-strong);}
.service-card a.card-link{
  margin-top:auto;
  font-size:13.5px;
  font-weight:600;
  color:var(--sage-deep);
  text-decoration:none;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .service-card a.card-link{color:var(--sage);}}
:root[data-theme="dark"] .service-card a.card-link{color:var(--sage);}
.service-card a.card-link:hover{text-decoration:underline;}

.feature-panel{
  background:var(--sage-tint);
  border:1px solid var(--line-strong);
  border-left:4px solid var(--sage-deep);
  border-radius:6px;
  padding:36px clamp(20px,4vw,48px);
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:flex-start;
}
.feature-panel h2{font-size:clamp(22px,2.8vw,28px);margin:6px 0 2px;}
.feature-panel p{max-width:62ch;color:var(--ink-soft);font-size:15.5px;}

/* ---------- contact ---------- */
.contact-panel{
  background:var(--sage-deep);
  color:#F5F7F3;
  border-radius:6px;
  padding:44px clamp(24px,5vw,56px);
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:40px;
}
@media (max-width:820px){ .contact-panel{grid-template-columns:1fr;padding:32px 24px;} }
.contact-panel h2{color:#FBFBF8;font-size:clamp(24px,3vw,30px);margin:8px 0 14px;}
.contact-panel p{color:#DCE7DF;font-size:15px;max-width:44ch;}
.contact-panel .eyebrow{color:#C7DFCE;}
.contact-list{display:flex;flex-direction:column;gap:16px;}
.contact-item{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:#F5F7F3;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:4px;
  font-size:14.5px;
  font-weight:500;
}
.contact-item:hover{background:rgba(255,255,255,.08);}
.contact-item svg{width:18px;height:18px;flex:none;color:#BFE0CB;}
.contact-item .label{color:#BFE0CB;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;display:block;font-weight:600;}

footer{
  padding-block:28px 40px;
  border-top:1px solid var(--line);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px;
  color:var(--ink-soft);
  font-size:13px;
}

@media (prefers-reduced-motion: no-preference){
  .hero h1, .hero p.lede, .hero-actions{
    animation:rise .6s ease both;
  }
  .hero p.lede{animation-delay:.08s;}
  .hero-actions{animation-delay:.16s;}
  @keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
}
