:root{
  --forest:#2F4730;
  --forest-deep:#233524;
  --sage:#9AA487;
  --sage-wash:#E4E8DC;
  --ivory:#F5F1E8;
  --ivory-warm:#EFE9DC;
  --gold:#C6A06A;
  --paper:#FFFFFF;
  --ink:#33372F;
  --ink-soft:#5C6157;

  --measure:34rem;
  --wide:70rem;

  --step-eyebrow:0.72rem;
  --step-body:1.0625rem;
  --step-lead:clamp(1.125rem,0.9rem + 0.7vw,1.3125rem);
  --step-h3:clamp(1.25rem,1.05rem + 0.6vw,1.5rem);
  --step-h2:clamp(1.6rem,1.25rem + 1.5vw,2.35rem);
  --step-h1:clamp(2.1rem,1.3rem + 3.4vw,3.9rem);

  --gap-section:clamp(4.5rem,3rem + 7vw,9rem);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:'Lora',Georgia,serif;
  font-size:var(--step-body);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.display{
  font-family:'Cinzel',Georgia,serif;
  font-weight:500;
  color:var(--forest);
  line-height:1.22;
  letter-spacing:0.01em;
  margin:0;
}

p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}

a{color:var(--forest);text-decoration-color:var(--gold);text-underline-offset:0.25em}

.wrap{width:min(100% - 2.5rem,var(--wide));margin-inline:auto}
.prose{width:min(100%,var(--measure));margin-inline:auto}

.eyebrow{
  font-family:'Cinzel',Georgia,serif;
  font-size:var(--step-eyebrow);
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 1.1rem;
  line-height:1.6;
}

/* ---------- ornament ---------- */
.ornament{display:flex;align-items:center;justify-content:center;gap:0.9rem;margin:0 auto}
.ornament::before,.ornament::after{content:"";height:1px;width:clamp(2.5rem,6vw,4.5rem);background:var(--gold);opacity:0.75}
.ornament svg{display:block;flex:none}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(245,241,232,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(198,160,106,0.28);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;padding:0.85rem 0;
}
.brandmark{display:flex;align-items:center;gap:0.7rem;text-decoration:none}
.brandmark .mark{flex:none}
.brandmark .name{
  font-family:'Cinzel',Georgia,serif;
  font-size:0.95rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--forest);
  line-height:1.15;
}
.brandmark .role{
  display:block;font-family:'Cinzel',Georgia,serif;
  font-size:0.55rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-top:0.28rem;
}
.site-nav{display:flex;align-items:center;gap:1.75rem}
.site-nav a{
  font-size:0.9rem;text-decoration:none;color:var(--ink-soft);
  border-bottom:1px solid transparent;padding-bottom:2px;transition:color .35s ease,border-color .35s ease;
}
.site-nav a:hover,.site-nav a:focus-visible{color:var(--forest);border-bottom-color:var(--gold)}
.nav-links{display:flex;gap:1.75rem}
@media (max-width:820px){.nav-links{display:none}}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  font-family:'Cinzel',Georgia,serif;
  font-size:0.82rem;letter-spacing:0.16em;text-transform:uppercase;
  padding:0.95rem 1.9rem;border-radius:2px;text-decoration:none;
  transition:background-color .4s ease,color .4s ease,border-color .4s ease;
}
.btn-primary{background:var(--forest);color:var(--ivory);border:1px solid var(--forest)}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--forest-deep);border-color:var(--forest-deep)}
.btn-quiet{background:transparent;color:var(--forest);border:1px solid var(--gold)}
.btn-quiet:hover,.btn-quiet:focus-visible{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn-small{padding:0.6rem 1.2rem;font-size:0.72rem}

.call-line{margin-top:1.5rem;font-size:0.97rem;color:var(--ink-soft)}
.call-line a{font-style:italic}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(3.5rem,2rem + 8vw,7.5rem) 0 clamp(3rem,2rem + 5vw,5.5rem);text-align:center}
.hero-mark{display:block;margin:0 auto 1.5rem;width:clamp(120px,16vw,190px);height:auto}
.brandmark .mark{width:auto;height:34px}
.hero h1{font-size:var(--step-h1);font-weight:400;letter-spacing:0.015em}
.hero h1 .line2{display:block;font-style:italic;font-family:'Lora',Georgia,serif;font-size:0.78em;color:var(--forest);margin-top:0.25em;letter-spacing:0}
.hero .lead{font-size:var(--step-lead);color:var(--ink-soft);margin:1.9rem auto 2.4rem;max-width:38rem;line-height:1.72}
.hero .ornament{margin-bottom:2.2rem}

