/* =========================================================
   LifeCare De-Addiction & Rehabilitation Centre
   Design system: "The Path" — a winding recovery journey
   Palette: deep trust blue + growth green, warm serif display
   ========================================================= */

:root{
  /* ---- Color tokens ---- */
  --navy:        #0A2E45;   /* deep headers / footer */
  --navy-2:      #0E3B57;
  --blue:        #1571B8;   /* primary action */
  --blue-dark:   #0F5A94;
  --blue-tint:   #EAF3FA;   /* soft section bg */
  --green:       #1E9E6B;   /* recovery / growth accent */
  --green-dark:  #167E56;
  --green-tint:  #EAF8F1;   /* soft section bg */
  --white:       #FFFFFF;
  --ink:         #16262F;   /* body text */
  --mist:        #5F7482;   /* secondary text */
  --line:        #E2EAEF;   /* hairline borders */
  --sun:         #F5B942;   /* hope accent, sparingly */
  --shadow-sm:   0 2px 10px rgba(10,46,69,.06);
  --shadow-md:   0 12px 32px rgba(10,46,69,.10);
  --shadow-lg:   0 24px 60px rgba(10,46,69,.16);
  --radius:      18px;
  --radius-sm:   12px;

  /* ---- Type tokens ---- */
  --font-display: "Fraunces", Georgia, serif;
  --font-body:    "Inter", -apple-system, Segoe UI, sans-serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--navy);
  letter-spacing:-.01em;
}
h1{ font-weight:700; }
p{ color:var(--mist); }
a{ text-decoration:none; }
::selection{ background:var(--green-tint); color:var(--navy); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ---- Focus visibility ---- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:3px solid var(--sun);
  outline-offset:2px;
}

.container-xl{ max-width:1280px; }

