/* ==========================================================================
   Health Balance Harmony — site stylesheet
   Palette: sage + deep pine + cream, editorial serif display + geometric sans
   ========================================================================== */

/* ---------- tokens ---------- */
:root{
  --cream:#f7f4ec;
  --paper:#fffdfa;
  --sand:#ece5d6;
  --sage:#a9c2ac;
  --sage-soft:#e4ede4;
  --pine:#1c4033;
  --pine-deep:#122a22;
  --teal:#2c6f5b;
  --clay:#c0714c;
  --ink:#16241f;
  --muted:#5f6f68;
  --line:rgba(28,64,51,.14);
  --shadow-sm:0 10px 24px -18px rgba(18,42,34,.55);
  --shadow-md:0 28px 60px -34px rgba(18,42,34,.55);
  --shadow-lg:0 46px 90px -46px rgba(18,42,34,.6);
  --r-sm:14px;
  --r-md:22px;
  --r-lg:34px;
  --display:"Fraunces","Iowan Old Style",Georgia,"Times New Roman",serif;
  --body:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --maxw:1200px;
}

/* ---------- base ---------- */
*{ -webkit-tap-highlight-color:transparent; }
html{ scroll-behavior:smooth; scroll-padding-top:110px; }
body{
  font-family:var(--body);
  background-color:var(--cream);
  color:var(--ink);
  font-size:1.03rem;
  line-height:1.75;
  overflow-x:hidden;
  background-image:
    radial-gradient(1100px 620px at 88% -8%, rgba(169,194,172,.42), transparent 62%),
    radial-gradient(900px 520px at -6% 18%, rgba(236,229,214,.9), transparent 60%);
  background-attachment:fixed;
}
h1,h2,h3,h4,.display{ font-family:var(--display); font-weight:600; letter-spacing:-.015em; line-height:1.1; color:var(--pine); }
h1{ font-size:clamp(2.5rem,5.4vw,4.4rem); }
h2{ font-size:clamp(2rem,3.6vw,3.05rem); }
h3{ font-size:clamp(1.35rem,2vw,1.7rem); }
h4{ font-size:1.14rem; }
p{ color:var(--muted); margin-bottom:1rem; }
a{ color:var(--teal); text-decoration:none; transition:color .25s ease; }
a:hover{ color:var(--pine); }
img{ max-width:100%; }
::selection{ background:var(--pine); color:var(--cream); }
.container{ max-width:var(--maxw); }
:focus-visible{ outline:3px solid var(--clay); outline-offset:3px; border-radius:6px; }

