/* =============================================================
   Swaasthya Hospitals — Main Stylesheet
   Bootstrap 5.3 + Custom Design
   ============================================================= */

:root {
  --sw-blue:        #0D6EFD;  /* Medical Blue primary */
  --sw-blue-dark:   #084CAF;
  --sw-blue-light:  #E8F0FE;
  --sw-green:       #198754;  /* Soft Green accent */
  --sw-green-light: #D1E7DD;
  --sw-red:         #DC3545;
  --sw-white:       #FFFFFF;
  --sw-gray-50:     #F8F9FA;
  --sw-gray-100:    #F1F3F5;
  --sw-gray-200:    #E9ECEF;
  --sw-gray-400:    #CED4DA;
  --sw-gray-600:    #6C757D;
  --sw-gray-800:    #343A40;
  --sw-dark:        #0A1628;
  --sw-text:        #212529;
  --font-primary:   'Poppins', 'Noto Sans Telugu', sans-serif;
  --font-body:      'Inter', 'Noto Sans Telugu', sans-serif;
  --radius-sm:      6px;
  --radius-md:      12px;
  --radius-lg:      20px;
  --shadow-sm:      0 2px 8px rgba(0,0,0,.06);
  --shadow-md:      0 4px 20px rgba(0,0,0,.10);
  --shadow-lg:      0 8px 40px rgba(0,0,0,.14);
  --transition:     all .25s ease;
}

/* ---- Base ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); color: var(--sw-text); line-height: 1.65; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-primary); font-weight: 700; color: var(--sw-dark); }
a { color: var(--sw-blue); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--sw-blue-dark); }
img { max-width: 100%; height: auto; }

/* Telugu font support */
.lang-te { font-family: 'Noto Sans Telugu', 'Inter', sans-serif; }
.lang-te h1, .lang-te h2, .lang-te h3, .lang-te h4 { font-family: 'Noto Sans Telugu', 'Poppins', sans-serif; }