/* ---------- generic section ---------- */
.section{padding:var(--gap-section) 0}
.section-ivory{background:var(--ivory)}
.section-warm{background:var(--ivory-warm)}
.section-forest{background:var(--forest);color:var(--sage-wash)}
.section-forest h2,.section-forest h3{color:var(--ivory)}
.section-forest .eyebrow{color:var(--gold)}

.section-head{text-align:center;margin-bottom:clamp(2.5rem,2rem + 2.5vw,4rem)}
.section-head h2{font-size:var(--step-h2);font-weight:400}
.section-head .sub{margin:1.35rem auto 0;max-width:36rem;color:var(--ink-soft);font-size:var(--step-lead);line-height:1.7}
.section-forest .section-head .sub{color:var(--sage-wash);opacity:0.88}

/* ---------- opening statement ---------- */
.statement{text-align:center}
.statement h2{font-size:var(--step-h2);font-weight:400;margin-bottom:2rem}
.statement .prose p{font-size:var(--step-lead);line-height:1.8;color:var(--ink-soft)}
.statement .prose p.emphasis{font-style:italic;color:var(--forest);margin-top:1.9rem}

/* ---------- what we do ---------- */
.care-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr))}
.care-card{
  background:var(--paper);
  border:1px solid rgba(154,164,135,0.42);
  border-top:2px solid var(--gold);
  padding:2rem 1.75rem;
}
.care-card h3{font-size:var(--step-h3);font-weight:400;margin-bottom:0.85rem}
.care-card p{color:var(--ink-soft);font-size:1rem;line-height:1.7}

/* ---------- ROOTED — the path ---------- */
.rooted{position:relative}
.path-wrap{position:relative;width:min(100%,46rem);margin-inline:auto}
.path-line{position:absolute;left:2.05rem;top:0;bottom:0;width:2px;background:linear-gradient(180deg,rgba(198,160,106,0) 0%,var(--gold) 8%,var(--gold) 92%,rgba(198,160,106,0) 100%);opacity:0.55}
.step{position:relative;display:grid;grid-template-columns:4.25rem 1fr;gap:1.5rem;align-items:start;padding:1.5rem 0}
.step-letter{
  position:relative;z-index:2;
  width:4.25rem;height:4.25rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--forest);border:1px solid var(--gold);
  font-family:'Cinzel',Georgia,serif;font-size:1.5rem;color:var(--gold);
  line-height:1;
}
.step-body{padding-top:0.55rem}
.step-body h3{font-family:'Cinzel',Georgia,serif;font-size:0.95rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--ivory);font-weight:500;margin-bottom:0.5rem}
.step-body p{color:var(--sage-wash);opacity:0.9;font-size:1.02rem;line-height:1.7;margin:0}

@media (max-width:520px){
  .path-line{left:1.65rem}
  .step{grid-template-columns:3.4rem 1fr;gap:1.1rem}
  .step-letter{width:3.4rem;height:3.4rem;font-size:1.25rem}
}

/* ---------- role / boundary ---------- */
.role-panel{
  background:var(--paper);
  border:1px solid rgba(154,164,135,0.45);
  padding:clamp(2.25rem,1.5rem + 3vw,3.75rem);
  width:min(100%,46rem);margin-inline:auto;text-align:center;
}
.role-panel .ornament{margin-bottom:1.9rem}
.role-panel h2{font-size:var(--step-h2);font-weight:400;margin-bottom:1.6rem}
.role-panel p{color:var(--ink-soft);line-height:1.78}
.role-panel p.underline-note{margin-top:1.6rem;font-style:italic;color:var(--forest)}

