/* ═══════════════════════════════════════════
   TheraProse — Shared Stylesheet
   Brand: warm cream · forest green · sage · earthy
   ═══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --cream:    #f5f0e8;
  --cream2:   #ede7d9;
  --cream3:   #e5ddd0;
  --forest:   #1a5296;
  --forest2:  #2464b0;
  --sage:     #3d88cc;
  --sage2:    #60a8e0;
  --sage3:    #94c8f0;
  --sage4:    #ddeeff;
  --warm:     #4a9ed4;
  --warm2:    #2878b8;
  --white:    #ffffff;
  --offwhite: #f4f8fd;
  --text:     #0e2040;
  --muted:    #4a6080;
  --border:   #c8ddf0;
}
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; color: var(--text); background: var(--offwhite); line-height: 1.6; overflow-x: hidden; }
a { text-decoration: none; }

/* ─── NAV ─── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: rgba(15,35,75,0.97); backdrop-filter: blur(12px);
  height: 68px; display: flex; align-items: center;
  padding: 0 6%; border-bottom: 1px solid rgba(255,255,255,0.08);
}
.nav-inner { width: 100%; max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }
.logo { font-family: 'Playfair Display', serif; font-size: 1.5rem; color: #fff; letter-spacing: -0.3px; }
.logo em { font-style: normal; color: var(--sage3); }
.nav-links { display: flex; gap: 0.5rem; list-style: none; }
.nav-links a {
  color: rgba(255,255,255,0.8);
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.38rem 0.9rem;
  border-radius: 50px;
  border: 1.5px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  letter-spacing: 0.2px;
}
.nav-links a:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.35);
  color: #fff;
}
.nav-links a.active {
  background: rgba(170,208,130,0.18);
  border-color: var(--sage3);
  color: var(--sage3);
}
.nav-btn { background: var(--warm); color: #fff; padding: 0.5rem 1.3rem; border-radius: 50px; font-size: 0.85rem; font-weight: 700; transition: background 0.2s; }
.nav-btn:hover { background: var(--warm2); }

/* ─── BUTTONS ─── */
.btn-primary { background: var(--forest); color: #fff; padding: 0.85rem 2rem; border-radius: 50px; font-weight: 700; font-size: 0.95rem; transition: background 0.2s, transform 0.15s; display: inline-block; }
.btn-primary:hover { background: var(--forest2); transform: translateY(-1px); }
.btn-warm { background: var(--warm); color: #fff; padding: 0.85rem 2rem; border-radius: 50px; font-weight: 700; font-size: 0.95rem; transition: background 0.2s, transform 0.15s; display: inline-block; }
.btn-warm:hover { background: var(--warm2); transform: translateY(-1px); }
.btn-outline { border: 2px solid var(--forest); color: var(--forest); padding: 0.82rem 2rem; border-radius: 50px; font-weight: 700; font-size: 0.95rem; transition: background 0.2s, color 0.2s; display: inline-block; }
.btn-outline:hover { background: var(--forest); color: #fff; }
.btn-outline-light { border: 1.5px solid rgba(255,255,255,0.4); color: rgba(255,255,255,0.85); padding: 0.82rem 2rem; border-radius: 50px; font-weight: 600; font-size: 0.95rem; transition: border-color 0.2s, color 0.2s; display: inline-block; }
.btn-outline-light:hover { border-color: rgba(255,255,255,0.8); color: #fff; }

/* ─── PAGE HERO ─── */
.page-hero { padding: 140px 6% 80px; background: linear-gradient(160deg, var(--forest) 0%, #0e2a60 60%, #0a1e50 100%); position: relative; overflow: hidden; }
.page-hero::before { content:''; position:absolute; top:-150px; right:-150px; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle, rgba(184,208,184,0.15) 0%, transparent 70%); pointer-events:none; }
.page-hero-inner { max-width: 1200px; margin: 0 auto; }
.page-hero-tag { display: inline-flex; align-items: center; gap: 8px; background: rgba(184,208,184,0.15); border: 1px solid rgba(184,208,184,0.3); color: var(--sage3); font-size: 0.76rem; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; padding: 0.4rem 1rem; border-radius: 50px; margin-bottom: 1.4rem; }
.page-hero h1 { font-family: 'Playfair Display', serif; font-size: clamp(2.2rem, 5vw, 3.8rem); color: #fff; line-height: 1.15; margin-bottom: 1.2rem; max-width: 700px; }
.page-hero h1 span { color: var(--sage3); }
.page-hero p { color: rgba(255,255,255,0.65); font-size: 1.05rem; line-height: 1.8; max-width: 560px; margin-bottom: 2rem; }
.hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ─── SECTIONS ─── */
.section { padding: 90px 6%; }
.section-cream { background: var(--cream); }
.section-white { background: var(--white); }
.section-offwhite { background: var(--offwhite); }
.section-forest { background: linear-gradient(160deg, var(--forest) 0%, #1e3a1e 100%); }
.section-alt { background: var(--cream); } /* alias for legacy references */
.section-inner { max-width: 1200px; margin: 0 auto; }

.section-tag { display: inline-block; font-size: 0.74rem; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; margin-bottom: 0.7rem; }
.tag-sage   { color: var(--sage); }
.tag-warm   { color: var(--warm2); }
.tag-forest { color: var(--forest); }
.tag-light  { color: var(--sage3); }

/* Legacy eyebrow classes — map to brand colors */
.section-eyebrow { font-size: 0.76rem; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 0.7rem; display: block; }
.eyebrow-violet { color: var(--sage); }
.eyebrow-teal   { color: var(--forest); }
.eyebrow-coral  { color: var(--warm2); }

/* Legacy button classes — map to new buttons */
.btn-vivid { background: var(--forest); color: #fff; padding: 0.85rem 2rem; border-radius: 50px; font-weight: 700; font-size: 0.95rem; transition: background 0.2s, transform 0.15s; display: inline-block; }
.btn-vivid:hover { background: var(--forest2); transform: translateY(-1px); }
.btn-ghost { border: 1.5px solid rgba(255,255,255,0.35); color: rgba(255,255,255,0.85); padding: 0.85rem 2rem; border-radius: 50px; font-weight: 600; font-size: 0.95rem; transition: border-color 0.2s, color 0.2s; display: inline-block; }
.btn-ghost:hover { border-color: rgba(255,255,255,0.7); color: #fff; }

.section-title { font-family: 'Playfair Display', serif; font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.2; margin-bottom: 1rem; }
.title-dark  { color: var(--forest); }
.title-white { color: #fff; }
.section-sub { font-size: 1rem; line-height: 1.8; max-width: 560px; color: var(--muted); margin-bottom: 2.5rem; }
.sub-light { color: rgba(255,255,255,0.62); }
.text-center { text-align: center; }
.mx-auto { margin-left: auto; margin-right: auto; }

/* ─── DIVIDER ─── */
.leaf-divider { text-align: center; margin: 1rem 0; opacity: 0.5; font-size: 1rem; }

/* ─── FOOTER ─── */
footer { display: none; }
.footer-inner { max-width: 1200px; margin: 0 auto; }
.footer-top { display: grid; gri