:root{
  --spruce:#0e3b3f; --spruce-deep:#092a2d; --teal:#2a7f84; --amber:#f0b44c; --amber-dk:#d99a2b;
  --sand:#f6f0e4; --paper:#fffdf8; --ink:#1b2b2d; --muted:#5a6b6c;
  --serif:'DM Serif Display',Georgia,serif; --sans:'Figtree',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:1.05rem;line-height:1.7}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.15;color:var(--spruce)}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem);margin-bottom:1rem}
h3{font-size:1.35rem}
a{color:var(--teal)}
img{max-width:100%;height:auto}
.container-xl{--bs-gutter-x:3rem}
.photo-band .container-xl{--bs-gutter-x:0}

.btn-amber{background:var(--amber);border-color:var(--amber);color:var(--spruce-deep);font-weight:700}
.btn-amber:hover{background:var(--amber-dk);border-color:var(--amber-dk);color:var(--spruce-deep)}
.btn-ghost{border:2px solid rgba(255,255,255,.6);color:#fff;font-weight:600}
.btn-ghost:hover{background:#fff;color:var(--spruce)}

/* nav */
.bc-nav{background:var(--spruce);box-shadow:0 2px 14px rgba(0,0,0,.18);padding:.6rem 0}
.bc-nav .navbar-brand{font-family:var(--serif);font-size:1.4rem;color:#fff;display:flex;align-items:center;gap:.6rem;white-space:nowrap}
.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--amber);color:var(--spruce-deep);font-size:1rem}
.bc-nav .nav-link{color:rgba(255,255,255,.85);font-weight:500;font-size:.95rem;padding:.5rem .7rem}
.bc-nav .nav-link:hover,.bc-nav .nav-link.active{color:var(--amber)}
.bc-nav .navbar-toggler{border-color:rgba(255,255,255,.5);filter:invert(1)}
@media(max-width:1199.98px){.bc-nav .navbar-collapse{padding:.75rem 0 1rem}}

/* hero: split panel */
.hero{display:grid;grid-template-columns:1fr;min-height:clamp(640px,88vh,780px);padding-top:62px}
.hero-panel{background:var(--spruce);color:#fff;display:flex;align-items:center;padding:3.5rem 1.5rem}
.hero-content{max-width:560px;margin-left:auto;padding-right:2rem}
.hero-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.82rem;font-weight:600;color:var(--amber);margin-bottom:1.1rem}
.hero-title{color:#fff;font-size:clamp(3rem,7vw,5.4rem);line-height:1;margin-bottom:1.4rem}
.hero-subtitle{font-size:1.2rem;color:rgba(255,255,255,.9);max-width:30em}
.hero-note{margin:2rem 0 0;font-size:.95rem;color:rgba(255,255,255,.75)}
.hero-photo{position:relative;min-height:340px;background:#cfe6ee}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% 30%}
@media(min-width:992px){
  .hero{grid-template-columns:1fr 1fr}
  .hero-panel{padding:4rem 1.5rem 4rem 2rem}
}
@media(max-width:991.98px){
  .hero{min-height:0}
  .hero-content{margin:0 auto;padding-right:0}
  .hero-photo{min-height:360px}
}

/* facts */
.facts{background:var(--amber)}
.fact{padding:1.8rem 1.4rem;display:flex;flex-direction:column;gap:.15rem;border-right:1px solid rgba(9,42,45,.15);color:var(--spruce-deep)}
.fact:last-child{border-right:0}
.fact i{font-size:1.6rem}
.fact strong{font-family:var(--serif);font-weight:400;font-size:1.3rem}
.fact span{font-size:.92rem;line-height:1.4}
@media(max-width:991.98px){.fact:nth-child(2){border-right:0}.fact:nth-child(-n+2){border-bottom:1px solid rgba(9,42,45,.15)}}

/* sections */
.section{padding:6rem 0}
.section-sand{background:var(--sand)}
.section-spruce{background:var(--spruce);color:#fff}
.section-spruce h2{color:#fff}
.section-head{max-width:700px;margin-bottom:3rem}
.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:700;color:var(--teal);margin-bottom:.7rem}
.kicker-light{color:var(--amber)}
.lead-copy{font-size:1.2rem}
.sign{margin-top:1.5rem;font-family:var(--serif);font-size:1.25rem;color:var(--spruce)}
.cred-card{background:var(--sand);border-radius:18px;padding:2.2rem;border-left:6px solid var(--amber)}
.cred-card h3{margin-bottom:1rem}
.cred-list{list-style:none;padding:0;margin:0}
.cred-list li{padding:.55rem 0 .55rem 1.8rem;position:relative;border-bottom:1px solid rgba(14,59,63,.12);font-size:.98rem;line-height:1.45}
.cred-list li:last-child{border:0}
.cred-list li::before{content:"\F26A";font-family:bootstrap-icons;position:absolute;left:0;top:.6rem;color:var(--teal)}

/* photo bands */
.photo-band{background:var(--spruce-deep);padding:0}
.photo-band .container-xl{padding:0}
.band-img{width:100%;height:100%;min-height:300px;object-fit:cover;display:block}
.band-text{padding:3rem 2.5rem;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:var(--spruce)}
.band-text h2{color:#fff;font-size:clamp(1.6rem,2.8vw,2.3rem)}
.band-text p{color:rgba(255,255,255,.88)}
.photo-band-alt .band-text{background:var(--teal)}
.photo-band-alt .kicker-light{color:#fff0cc}
.band-row{min-height:340px}

/* topic grid */
.topic{height:100%;background:#fff;border:1px solid rgba(14,59,63,.12);border-radius:14px;padding:1.4rem 1.3rem;font-family:var(--serif);font-size:1.25rem;color:var(--spruce);line-height:1.2;display:flex;flex-direction:column;gap:.5rem;min-height:116px;transition:transform .2s,box-shadow .2s}
.topic:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(14,59,63,.1)}
.topic span{font-family:var(--sans);font-weight:700;font-size:.8rem;letter-spacing:.12em;color:var(--amber-dk)}
.topic-quote{margin:0;background:var(--spruce);color:#fff;font-size:.92rem;line-height:1.45;font-family:var(--sans);justify-content:center}
.topic-quote:hover{transform:none;box-shadow:none}
.topic-quote cite{font-style:normal;font-weight:700;color:var(--amber);font-size:.85rem}
.topic-grid>[class*=col]{display:flex}
.topic-grid .topic{width:100%}

/* conditions */
.cond{height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:.8rem;min-height:150px;padding:1.5rem;border-radius:16px;background:var(--sand);font-family:var(--serif);font-size:1.3rem;color:var(--spruce);text-decoration:none;line-height:1.2}
.cond i{font-size:1.7rem;color:var(--teal)}
.cond-cta{background:var(--amber);color:var(--spruce-deep)}
.cond-cta i{color:var(--spruce-deep)}
.cond-cta:hover{background:var(--amber-dk);color:var(--spruce-deep)}
.cond-grid>[class*=col],.well-grid>[class*=col],.why-grid>[class*=col]{display:flex}
.cond-grid .cond{width:100%}

/* wellness */
.well{width:100%;background:#fff;border-radius:16px;padding:2rem 1.5rem;text-align:center;border:1px solid rgba(14,59,63,.1)}
.well i{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--spruce);color:var(--amber);font-size:1.4rem;margin-bottom:1rem}
.well h3{font-size:1.2rem;margin:0}

/* why */
.why{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:1.5rem;font-size:1rem;line-height:1.5}
.why i{display:block;font-size:1.6rem;color:var(--amber);margin-bottom:.7rem}

/* first visit */
.steps{list-style:none;counter-reset:s;padding:0;margin:0;border-left:2px solid rgba(42,127,132,.3)}
.steps li{counter-increment:s;position:relative;padding:0 0 1.8rem 2.6rem}
.steps li::before{content:counter(s);position:absolute;left:-17px;top:0;width:32px;height:32px;border-radius:50%;background:var(--spruce);color:var(--amber);font-weight:700;display:grid;place-items:center;font-size:.9rem}
.steps h3{font-size:1.25rem;margin-bottom:.25rem}
.steps p{margin:0}
.insurance{margin-top:2rem;background:var(--sand);border-radius:16px;padding:1.6rem}
.insurance h3{font-size:1.2rem}
.pills{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem}
.pills li{background:#fff;border:1px solid rgba(14,59,63,.18);border-radius:999px;padding:.2rem .8rem;font-size:.85rem;color:var(--spruce);line-height:1.5}

/* newsletter */
.news-card{background:#fff;border-radius:18px;padding:2rem;box-shadow:0 12px 30px rgba(14,59,63,.08)}
.news-card ul{padding-left:1.1rem;margin:0}
.news-card li{margin-bottom:.8rem;font-size:1rem}
.news-card li::marker{color:var(--amber-dk)}
.news-foot{margin:1rem 0 0;font-size:.95rem;color:var(--muted)}

/* contact */
.contact-card{background:var(--sand);border-radius:18px;padding:2.2rem;height:100%}
.addr{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:.8rem}
.addr i{color:var(--teal);font-size:1.3rem;line-height:1.5}
.phone{font-family:var(--serif);font-size:1.6rem;text-decoration:none;color:var(--spruce);line-height:1.3}
.contact-card h4{font-size:1.15rem;margin:1.6rem 0 .6rem}
.hours{width:100%}
.hours th,.hours td{padding:.4rem 0;border-bottom:1px solid rgba(14,59,63,.12);font-size:.98rem}
.hours th{font-weight:600;color:var(--spruce)}
.hours td{text-align:right}
.hours-note{margin:1rem 0 0;font-size:.9rem;color:var(--muted)}
.map-wrap{height:100%;min-height:380px;border-radius:18px;overflow:hidden;box-shadow:0 12px 30px rgba(14,59,63,.1)}
.map-wrap iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

/* footer */
.footer{background:var(--spruce-deep);color:rgba(255,255,255,.8);padding:4rem 0 2rem}
.footer a{color:var(--amber);text-decoration:none}
.footer-brand{font-family:var(--serif);font-size:1.7rem;color:#fff;margin:0 0 .4rem}
.footer-sub{margin:0;font-size:.95rem}
.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.footer-links a{color:rgba(255,255,255,.85)}
.footer-links a:hover{color:var(--amber)}
.footer-social{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.footer-social a{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.1rem}
.footer-social a:hover{background:var(--amber);color:var(--spruce-deep);border-color:var(--amber)}
.review-note{flex-basis:100%;margin:.3rem 0 0;font-size:.85rem;color:rgba(255,255,255,.6)}
.powered{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.9rem}
.powered a{font-weight:700;background:rgba(240,180,76,.14);padding:.25rem .8rem;border-radius:999px}
.powered a:hover{background:var(--amber);color:var(--spruce-deep)}
.powered-sub{color:rgba(255,255,255,.55)}

@media(max-width:767.98px){
  .section{padding:4rem 0}
  .band-text{padding:2.2rem 1.5rem}
  .band-img{min-height:220px}
  .contact-card{padding:1.6rem}
}
