/* ==========================================================================
   Thrive Health Join — Thrive Health Join (thrivehealthjoin.com)
   Main stylesheet.  Bootstrap 5 handles the column grid; this file adds the
   brand design system, components and helpers.
   ========================================================================== */

/* ---- Self-hosted webfonts (Poppins + Inter, latin) ---------------------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/poppins-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/poppins-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/poppins-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* ==========================================================================
   Part 2 — Brand design system, components & helpers
   Thrive Health Join
   ========================================================================== */

:root{
  --th-primary:#0F9D8F;
  --th-primary-600:#0C8B7E;
  --th-primary-700:#0A7D71;
  --th-primary-800:#075E56;
  --th-ink:#0B2C2A;
  --th-ink-2:#123B39;
  --th-body:#516A68;
  --th-muted:#7C918F;
  --th-mint:#E8F7F4;
  --th-mint-2:#F4FBFA;
  --th-mint-3:#D5EFEA;
  --th-accent:#FF7A59;
  --th-accent-soft:#FFEDE7;
  --th-sand:#FFF7F0;
  --th-lilac:#EFEAFB;
  --th-line:#DCEAE7;
  --th-white:#ffffff;
  --th-shadow-sm:0 6px 18px rgba(11,44,42,.06);
  --th-shadow:0 18px 44px rgba(11,44,42,.10);
  --th-shadow-lg:0 30px 70px rgba(11,44,42,.16);
  --th-radius:20px;
  --th-radius-sm:14px;
  --th-radius-lg:30px;
  --th-font-head:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --th-font-body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --th-gradient:linear-gradient(135deg,var(--th-primary) 0%,var(--th-primary-700) 55%,var(--th-primary-800) 100%);
  --th-gradient-soft:linear-gradient(135deg,#F4FBFA 0%,#E8F7F4 60%,#DCF3EF 100%);
}

/* ---------------------------------------------------------------- base --- */
*{ -webkit-tap-highlight-color:transparent; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--th-font-body);
  color:var(--th-body);
  background:var(--th-white);
  font-size:1rem;
  line-height:1.75;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6,.h-font{
  font-family:var(--th-font-head);
  color:var(--th-ink);
  font-weight:600;
  line-height:1.22;
  letter-spacing:-.015em;
}
h1{ font-weight:700; }
p{ margin-bottom:1rem; }
a{ color:var(--th-primary-700); text-decoration:none; transition:color .25s ease; }
a:hover{ color:var(--th-primary); }
img{ max-width:100%; height:auto; }
::selection{ background:var(--th-primary); color:#fff; }
:focus-visible{ outline:3px solid rgba(15,157,143,.45); outline-offset:3px; border-radius:6px; }

.container{ max-width:1200px; }
.section{ padding:clamp(3.5rem,7vw,6.5rem) 0; position:relative; }
.section-sm{ padding:clamp(2.5rem,5vw,4rem) 0; }
.bg-mint{ background:var(--th-mint-2); }
.bg-mint-deep{ background:var(--th-gradient-soft); }
.bg-sand{ background:var(--th-sand); }
.bg-ink{ background:var(--th-ink); }
.rounded-4xl{ border-radius:var(--th-radius-lg)!important; }
.shadow-soft{ box-shadow:var(--th-shadow)!important; }
.text-primary-th{ color:var(--th-primary)!important; }
.text-ink{ color:var(--th-ink)!important; }
.lead-th{ font-size:1.075rem; color:var(--th-body); max-width:62ch; }
.mw-60{ max-width:60ch; }
.mw-70{ max-width:70ch; }

/* --------------------------------------------------- section headings --- */
.section-eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--th-font-head);
  font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--th-primary-700);
  background:var(--th-mint);
  border:1px solid var(--th-mint-3);
  border-radius:999px; padding:.4rem 1rem;
  margin-bottom:1.1rem;
}
.section-eyebrow.eyebrow-light{
  color:#BFF0E8; background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.20);
}
.section-eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--th-accent); display:inline-block; }
.section-title{ font-size:clamp(1.75rem,3.4vw,2.6rem); margin-bottom:.9rem; }
.section-lead{ font-size:1.05rem; color:var(--th-body); max-width:68ch; margin:0 auto; }
.section-head.text-start .section-lead{ margin-left:0; }
.title-rule{ width:64px; height:5px; border-radius:99px; background:var(--th-gradient); margin:1.2rem auto 1.6rem; }
.text-start .title-rule{ margin-left:0; }
.hl{ color:var(--th-primary); }