/* ---- Top Ribbon ---- */
.top-ribbon {
  background: var(--sw-dark);
  color: #adb5bd;
  font-size: .8rem;
  padding: .45rem 0;
  position: relative;
  z-index: 1100;
}
.top-ribbon a { color: #adb5bd; text-decoration: none; }
.top-ribbon a:hover { color: var(--sw-white); }
.ribbon-info li { display: flex; align-items: center; gap: .3rem; }
.ribbon-info .bi { font-size: .9rem; }
.ribbon-sep { color: #495057; }
.ribbon-social { font-size: 1rem; color: #adb5bd; transition: var(--transition); }
.ribbon-social:hover { color: var(--sw-blue); }
.ribbon-admin-link { font-size: .95rem; color: #adb5bd; opacity: .7; transition: var(--transition); line-height: 1; }
.ribbon-admin-link:hover { color: var(--sw-white); opacity: 1; }
.btn-ribbon {
  background: var(--sw-blue); color: #fff !important; border: none;
  border-radius: 4px; padding: .2rem .7rem; font-size: .78rem; font-weight: 500;
}
.btn-ribbon:hover { background: var(--sw-blue-dark); }
.btn-ribbon-outline {
  border: 1px solid rgba(255,255,255,.3); color: #adb5bd !important; background: transparent;
  border-radius: 4px; padding: .2rem .7rem; font-size: .78rem;
}
.btn-ribbon-outline:hover { border-color: #fff; color: #fff !important; }
.lang-switcher { display: flex; gap: 2px; }
.lang-btn {
  padding: .18rem .55rem; border-radius: 3px; font-size: .78rem;
  color: #adb5bd; transition: var(--transition);
}
.lang-btn:hover, .lang-btn.active { background: var(--sw-blue); color: #fff !important; }

/* ---- Main Header ---- */
.main-header {
  background: var(--sw-white);
  box-shadow: var(--shadow-md);
  position: sticky;
  top: 0;
  z-index: 1090;
}
.navbar { padding: .6rem 0; }
.brand-logo { display: flex; align-items: center; gap: .75rem; }
.logo-icon {
  width: 44px; height: 44px; border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--sw-blue), var(--sw-blue-dark));
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1.3rem; flex-shrink: 0;
}
.brand-name {
  display: block; font-family: var(--font-primary); font-weight: 700;
  font-size: 1.1rem; color: var(--sw-dark); line-height: 1.1;
}
.brand-sub { display: block; font-size: .65rem; color: var(--sw-gray-600); }
.nav-link {
  font-weight: 500; color: var(--sw-gray-800) !important; font-size: .9rem;
  padding: .5rem .75rem !important; transition: var(--transition);
}
.nav-link:hover, .nav-link:focus { color: var(--sw-blue) !important; }
.dropdown-menu { border: none; box-shadow: var(--shadow-lg); border-radius: var(--radius-md); padding: .5rem 0; min-width: 220px; }
.dropdown-item { font-size: .875rem; padding: .5rem 1.2rem; color: var(--sw-gray-800); }
.dropdown-item:hover { background: var(--sw-blue-light); color: var(--sw-blue); }
.dropdown-menu-specialities { min-width: 260px; }
.btn-book-nav {
  background: var(--sw-blue); color: #fff !important; border-radius: var(--radius-sm);
  font-size: .875rem; font-weight: 600; padding: .45rem 1rem;
  box-shadow: 0 2px 8px rgba(13,110,253,.3);
}
.btn-book-nav:hover { background: var(--sw-blue-dark); box-shadow: 0 4px 14px rgba(13,110,253,.4); }

/* ---- Hero Slider ---- */
.hero-section { position: relative; overflow: hidden; }
.hero-slide {
  min-height: 560px;
  background: linear-gradient(135deg, var(--sw-dark) 0%, #1a3a6b 100%);
  display: flex; align-items: center; position: relative;
  padding: 5rem 0;
}
.hero-slide::before {
  content: ''; position: absolute; inset: 0;
  background: var(--hero-bg, url('/assets/img/hero-bg.jpg')) center/cover no-repeat;
  opacity: .22;
}
.hero-slide .container { position: relative; z-index: 2; }
.hero-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  background: rgba(13,110,253,.2); border: 1px solid rgba(13,110,253,.4);
  color: #7ab3ff; border-radius: 99px; padding: .3rem 1rem; font-size: .8rem;
  font-weight: 500; margin-bottom: 1.5rem; backdrop-filter: blur(4px);
}
.hero-title { font-size: clamp(2rem, 5vw, 3.5rem); color: #fff; line-height: 1.15; margin-bottom: 1rem; }
.hero-title span { color: #7ab3ff; }
.hero-subtitle { font-size: 1.1rem; color: rgba(255,255,255,.75); max-width: 520px; margin-bottom: 2rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.btn-hero-primary {
  background: var(--sw-blue); color: #fff; border: none;
  padding: .75rem 1.75rem; border-radius: var(--radius-sm); font-weight: 600; font-size: .95rem;
  box-shadow: 0 4px 15px rgba(13,110,253,.4); transition: var(--transition);
}
.btn-hero-primary:hover { background: var(--sw-blue-dark); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(13,110,253,.5); }
.btn-hero-outline {
  background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.5);
  padding: .75rem 1.75rem; border-radius: var(--radius-sm); font-weight: 600; font-size: .95rem; transition: var(--transition);
}
.btn-hero-outline:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.btn-hero-green {
  background: var(--sw-green); color: #fff; border: none;
  padding: .75rem 1.75rem; border-radius: var(--radius-sm); font-weight: 600; font-size: .95rem; transition: var(--transition);
}
.btn-hero-green:hover { background: #146c43; transform: translateY(-1px); }
.carousel-indicators [data-bs-target] { width: 8px; height: 8px; border-radius: 99px; opacity: .5; }
.carousel-indicators .active { opacity: 1; width: 24px; }
.carousel-control-prev, .carousel-control-next { width: 3.5rem; }

/* ---- Sections Common ---- */
.section-pad { padding: 5rem 0; }
.section-pad-sm { padding: 3.5rem 0; }
.section-title { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: .5rem; }
.section-subtitle { color: var(--sw-gray-600); font-size: 1.05rem; max-width: 600px; }
.section-divider { width: 48px; height: 4px; background: var(--sw-blue); border-radius: 99px; margin: 1rem auto 2.5rem; }
.section-divider.left { margin-left: 0; }
.bg-soft { background: var(--sw-gray-50); }
.bg-blue-light { background: var(--sw-blue-light); }

/* ---- Quick Actions ---- */
.quick-action-card {
  text-align: center; padding: 2rem 1.25rem;
  background: #fff; border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm); transition: var(--transition);
  border: 1px solid var(--sw-gray-200); cursor: pointer;
  text-decoration: none; color: var(--sw-dark);
  display: block;
}
.quick-action-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); color: var(--sw-blue); border-color: var(--sw-blue); }
.quick-action-icon {
  width: 64px; height: 64px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.75rem; margin: 0 auto 1rem;
}
.quick-action-card h5 { font-size: .95rem; font-weight: 600; margin: 0; }

/* ---- Card Styles ---- */
.sw-card {
  background: #fff; border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm); border: 1px solid var(--sw-gray-200);
  overflow: hidden; transition: var(--transition);
}
.sw-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.sw-card-img { width: 100%; height: 220px; object-fit: cover; }
.sw-card-body { padding: 1.5rem; }
.sw-card-title { font-size: 1rem; font-weight: 700; margin-bottom: .25rem; }

/* ---- Doctor Cards ---- */
.doctor-card {
  background: #fff; border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm); border: 1px solid var(--sw-gray-200);
  overflow: hidden; transition: var(--transition); text-align: center;
}
.doctor-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.doctor-photo {
  width: 100%; height: 240px; object-fit: cover; object-position: top;
  background: var(--sw-blue-light);
}
.doctor-photo-placeholder {
  width: 100%; height: 240px; background: var(--sw-blue-light);
  display: flex; align-items: center; justify-content: center;
  font-size: 4rem; color: var(--sw-blue);
}
.doctor-info { padding: 1.25rem 1rem 1.5rem; }
.doctor-name { font-size: 1rem; font-weight: 700; color: var(--sw-dark); margin-bottom: .25rem; }
.doctor-dept { font-size: .8rem; color: var(--sw-blue); font-weight: 500; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .5rem; }
.doctor-qual { font-size: .8rem; color: var(--sw-gray-600); margin-bottom: .75rem; }
.doctor-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .78rem; padding: .2rem .6rem; border-radius: 99px; background: var(--sw-blue-light); color: var(--sw-blue); margin-bottom: .75rem; }

/* ---- Speciality Cards ---- */
.specialty-card {
  background: #fff; border-radius: var(--radius-md); padding: 2rem 1.5rem;
  border: 1px solid var(--sw-gray-200); text-align: center;
  transition: var(--transition); cursor: pointer; text-decoration: none; color: var(--sw-dark);
  display: block; box-shadow: var(--shadow-sm);
}
.specialty-card:hover { border-color: var(--sw-blue); box-shadow: var(--shadow-md); color: var(--sw-dark); transform: translateY(-2px); }
.specialty-icon { font-size: 2.5rem; color: var(--sw-blue); margin-bottom: 1rem; display: block; }
.specialty-name { font-size: .95rem; font-weight: 700; margin: 0; }

/* ---- Facility Cards ---- */
.facility-card {
  background: #fff; border-radius: var(--radius-md); overflow: hidden;
  border: 1px solid var(--sw-gray-200); box-shadow: var(--shadow-sm); transition: var(--transition);
}
.facility-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.facility-img { width: 100%; height: 200px; object-fit: cover; background: var(--sw-blue-light); display: flex; align-items: center; justify-content: center; font-size: 3rem; color: var(--sw-blue); }
.facility-body { padding: 1.25rem; }
.facility-name { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }

/* ---- Testimonials ---- */
.testimonial-card {
  background: #fff; border-radius: var(--radius-md); padding: 2rem;
  border: 1px solid var(--sw-gray-200); box-shadow: var(--shadow-sm); height: 100%;
}
.testimonial-stars { color: #FFC107; font-size: .9rem; margin-bottom .75rem; }
.testimonial-text { font-size: .9rem; color: var(--sw-gray-600); line-height: 1.7; margin-bottom: 1rem; font-style: italic; }
.testimonial-name { font-weight: 700; font-size: .9rem; margin-bottom: 0; }
.testimonial-dept { font-size: .8rem; color: var(--sw-blue); }

/* ---- Outreach ---- */
.outreach-card {
  background: #fff; border-radius: var(--radius-md); overflow: hidden;
  border: 1px solid var(--sw-gray-200); box-shadow: var(--shadow-sm); transition: var(--transition);
}
.outreach-card:hover { box-shadow: var(--shadow-md); }
.outreach-card-body { padding: 1.5rem; }
.outreach-date { font-size: .78rem; color: var(--sw-blue); font-weight: 500; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .5rem; }
.outreach-title { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }

/* ---- Blog ---- */
.blog-card {
  background: #fff; border-radius: var(--radius-md); overflow: hidden;
  border: 1px solid var(--sw-gray-200); box-shadow: var(--shadow-sm); transition: var(--transition);
}
.blog-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.blog-card-img { width: 100%; height: 200px; object-fit: cover; background: var(--sw-blue-light); }
.blog-card-body { padding: 1.5rem; }
.blog-card-date { font-size: .78rem; color: var(--sw-gray-600); margin-bottom: .5rem; }
.blog-card-title { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }
.blog-card-excerpt { font-size: .875rem; color: var(--sw-gray-600); }

/* ---- Donate & Volunteer CTA Section ---- */
.cta-section {
  background: linear-gradient(135deg, var(--sw-blue-dark), var(--sw-dark));
  padding: 5rem 0; position: relative; overflow: hidden;
}
.cta-section::before {
  content: ''; position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='20' fill='rgba(255,255,255,.03)'/%3E%3C/svg%3E") repeat;
}
.cta-section .container { position: relative; z-index: 2; }

/* ---- About Section ---- */
.about-image-wrap { position: relative; }
.about-image { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.about-badge {
  position: absolute; bottom: -1rem; right: -1rem;
  background: var(--sw-blue); color: #fff; border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem; text-align: center; box-shadow: var(--shadow-md);
}
.about-badge .number { font-size: 2rem; font-weight: 800; line-height: 1; }
.about-badge .label { font-size: .75rem; opacity: .85; }

/* ---- Forms ---- */
.sw-form { background: #fff; border-radius: var(--radius-md); padding: 2.5rem; box-shadow: var(--shadow-sm); border: 1px solid var(--sw-gray-200); }
.form-label { font-weight: 500; font-size: .875rem; color: var(--sw-gray-800); }
.form-control, .form-select { border-radius: var(--radius-sm); border-color: var(--sw-gray-400); font-size: .9rem; }
.form-control:focus, .form-select:focus { border-color: var(--sw-blue); box-shadow: 0 0 0 .2rem rgba(13,110,253,.15); }

/* ---- Page Hero ---- */
.page-hero {
  background: linear-gradient(135deg, var(--sw-dark), #1a3a6b);
  padding: 3.5rem 0 2.5rem;
  position: relative; overflow: hidden;
}
.page-hero::before {
  content: ''; position: absolute; inset: 0;
  background: url('/assets/img/hero-bg.jpg') center/cover no-repeat; opacity: .1;
}
.page-hero .container { position: relative; z-index: 2; }
.page-hero h1 { color: #fff; font-size: clamp(1.75rem, 4vw, 2.75rem); margin-bottom: .5rem; }
.page-hero .breadcrumb { background: none; padding: 0; margin: 0; }
.page-hero .breadcrumb-item, .page-hero .breadcrumb-item a { color: rgba(255,255,255,.65); font-size: .875rem; }
.page-hero .breadcrumb-item.active { color: rgba(255,255,255,.9); }
.page-hero .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.4); }

/* ---- Pagination ---- */
.pagination { justify-content: center; gap: .25rem; }
.page-link { border-radius: var(--radius-sm) !important; border-color: var(--sw-gray-200); color: var(--sw-blue); font-size: .875rem; }
.page-item.active .page-link { background: var(--sw-blue); border-color: var(--sw-blue); }

/* ---- Footer ---- */
.site-footer { background: var(--sw-dark); }
.footer-top { padding: 4rem 0 2rem; }
.footer-heading { font-size: .9rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.5); margin-bottom: 1rem; }
.footer-links li { margin-bottom: .5rem; }
.footer-links a { color: rgba(255,255,255,.65); font-size: .875rem; transition: var(--transition); }
.footer-links a:hover { color: #fff; padding-left: .25rem; }
.footer-about { color: rgba(255,255,255,.55); }
.site-footer .text-muted { color: rgba(255,255,255,.65) !important; }
.site-footer .footer-bottom .text-muted { color: rgba(255,255,255,.55) !important; }
.site-footer a.text-muted:hover { color: #fff !important; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 1.25rem 0; }
.social-icon { color: rgba(255,255,255,.6); font-size: 1.25rem; transition: var(--transition); }
.social-icon:hover { color: var(--sw-blue); }

/* ---- Leadership ---- */
.leadership-card {
  text-align: center; background: #fff; border-radius: var(--radius-md);
  padding: 2rem 1.5rem; box-shadow: var(--shadow-sm); border: 1px solid var(--sw-gray-200);
}
.leadership-photo { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; object-position: top; border: 3px solid var(--sw-blue-light); margin: 0 auto 1rem; background: var(--sw-blue-light); display: flex; align-items: center; justify-content: center; }
.leadership-name { font-size: 1rem; font-weight: 700; margin-bottom: .25rem; }
.leadership-designation { font-size: .8rem; color: var(--sw-blue); font-weight: 500; margin-bottom: .75rem; }

/* ---- Donation Categories ---- */
.donation-category {
  border: 2px solid var(--sw-gray-200); border-radius: var(--radius-md);
  padding: 1.5rem 1rem; text-align: center; cursor: pointer;
  transition: var(--transition); background: #fff;
}
.donation-category:hover, .donation-category.selected { border-color: var(--sw-blue); background: var(--sw-blue-light); }
.donation-category .di { font-size: 1.75rem; color: var(--sw-blue); margin-bottom: .5rem; display: block; }
.donation-category h6 { font-size: .875rem; font-weight: 700; margin: 0; }

/* ---- Utility ---- */
.text-blue { color: var(--sw-blue) !important; }
.text-green { color: var(--sw-green) !important; }
.bg-blue { background-color: var(--sw-blue) !important; }
.rounded-xl { border-radius: var(--radius-lg) !important; }
.btn-primary { background: var(--sw-blue); border-color: var(--sw-blue); font-weight: 600; }
.btn-primary:hover { background: var(--sw-blue-dark); border-color: var(--sw-blue-dark); }
.btn-outline-primary { border-color: var(--sw-blue); color: var(--sw-blue); font-weight: 600; }
.btn-success { background: var(--sw-green); border-color: var(--sw-green); font-weight: 600; }

/* Gallery */
.gallery-item { border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 1; cursor: pointer; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gallery-item:hover img { transform: scale(1.06); }

/* Skip to content */
.skip-link { position: absolute; top: -100%; left: 0; background: var(--sw-blue); color: #fff; padding: .5rem 1rem; z-index: 9999; }
.skip-link:focus { top: 0; }

/* Responsive */
@media (max-width: 767px) {
  .section-pad { padding: 3rem 0; }
  .hero-slide { min-height: 380px; padding: 3rem 0; }
  .hero-title { font-size: 1.75rem; }
  .sw-form { padding: 1.5rem; }
  .about-badge { display: none; }
}
@media (max-width: 575px) {
  .ribbon-left .ribbon-sep { display: none; }
  .top-ribbon { font-size: .72rem; }
}

/* ---- Logo Image ---- */
.navbar-logo { height: 52px; width: auto; object-fit: contain; }
.footer-logo-img { height: 44px; width: auto; object-fit: contain; filter: brightness(0) invert(1); }
@media (max-width: 576px) { .navbar-logo { height: 40px; } }
