/* ===== Health Vital Therapy – main stylesheet ===== */
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-latin-600-normal.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-latin-700-normal.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(fonts/nunito-sans-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(fonts/nunito-sans-latin-700-normal.woff2) format('woff2');font-weight:700;font-display:swap}

:root{
  --teal-900:#083b38;--teal-800:#0b4f4a;--teal-600:#0f7c6f;--teal-500:#14a38b;
  --mint:#dff3ea;--mint-soft:#eefaf5;--coral:#ff7a59;--coral-dark:#e8603e;
  --sand:#fff8ef;--gold:#f7b84b;--ink:#17312f;--muted:#5d7270;--white:#fff;
  --radius:1.4rem;--shadow:0 18px 45px -18px rgba(8,59,56,.35);--shadow-sm:0 8px 24px -12px rgba(8,59,56,.3);
  --bs-primary:#0f7c6f;--bs-body-font-family:'Nunito Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:'Nunito Sans',system-ui,sans-serif;color:var(--ink);background:var(--white);line-height:1.75;overflow-x:hidden}
h1,h2,h3,h4,h5,.display-font{font-family:'Fraunces',Georgia,serif;color:var(--teal-900);line-height:1.2;font-weight:600}
a{color:var(--teal-600);text-decoration:none;transition:.25s}a:hover{color:var(--coral-dark)}
img{max-width:100%}
.text-muted-2{color:var(--muted)}
.section{padding:5.5rem 0;position:relative}
.bg-sand{background:var(--sand)}.bg-mint{background:var(--mint-soft)}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--teal-600);background:var(--mint);padding:.4rem 1rem;border-radius:99px;margin-bottom:1rem}
.eyebrow i{color:var(--coral)}
.section-title{font-size:clamp(1.9rem,3.4vw,2.8rem);margin-bottom:1rem}
.section-title em{font-style:italic;color:var(--coral-dark)}
.lead-sm{color:var(--muted);font-size:1.08rem;max-width:40rem}