/* -------------------------------------------------------------- buttons -- */
.btn{
  font-family:var(--th-font-head); font-weight:600; font-size:.95rem;
  border-radius:999px; padding:.78rem 1.6rem; border:2px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.btn:active{ transform:translateY(1px); }
.btn-th{ background:var(--th-gradient); color:#fff; box-shadow:0 12px 26px rgba(15,157,143,.28); }
.btn-th:hover,.btn-th:focus{ color:#fff; transform:translateY(-3px); box-shadow:0 18px 34px rgba(15,157,143,.36); }
.btn-th-outline{ border-color:var(--th-primary); color:var(--th-primary-700); background:transparent; }
.btn-th-outline:hover{ background:var(--th-primary); border-color:var(--th-primary); color:#fff; transform:translateY(-3px); }
.btn-th-light{ background:#fff; color:var(--th-primary-700); box-shadow:0 12px 26px rgba(6,42,38,.18); }
.btn-th-light:hover{ color:var(--th-primary-800); transform:translateY(-3px); }
.btn-ghost-light{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn-ghost-light:hover{ background:#fff; color:var(--th-primary-700); border-color:#fff; }
.btn-accent{ background:var(--th-accent); color:#fff; box-shadow:0 12px 26px rgba(255,122,89,.32); }
.btn-accent:hover{ color:#fff; transform:translateY(-3px); }
.btn-sm-th{ padding:.55rem 1.15rem; font-size:.875rem; }
.btn-lg-th{ padding:.95rem 2rem; font-size:1rem; }
.btn i, .btn svg{ vertical-align:-2px; }

/* -------------------------------------------------------------- topbar -- */
.topbar{
  background:var(--th-ink); color:#9FC4C0; font-size:.85rem;
  padding:.5rem 0; border-bottom:1px solid rgba(255,255,255,.06);
}
.topbar a{ color:#CFE7E4; }
.topbar a:hover{ color:#fff; }
.topbar .tb-item{ display:inline-flex; align-items:center; gap:.45rem; }
.topbar .tb-item + .tb-item::before{
  content:""; width:1px; height:14px; background:rgba(255,255,255,.18);
  display:inline-block; margin-right:.9rem; margin-left:.15rem;
}
.topbar .tb-strong{ color:#fff; font-weight:500; }

/* ------------------------------------------------------------- navbar --- */
.th-navbar{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--th-line);
  padding:.9rem 0;
  transition:box-shadow .3s ease, padding .3s ease, background .3s ease;
  z-index:1030;
}
.th-navbar.is-stuck{ box-shadow:0 10px 30px rgba(11,44,42,.09); padding:.55rem 0; }

/* one-line wordmark with a single, consistent style */
.navbar-brand{ display:flex; align-items:center; gap:.65rem; padding:0; }
.brand-mark{ width:42px; height:42px; border-radius:13px; box-shadow:0 8px 18px rgba(15,157,143,.28); flex:0 0 auto; }
.brand-word{
  font-family:var(--th-font-head);
  font-weight:700; font-size:1.32rem; line-height:1; letter-spacing:-.02em;
  white-space:nowrap;
  background:linear-gradient(120deg,var(--th-primary) 0%,var(--th-primary-700) 48%,var(--th-primary-800) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--th-primary-700);
}
.brand-tag{ display:block; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--th-muted); margin-top:.3rem; }
.footer .brand-word{ background:linear-gradient(120deg,#7FE3D6 0%,#4ED0BE 45%,#BFF0E8 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

.th-navbar .nav-link{
  font-family:var(--th-font-head); font-weight:500; font-size:.95rem; color:var(--th-ink-2);
  padding:.55rem .9rem!important; position:relative;
}
.th-navbar .nav-link::after{
  content:""; position:absolute; left:.9rem; right:.9rem; bottom:.28rem; height:2px;
  background:var(--th-gradient); border-radius:2px; transform:scaleX(0); transform-origin:left;
  transition:transform .3s ease;
}
.th-navbar .nav-link:hover, .th-navbar .nav-link:focus{ color:var(--th-primary-700); }
.th-navbar .nav-link:hover::after, .th-navbar .nav-link.active::after{ transform:scaleX(1); }
.th-navbar .nav-link.active{ color:var(--th-primary-700); }
.th-navbar .dropdown-menu{
  border:1px solid var(--th-line); border-radius:16px; box-shadow:var(--th-shadow);
  padding:.6rem; margin-top:.6rem; min-width:262px;
}
.th-navbar .dropdown-item{
  border-radius:10px; padding:.5rem .8rem; font-size:.92rem; color:var(--th-ink-2);
  display:flex; align-items:center; gap:.55rem;
}
.th-navbar .dropdown-item:hover{ background:var(--th-mint); color:var(--th-primary-700); }
.th-navbar .dropdown-item .di-dot{ width:6px; height:6px; border-radius:50%; background:var(--th-primary); flex:0 0 auto; }
.navbar-toggler{ border:0; padding:.35rem .5rem; }
.navbar-toggler:focus{ box-shadow:none; }
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%230F9D8F' stroke-width='2.4' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E");
}
.nav-cta{ margin-left:.6rem; }

/* --------------------------------------------------------------- hero --- */
.hero{
  position:relative; overflow:hidden;
  background:var(--th-gradient-soft);
  padding:clamp(3rem,6vw,5.5rem) 0 clamp(3.5rem,7vw,6rem);
}
.hero::before,.hero::after{
  content:""; position:absolute; border-radius:50%; filter:blur(4px); pointer-events:none;
}
.hero::before{ width:460px; height:460px; left:-160px; top:-140px; background:radial-gradient(circle at 30% 30%, rgba(15,157,143,.20), transparent 65%); }
.hero::after{ width:520px; height:520px; right:-180px; bottom:-200px; background:radial-gradient(circle at 60% 40%, rgba(255,122,89,.18), transparent 62%); }
.hero .container{ position:relative; z-index:2; }
.hero-badge{
  display:inline-flex; align-items:center; gap:.5rem;
  background:#fff; border:1px solid var(--th-mint-3); color:var(--th-primary-700);
  font-family:var(--th-font-head); font-weight:600; font-size:.82rem; letter-spacing:.02em;
  padding:.45rem 1rem; border-radius:999px; box-shadow:var(--th-shadow-sm); margin-bottom:1.4rem;
}
.hero-badge .pulse{ width:9px; height:9px; border-radius:50%; background:var(--th-accent); box-shadow:0 0 0 0 rgba(255,122,89,.6); animation:pulse 2.2s infinite; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(255,122,89,.55); } 70%{ box-shadow:0 0 0 12px rgba(255,122,89,0); } 100%{ box-shadow:0 0 0 0 rgba(255,122,89,0); } }
.hero-title{ font-size:clamp(2.1rem,4.6vw,3.5rem); margin-bottom:1.1rem; }
.hero-title .swipe{
  position:relative; display:inline-block; color:var(--th-primary-700);
}
.hero-title .swipe::after{
  content:""; position:absolute; left:0; right:0; bottom:.06em; height:.34em;
  background:rgba(255,122,89,.28); border-radius:99px; z-index:-1;
}
.hero-sub{ font-size:1.08rem; max-width:56ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem; }
.hero-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.8rem; }
.hero-chip{
  display:inline-flex; align-items:center; gap:.4rem; background:#fff; border:1px solid var(--th-line);
  border-radius:999px; padding:.35rem .85rem; font-size:.83rem; color:var(--th-ink-2); box-shadow:var(--th-shadow-sm);
}
.hero-chip svg{ color:var(--th-primary); }
.hero-art{ position:relative; }
.hero-art .art-main{
  border-radius:var(--th-radius-lg); overflow:hidden; box-shadow:var(--th-shadow-lg);
  border:8px solid #fff; transform:rotate(1.2deg);
}
.hero-art .art-main img{ width:100%; display:block; object-fit:cover; }
.float-card{
  position:absolute; background:#fff; border-radius:18px; box-shadow:var(--th-shadow);
  padding:.9rem 1.05rem; display:flex; align-items:center; gap:.7rem; border:1px solid var(--th-line);
}
.float-card .fc-icon{
  width:42px; height:42px; border-radius:13px; display:grid; place-items:center; flex:0 0 auto;
  background:var(--th-mint); color:var(--th-primary-700);
}
.float-card .fc-title{ display:block; font-family:var(--th-font-head); font-weight:600; color:var(--th-ink); font-size:.9rem; line-height:1.25; }
.float-card .fc-sub{ display:block; font-size:.76rem; color:var(--th-muted); line-height:1.35; }
.float-a{ left:-14px; bottom:34px; animation:floaty 5.5s ease-in-out infinite; }
.float-b{ right:-10px; top:26px; animation:floaty 6.5s ease-in-out infinite .6s; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
.hero-wave{ display:block; width:100%; height:auto; }

/* ------------------------------------------------------- media panels --- */
.media-frame{ position:relative; }
.media-frame img{ border-radius:var(--th-radius-lg); box-shadow:var(--th-shadow); width:100%; display:block; object-fit:cover; }
.media-frame::after{
  content:""; position:absolute; inset:auto -18px -18px auto; width:150px; height:150px;
  border-radius:28px; background:var(--th-mint); z-index:-1;
}
.media-dots{
  position:absolute; left:-26px; top:-26px; width:130px; height:130px; z-index:-1;
  background-image:radial-gradient(var(--th-mint-3) 2.2px, transparent 2.2px);
  background-size:16px 16px;
}
.badge-card{
  position:absolute; right:-16px; bottom:22px; background:#fff; border-radius:18px;
  box-shadow:var(--th-shadow); border:1px solid var(--th-line); padding:1rem 1.15rem; max-width:230px;
}
.badge-card .bc-title{ font-family:var(--th-font-head); font-weight:600; color:var(--th-ink); font-size:.95rem; margin-bottom:.2rem; }
.badge-card .bc-sub{ font-size:.82rem; color:var(--th-muted); margin:0; }

/* ------------------------------------------------------- about points --- */
.tick-list{ list-style:none; padding:0; margin:0; }
.tick-list li{ position:relative; padding-left:2.1rem; margin-bottom:.7rem; color:var(--th-ink-2); }
.tick-list li::before{
  content:""; position:absolute; left:0; top:.3rem; width:1.3rem; height:1.3rem; border-radius:50%;
  background:var(--th-mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F9D8F' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/0.8rem no-repeat;
}
.tick-list.tick-light li{ color:#CDE7E4; }
.tick-list.tick-light li::before{ background-color:rgba(255,255,255,.14); }

/* --------------------------------------------------------- why cards ---- */
.why-card{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius);
  padding:1.9rem 1.6rem; height:100%; position:relative; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.why-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:4px; background:var(--th-gradient);
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.why-card:hover{ transform:translateY(-8px); box-shadow:var(--th-shadow); border-color:var(--th-mint-3); }
.why-card:hover::before{ transform:scaleX(1); }
.icon-circle{
  width:60px; height:60px; border-radius:18px; display:grid; place-items:center; margin-bottom:1.1rem;
  background:var(--th-mint); color:var(--th-primary-700);
  transition:background .3s ease, color .3s ease, transform .3s ease;
}
.why-card:hover .icon-circle{ background:var(--th-gradient); color:#fff; transform:rotate(-6deg); }
.why-card h3{ font-size:1.12rem; margin-bottom:.55rem; }
.why-card p{ margin:0; font-size:.95rem; }
.icon-accent{ background:var(--th-accent-soft); color:#D9542F; }
.icon-lilac{ background:var(--th-lilac); color:#5B4BC4; }
.icon-sand{ background:var(--th-sand); color:#C96A22; }

/* ------------------------------------------------------ service cards --- */
.service-card{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius);
  overflow:hidden; height:100%; display:flex; flex-direction:column;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.service-card:hover{ transform:translateY(-10px); box-shadow:var(--th-shadow-lg); border-color:var(--th-mint-3); }
.service-thumb{ position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--th-mint); }
.service-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.3,1); display:block; }
.service-card:hover .service-thumb img{ transform:scale(1.08); }
.service-thumb::after{
  content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,44,42,0) 45%,rgba(11,44,42,.45) 100%);
  opacity:0; transition:opacity .35s ease;
}
.service-card:hover .service-thumb::after{ opacity:1; }
.service-tag{
  position:absolute; left:14px; top:14px; z-index:2;
  background:rgba(255,255,255,.94); color:var(--th-primary-700);
  font-family:var(--th-font-head); font-weight:600; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.35rem .75rem; border-radius:999px; box-shadow:var(--th-shadow-sm);
}
.service-body{ padding:1.5rem 1.5rem 1.6rem; display:flex; flex-direction:column; flex:1 1 auto; }
.service-body h3{ font-size:1.14rem; margin-bottom:.6rem; }
.service-body p{ font-size:.94rem; margin-bottom:1.2rem; }
.service-body .service-link{ margin-top:auto; }
.service-card .btn{ width:fit-content; }

/* ----------------------------------------------------------- steps ------ */
.step-card{
  background:#fff; border:1px dashed var(--th-mint-3); border-radius:var(--th-radius);
  padding:1.7rem 1.5rem; height:100%; transition:border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.step-card:hover{ border-style:solid; border-color:var(--th-primary); box-shadow:var(--th-shadow); transform:translateY(-6px); }
.step-card .step-icon{ width:52px; height:52px; border-radius:15px; display:grid; place-items:center; background:var(--th-gradient); color:#fff; margin-bottom:1rem; }
.step-card h3{ font-size:1.05rem; margin-bottom:.45rem; }
.step-card p{ font-size:.93rem; margin:0; }

/* ------------------------------------------------------ testimonials ---- */
.testimonial-card{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius);
  padding:2rem 1.7rem 1.7rem; height:100%; position:relative; box-shadow:var(--th-shadow-sm);
  transition:transform .3s ease, box-shadow .3s ease;
}
.testimonial-card:hover{ transform:translateY(-8px); box-shadow:var(--th-shadow); }
.testimonial-card .quote-mark{
  position:absolute; right:1.4rem; top:1.1rem; color:var(--th-mint-3); font-family:var(--th-font-head);
  font-size:3.4rem; line-height:1; font-weight:700;
}
.stars{ color:#FFB020; font-size:.95rem; letter-spacing:.12em; margin-bottom:.7rem; }
.testimonial-card blockquote{ font-size:.98rem; color:var(--th-ink-2); margin:0 0 1.2rem; }
.t-person{ display:flex; align-items:center; gap:.8rem; }
.avatar-initials{
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto;
  font-family:var(--th-font-head); font-weight:600; color:#fff; background:var(--th-gradient); font-size:.95rem;
}
.avatar-initials.av-2{ background:linear-gradient(135deg,#FF9A76,#F2603C); }
.avatar-initials.av-3{ background:linear-gradient(135deg,#7E6BE0,#5B4BC4); }
.t-person .t-name{ font-family:var(--th-font-head); font-weight:600; color:var(--th-ink); font-size:.95rem; line-height:1.2; }
.t-person .t-role{ font-size:.8rem; color:var(--th-muted); }

/* -------------------------------------------------------- blog cards ---- */
.blog-card{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius); overflow:hidden;
  height:100%; display:flex; flex-direction:column; transition:transform .35s ease, box-shadow .35s ease;
}
.blog-card:hover{ transform:translateY(-10px); box-shadow:var(--th-shadow-lg); }
.blog-thumb{ position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--th-mint); }
.blog-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.3,1); }
.blog-card:hover .blog-thumb img{ transform:scale(1.07); }
.blog-cat{
  position:absolute; left:14px; top:14px; background:var(--th-gradient); color:#fff;
  font-family:var(--th-font-head); font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.07em;
  padding:.35rem .8rem; border-radius:999px;
}
.blog-body{ padding:1.5rem; display:flex; flex-direction:column; flex:1 1 auto; }
.blog-meta{ font-size:.8rem; color:var(--th-muted); display:flex; align-items:center; gap:.5rem; margin-bottom:.6rem; }
.blog-meta .sep{ width:5px; height:5px; border-radius:50%; background:var(--th-mint-3); }
.blog-body h3{ font-size:1.12rem; margin-bottom:.6rem; }
.blog-body h3 a{ color:var(--th-ink); }
.blog-body h3 a:hover{ color:var(--th-primary); }
.blog-body p{ font-size:.94rem; }
.read-more{
  margin-top:auto; font-family:var(--th-font-head); font-weight:600; font-size:.9rem; color:var(--th-primary-700);
  display:inline-flex; align-items:center; gap:.4rem;
}
.read-more svg{ transition:transform .3s ease; }
.read-more:hover svg{ transform:translateX(4px); }

/* --------------------------------------------------------------- FAQ ---- */
.faq-accordion .accordion-item{
  border:1px solid var(--th-line); border-radius:var(--th-radius-sm)!important; margin-bottom:.9rem;
  overflow:hidden; background:#fff; box-shadow:var(--th-shadow-sm);
}
.faq-accordion .accordion-button{
  font-family:var(--th-font-head); font-weight:600; color:var(--th-ink); font-size:1.02rem;
  padding:1.15rem 1.3rem; background:#fff; border-radius:var(--th-radius-sm)!important;
}
.faq-accordion .accordion-button:not(.collapsed){ background:var(--th-mint); color:var(--th-primary-700); box-shadow:none; }
.faq-accordion .accordion-button:focus{ box-shadow:none; border-color:var(--th-mint-3); }
.faq-accordion .accordion-button::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F9D8F' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  width:1.15rem; height:1.15rem; background-size:1.15rem;
}
.faq-accordion .accordion-button:not(.collapsed)::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F9D8F' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
}
.faq-accordion .accordion-body{ color:var(--th-body); font-size:.96rem; padding-top:.35rem; }
.faq-side{
  background:var(--th-gradient); color:#fff; border-radius:var(--th-radius); padding:2rem 1.7rem;
}
.faq-side h3{ color:#fff; font-size:1.25rem; }
.faq-side p{ color:rgba(255,255,255,.85); font-size:.95rem; }
.faq-side .btn{ margin-top:.6rem; }

/* ----------------------------------------------------------- CTA band --- */
.cta-band{ position:relative; overflow:hidden; border-radius:var(--th-radius-lg); }
.cta-band .cta-bg{ position:absolute; inset:0; }
.cta-band .cta-bg img{ width:100%; height:100%; object-fit:cover; }
.cta-band .cta-overlay{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(7,70,64,.94) 0%, rgba(9,94,86,.86) 45%, rgba(15,157,143,.62) 100%);
}
.cta-band .cta-inner{ position:relative; z-index:2; padding:clamp(2.4rem,5vw,4rem); color:#fff; }
.cta-band h2{ color:#fff; font-size:clamp(1.7rem,3.3vw,2.5rem); }
.cta-band p{ color:rgba(255,255,255,.88); }
.cta-actions{ display:flex; flex-wrap:wrap; gap:.8rem; }

/* ------------------------------------------------------- page header ---- */
.page-hero{
  position:relative; overflow:hidden; background:var(--th-gradient); color:#fff;
  padding:clamp(3rem,6vw,4.6rem) 0 clamp(3.4rem,6vw,5rem);
}
.page-hero::after{
  content:""; position:absolute; right:-120px; top:-140px; width:420px; height:420px; border-radius:50%;
  background:radial-gradient(circle at 40% 40%, rgba(255,255,255,.20), transparent 65%);
}
.page-hero h1{ color:#fff; font-size:clamp(2rem,4.2vw,3rem); position:relative; z-index:2; }
.page-hero p{ color:rgba(255,255,255,.88); position:relative; z-index:2; max-width:66ch; margin-bottom:0; }
.page-hero .container{ position:relative; z-index:2; }
.crumbs{ font-size:.88rem; color:rgba(255,255,255,.78); margin-bottom:.9rem; display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.crumbs a{ color:#fff; }
.crumbs a:hover{ color:#CFF3EE; }
.crumbs .sep{ opacity:.6; }
.crumbs .active-page{ color:rgba(255,255,255,.85); }
.page-hero .title-rule{ background:linear-gradient(90deg,#fff,rgba(255,255,255,.25)); margin-left:0; margin-bottom:0; }

/* ------------------------------------------------------- content card --- */
.content-card{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius);
  padding:clamp(1.5rem,3vw,2.6rem); box-shadow:var(--th-shadow-sm);
}
.legal-body h2{ font-size:1.35rem; margin:2rem 0 .7rem; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body h3{ font-size:1.08rem; margin:1.4rem 0 .5rem; }
.legal-body p, .legal-body li{ font-size:.97rem; }
.legal-body ul{ padding-left:1.1rem; }
.legal-body li{ margin-bottom:.45rem; }
.legal-body .note{
  background:var(--th-mint); border-left:4px solid var(--th-primary); border-radius:12px;
  padding:1rem 1.15rem; font-size:.94rem; color:var(--th-ink-2);
}
.legal-nav{ position:sticky; top:110px; }
.legal-nav a{
  display:block; padding:.5rem .8rem; border-radius:10px; font-size:.92rem; color:var(--th-ink-2);
  border-left:3px solid transparent;
}
.legal-nav a:hover{ background:var(--th-mint); color:var(--th-primary-700); border-left-color:var(--th-primary); }

/* ---------------------------------------------------------- values ------ */
.value-card{
  background:var(--th-mint-2); border:1px solid var(--th-mint-3); border-radius:var(--th-radius);
  padding:1.7rem 1.5rem; height:100%; transition:background .3s ease, transform .3s ease;
}
.value-card:hover{ background:#fff; transform:translateY(-6px); box-shadow:var(--th-shadow); }
.value-card h3{ font-size:1.07rem; margin-bottom:.5rem; }
.value-card p{ font-size:.94rem; margin:0; }
.value-card .icon-circle{ margin-bottom:.9rem; }

/* --------------------------------------------------------- contact ------ */
.contact-card{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius);
  padding:1.7rem 1.4rem; height:100%; text-align:center; transition:transform .3s ease, box-shadow .3s ease;
}
.contact-card:hover{ transform:translateY(-7px); box-shadow:var(--th-shadow); }
.contact-card .icon-circle{ margin:0 auto .9rem; }
.contact-card h3{ font-size:1.05rem; margin-bottom:.4rem; }
.contact-card p, .contact-card a{ font-size:.94rem; margin:0; }
.contact-card .cc-sub{ font-size:.82rem; color:var(--th-muted); }
.form-label{ font-family:var(--th-font-head); font-weight:500; font-size:.9rem; color:var(--th-ink-2); }
.form-control,.form-select{
  border-radius:14px; border:1px solid var(--th-line); padding:.78rem 1rem; font-size:.95rem;
  background:#fff; color:var(--th-ink-2);
}
.form-control:focus,.form-select:focus{ border-color:var(--th-primary); box-shadow:0 0 0 .22rem rgba(15,157,143,.14); }
.form-control::placeholder{ color:#A9BCBA; }
.form-check-input:checked{ background-color:var(--th-primary); border-color:var(--th-primary); }
.form-check-input:focus{ border-color:var(--th-primary); box-shadow:0 0 0 .2rem rgba(15,157,143,.16); }
.map-panel{
  position:relative; border-radius:var(--th-radius); overflow:hidden; border:1px solid var(--th-line);
  background:linear-gradient(135deg,#EAF6F3,#DCEFEA); min-height:360px; box-shadow:var(--th-shadow-sm);
}
.map-panel .map-art{ position:absolute; inset:0; }
.map-pin{
  position:absolute; left:50%; top:46%; transform:translate(-50%,-100%);
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
}
.map-pin .pin-dot{
  width:54px; height:54px; border-radius:50% 50% 50% 4px; transform:rotate(-45deg);
  background:var(--th-gradient); box-shadow:0 14px 26px rgba(15,157,143,.35); display:grid; place-items:center;
}
.map-pin .pin-dot span{ transform:rotate(45deg); display:block; width:16px; height:16px; border-radius:50%; background:#fff; }
.map-pin .pin-label{
  background:#fff; border:1px solid var(--th-line); border-radius:999px; padding:.4rem .95rem;
  font-family:var(--th-font-head); font-weight:600; font-size:.85rem; color:var(--th-ink); box-shadow:var(--th-shadow-sm);
  white-space:nowrap;
}
.map-actions{ position:absolute; left:16px; bottom:16px; right:16px; display:flex; gap:.6rem; flex-wrap:wrap; }

/* ------------------------------------------------------ subscribe ------- */
.subscribe-panel{
  background:#fff; border:1px solid var(--th-line); border-radius:var(--th-radius-lg);
  padding:clamp(1.6rem,4vw,3rem); box-shadow:var(--th-shadow);
}
.perk-card{
  display:flex; gap:.9rem; align-items:flex-start; background:var(--th-mint-2);
  border:1px solid var(--th-mint-3); border-radius:var(--th-radius-sm); padding:1rem 1.1rem; height:100%;
}
.perk-card .pc-icon{ width:40px; height:40px; border-radius:12px; background:#fff; color:var(--th-primary-700); display:grid; place-items:center; flex:0 0 auto; box-shadow:var(--th-shadow-sm); }
.perk-card h4{ font-size:.98rem; margin:0 0 .15rem; }
.perk-card p{ font-size:.86rem; margin:0; color:var(--th-muted); }
.alert-th{ border-radius:16px; border:1px solid var(--th-mint-3); background:var(--th-mint); color:var(--th-primary-800); font-size:.94rem; }
.alert-th-danger{ border-radius:16px; border:1px solid #F7CFC4; background:#FFF2EE; color:#B8452A; font-size:.94rem; }
.newsletter-strip{
  background:var(--th-gradient); border-radius:var(--th-radius); padding:1.6rem 1.8rem; color:#fff;
  display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap;
}
.newsletter-strip h3{ color:#fff; font-size:1.2rem; margin:0; }
.newsletter-strip p{ color:rgba(255,255,255,.85); margin:.25rem 0 0; font-size:.92rem; }

/* ------------------------------------------------------------ footer ---- */
.footer{ background:var(--th-ink); color:#9DBBB8; padding:clamp(3rem,6vw,4.6rem) 0 0; position:relative; overflow:hidden; }
.footer::before{
  content:""; position:absolute; left:-120px; bottom:-160px; width:420px; height:420px; border-radius:50%;
  background:radial-gradient(circle at 40% 40%, rgba(15,157,143,.28), transparent 65%);
}
.footer h4{ color:#fff; font-size:1.02rem; margin-bottom:1.1rem; }
.footer p{ font-size:.93rem; }
.footer a{ color:#9DBBB8; }
.footer a:hover{ color:#fff; }
.footer .f-links{ list-style:none; padding:0; margin:0; }
.footer .f-links li{ margin-bottom:.55rem; }
.footer .f-links a{ font-size:.93rem; display:inline-flex; align-items:center; gap:.45rem; }
.footer .f-links a::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--th-primary); opacity:.7; }
.footer .f-links a:hover::before{ background:var(--th-accent); }
.social-row{ display:flex; gap:.55rem; margin-top:1.2rem; }
.social-btn{
  width:40px; height:40px; border-radius:12px; display:grid; place-items:center;
  background:rgba(255,255,255,.07); color:#CDE7E4!important; border:1px solid rgba(255,255,255,.08);
  transition:background .3s ease, transform .3s ease;
}
.social-btn:hover{ background:var(--th-primary); color:#fff!important; transform:translateY(-3px); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08); margin-top:2.6rem; padding:1.3rem 0;
  font-size:.86rem; display:flex; gap:.8rem; align-items:center; justify-content:space-between; flex-wrap:wrap;
}
.footer-bottom a{ color:#CDE7E4; }
.footer .f-contact{ list-style:none; padding:0; margin:0; }
.footer .f-contact li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.93rem; margin-bottom:.7rem; }
.footer .f-contact svg{ color:var(--th-primary); flex:0 0 auto; margin-top:.25rem; }

/* ------------------------------------------------------ back to top ---- */
.back-to-top{
  position:fixed; right:20px; bottom:22px; width:48px; height:48px; border-radius:14px; border:0;
  background:var(--th-gradient); color:#fff; display:grid; place-items:center; z-index:1050;
  box-shadow:0 14px 30px rgba(15,157,143,.34); opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s ease;
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ transform:translateY(-4px); }

/* --------------------------------------------------------- reveal ------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .float-a,.float-b{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ------------------------------------------------------ responsive ----- */
@media (max-width:1199.98px){
  .float-a{ left:6px; }
  .float-b{ right:6px; }
}
@media (max-width:991.98px){
  .th-navbar .navbar-collapse{
    background:#fff; border:1px solid var(--th-line); border-radius:18px; box-shadow:var(--th-shadow);
    padding:1rem; margin-top:.8rem;
  }
  .th-navbar .nav-link::after{ display:none; }
  .nav-cta{ margin:.6rem 0 0; display:block; }
  .nav-cta .btn{ width:100%; }
  .hero-art{ margin-top:2.6rem; }
  .hero-art .art-main{ transform:none; }
  .media-frame::after,.media-dots{ display:none; }
  .badge-card{ position:static; margin-top:1rem; max-width:none; }
  .legal-nav{ position:static; margin-bottom:1.6rem; }
  .section-head{ text-align:center!important; }
  .section-head .title-rule{ margin-left:auto; }
  .section-head .section-lead{ margin-left:auto; margin-right:auto; }
  .topbar .tb-item + .tb-item::before{ display:none; }
  .topbar .tb-item{ margin-right:1rem; }
}
@media (max-width:767.98px){
  body{ font-size:.97rem; }
  .float-card{ display:none; }
  .footer-bottom{ justify-content:center; text-align:center; }
  .page-hero{ text-align:center; }
  .page-hero .crumbs{ justify-content:center; }
  .page-hero .title-rule{ margin-left:auto; }
  .hero-actions .btn{ flex:1 1 auto; }
  .cta-actions .btn{ flex:1 1 auto; justify-content:center; }
}
@media print{
  .topbar,.th-navbar,.back-to-top,.footer,.cta-band{ display:none!important; }
}

/* ------------------------------------------------- anchor scroll offset -- */
section[id], [id^="service-"], h2[id], h3[id]{ scroll-margin-top:104px; }
@media (max-width:991.98px){ section[id], [id^="service-"], h2[id], h3[id]{ scroll-margin-top:88px; } }

/* --------------------------------------------------- small utilities ---- */
.w-100.btn{ display:block; }
.content-card .content-card{ margin-top:1.5rem; }
.hero-chip svg, .tb-item svg, .f-contact svg{ flex:0 0 auto; }
.list-unstyled a{ color:var(--th-ink-2); }
.list-unstyled a:hover{ color:var(--th-primary); }
