/* Viva Healthfare 2025 Theme */
:root{
  --vhf-teal:#1ABC9C; /* Primary */
  --vhf-blue:#3498DB; /* Secondary */
  --vhf-green:#2ECC71; /* Accent */
  --vhf-charcoal:#2C3E50; /* Typography */
  --vhf-light:#F8F9FA; /* Background light */
  --vhf-white:#FFFFFF;
  --vhf-muted:#6c757d;
  --shadow-lg: 0 20px 40px rgba(0,0,0,.08);
  --shadow-md: 0 10px 20px rgba(0,0,0,.06);
  --radius-lg: 18px;
  --radius-md: 12px;
}

html{scroll-behavior:smooth}
body{
  color:var(--vhf-charcoal);
  background:var(--vhf-white);
  font-feature-settings:"liga" on, "kern" on;
}

/* Navbar */
.navbar{ transition: all .3s ease }
.navbar-brand { font-weight:800; letter-spacing:.2px }
.navbar.vhf-shrink{ box-shadow: var(--shadow-md); background: var(--vhf-white)!important }
.nav-link{ font-weight:600 }
.nav-link:hover, .dropdown-item:hover{ color: var(--vhf-teal)!important }

/* Hero */
.hero{
  background: linear-gradient(180deg, rgba(26,188,156,.12), rgba(52,152,219,.08)), var(--vhf-light);
  position:relative;
  overflow:hidden;
}
.hero .badge{ background:rgba(26,188,156,.15); color:var(--vhf-teal); font-weight:700 }
.hero-visual{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg) }
.hero .floating{ position:absolute; inset:auto; width:140px; height:140px; border-radius:50%; filter:blur(0); opacity:.12 }
.hero .f1{ background:var(--vhf-teal); top:8%; right:8% }
.hero .f2{ background:var(--vhf-blue); bottom:12%; left:10% }