/* ---------- helpers ---------- */
.section{ padding:clamp(4rem,8vw,7.5rem) 0; position:relative; }
.section-tight{ padding:clamp(3rem,5vw,4.5rem) 0; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.76rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
  color:var(--teal); margin-bottom:1.1rem;
}
.eyebrow::before{ content:""; width:34px; height:1px; background:currentColor; opacity:.6; }
.eyebrow--light{ color:var(--sage); }
.lead-copy{ font-size:clamp(1.05rem,1.35vw,1.2rem); color:var(--muted); max-width:62ch; }
.tiny{ font-size:.8rem; }
.muted-2{ color:var(--muted); }
.text-pine{ color:var(--pine); }
.sand{ background:var(--sand); }
.paper-bg{ background:var(--paper); }
.pine-bg{ background:var(--pine); color:#e9efe8; }
.pine-bg h2,.pine-bg h3,.pine-bg h4{ color:#f4f7f0; }
.pine-bg p{ color:#c4d3c6; }
.rounded-xl{ border-radius:var(--r-md); }
.shadow-soft{ box-shadow:var(--shadow-md); }
.w-lg-75{ width:75%; }

/* ---------- buttons ---------- */
.btn{ font-family:var(--body); font-weight:700; letter-spacing:.01em; border-radius:999px; padding:.78rem 1.6rem; transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,color .25s ease; }
.btn:hover{ transform:translateY(-2px); }
.btn-ink{ background:var(--pine); color:var(--cream); box-shadow:var(--shadow-sm); }
.btn-ink:hover{ background:var(--pine-deep); color:#fff; box-shadow:var(--shadow-md); }
.btn-clay{ background:var(--clay); color:#fff8f2; box-shadow:var(--shadow-sm); }
.btn-clay:hover{ background:#a95f3d; color:#fff; }
.btn-line{ border:1.5px solid var(--line); color:var(--pine); background:transparent; }
.btn-line:hover{ border-color:var(--pine); background:var(--pine); color:var(--cream); }
.btn-light-line{ border:1.5px solid rgba(255,255,255,.45); color:#fff; background:transparent; }
.btn-light-line:hover{ background:#fff; color:var(--pine); border-color:#fff; }
.btn-lg{ padding:1rem 2.1rem; font-size:1.02rem; }
.btn-sm-soft{ padding:.5rem 1.05rem; font-size:.86rem; }
.btn-ghost-teal{ color:var(--teal); background:var(--sage-soft); border:1px solid transparent; }
.btn-ghost-teal:hover{ background:var(--pine); color:var(--cream); }

/* link with underline sweep */
.link-sweep{ position:relative; display:inline-flex; align-items:center; gap:.45rem; font-weight:700; color:var(--pine); }
.link-sweep::after{ content:""; position:absolute; left:0; bottom:-4px; height:1.5px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s cubic-bezier(.2,.7,.3,1); }
.link-sweep:hover::after{ transform:scaleX(1); transform-origin:left; }
.link-sweep .arw{ transition:transform .3s ease; }
.link-sweep:hover .arw{ transform:translateX(5px); }

/* ---------- badges / chips ---------- */
.chip{ display:inline-flex; align-items:center; gap:.45rem; padding:.34rem .85rem; border-radius:999px; background:rgba(255,255,255,.7); border:1px solid var(--line); font-size:.78rem; font-weight:700; letter-spacing:.04em; color:var(--pine); text-transform:uppercase; }
.chip--solid{ background:var(--pine); color:#eef3ec; border-color:var(--pine); }
.chip--clay{ background:#f7e6dc; color:#8a4a2b; border-color:#eccdb9; }
.chip--sage{ background:var(--sage-soft); color:var(--teal); border-color:#cfdccc; }
.badge-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--clay); }

/* ---------- topbar + navbar ---------- */
.topbar{ background:var(--pine-deep); color:#cfe0d3; font-size:.84rem; }
.topbar a{ color:#eaf2ea; }
.topbar a:hover{ color:#fff; }
.nav-wrap{ position:sticky; top:0; z-index:1040; }
.navbar{
  background:rgba(255,253,250,.82);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border-bottom:1px solid var(--line);
  padding-block:.85rem;
  transition:box-shadow .3s ease,background .3s ease;
}
.navbar.is-stuck{ box-shadow:var(--shadow-sm); }
.navbar-brand{ display:flex; align-items:center; gap:.7rem; }
.brand-mark{ width:42px; height:42px; flex:0 0 42px; border-radius:14px; background:var(--pine); display:grid; place-items:center; box-shadow:var(--shadow-sm); }
.brand-mark svg{ width:24px; height:24px; }
.brand-name{ font-family:var(--display); font-size:1.22rem; font-weight:600; line-height:1.05; color:var(--pine); display:block; }
.brand-sub{ font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:var(--teal); font-weight:700; }
.navbar .nav-link{ color:#33473f; font-weight:600; font-size:.95rem; padding:.5rem .95rem !important; border-radius:999px; position:relative; }
.navbar .nav-link:hover{ color:var(--pine); background:var(--sage-soft); }
.navbar .nav-link.active{ color:var(--pine); }
.navbar .nav-link.active::after{ content:""; position:absolute; left:1.05rem; right:1.05rem; bottom:.15rem; height:2px; background:var(--clay); border-radius:2px; }
.navbar-toggler{ border:1px solid var(--line); border-radius:12px; padding:.4rem .6rem; }
.navbar-toggler:focus{ box-shadow:none; }
.nav-cta{ display:flex; align-items:center; gap:.55rem; }

/* ---------- hero ---------- */
.hero{ position:relative; padding:clamp(3rem,6vw,5.6rem) 0 clamp(3.5rem,7vw,6rem); overflow:hidden; }
.hero h1 em{ font-style:italic; color:var(--teal); position:relative; white-space:nowrap; }
.hero h1 em::after{
  content:""; position:absolute; left:-2%; right:-2%; bottom:.12em; height:.34em;
  background:linear-gradient(90deg,rgba(169,194,172,.75),rgba(192,113,76,.35));
  border-radius:999px; z-index:-1;
}
.blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; pointer-events:none; z-index:0; }
.blob-a{ width:420px; height:420px; background:#bcd4bd; top:-120px; right:-90px; }
.blob-b{ width:360px; height:360px; background:#f0d9c8; bottom:-160px; left:-120px; }
.hero-media{ position:relative; z-index:1; }
.hero-photo{ border-radius:var(--r-lg); box-shadow:var(--shadow-lg); overflow:hidden; border:6px solid #fff; }
.hero-photo img{ display:block; width:100%; height:clamp(340px,44vw,540px); object-fit:cover; }
.hero-note{
  position:absolute; left:-1.4rem; bottom:2.2rem; z-index:2;
  background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:.85rem 1.1rem; box-shadow:var(--shadow-md); max-width:min(300px,72%);
}
.hero-note strong{ display:block; font-family:var(--display); color:var(--pine); font-size:1.02rem; }
.hero-note span{ font-size:.85rem; color:var(--muted); }
.hero-cta-row{ display:flex; flex-wrap:wrap; gap:.75rem; }

/* ---------- page header (inner pages) ---------- */
.page-head{ position:relative; padding:clamp(3.4rem,7vw,5.4rem) 0 clamp(2.4rem,5vw,3.6rem); background:var(--pine); color:#eaf1e9; overflow:hidden; }
.page-head h1{ color:#fff; }
.page-head p{ color:#c3d4c6; max-width:66ch; }
.page-head .blob-a{ opacity:.28; background:#3f7d64; }
.page-head::after{
  content:""; position:absolute; inset:auto 0 -1px 0; height:70px;
  background:linear-gradient(to bottom,transparent,var(--cream));
}
.breadcrumb-hbh{ display:flex; gap:.5rem; align-items:center; font-size:.82rem; color:#9fbca6; margin-bottom:1.1rem; }
.breadcrumb-hbh a{ color:#cfe0d3; }
.breadcrumb-hbh a:hover{ color:#fff; }
.breadcrumb-hbh span{ opacity:.5; }

/* ---------- marquee ---------- */
.marquee{ background:var(--pine-deep); color:#dbe7dc; overflow:hidden; border-block:1px solid rgba(255,255,255,.08); }
.marquee-track{ display:flex; width:max-content; animation:marquee 46s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track > div{ display:flex; align-items:center; gap:2.2rem; padding:.95rem 1.1rem; }
.marquee-item{ display:inline-flex; align-items:center; gap:2.2rem; font-family:var(--display); font-size:1.06rem; letter-spacing:.01em; white-space:nowrap; }
.marquee-item i{ font-style:normal; color:var(--sage); }
.marquee-sep{ width:7px; height:7px; border-radius:50%; background:var(--clay); display:inline-block; flex:0 0 7px; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- generic cards ---------- */
.hbh-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); }
.hbh-card-pad{ padding:clamp(1.3rem,2.2vw,1.9rem); }
.hbh-card-hover{ transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease,border-color .35s ease; }
.hbh-card-hover:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(44,111,91,.35); }
.icon-bubble{ width:54px; height:54px; border-radius:18px; display:grid; place-items:center; background:var(--sage-soft); color:var(--teal); margin-bottom:1rem; }
.icon-bubble svg{ width:26px; height:26px; }
.icon-bubble--clay{ background:#f7e6dc; color:var(--clay); }
.icon-bubble--pine{ background:var(--pine); color:var(--sage); }

/* ---------- about split ---------- */
.split-media{ position:relative; }
.split-media img{ border-radius:var(--r-md); box-shadow:var(--shadow-md); width:100%; height:100%; object-fit:cover; display:block; }
.split-media .frame{ position:absolute; inset:auto -22px -22px auto; width:60%; height:60%; border:2px dashed rgba(44,111,91,.35); border-radius:var(--r-md); z-index:-1; }
.check-list{ list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.check-list li{ display:flex; gap:.7rem; align-items:flex-start; color:#33473f; font-weight:600; }
.check-list svg{ flex:0 0 22px; width:22px; height:22px; margin-top:.25rem; color:var(--teal); }

/* ---------- why choose ---------- */
.why-item{ position:relative; padding-left:0; }
.why-num{ font-family:var(--display); font-size:2.4rem; line-height:1; color:transparent; -webkit-text-stroke:1.2px rgba(28,64,51,.35); display:block; margin-bottom:.55rem; }
.pine-bg .why-num{ -webkit-text-stroke:1.2px rgba(255,255,255,.4); }

/* ---------- services ---------- */
.svc-card{ height:100%; display:flex; flex-direction:column; overflow:hidden; }
.svc-thumb{ position:relative; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(135deg,var(--sage-soft),var(--sand)); }
.svc-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .4s ease; }
.svc-card:hover .svc-thumb img{ transform:scale(1.07); }
.svc-thumb::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(18,42,34,.45),transparent 55%); opacity:.9; }
.svc-tag{ position:absolute; z-index:2; left:.85rem; bottom:.85rem; }
.svc-body{ padding:1.35rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1 1 auto; }
.svc-body h3{ font-size:1.32rem; margin-bottom:.55rem; }
.svc-body p{ font-size:.965rem; flex:1 1 auto; }
.svc-body .btn{ align-self:flex-start; }
.svc-list{ list-style:none; margin:.2rem 0 1rem; padding:0; display:grid; gap:.35rem; }
.svc-list li{ position:relative; padding-left:1.1rem; font-size:.9rem; color:var(--muted); }
.svc-list li::before{ content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--sage); }

/* ---------- testimonials ---------- */
.quote-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); padding:clamp(1.5rem,3vw,2.4rem); box-shadow:var(--shadow-sm); position:relative; }
.quote-mark{ font-family:var(--display); font-size:5.6rem; line-height:.6; color:var(--sage); opacity:.55; display:block; margin-bottom:.4rem; }
.quote-card blockquote{ font-family:var(--display); font-size:clamp(1.16rem,1.7vw,1.5rem); line-height:1.5; color:var(--pine); margin:0 0 1.2rem; }
.who{ display:flex; align-items:center; gap:.85rem; }
.avatar{ width:48px; height:48px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:.92rem; color:#fff; background:var(--pine); flex:0 0 48px; letter-spacing:.02em; }
.avatar-c{ background:var(--clay); }
.avatar-t{ background:var(--teal); }
.who strong{ display:block; color:var(--ink); font-size:.96rem; }
.who span{ font-size:.82rem; color:var(--muted); }
.stars{ display:inline-flex; gap:2px; color:#d9a441; }
.stars svg{ width:15px; height:15px; }
.carousel-indicators [data-bs-target]{ width:9px; height:9px; border-radius:50%; background:var(--sage); border:0; opacity:.45; margin-inline:3px; }
.carousel-indicators .active{ opacity:1; background:var(--pine); }
.carousel-indicators{ margin-bottom:-2.4rem; position:static; justify-content:flex-start; padding-top:1.4rem; }

/* ---------- blog ---------- */
.post-card{ overflow:hidden; height:100%; display:flex; flex-direction:column; }
.post-thumb{ aspect-ratio:16/10; overflow:hidden; background:linear-gradient(135deg,var(--sage-soft),var(--sand)); }
.post-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.post-card:hover .post-thumb img{ transform:scale(1.06); }
.post-body{ padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; flex:1 1 auto; }
.post-meta{ display:flex; flex-wrap:wrap; gap:.5rem .9rem; align-items:center; font-size:.8rem; color:var(--muted); margin-bottom:.6rem; }
.post-meta b{ color:var(--teal); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; }
.post-body h3{ font-size:1.3rem; margin-bottom:.5rem; }
.post-body h3 a{ color:var(--pine); }
.post-body h3 a:hover{ color:var(--teal); }
.post-body p{ font-size:.95rem; flex:1 1 auto; }
.feature-post{ display:grid; grid-template-columns:1.15fr .85fr; gap:0; align-items:stretch; overflow:hidden; }
.feature-post .post-thumb{ aspect-ratio:auto; height:100%; min-height:320px; }
.feature-post .post-body{ justify-content:center; padding:clamp(1.6rem,3vw,2.6rem); }
@media (max-width:767.98px){ .feature-post{ grid-template-columns:1fr; } .feature-post .post-thumb{ min-height:220px; } }

/* ---------- article ---------- */
.article{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); padding:clamp(1.5rem,4vw,3.4rem); box-shadow:var(--shadow-sm); }
.article > * + *{ margin-top:1.15em; }
.article h2{ font-size:clamp(1.5rem,2.3vw,2rem); margin-top:1.9em; }
.article h3{ font-size:1.2rem; margin-top:1.6em; }
.article h4{ font-size:1.02rem; margin-top:1.4em; }
.article p{ color:#3d4c45; }
.article ul,.article ol{ padding-left:1.2rem; color:#3d4c45; }
.article li{ margin-bottom:.45rem; }
.article img{ border-radius:var(--r-sm); width:100%; }
.article blockquote{ border-left:3px solid var(--clay); padding:.2rem 0 .2rem 1.2rem; font-family:var(--display); font-size:1.24rem; line-height:1.5; color:var(--pine); margin:1.8em 0; }
.pull-quote{ background:var(--sage-soft); border:0; border-radius:var(--r-sm); padding:1.4rem 1.6rem; margin:1.9em 0; }
.pull-quote p{ margin:0; color:var(--pine); font-family:var(--display); font-size:1.2rem; }
.tip-box{ border:1px dashed rgba(44,111,91,.4); border-radius:var(--r-sm); padding:1.3rem 1.5rem; background:rgba(255,253,250,.7); }
.tip-box h4{ margin:0 0 .5rem; }
.article-head{ font-size:clamp(1.9rem,3.4vw,2.9rem); }
.article-hero{ border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-md); border:6px solid #fff; }
.article-hero img{ width:100%; display:block; aspect-ratio:16/9; object-fit:cover; }
.author-card{ display:flex; gap:1rem; align-items:center; }
.tag-row{ display:flex; flex-wrap:wrap; gap:.5rem; }
.toc{ position:sticky; top:120px; }
.toc-list{ list-style:none; margin:0; padding:0; display:grid; gap:.15rem; }
.toc-list a{ display:block; padding:.45rem .7rem; border-radius:10px; font-size:.9rem; color:var(--muted); border-left:2px solid transparent; }
.toc-list a:hover{ background:var(--sage-soft); color:var(--pine); }

/* ---------- faq ---------- */
.accordion-item{ border:1px solid var(--line); border-radius:var(--r-sm) !important; margin-bottom:.85rem; background:var(--paper); overflow:hidden; box-shadow:none; }
.accordion-button{ font-family:var(--display); font-size:1.12rem; color:var(--pine); background:transparent; padding:1.15rem 1.4rem; box-shadow:none !important; }
.accordion-button:not(.collapsed){ background:var(--sage-soft); color:var(--pine); }
.accordion-button::after{ background:none; content:"+"; font-family:var(--body); font-weight:400; font-size:1.7rem; line-height:1; width:auto; height:auto; color:var(--teal); transition:transform .3s ease; }
.accordion-button:not(.collapsed)::after{ content:"–"; transform:none; }
.accordion-body{ padding:.4rem 1.4rem 1.4rem; color:var(--muted); }
.accordion-body p{ margin-bottom:.6rem; }

/* ---------- cta band ---------- */
.cta-band{ position:relative; border-radius:var(--r-lg); overflow:hidden; background:radial-gradient(120% 160% at 12% 10%,#2c6f5b 0%,#1c4033 48%,#122a22 100%); color:#e9f1e8; padding:clamp(2.2rem,5vw,4.2rem); box-shadow:var(--shadow-lg); }
.cta-band h2{ color:#fff; }
.cta-band p{ color:#c6d8c8; }
.cta-band::before{
  content:""; position:absolute; width:520px; height:520px; right:-160px; top:-200px; border-radius:50%;
  background:radial-gradient(circle at center,rgba(169,194,172,.42),transparent 62%);
}
.cta-band .leaf-pattern{ position:absolute; inset:0; opacity:.1; pointer-events:none; }

/* ---------- forms ---------- */
.hbh-form{ display:grid; gap:1rem; }
.form-label{ font-size:.8rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--pine); margin-bottom:.4rem; }
.form-control,.form-select{
  background:#fffdfa; border:1.5px solid var(--line); border-radius:14px; padding:.82rem 1.05rem;
  font-size:.97rem; color:var(--ink); transition:border-color .2s ease,box-shadow .2s ease;
}
.form-control:focus,.form-select:focus{ border-color:var(--teal); box-shadow:0 0 0 4px rgba(44,111,91,.13); background:#fff; }
.form-control::placeholder{ color:#9aa8a2; }
.form-check-input{ border-color:var(--line); width:1.15em; height:1.15em; margin-top:.3em; }
.form-check-input:checked{ background-color:var(--pine); border-color:var(--pine); }
.form-check-label{ font-size:.9rem; color:var(--muted); }
.input-group > .form-control{ border-radius:14px 0 0 14px; }
.input-group .btn{ border-radius:0 14px 14px 0; }
.inline-form{ display:grid; grid-template-columns:1fr auto; gap:.6rem; }
@media (max-width:575.98px){ .inline-form{ grid-template-columns:1fr; } .inline-form .btn{ border-radius:14px; } }
.form-note{ font-size:.82rem; color:var(--muted); }
.form-status{ display:none; }
.form-status.show{ display:block; }
.newsletter-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-md); padding:clamp(1.5rem,3vw,2.6rem); }
.cta-band .form-control{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.28); color:#fff; }
.cta-band .form-control::placeholder{ color:#b9cbba; }
.cta-band .form-control:focus{ background:rgba(255,255,255,.16); border-color:var(--sage); box-shadow:0 0 0 4px rgba(169,194,172,.18); }
.cta-band .form-check-label{ color:#c6d8c8; }
.valid-state{ background:var(--sage-soft); border:1px solid #cadec9; color:var(--pine); border-radius:14px; padding:.85rem 1.05rem; font-size:.92rem; }
.warn-state{ background:#fdeee5; border:1px solid #f3d3bf; color:#8a4a2b; border-radius:14px; padding:.85rem 1.05rem; font-size:.92rem; }

/* ---------- contact page ---------- */
.contact-tile{ display:flex; gap:1rem; align-items:flex-start; }
.contact-tile .icon-bubble{ margin-bottom:0; }
.contact-tile strong{ display:block; font-family:var(--display); font-size:1.1rem; color:var(--pine); }
.contact-tile a,.contact-tile p{ word-break:break-word; }
.map-frame{ border:0; width:100%; height:100%; min-height:420px; border-radius:var(--r-md); filter:saturate(.85) contrast(1.02); }
.hours-list{ list-style:none; margin:0; padding:0; }
.hours-list li{ display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px dashed var(--line); font-size:.95rem; }
.hours-list li:last-child{ border-bottom:0; }
.hours-list b{ color:var(--pine); font-weight:700; }
.map-holder{ background:var(--sage-soft); border:1px solid var(--line); border-radius:var(--r-md); display:grid; place-items:center; padding:2rem; text-align:center; }
.map-holder .pin{ width:54px; height:54px; border-radius:50% 50% 50% 4px; background:var(--clay); transform:rotate(-45deg); display:grid; place-items:center; margin:0 auto 1rem; box-shadow:var(--shadow-sm); }
.map-holder .pin i{ transform:rotate(45deg); color:#fff; font-style:normal; font-weight:800; }

/* ---------- legal ---------- */
.legal-layout{ display:grid; grid-template-columns:250px minmax(0,1fr); gap:2.4rem; align-items:start; }
@media (max-width:991.98px){ .legal-layout{ grid-template-columns:1fr; gap:1.6rem; } }
.legal-body h2{ font-size:clamp(1.35rem,2vw,1.72rem); margin-top:2em; scroll-margin-top:130px; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body p,.legal-body li{ color:#41504a; font-size:.985rem; }
.legal-nav{ position:sticky; top:120px; border-left:2px solid var(--line); padding-left:1rem; }
.legal-nav a{ display:block; padding:.32rem 0; font-size:.9rem; color:var(--muted); }
.legal-nav a:hover{ color:var(--pine); }
.legal-note{ background:#fdf4ee; border:1px solid #f2dccb; border-radius:var(--r-sm); padding:1.1rem 1.3rem; }

/* ---------- footer ---------- */
.site-footer{ background:var(--pine-deep); color:#bcd0be; padding-top:clamp(3rem,6vw,4.8rem); margin-top:clamp(3rem,6vw,5rem); position:relative; }
.site-footer h4{ color:#f2f7f1; font-size:1.06rem; margin-bottom:1.1rem; }
.site-footer a{ color:#bcd0be; font-size:.94rem; display:inline-block; padding:.16rem 0; }
.site-footer a:hover{ color:#fff; }
.footer-brand p{ color:#9db5a1; font-size:.94rem; max-width:34ch; }
.footer-divider{ border-top:1px solid rgba(255,255,255,.1); margin-top:2.6rem; }
.footer-bottom{ padding:1.4rem 0 1.8rem; font-size:.86rem; color:#93a999; }
.footer-legal{ display:flex; flex-wrap:wrap; gap:1.2rem; justify-content:flex-end; }
@media (max-width:767.98px){ .footer-legal{ justify-content:flex-start; } }
.social-row{ display:flex; gap:.5rem; }
.social-row a{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); color:#e7f0e6; }
.social-row a:hover{ background:var(--sage); color:var(--pine-deep); }
.social-row svg{ width:17px; height:17px; }
.disclaimer{ font-size:.83rem; color:#8ba494; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09); border-radius:var(--r-sm); padding:1rem 1.2rem; }

/* ---------- back to top ---------- */
.to-top{ position:fixed; right:20px; bottom:24px; z-index:1050; width:48px; height:48px; border-radius:16px; border:1px solid var(--line); background:var(--paper); color:var(--pine); display:grid; place-items:center; box-shadow:var(--shadow-md); opacity:0; visibility:hidden; transform:translateY(14px); transition:opacity .3s ease,transform .3s ease,visibility .3s; }
.to-top.is-visible{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--pine); color:#fff; }
.skip-link{ position:absolute; left:-9999px; top:0; background:#fff; color:var(--pine); padding:.7rem 1rem; border-radius:0 0 12px 0; z-index:2000; }
.skip-link:focus{ left:0; }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal-d1{ transition-delay:90ms; }
.reveal-d2{ transition-delay:180ms; }
.reveal-d3{ transition-delay:270ms; }
.reveal-d4{ transition-delay:360ms; }

/* ---------- toast ---------- */
.toast-wrap{ position:fixed; z-index:1090; right:16px; top:16px; }
.hbh-toast{ background:var(--pine-deep); color:#eaf1e9; border:1px solid rgba(255,255,255,.12); border-radius:16px; box-shadow:var(--shadow-lg); }
.hbh-toast .btn-close{ filter:invert(1) grayscale(100%) brightness(200%); }

/* ---------- misc ---------- */
.divider-leaf{ display:flex; align-items:center; gap:1rem; color:var(--sage); }
.divider-leaf::before,.divider-leaf::after{ content:""; height:1px; flex:1; background:var(--line); }
.step-line{ position:relative; }
.step-line::before{ content:""; position:absolute; left:26px; top:0; bottom:0; width:2px; background:linear-gradient(to bottom,var(--sage),transparent); }
@media (min-width:992px){ .step-line::before{ left:calc(50% - 1px); top:0; bottom:0; } }
.timeline{ list-style:none; margin:0; padding:0; display:grid; gap:1.6rem; }
.timeline li{ display:flex; gap:1.1rem; align-items:flex-start; }
.timeline .dot{ flex:0 0 44px; width:44px; height:44px; border-radius:14px; background:var(--paper); border:1px solid var(--line); display:grid; place-items:center; color:var(--teal); box-shadow:var(--shadow-sm); }
.team-card .avatar{ width:74px; height:74px; font-size:1.3rem; border-radius:24px; }
.leaf-pattern{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cpath d='M60 18c18 12 24 30 12 46-9 12-27 14-36 4-10-11-6-30 24-50z' fill='none' stroke='%23ffffff' stroke-width='1.4'/%3E%3C/svg%3E"); background-size:120px 120px; }

/* ---------- responsive ---------- */
@media (max-width:991.98px){
  .hero{ padding-top:2.4rem; }
  .hero-note{ position:static; margin-top:1rem; max-width:none; }
  .w-lg-75{ width:100%; }
}
@media (max-width:575.98px){
  .section{ padding:3.6rem 0; }
  .btn-lg{ padding:.85rem 1.4rem; font-size:.96rem; }
  .blob{ display:none; }
}

/* ---------- dark mode ---------- */
[data-bs-theme="dark"]{
  --cream:#0d1a15;
  --paper:#14241d;
  --sand:#112019;
  --sage:#7fa889;
  --sage-soft:#1b2f27;
  --pine:#dceadf;
  --pine-deep:#0a1410;
  --teal:#8fc2a8;
  --clay:#e0a17c;
  --ink:#e6efe8;
  --muted:#a2b6ab;
  --line:rgba(255,255,255,.1);
  background-image:
    radial-gradient(1100px 620px at 88% -8%, rgba(28,64,51,.6), transparent 62%),
    radial-gradient(900px 520px at -6% 18%, rgba(10,20,16,.9), transparent 60%);
}
[data-bs-theme="dark"] body{ color:var(--ink); }
[data-bs-theme="dark"] h1,[data-bs-theme="dark"] h2,[data-bs-theme="dark"] h3,[data-bs-theme="dark"] h4{ color:var(--pine); }
[data-bs-theme="dark"] .navbar{ background:rgba(13,26,21,.8); }
[data-bs-theme="dark"] .navbar .nav-link{ color:#b7c9bd; }
[data-bs-theme="dark"] .navbar .nav-link:hover{ background:var(--sage-soft); color:#fff; }
[data-bs-theme="dark"] .brand-mark{ background:var(--sage); }
[data-bs-theme="dark"] .brand-mark svg{ color:#0d1a15; }
[data-bs-theme="dark"] .hero h1 em{ color:var(--sage); }
[data-bs-theme="dark"] .check-list li{ color:#c7d7cb; }
[data-bs-theme="dark"] .avatar{ background:#22402f; color:#e8f2e8; }
[data-bs-theme="dark"] .cta-band{ background:radial-gradient(120% 160% at 12% 10%,#173a2c 0%,#0e211a 48%,#080f0c 100%); }
[data-bs-theme="dark"] .quote-card,[data-bs-theme="dark"] .hbh-card,[data-bs-theme="dark"] .article,[data-bs-theme="dark"] .newsletter-card,[data-bs-theme="dark"] .accordion-item{ background:#14241d; }
[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select{ background:#0f1f19; color:#e6efe8; border-color:rgba(255,255,255,.12); }
[data-bs-theme="dark"] .article p,[data-bs-theme="dark"] .article li{ color:#c7d7cb; }
[data-bs-theme="dark"] .legal-body p,[data-bs-theme="dark"] .legal-body li{ color:#c0d1c4; }
[data-bs-theme="dark"] .map-holder{ background:#16291f; }
[data-bs-theme="dark"] .chip{ background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.12); color:#dceadf; }
[data-bs-theme="dark"] .why-num{ -webkit-text-stroke:1.2px rgba(255,255,255,.28); }
[data-bs-theme="dark"] .btn-ink{ background:var(--sage); color:#0d1a15; }
[data-bs-theme="dark"] .btn-ink:hover{ background:#cfe3d0; color:#0d1a15; }
[data-bs-theme="dark"] .page-head{ background:#0a1410; }
[data-bs-theme="dark"] .site-footer{ background:#070f0c; }
[data-bs-theme="dark"] .tip-box{ background:#16291f; }
[data-bs-theme="dark"] .brand-name{ color:var(--pine); }

/* ---------- motion prefs ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal{ opacity:1; transform:none; }
  .marquee-track{ animation:none; }
}

/* ---------- appended: blog filter, preference chips, accordion headings ---------- */
.hbh-card-hover:hover{ transform:translateY(-6px); }
button.chip{ cursor:pointer; font-family:var(--body); background-color:var(--paper); }
button.chip:hover{ border-color:var(--teal); color:var(--pine); }
button.chip[aria-pressed="true"]{ background:var(--pine); color:#f2f7f1; border-color:var(--pine); }
.pine-bg button.chip{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.2); color:#e7f0e6; }
.pine-bg button.chip[aria-pressed="true"]{ background:var(--sage); color:var(--pine-deep); border-color:var(--sage); }
.chip.pref{ position:relative; cursor:pointer; }
.chip.pref input{ position:absolute; opacity:0; width:1px; height:1px; margin:0; }
.chip.pref span{ display:inline-block; }
.chip.pref:has(input:checked){ background:var(--sage-soft); border-color:var(--teal); color:var(--pine); }
.chip.pref:has(input:checked)::before{ content:"✓"; font-size:.85em; color:var(--teal); margin-right:.15rem; }
.chip.pref:has(input:checked) span{ font-weight:800; }
.chip.pref:has(input:focus-visible){ outline:3px solid var(--clay); outline-offset:2px; }
.chip.pref:hover{ border-color:var(--sage); }
.accordion-button h2,.accordion-button h3,.accordion-button h4{ font:inherit; color:inherit; margin:0; letter-spacing:inherit; }
.post-card.is-hidden,[data-category].is-hidden{ display:none; }
article.img-cover img,figure.img-cover img,img.img-cover{ width:100%; height:100%; object-fit:cover; }
img.aspect-43{ aspect-ratio:4/3; }
img.aspect-32{ aspect-ratio:3/2; }
.svc-thumb img:not([src]){ visibility:hidden; }
.contact-tile address,.contact-tile .address{ font-style:normal; margin-bottom:0; }
.legal-body table{ font-size:.95rem; }
.legal-body th{ font-family:var(--display); color:var(--pine); font-weight:600; border-bottom:1.5px solid var(--line); }
.legal-body td{ color:var(--muted); border-color:var(--line); vertical-align:top; }
[data-bs-theme="dark"] .legal-body th{ color:var(--pine); }
[data-bs-theme="dark"] .chip.pref:has(input:checked){ background:#1d3b30; }
[data-bs-theme="dark"] button.chip[aria-pressed="true"]{ background:var(--sage); color:#0d1a15; border-color:var(--sage); }
@container (min-width: 1px){ .svc-thumb{ container-type:inline-size; } }

/* ---------- final polish ---------- */
.carousel-indicators{ margin-inline:auto; }
.accordion-button .invalid-feedback{ display:none; }
.pine-bg .hero-note,.pine-bg .chip{ backdrop-filter:blur(6px); }
.hero-photo img{ will-change:transform; }
.svc-thumb img,.post-thumb img{ will-change:transform; }
.legal-nav a[aria-current="true"]{ color:var(--pine); font-weight:700; border-left-color:var(--clay); }
/* [hidden] is authoritative only where we did not already define a .show rule */
[data-mail-state][hidden],[data-mail-success][hidden]{ display:none !important; }
@media (prefers-contrast:more){
  :root{ --line:rgba(28,64,51,.42); --muted:#2c3a34; }
  .btn-line,.form-control,.form-select{ border-width:2px; }
}

/* end of stylesheet */

/* gutter/marquee bleed must never create a horizontal scrollbar on phones */
html, body{ overflow-x: clip; }

/* ---------- dark-section legibility + detail pass ---------- */
.pine-bg .hbh-card{ background:var(--cream); border-color:rgba(255,255,255,.18); }
.pine-bg .hbh-card h2,.pine-bg .hbh-card h3,.pine-bg .hbh-card h4{ color:var(--pine-deep); }
.pine-bg .hbh-card p{ color:#4a5b53; }
.pine-bg .icon-bubble{ background:#fff; }
.cta-band .leaf-pattern{ opacity:.18; }
.page-head .leaf-pattern{ opacity:.14; }
.svc-thumb{ background:linear-gradient(135deg,#e4ede4,#ece5d6); }

/* accordion: use Bootstrap's own rotating chevron so the marker animates */
.accordion-button::after{ background:var(--bs-accordion-btn-icon); content:none; width:var(--bs-accordion-btn-icon-width); height:var(--bs-accordion-btn-icon-width); }
.accordion-button:not(.collapsed)::after{ background:var(--bs-accordion-btn-active-icon); transform:var(--bs-accordion-btn-icon-transform); }
[data-bs-theme="dark"] .accordion-button::after{ background:var(--bs-accordion-btn-active-icon); }

/* numbered word-marks: keep them inside the card and visible on light tiles */
.why-num{ font-size:1.95rem; line-height:1.05; margin:0 0 .1rem; -webkit-text-stroke:1px rgba(44,111,91,.42); }
.pine-bg .hbh-card .why-num{ -webkit-text-stroke:1px rgba(44,111,91,.4); }
.pine-bg .why-num{ -webkit-text-stroke:1px rgba(255,255,255,.45); }
.why-item h3{ margin-top:.15rem; }
.why-num{ line-height:1.55; margin-bottom:.05rem; }