/* ============ Utility ============ */
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-body); font-weight:600; font-size:.78rem;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--green-dark);
}
.eyebrow::before{
  content:""; width:22px; height:2px; background:var(--sun); display:inline-block; border-radius:2px;
}
.section-pad{ padding:5.5rem 0; }
@media (max-width:767.98px){ .section-pad{ padding:3.25rem 0; } }
.bg-blue-tint{ background:var(--blue-tint); }
.bg-green-tint{ background:var(--green-tint); }
.bg-navy{ background:var(--navy); color:#CFE3EF; }
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4{ color:#fff; }
.text-green{ color:var(--green-dark) !important; }
.text-blue{ color:var(--blue-dark) !important; }
.lead-muted{ color:var(--mist); font-size:1.08rem; }

.btn{ border-radius:50px; font-weight:600; padding:.72rem 1.5rem; transition:.25s ease; }
.btn-primary{ background:var(--blue); border-color:var(--blue); }
.btn-primary:hover{ background:var(--blue-dark); border-color:var(--blue-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-success{ background:var(--green); border-color:var(--green); }
.btn-success:hover{ background:var(--green-dark); border-color:var(--green-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline-light{ border-width:2px; }
.btn-outline-navy{ border:2px solid var(--navy); color:var(--navy); }
.btn-outline-navy:hover{ background:var(--navy); color:#fff; }
.btn-sun{ background:var(--sun); border-color:var(--sun); color:var(--navy); }
.btn-sun:hover{ background:#e0a72e; color:var(--navy); transform:translateY(-2px); }

.card-soft{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm); transition:.3s ease;
}
.card-soft:hover{ box-shadow:var(--shadow-md); transform:translateY(-4px); }

.glass{
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-radius:var(--radius);
}

/* ============ Navbar ============ */
.navbar{
  padding:.85rem 0; transition:.3s ease; background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.navbar.scrolled{ box-shadow:var(--shadow-sm); padding:.55rem 0; }
.navbar-brand{ font-family:var(--font-display); font-weight:700; font-size:1.35rem; color:var(--navy) !important; display:flex; align-items:center; gap:.6rem; }
.navbar-brand .brand-mark{ width:38px; height:38px; }
.navbar-brand .brand-sub{ display:block; font-family:var(--font-body); font-weight:500; font-size:.62rem; letter-spacing:.09em; color:var(--green-dark); text-transform:uppercase; }
.nav-link{ font-weight:600; color:var(--navy) !important; padding:.5rem 1rem !important; position:relative; }
.nav-link.active, .nav-link:hover{ color:var(--blue-dark) !important; }
.nav-link.active::after{
  content:""; position:absolute; left:1rem; right:1rem; bottom:.15rem; height:2px; background:var(--green); border-radius:2px;
}
.navbar .btn{ padding:.55rem 1.35rem; }
.topbar{
  background:var(--navy); color:#CFE3EF; font-size:.82rem; padding:.45rem 0;
}
.topbar a{ color:#CFE3EF; font-weight:600; }
.topbar a:hover{ color:var(--sun); }

/* ============ Hero + The Path signature ============ */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 42%, var(--blue-dark) 100%);
  color:#fff; padding:6.5rem 0 5rem;
}
.hero .badge-trust{
  display:inline-flex; align-items:center; gap:.5rem; padding:.5rem 1rem; border-radius:50px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); font-size:.85rem; font-weight:600;
}
.hero h1{ color:#fff; font-size:clamp(2.1rem, 4.2vw, 3.4rem); line-height:1.12; }
.hero .accent-italic{ font-style:italic; color:var(--sun); font-weight:600; }
.hero p.lead{ color:#C9DCE8; }
.hero-contact-pill{
  display:flex; align-items:center; gap:.65rem; padding:.65rem 1rem; border-radius:14px;
}
.hero-contact-pill .ic{
  width:38px; height:38px; border-radius:50%; background:var(--green); display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.hero-contact-pill small{ color:#AFC7D6; display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.hero-contact-pill strong{ color:#fff; font-size:.95rem; }

/* The Path SVG */
.path-wrap{ position:relative; }
.path-wrap svg{ width:100%; height:auto; }
.path-line{
  fill:none; stroke:url(#pathGradient); stroke-width:3; stroke-linecap:round;
  stroke-dasharray:6 10; animation:dash 40s linear infinite;
}
@keyframes dash{ to{ stroke-dashoffset:-1000; } }
.path-dot{ filter:drop-shadow(0 4px 10px rgba(0,0,0,.25)); }
.path-label{ font-family:var(--font-body); font-weight:700; font-size:11px; fill:#0A2E45; }
.path-sunrise{ animation:pulseGlow 3.5s ease-in-out infinite; transform-origin:center; }
@keyframes pulseGlow{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }

/* Horizontal journey track (Programs / Treatment process) */
.journey-track{ position:relative; }
.journey-track::before{
  content:""; position:absolute; top:26px; left:4%; right:4%; height:3px;
  background:repeating-linear-gradient(90deg, var(--green) 0 10px, transparent 10px 18px);
}
.journey-step{ position:relative; text-align:center; }
.journey-step .num{
  width:54px; height:54px; border-radius:50%; background:#fff; border:3px solid var(--green);
  display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; font-family:var(--font-display);
  font-weight:700; color:var(--green-dark); font-size:1.15rem; position:relative; z-index:2; box-shadow:var(--shadow-sm);
}

/* ============ Counters ============ */
.counter-box{
  text-align:center; padding:1.75rem 1rem;
}
.counter-num{
  font-family:var(--font-display); font-weight:700; font-size:clamp(1.9rem,3.2vw,2.6rem); color:var(--navy);
  display:flex; align-items:center; justify-content:center; gap:.15rem;
}
.counter-num .suffix{ color:var(--green); }
.counter-label{ color:var(--mist); font-weight:600; font-size:.92rem; letter-spacing:.02em; }

/* ============ Treatment / Program cards ============ */
.icon-tile{
  width:58px; height:58px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:var(--blue-tint); color:var(--blue-dark); flex-shrink:0;
}
.icon-tile.green{ background:var(--green-tint); color:var(--green-dark); }
.treatment-card .card-body{ padding:1.6rem; }
.treatment-card .tag{
  display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--green-dark); background:var(--green-tint); padding:.25rem .65rem; border-radius:50px; margin-bottom:.6rem;
}
.accordion-detail dt{ color:var(--navy); font-weight:700; font-size:.85rem; margin-top:.75rem; }
.accordion-detail dd{ color:var(--mist); font-size:.9rem; }

/* ============ Why choose us ============ */
.feature-item{ display:flex; gap:1rem; align-items:flex-start; }

/* ============ Testimonials ============ */
.testimonial-card{
  background:#fff; border-radius:var(--radius); padding:2rem; box-shadow:var(--shadow-sm); height:100%;
  border:1px solid var(--line);
}
.testimonial-card .stars{ color:var(--sun); letter-spacing:2px; }
.testimonial-avatar{
  width:46px; height:46px; border-radius:50%; background:var(--blue-tint); color:var(--blue-dark);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-family:var(--font-display);
}

/* ============ Gallery / Lightbox ============ */
.gallery-item{ position:relative; overflow:hidden; border-radius:var(--radius-sm); cursor:pointer; }
.gallery-item img{ transition:.4s ease; width:100%; height:100%; object-fit:cover; }
.gallery-item:hover img{ transform:scale(1.08); }
.gallery-item::after{
  content:"\002B"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:2rem; color:#fff; background:rgba(10,46,69,.35); opacity:0; transition:.3s ease;
}
.gallery-item:hover::after{ opacity:1; }
#lightboxOverlay{
  position:fixed; inset:0; background:rgba(6,20,30,.92); z-index:2000; display:none;
  align-items:center; justify-content:center; padding:2rem;
}
#lightboxOverlay.active{ display:flex; }
#lightboxOverlay img{ max-width:90vw; max-height:82vh; border-radius:12px; box-shadow:var(--shadow-lg); }
#lightboxOverlay .lb-close{
  position:absolute; top:1.25rem; right:1.5rem; color:#fff; font-size:2rem; background:none; border:none; cursor:pointer;
}
#lightboxOverlay .lb-nav{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:none; color:#fff;
  width:48px; height:48px; border-radius:50%; font-size:1.4rem; cursor:pointer;
}
#lightboxOverlay .lb-prev{ left:1.5rem; } #lightboxOverlay .lb-next{ right:1.5rem; }

/* ============ Blog ============ */
.blog-card img{ border-radius:var(--radius-sm) var(--radius-sm) 0 0; height:200px; object-fit:cover; width:100%; }
.blog-meta{ font-size:.8rem; color:var(--mist); font-weight:600; }
.blog-meta .dot{ margin:0 .4rem; }

/* ============ FAQ ============ */
.accordion-button{ font-weight:700; color:var(--navy); }
.accordion-button:not(.collapsed){ background:var(--green-tint); color:var(--green-dark); box-shadow:none; }
.accordion-button:focus{ box-shadow:0 0 0 3px rgba(30,158,107,.25); }
.accordion-item{ border-radius:var(--radius-sm) !important; overflow:hidden; margin-bottom:.85rem; border:1px solid var(--line) !important; }

/* ============ Contact ============ */
.contact-card{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-md); }
.form-control, .form-select{ border-radius:12px; border:1.5px solid var(--line); padding:.7rem 1rem; }
.form-control:focus, .form-select:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(21,113,184,.14); }
.form-label{ font-weight:600; color:var(--navy); font-size:.88rem; }
.map-frame{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--line); }

/* ============ Footer ============ */
footer.site-footer{ background:var(--navy); color:#B9CEDA; padding-top:4.5rem; }
footer.site-footer h5{ color:#fff; font-family:var(--font-display); margin-bottom:1.1rem; }
footer.site-footer a{ color:#B9CEDA; }
footer.site-footer a:hover{ color:var(--sun); }
footer.site-footer .footer-bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:3rem; padding:1.25rem 0; font-size:.85rem; }
.social-ic{
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center;
  justify-content:center; color:#fff; transition:.25s ease;
}
.social-ic:hover{ background:var(--green); transform:translateY(-3px); }
.newsletter-form .form-control{ border-radius:12px 0 0 12px; border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; }
.newsletter-form .form-control::placeholder{ color:#9BB4C2; }
.newsletter-form .btn{ border-radius:0 12px 12px 0; }

/* ============ Floating buttons ============ */
.floating-stack{
  position:fixed; right:22px; bottom:24px; z-index:1500; display:flex; flex-direction:column; gap:.75rem; align-items:flex-end;
}
.fab{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:var(--shadow-md); border:none; transition:.25s ease; position:relative;
}
.fab:hover{ transform:translateY(-3px) scale(1.04); }
.fab-whatsapp{ background:#25D366; }
.fab-call{ background:var(--blue); animation:ring 2.4s ease-in-out infinite; }
.fab-chat{ background:var(--green); }
.fab-top{ background:var(--navy); width:46px; height:46px; opacity:0; pointer-events:none; transform:translateY(10px); }
.fab-top.show{ opacity:1; pointer-events:auto; transform:translateY(0); }
@keyframes ring{ 0%,100%{ box-shadow:var(--shadow-md);} 50%{ box-shadow:0 0 0 10px rgba(21,113,184,.18), var(--shadow-md);} }
.fab-badge{
  position:absolute; top:-4px; right:-4px; background:var(--sun); color:var(--navy); font-size:.68rem; font-weight:800;
  width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:2px solid #fff;
}

/* ============ Chat widget ============ */
.chat-window{
  position:fixed; right:22px; bottom:94px; width:340px; max-width:88vw; z-index:1600;
  background:#fff; border-radius:18px; box-shadow:var(--shadow-lg); overflow:hidden; display:none;
  flex-direction:column; border:1px solid var(--line);
}
.chat-window.open{ display:flex; }
.chat-window.minimized .chat-body, .chat-window.minimized .chat-input-row{ display:none; }
.chat-header{ background:var(--navy); color:#fff; padding:.85rem 1rem; display:flex; align-items:center; gap:.65rem; }
.chat-header .status-dot{ width:9px; height:9px; border-radius:50%; background:#3DDC84; display:inline-block; }
.chat-header .chat-title{ font-weight:700; font-size:.92rem; margin:0; }
.chat-header .chat-sub{ font-size:.7rem; color:#AFC7D6; }
.chat-header .chat-controls{ margin-left:auto; display:flex; gap:.4rem; }
.chat-header button{ background:none; border:none; color:#fff; opacity:.85; }
.chat-header button:hover{ opacity:1; }
.chat-body{ height:320px; overflow-y:auto; padding:1rem; background:var(--blue-tint); }
.chat-msg{ max-width:80%; padding:.55rem .8rem; border-radius:14px; margin-bottom:.6rem; font-size:.87rem; position:relative; }
.chat-msg.bot{ background:#fff; border:1px solid var(--line); border-bottom-left-radius:4px; }
.chat-msg.user{ background:var(--blue); color:#fff; margin-left:auto; border-bottom-right-radius:4px; }
.chat-time{ font-size:.65rem; color:var(--mist); margin-top:.2rem; display:block; }
.chat-msg.user .chat-time{ color:#DCEBF5; text-align:right; }
.chat-typing{ display:flex; gap:4px; padding:.5rem .8rem; }
.chat-typing span{ width:6px; height:6px; border-radius:50%; background:var(--mist); animation:typing 1.2s infinite ease-in-out; }
.chat-typing span:nth-child(2){ animation-delay:.2s; } .chat-typing span:nth-child(3){ animation-delay:.4s; }
@keyframes typing{ 0%,60%,100%{ transform:translateY(0); opacity:.4;} 30%{ transform:translateY(-4px); opacity:1;} }
.chat-input-row{ display:flex; gap:.5rem; padding:.75rem; border-top:1px solid var(--line); }
.chat-input-row input{ flex:1; border:1.5px solid var(--line); border-radius:50px; padding:.5rem 1rem; font-size:.87rem; }
.chat-input-row button{ background:var(--green); border:none; color:#fff; width:38px; height:38px; border-radius:50%; flex-shrink:0; }

/* ============ Page hero (inner pages) ============ */
.page-hero{
  background:linear-gradient(160deg, var(--navy) 0%, var(--blue-dark) 100%); color:#fff; padding:3.5rem 0 3rem;
}
.page-hero h1{ color:#fff; }
.breadcrumb-custom a{ color:#AFC7D6; }
.breadcrumb-custom .current{ color:var(--sun); font-weight:600; }

/* ============ Misc content pages ============ */
.legal-content h2{ margin-top:2.2rem; font-size:1.35rem; }
.legal-content h3{ margin-top:1.4rem; font-size:1.1rem; color:var(--blue-dark); }
.legal-content p, .legal-content li{ color:var(--mist); }
.toc-card{ position:sticky; top:100px; }