/* ---------- who we serve ---------- */
.serve-list{width:min(100%,44rem);margin-inline:auto;list-style:none;padding:0;margin-block:0;display:grid;gap:0.2rem}
.serve-list li{
  display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:baseline;
  padding:1.15rem 0;border-bottom:1px solid rgba(154,164,135,0.4);
}
.serve-list li:last-child{border-bottom:none}
.serve-list .leaf{color:var(--gold);font-size:0.85rem;line-height:1.9}
.serve-list strong{font-weight:600;color:var(--forest)}
.serve-list span.copy{color:var(--ink-soft)}

/* ---------- letter from amanda ---------- */
.letter{
  background:var(--ivory-warm);
  border:1px solid rgba(198,160,106,0.4);
  padding:clamp(2.25rem,1.5rem + 3vw,3.5rem);
  width:min(100%,42rem);margin-inline:auto;
}
.letter .eyebrow{text-align:center}
.letter .ornament{margin-bottom:2rem}
.letter h2{font-size:var(--step-h3);font-weight:400;text-align:center;margin-bottom:1.9rem}
.letter p{color:var(--ink-soft);line-height:1.8}
.letter .salutation{font-style:italic;color:var(--forest)}
.letter .signoff{margin-top:2rem;font-style:italic;color:var(--forest);line-height:1.5}
.placeholder-note{
  margin-top:2rem;padding:1rem 1.15rem;
  border-left:4px solid #8a2a2a;background:rgba(138,42,42,0.08);
  font-size:0.92rem;color:#8a2a2a;font-style:normal;font-weight:700;
  text-transform:uppercase;letter-spacing:0.04em;
}

/* ---------- consultation ---------- */
.consult{padding:var(--gap-section) 0}
.form-card{
  width:min(100%,40rem);margin-inline:auto;
  background:var(--paper);border:1px solid rgba(154,164,135,0.45);
  padding:clamp(2rem,1.5rem + 3vw,3.25rem);
}
.field{margin-bottom:1.4rem}
.field label{
  display:block;font-family:'Cinzel',Georgia,serif;font-size:0.7rem;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--forest);margin-bottom:0.55rem;
}
.field input,.field textarea,.field select{
  width:100%;font-family:'Lora',Georgia,serif;font-size:1rem;color:var(--ink);
  background:var(--ivory);border:1px solid rgba(154,164,135,0.6);border-radius:2px;
  padding:0.8rem 0.9rem;transition:border-color .3s ease,box-shadow .3s ease;
}
.field textarea{min-height:8.5rem;resize:vertical;line-height:1.65}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(198,160,106,0.18);
}
.field .hint{display:block;margin-top:0.45rem;font-size:0.86rem;color:var(--ink-soft);font-style:italic}
.form-actions{margin-top:2rem;text-align:center}
.form-actions .privacy-note{margin-top:1.25rem;font-size:0.88rem;color:var(--ink-soft)}

/* ---------- footer ---------- */
.site-footer{background:var(--forest);color:var(--sage-wash);padding:clamp(3rem,2rem + 4vw,4.5rem) 0 2.25rem}
.footer-top{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));align-items:start}
.site-footer .name{font-family:'Cinzel',Georgia,serif;font-size:1.05rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--ivory);margin-bottom:0.5rem}
.site-footer .role{font-family:'Cinzel',Georgia,serif;font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold)}
.site-footer p{font-size:0.95rem;opacity:0.88;line-height:1.7}
.site-footer a{color:var(--sage-wash);text-decoration-color:rgba(198,160,106,0.7)}
.site-footer h4{font-family:'Cinzel',Georgia,serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin:0 0 0.9rem;font-weight:500}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:0.55rem}
.footer-links a{font-size:0.95rem;text-decoration:none;opacity:0.88}
.footer-links a:hover{text-decoration:underline}
.footer-bottom{
  margin-top:3rem;padding-top:1.75rem;border-top:1px solid rgba(198,160,106,0.3);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;
  font-size:0.85rem;opacity:0.75;
}
.disclaimer{font-size:0.85rem;opacity:0.72;line-height:1.65;margin-top:1.5rem;font-style:italic}

/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 1s ease,transform 1s ease}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:0.001ms !important;transition-duration:0.001ms !important}
}