/* buttons */
.btn{font-weight:700;border-radius:99px;padding:.8rem 1.8rem;transition:.3s;border-width:2px}
.btn-coral{background:var(--coral);border-color:var(--coral);color:#fff;box-shadow:0 12px 24px -10px rgba(255,122,89,.8)}
.btn-coral:hover{background:var(--coral-dark);border-color:var(--coral-dark);color:#fff;transform:translateY(-3px)}
.btn-teal{background:var(--teal-800);border-color:var(--teal-800);color:#fff}
.btn-teal:hover{background:var(--teal-600);border-color:var(--teal-600);color:#fff;transform:translateY(-3px)}
.btn-outline-teal{border-color:var(--teal-800);color:var(--teal-800);background:transparent}
.btn-outline-teal:hover{background:var(--teal-800);color:#fff;transform:translateY(-3px)}
.btn-light-pill{background:#fff;color:var(--teal-800);border-color:#fff}
.btn-light-pill:hover{background:var(--gold);border-color:var(--gold);color:var(--teal-900);transform:translateY(-3px)}
.btn-outline-light-pill{border-color:rgba(255,255,255,.7);color:#fff}
.btn-outline-light-pill:hover{background:#fff;color:var(--teal-800)}

/* top bar + navbar */
.topbar{background:var(--teal-900);color:#cfe9e2;font-size:.85rem;padding:.45rem 0}
.topbar a{color:#fff}.topbar a:hover{color:var(--gold)}
.navbar{background:rgba(255,255,255,.92);backdrop-filter:blur(12px);padding:.7rem 0;transition:.3s;border-bottom:1px solid rgba(15,124,111,.08)}
.navbar.scrolled{box-shadow:0 10px 30px -15px rgba(8,59,56,.4)}
.navbar-brand{display:flex;align-items:center;gap:.65rem;font-family:'Fraunces',serif;font-weight:700;color:var(--teal-900)!important;font-size:1.3rem;line-height:1.1}
.navbar-brand img{width:46px;height:46px}
.navbar-brand small{display:block;font-family:'Nunito Sans',sans-serif;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--coral-dark);font-weight:700}
.navbar .nav-link{font-weight:700;color:var(--ink);padding:.5rem 1rem!important;position:relative}
.navbar .nav-link::after{content:"";position:absolute;left:1rem;right:1rem;bottom:.15rem;height:3px;border-radius:3px;background:var(--coral);transform:scaleX(0);transition:.3s}
.navbar .nav-link:hover::after,.navbar .nav-link.active::after{transform:scaleX(1)}
.navbar .nav-link.active{color:var(--teal-600)}

/* hero */
.hero{position:relative;padding:4.5rem 0 7rem;background:radial-gradient(circle at 85% 10%,#c9ecdf 0,transparent 45%),radial-gradient(circle at 0 90%,#ffe6d8 0,transparent 40%),var(--sand);overflow:hidden}
.hero h1{font-size:clamp(2.3rem,4.4vw,3.5rem);font-weight:700;margin-bottom:1.2rem}
.hero h1 .hl{position:relative;color:var(--teal-600);white-space:nowrap}
.hero h1 .hl::after{content:"";position:absolute;left:0;right:0;bottom:.05em;height:.28em;background:var(--gold);opacity:.55;z-index:-1;border-radius:99px}
.hero p.lead{color:var(--muted);font-size:1.15rem;max-width:34rem}
.hero-art{position:relative;padding:1.5rem}
.hero-blob{width:100%;aspect-ratio:1/1.05;object-fit:cover;border-radius:58% 42% 55% 45%/50% 55% 45% 50%;box-shadow:var(--shadow);animation:morph 12s ease-in-out infinite;border:10px solid #fff}
@keyframes morph{0%,100%{border-radius:58% 42% 55% 45%/50% 55% 45% 50%}50%{border-radius:42% 58% 45% 55%/55% 45% 55% 45%}}
.hero-ring{position:absolute;inset:0;border:2px dashed var(--teal-500);border-radius:50%;opacity:.35;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.float-card{position:absolute;background:#fff;border-radius:1rem;padding:.8rem 1.1rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:.7rem;font-weight:700;font-size:.92rem;color:var(--teal-900);animation:bob 5s ease-in-out infinite}
.float-card i{width:2.4rem;height:2.4rem;border-radius:.8rem;background:var(--mint);color:var(--teal-600);display:grid;place-items:center;font-size:1.2rem}
.float-card.fc-a{left:-.5rem;bottom:14%}
.float-card.fc-b{right:-.5rem;top:10%;animation-delay:-2.5s}
.float-card.fc-b i{background:#ffe3da;color:var(--coral-dark)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0}
.wave svg{display:block;width:100%;height:auto}
.deco-plus{position:absolute;color:var(--teal-500);opacity:.25;font-size:2.4rem;animation:bob 6s ease-in-out infinite}

/* ribbon */
.ribbon{background:var(--teal-800);color:#fff;overflow:hidden;white-space:nowrap;padding:1rem 0;transform:rotate(-1deg);margin:-1.5rem -1rem 0;position:relative;z-index:3}
.ribbon-track{display:inline-flex;gap:2.5rem;animation:marquee 35s linear infinite;font-family:'Fraunces',serif;font-size:1.25rem}
.ribbon-track span{display:inline-flex;align-items:center;gap:2.5rem}
.ribbon-track i{color:var(--gold)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* about */
.about-img-wrap{position:relative;padding:0 0 2rem 2rem}
.about-img-wrap::before{content:"";position:absolute;left:0;bottom:0;width:70%;height:75%;background:var(--mint);border-radius:2rem}
.about-img-wrap img{position:relative;border-radius:2rem;box-shadow:var(--shadow);width:100%;object-fit:cover}
.about-badge{position:absolute;right:-.5rem;bottom:0;background:var(--coral);color:#fff;border-radius:1.2rem;padding:1rem 1.3rem;font-family:'Fraunces',serif;font-size:1.05rem;box-shadow:var(--shadow);max-width:13rem;line-height:1.3}
.about-badge i{font-size:1.5rem;display:block;margin-bottom:.2rem}
.check-list{list-style:none;padding:0;margin:1.2rem 0 1.8rem}
.check-list li{display:flex;gap:.7rem;margin-bottom:.6rem;font-weight:600}
.check-list i{color:var(--teal-500);font-size:1.15rem;margin-top:.1rem}

/* why choose us */
.why{background:linear-gradient(160deg,var(--teal-900),var(--teal-800) 60%,#0d6a61);color:#d4ebe5;overflow:hidden}
.why h2,.why h3,.why h4{color:#fff}
.why .eyebrow{background:rgba(255,255,255,.12);color:#bfeee0}
.why .lead-sm{color:#b7d8d0}
.why-card{height:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:2rem 1.6rem;transition:.35s;position:relative;overflow:hidden}
.why-card:hover{background:rgba(255,255,255,.14);transform:translateY(-8px)}
.why-card .ico{width:3.6rem;height:3.6rem;border-radius:1.1rem 1.1rem 1.1rem .3rem;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:1.6rem;margin-bottom:1.1rem}
.why-card h3{font-size:1.25rem}
.why-card p{margin:0;font-size:.98rem}
.why .circle{position:absolute;border-radius:50%;background:rgba(255,255,255,.04)}

/* services */
.service-card{height:100%;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid rgba(15,124,111,.08);display:flex;flex-direction:column;transition:.4s}
.service-card:hover{transform:translateY(-10px);box-shadow:var(--shadow)}
.service-thumb{position:relative;height:220px;overflow:hidden}
.service-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.service-card:hover .service-thumb img{transform:scale(1.08)}
.service-thumb::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(transparent,rgba(8,59,56,.45))}
.service-ico{position:absolute;z-index:2;right:1.2rem;bottom:-1.6rem;width:3.4rem;height:3.4rem;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:1.4rem;box-shadow:0 10px 20px -8px rgba(255,122,89,.9);border:4px solid #fff}
.service-body{padding:2rem 1.6rem 1.7rem;display:flex;flex-direction:column;flex:1}
.service-body h3{font-size:1.3rem;margin-bottom:.6rem}
.service-body p{color:var(--muted);font-size:.98rem;flex:1}
.service-body .btn{align-self:flex-start;padding:.55rem 1.4rem;font-size:.92rem}
.service-body .btn i{transition:.3s}.service-body .btn:hover i{transform:translateX(4px)}

/* testimonials */
.testi-wrap{position:relative;background:#fff;border-radius:2.2rem;box-shadow:var(--shadow);padding:3.2rem 3rem;border:1px solid rgba(15,124,111,.08)}
.testi-wrap .qmark{position:absolute;top:-1.6rem;left:2.5rem;width:3.6rem;height:3.6rem;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:1.6rem}
.testi-quote{font-family:'Fraunces',serif;font-size:clamp(1.15rem,2vw,1.5rem);color:var(--teal-900);line-height:1.6}
.stars{color:var(--gold);letter-spacing:.15rem}
.avatar{width:3.4rem;height:3.4rem;border-radius:50%;display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--teal-500),var(--teal-800));font-size:1.2rem}
.carousel-indicators [data-bs-target]{background-color:var(--teal-600);width:.7rem;height:.7rem;border-radius:50%;border:0;margin:0 .3rem}
.carousel-indicators{position:static;margin:2rem 0 0}
.testi-side{position:relative;border-radius:2rem;overflow:hidden;background:var(--teal-800);color:#fff;padding:2.2rem;height:100%;display:flex;flex-direction:column;justify-content:center}
.testi-side h3{color:#fff}

/* blog cards */
.blog-card{height:100%;border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);border:1px solid rgba(15,124,111,.08);display:flex;flex-direction:column;transition:.4s}
.blog-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.blog-card .thumb{position:relative;height:230px;overflow:hidden;display:block}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.blog-card:hover .thumb img{transform:scale(1.07)}
.cat-pill{position:absolute;left:1rem;top:1rem;background:var(--coral);color:#fff;font-weight:700;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .85rem;border-radius:99px}
.blog-card .body{padding:1.6rem;display:flex;flex-direction:column;flex:1}
.blog-card h3{font-size:1.25rem}
.blog-card h3 a{color:var(--teal-900)}.blog-card h3 a:hover{color:var(--coral-dark)}
.blog-card p{color:var(--muted);flex:1}
.read-more{font-weight:700;display:inline-flex;gap:.4rem;align-items:center}
.read-more:hover i{transform:translateX(4px)}.read-more i{transition:.3s}

/* faq */
.accordion-item{border:1px solid rgba(15,124,111,.12)!important;border-radius:1.1rem!important;margin-bottom:.9rem;overflow:hidden;background:#fff}
.accordion-button{font-family:'Fraunces',serif;font-weight:600;font-size:1.1rem;color:var(--teal-900);padding:1.2rem 1.5rem;background:#fff}
.accordion-button:not(.collapsed){background:var(--mint-soft);color:var(--teal-800);box-shadow:none}
.accordion-button:focus{box-shadow:0 0 0 .2rem rgba(20,163,139,.25)}
.accordion-body{color:var(--muted);padding:1.2rem 1.5rem 1.5rem}
.faq-side{background:linear-gradient(150deg,var(--coral),#ff9a6f);color:#fff;border-radius:2rem;padding:2.4rem;position:sticky;top:110px}
.faq-side h3{color:#fff}

/* CTA */
.cta{position:relative;background:linear-gradient(120deg,var(--teal-800),var(--teal-500));border-radius:2.4rem;padding:4rem 2rem;color:#fff;text-align:center;overflow:hidden;box-shadow:var(--shadow)}
.cta h2{color:#fff;font-size:clamp(1.9rem,3.6vw,2.9rem)}
.cta p{color:#dcf5ee;max-width:38rem;margin:0 auto 1.8rem;font-size:1.1rem}
.cta .bubble{position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}
.cta .b1{width:16rem;height:16rem;left:-5rem;top:-5rem}.cta .b2{width:11rem;height:11rem;right:-3rem;bottom:-4rem;background:rgba(255,122,89,.35)}
.cta .b3{width:5rem;height:5rem;right:18%;top:1.5rem;background:rgba(247,184,75,.35)}
.cta > *{position:relative;z-index:2}.cta .bubble{z-index:1}

/* inner page hero */
.page-hero{position:relative;padding:5rem 0 6.5rem;background:linear-gradient(135deg,var(--teal-900),var(--teal-600));color:#fff;overflow:hidden}
.page-hero h1{color:#fff;font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:700}
.page-hero p{color:#cdeee5;max-width:38rem;font-size:1.12rem}
.page-hero .breadcrumb{--bs-breadcrumb-divider-color:#8fd1c1;margin-bottom:1rem}
.page-hero .breadcrumb a{color:#bff0e2}.page-hero .breadcrumb-item.active{color:#fff}
.page-hero .bubble{position:absolute;border-radius:50%;background:rgba(255,255,255,.07)}

/* about page */
.value-card{height:100%;background:#fff;border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-sm);border-top:5px solid var(--coral);transition:.3s}
.value-card:hover{transform:translateY(-6px)}
.value-card .ico{font-size:2rem;color:var(--teal-600)}
.journey{position:relative;padding-left:2.2rem;border-left:3px dashed var(--teal-500)}
.journey-item{position:relative;margin-bottom:1.8rem}
.journey-item::before{content:"";position:absolute;left:calc(-2.2rem - 10px);top:.4rem;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--coral);border:4px solid #fff;box-shadow:0 0 0 2px var(--coral)}
.journey-item h4{font-size:1.2rem}

/* contact */
.info-card{height:100%;background:#fff;border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;box-shadow:var(--shadow-sm);border:1px solid rgba(15,124,111,.08);transition:.3s}
.info-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.info-card .ico{width:4rem;height:4rem;margin:0 auto 1rem;border-radius:1.3rem 1.3rem 1.3rem .4rem;background:var(--mint);color:var(--teal-600);display:grid;place-items:center;font-size:1.7rem}
.info-card h3{font-size:1.2rem}
.form-card{background:#fff;border-radius:2rem;padding:2.5rem;box-shadow:var(--shadow);border:1px solid rgba(15,124,111,.08)}
.form-control,.form-select{border-radius:.9rem;padding:.8rem 1.1rem;border:2px solid #dbe9e5;background:#fbfefd}
.form-control:focus,.form-select:focus{border-color:var(--teal-500);box-shadow:0 0 0 .2rem rgba(20,163,139,.18)}
.form-label{font-weight:700;color:var(--teal-900);font-size:.92rem}
.form-check-input:checked{background-color:var(--teal-600);border-color:var(--teal-600)}
.map-wrap{border-radius:2rem;overflow:hidden;box-shadow:var(--shadow);border:8px solid #fff;line-height:0}
.map-wrap iframe{width:100%;height:420px;border:0}
.form-success{display:none;text-align:center;padding:2rem 1rem}
.form-success i{font-size:4rem;color:var(--teal-500)}

/* newsletter pages */
.news-split{background:#fff;border-radius:2.2rem;box-shadow:var(--shadow);overflow:hidden}
.news-side{background:linear-gradient(160deg,var(--teal-800),var(--teal-500));color:#fff;padding:3rem 2.4rem;height:100%;position:relative;overflow:hidden}
.news-side h2,.news-side h3{color:#fff}
.news-side.coral{background:linear-gradient(160deg,#e8603e,#ff9a6f)}
.news-side .bubble{position:absolute;border-radius:50%;background:rgba(255,255,255,.1);width:12rem;height:12rem;right:-4rem;bottom:-4rem}
.news-side ul{list-style:none;padding:0}.news-side li{display:flex;gap:.7rem;margin-bottom:.7rem}
.news-form{padding:3rem 2.4rem}

/* blog listing + post */
.post-hero-img{border-radius:2rem;width:100%;max-height:440px;object-fit:cover;box-shadow:var(--shadow)}
.post-meta{display:flex;flex-wrap:wrap;gap:1.2rem;color:var(--muted);font-size:.92rem}
.post-meta i{color:var(--coral)}
.post-content h2{font-size:1.65rem;margin:2.2rem 0 .8rem}
.post-content p,.post-content li{font-size:1.06rem}
.post-content ul{padding-left:1.2rem}.post-content li{margin-bottom:.4rem}
.post-content blockquote{border-left:5px solid var(--coral);background:var(--sand);padding:1.3rem 1.6rem;border-radius:0 1.2rem 1.2rem 0;font-family:'Fraunces',serif;font-size:1.2rem;color:var(--teal-900);margin:1.8rem 0}
.note-box{background:var(--mint-soft);border:1px dashed var(--teal-500);border-radius:1.2rem;padding:1.2rem 1.5rem;font-size:.95rem;color:var(--muted)}
.side-card{background:#fff;border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow-sm);border:1px solid rgba(15,124,111,.08);margin-bottom:1.6rem}
.side-post{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}
.side-post img{width:5rem;height:4.2rem;object-fit:cover;border-radius:.9rem;flex:none}
.side-post a{font-family:'Fraunces',serif;font-weight:600;color:var(--teal-900);line-height:1.3;display:block}
.side-post a:hover{color:var(--coral-dark)}
.side-cta{background:linear-gradient(150deg,var(--teal-800),var(--teal-500));color:#fff;border-radius:var(--radius);padding:1.8rem;margin-bottom:1.6rem}
.side-cta h3{color:#fff}

/* legal */
.legal h2{font-size:1.5rem;margin:2.2rem 0 .7rem}
.legal p,.legal li{color:#3b5553}
.legal-box{background:#fff;border-radius:2rem;box-shadow:var(--shadow-sm);padding:3rem;border:1px solid rgba(15,124,111,.08)}

/* footer */
.footer{background:var(--teal-900);color:#b9d6cf;padding:5rem 0 0;position:relative}
.footer h5{color:#fff;font-size:1.15rem;margin-bottom:1.2rem}
.footer a{color:#b9d6cf}.footer a:hover{color:var(--gold)}
.footer ul{list-style:none;padding:0;margin:0}.footer li{margin-bottom:.55rem}
.footer p i{vertical-align:-1px}.footer .navbar-brand{color:#fff!important}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding:1.4rem 0;font-size:.9rem}
.social a{display:inline-grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;margin-right:.4rem}
.social a:hover{background:var(--coral);color:#fff;transform:translateY(-3px)}

/* back to top + reveal */
#toTop{position:fixed;right:1.4rem;bottom:1.4rem;width:3rem;height:3rem;border-radius:50%;border:0;background:var(--coral);color:#fff;font-size:1.2rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.3s;z-index:50}
#toTop.show{opacity:1;pointer-events:auto}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}*{animation:none!important}}
@media (max-width:991px){.section{padding:4rem 0}.hero{padding-top:3rem}.faq-side{position:static}.testi-wrap{padding:2.5rem 1.5rem}.navbar-collapse{padding:1rem 0}.legal-box{padding:1.6rem}}
html,body{overflow-x:clip}
@media (max-width:991px){.row.g-5,.row.gx-5{--bs-gutter-x:1.5rem}.ribbon{margin:-1rem 0 0;transform:none}}