/* Buttons */
.btn-vhf{ 
  background: var(--vhf-teal); border:none; color:#fff; font-weight:700; padding:.75rem 1.25rem; border-radius:999px; 
  box-shadow: 0 10px 25px rgba(26,188,156,.25);
}
.btn-vhf:hover{ background:#16a085; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(26,188,156,.32) }
.btn-outline-vhf{ border:2px solid var(--vhf-blue); color:var(--vhf-blue); font-weight:700; border-radius:999px }
.btn-outline-vhf:hover{ background:var(--vhf-blue); color:#fff }

/* Sections */
.section{ padding: 4rem 0 }
.section-title{ font-weight:800; letter-spacing:.3px }
.section-subtitle{ color:var(--vhf-muted) }

/* Cards */
.card.vhf{ border:none; border-radius: var(--radius-md); box-shadow: var(--shadow-md) }
.card.vhf .icon{ width:56px; height:56px; display:inline-grid; place-items:center; border-radius:16px; background:rgba(52,152,219,.12); color:var(--vhf-blue); font-size:1.4rem }
.card.vhf:hover{ transform: translateY(-4px); box-shadow: var(--shadow-lg) }

/* Why choose us */
.why-card{ border:none; border-left:6px solid var(--vhf-teal); border-radius: var(--radius-md); box-shadow: var(--shadow-md) }

/* Testimonials */
.testimonial{ background:#fff; border-radius: var(--radius-md); box-shadow: var(--shadow-md) }
.testimonial img{ width:56px; height:56px; border-radius:50%; object-fit:cover }

/* Partners */
.partners img, .partners svg{ max-height:42px; opacity:.85; filter: grayscale(100%); transition: all .25s ease }
.partners img:hover, .partners svg:hover{ filter:none; opacity:1 }

/* Footer */
.footer{ background: var(--vhf-charcoal); color:#dfe6e9 }
.footer a{ color:#ecf0f1; text-decoration:none }
.footer a:hover{ color:#fff; text-decoration:underline }
.footer .brand{ font-weight:800 }

/* Forms */
.form-control:focus{ border-color: var(--vhf-teal); box-shadow: 0 0 0 .2rem rgba(26,188,156,.15) }
.input-group .btn{ border-top-left-radius:0; border-bottom-left-radius:0 }

/* Utilities */
.text-gradient{
  background: linear-gradient(90deg, var(--vhf-teal), var(--vhf-blue));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.badge-soft{ background:rgba(46,204,113,.12); color:var(--vhf-green); font-weight:700 }

/* Accessibility helpers */
.skip-link{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden }
.skip-link:focus{ position:static; width:auto; height:auto; padding:.5rem 1rem; background:var(--vhf-blue); color:#fff; z-index:1051 }

/* Responsive */
@media (max-width: 991.98px){
  .hero-visual{ margin-top:1.25rem }
}

/* Service pages enhanced */
.service-page .service-header{ 
  background: linear-gradient(135deg, rgba(26,188,156,.08), rgba(52,152,219,.06));
  border: 1px solid rgba(44,62,80,.06);
  border-radius: var(--radius-lg);
  padding: 2rem 1.5rem;
  box-shadow: var(--shadow-md);
  margin-bottom: 2rem;
}
.service-page .service-breadcrumb{ color: var(--vhf-muted); font-size: .9rem }
.service-page .service-breadcrumb a{ color: inherit; text-decoration: none }
.service-page .service-breadcrumb a:hover{ color: var(--vhf-teal); text-decoration: underline }
.service-page h1{ font-weight:800; letter-spacing:.2px }

/* Check-list styling */
.service-page main ul.list-unstyled li{ position:relative; padding-left:1.6rem }
.service-page main ul.list-unstyled li::before{
  content: "\2713"; /* checkmark */
  position:absolute; left:0; top:.1rem; width:1rem; height:1rem; line-height:1rem;
  color: var(--vhf-green); font-weight:800;
}

/* Steps styling */
.service-page .steps-list .badge{ width: 34px; height: 34px; display:inline-flex; align-items:center; justify-content:center; font-weight:800 }
.service-page .steps-list li{ position:relative; }
.service-page .steps-list li:not(:last-child){ padding-bottom:.5rem; margin-bottom:.5rem }
.service-page .steps-list li:not(:last-child)::after{ content:""; position:absolute; left:16px; top:36px; bottom:-8px; width:2px; background: rgba(52,152,219,.3) }

/* Section cards */
.service-page .service-section{ border:1px solid rgba(44,62,80,.06); border-radius: var(--radius-md); box-shadow: var(--shadow-md); background:#fff }

/* On this page (ToC) */
.service-toc{ position: fixed; right: 24px; top: 120px; width: 240px; z-index: 1030; background:#fff; border:1px solid rgba(44,62,80,.08); box-shadow: var(--shadow-md); border-radius: 12px; padding: 1rem }
.service-toc h6{ font-weight:800; font-size:.95rem; margin-bottom:.5rem }
.service-toc a{ display:block; padding:.35rem 0; color:var(--vhf-charcoal); text-decoration:none; font-size:.925rem }
.service-toc a:hover{ color: var(--vhf-teal); text-decoration: underline }
.service-toc .active{ color: var(--vhf-teal); font-weight:700 }
@media (max-width: 1199.98px){ .service-toc{ display:none } }

/* Enhanced Footer */
.footer{ background: #0f172a; color:#e2e8f0 }
.footer .footer-grid{ display:grid; grid-template-columns: 1fr; gap: 1.25rem }
.footer .brand .logo{ width:40px; height:40px }
.footer .brand p{ color:#cbd5e1; max-width: 44ch }
.footer h6{ color:#e2e8f0; font-weight:800; letter-spacing:.3px; margin-bottom:.75rem }
.footer .list-unstyled li{ margin-bottom:.25rem }
.footer a{ color:#cbd5e1 }
.footer a:hover{ color:#fff }
.footer .social a{ width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; background: rgba(255,255,255,.06); border-radius: 10px; margin-right:.5rem }
.footer .social a:hover{ background: rgba(255,255,255,.12) }
.footer .newsletter .form-control{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color:#fff }
.footer .newsletter .form-control::placeholder{ color:#94a3b8 }
.footer .newsletter .btn{ font-weight:700 }
.footer .bottom{ border-top:1px solid rgba(148,163,184,.2); color:#94a3b8 }
@media (min-width: 768px){ .footer .footer-grid{ grid-template-columns: 1.2fr .8fr .9fr 1fr } }