/* Shared, low-weight visual layer for every public page. */
:root {
  --rsab-primary: #66D47E;
  --rsab-primary-dark: #287642;
  --rsab-surface: #ffffff;
  --rsab-canvas: #f5faf6;
  --rsab-ink: #203126;
  --rsab-muted: #68756b;
  --rsab-line: #dce9df;
  --rsab-radius: 16px;
}

html { scroll-behavior: smooth; }
body { color: var(--rsab-ink); }

/* Match the sticky navigation across the legacy home and newer content pages. */
.navbar-default, .rsab-nav, .rp-nav, .rsx-nav {
  background: rgba(255,255,255,.97) !important;
  border-color: var(--rsab-line) !important;
  box-shadow: 0 4px 18px rgba(32,49,38,.07) !important;
}
.navbar-default .navbar-nav > li > a,
.rsab-nav .rsab-menu > li > a,
.rp-nav .rp-menu > li > a,
.rsx-nav a { color: var(--rsab-ink); }
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > .active > a,
.rsab-nav .rsab-menu > li > a:hover,
.rp-nav .rp-menu > li > a:hover,
.rsx-nav a:hover { color: var(--rsab-primary-dark) !important; }

/* One shared header rhythm: contact strip, logo row, menu spacing, and dropdowns. */
.rp-topbar,
body > header:not(.rsab-nav):not(.rp-nav):not(.rsx-nav) {
  min-height: 38px;
  padding: 0;
  background: #f7f9f5 !important;
  border-bottom: 1px solid var(--rsab-line) !important;
  color: #5f6d61 !important;
  font-size: 12px !important;
  line-height: 1.5;
}
.rp-topbar .rp-wrap,
body > header:not(.rsab-nav):not(.rp-nav):not(.rsx-nav) > .container {
  width: 100%;
  max-width: 1200px;
  min-height: 38px;
  margin: 0 auto;
  padding-top: 6px;
  padding-bottom: 6px;
}
.rp-topbar .rp-wrap { align-items: center; }
.rp-topbar-info { align-items: center; gap: 4px 18px !important; }
.rp-topbar a,
body > header:not(.rsab-nav):not(.rp-nav):not(.rsx-nav) a {
  color: inherit !important;
  text-decoration: none;
}

.rsab-nav,
.rsx-nav,
.navbar-default {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  min-height: 76px !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--rsab-line) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 5px 20px rgba(32,49,38,.08) !important;
}
.rsab-nav .rsab-nav-inner,
.rsx-nav .rsx-inner {
  width: 100%;
  max-width: 1200px;
  min-height: 76px !important;
  margin: 0 auto !important;
  padding: 8px 20px !important;
}
.navbar-default > .container {
  width: 100%;
  max-width: 1200px;
  min-height: 76px !important;
  height: auto !important;
  margin: 0 auto;
  padding: 8px 20px;
}
.rsab-nav .rsab-brand img,
.rsx-nav .rsx-brand img { height: 52px !important; width: auto !important; object-fit: contain; }
.navbar-default .rsab-brand { display: flex; align-items: center; gap: 10px; height: 58px; }
.navbar-default .rsab-brand .bgimg { width: 240px !important; height: 52px !important; background-size: contain !important; background-position: left center !important; }
.navbar-default .rsab-brand-text { display: none; }
.rsab-nav .rsab-menu,
.rsx-nav .rsx-menu { align-items: center; gap: 14px !important; }
.navbar-default .navbar-nav { align-items: center; gap: 8px !important; }
.rsab-nav .rsab-menu > li > a,
.rsx-nav .rsx-menu > li > a,
.rsx-nav .rsx-menu > li > .rsx-toggle,
.navbar-default .navbar-nav > li > a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 8px !important;
  border-radius: 9px;
  color: var(--rsab-ink) !important;
  font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
  font-size: 13px !important;
  font-weight: 500;
  line-height: 1.35;
}
.rsab-nav .rsab-menu > li > a:hover,
.rsab-nav .rsab-menu > li.rsab-current > a,
.rsx-nav .rsx-menu > li > a:hover,
.rsx-nav .rsx-menu > li > .rsx-toggle:hover,
.navbar-default .navbar-nav > li > a:hover {
  background: #f2f7ec !important;
  color: var(--rsab-primary-dark) !important;
}
.rsab-nav .rsab-facilities-menu,
.rsab-nav .rsab-facilities-submenu,
.rsx-nav .rsx-sub {
  border: 1px solid var(--rsab-line) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 36px rgba(32,49,38,.13) !important;
}
.rsab-nav .rsab-facilities-menu a,
.rsab-nav .rsab-facilities-submenu a,
.rsx-nav .rsx-sub a { min-height: 38px; border-radius: 8px !important; }
.rsab-nav .rsab-menu > li.rsab-cta > a,
.rsx-nav .rsx-cta > a,
.navbar-default .appointment-btn > a {
  min-height: 42px;
  padding: 10px 16px !important;
  border-radius: 999px !important;
  background: var(--rsab-primary) !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(99,140,58,.22);
}
.rsab-nav .rsab-menu > li.rsab-cta > a:hover,
.rsx-nav .rsx-cta > a:hover,
.navbar-default .appointment-btn > a:hover { background: var(--rsab-primary-dark) !important; color: #fff !important; }
.rsab-burger, .rsx-burger, .navbar-default .navbar-toggle {
  border-color: var(--rsab-line) !important;
  border-radius: 10px !important;
}

/* Calm, consistent page canvas and centered content. */
.rp-hero { background: linear-gradient(135deg,#f2f7ec 0%,#fbfcf8 72%) !important; }
.rp-body { padding-top: 28px; padding-bottom: 48px; }
.rp-card, .rp-hour, .rsab-featured-card {
  border-color: var(--rsab-line) !important;
  border-radius: var(--rsab-radius) !important;
  box-shadow: 0 8px 24px rgba(32,49,38,.06) !important;
}
.rp-card { overflow: hidden; }
.rp-card-body { color: var(--rsab-ink); }
.rp-card-body h2, .rp-card-body h3 { color: var(--rsab-ink); }
.rp-btn-primary, .rp-more, .appointment-btn > a {
  background-color: var(--rsab-primary) !important;
  border-color: var(--rsab-primary) !important;
}
.rp-btn-primary:hover, .rp-more:hover, .appointment-btn > a:hover {
  background-color: var(--rsab-primary-dark) !important;
}

/* Homepage hero uses the already provided three slide images and Owl Carousel. */
#home .owl-carousel .item { background-color: #e8eee3; }
#home .owl-carousel .item::after {
  background: linear-gradient(90deg,rgba(18,35,22,.56),rgba(18,35,22,.08) 78%) !important;
}
#home .owl-carousel .item .caption {
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 20px;
  background: rgba(24,43,28,.38) !important;
  box-shadow: 0 18px 44px rgba(12,24,14,.16);
  backdrop-filter: blur(5px);
}
#home .owl-dots .owl-dot span { background: rgba(255,255,255,.68); }
#home .owl-dots .owl-dot.active span { background: #fff; }

@media (max-width: 767px) {
  .rp-body { padding-top: 18px; padding-bottom: 32px; }
  #home .owl-carousel .item .caption { border-radius: 14px; }
}
@media (max-width: 760px) {
  .rp-topbar .rp-wrap > span:first-child,
  .rp-topbar-info > span,
  body > header:not(.rsab-nav):not(.rp-nav):not(.rsx-nav) .col-md-4 { display: none !important; }
  .rp-topbar .rp-wrap { justify-content: center; padding: 5px 14px; }
  .rp-topbar-info { justify-content: center; width: 100%; gap: 4px 14px !important; font-size: 11.5px; }
  body > header:not(.rsab-nav):not(.rp-nav):not(.rsx-nav) .col-md-8 { width: 100%; text-align: center !important; }
  .navbar-default > .container { padding: 7px 14px; }
  .navbar-default .rsab-brand .bgimg { width: 190px !important; height: 44px !important; }
  .rsab-nav .rsab-nav-inner,
  .rsx-nav .rsx-inner { min-height: 66px !important; padding: 7px 14px !important; }
  .rsab-burger, .rsx-burger, .navbar-default .navbar-toggle { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Canonical typography and spacing for the generated header on every page. */
html body header.site-header {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
}
html body .site-header,
html body .site-header *:not(i):not([class*="fa-"]):not(.fa) {
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif !important;
}
html body .site-header .site-nav-toggle > span {
  display: inline-block;
  width: auto;
  height: auto;
  padding: 0 !important;
  font: inherit;
  line-height: 1;
}
html body .site-header .site-menu-toggle > span {
  display: block;
  width: 19px;
  height: 2px;
  padding: 0 !important;
}
html body .site-header .site-nav-main > a,
html body .site-header .site-menu > li > a,
html body .site-header .site-nav-toggle,
html body .site-header .site-doctor-cta {
  font-size: 13px !important;
  line-height: 1.35 !important;
}
html body .site-header .site-nav-main > a,
html body .site-header .site-menu > li > a {
  font-weight: 500 !important;
}
html body .site-header .site-nav-has-menu.is-current > .site-nav-main > a,
html body .site-header .site-menu a[aria-current="page"] {
  font-weight: 600 !important;
}
html body .site-header .site-nav-submenu {
  top: 100%;
  min-width: 224px;
  padding: 6px;
  border-radius: 11px;
  box-shadow: 0 12px 28px rgba(32,49,38,.12);
}
html body .site-header .site-nav-submenu a {
  min-height: 36px;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 12px !important;
  line-height: 1.4 !important;
}
@media (max-width: 1190px) {
  html body .site-header .site-nav-main > a,
  html body .site-header .site-menu > li > a { font-size: 13px !important; }
}

/* Shared site header inserted by js/site-shell.js on every public HTML page. */
.site-shell { display: contents; }
.site-legacy-shell { display: none !important; }
.site-skip { position: fixed; z-index: 1200; left: 12px; top: -60px; padding: 10px 14px; border-radius: 8px; background: var(--rsab-primary-dark); color: #fff; }
.site-skip:focus { top: 12px; color: #fff; }
.site-topbar { min-height: 38px; background: #f7f9f5; border-bottom: 1px solid var(--rsab-line); color: #5f6d61; font-size: 12px; }
.site-shell-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.site-topbar .site-shell-wrap { min-height: 38px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 18px; padding-top: 5px; padding-bottom: 5px; }
.site-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; }
.site-contact a { color: inherit; text-decoration: none; }
.site-contact a:hover { color: var(--rsab-primary-dark); }
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--rsab-line); box-shadow: 0 5px 20px rgba(32,49,38,.08); }
.site-nav-row { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.site-brand { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; min-width: 200px; color: var(--rsab-ink); text-decoration: none; }
html body .site-header .site-brand { color: var(--rsab-ink) !important; }
.site-brand img { display: block; width: auto; max-width: 240px; height: 52px; object-fit: contain; }
.site-brand-fallback { display: none; flex-direction: column; line-height: 1.25; }
html body .site-header .site-brand-fallback { padding: 0 !important; color: var(--rsab-ink) !important; }
.site-brand-fallback b { font-size: 14px; }
.site-brand-fallback small { color: var(--rsab-muted); font-size: 11px; }
.site-brand.logo-missing img { display: none; }
.site-brand.logo-missing .site-brand-fallback { display: flex; }
.site-navigation { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.site-menu { display: flex; align-items: center; justify-content: flex-end; gap: 8px; list-style: none; margin: 0; padding: 0; }
.site-menu > li { position: relative; margin: 0; padding: 0; list-style: none; }
.site-nav-main { display: flex; align-items: center; min-height: 42px; padding: 0 3px; border-radius: 9px; }
.site-nav-main > a, .site-menu > li > a { display: inline-flex; align-items: center; min-height: 42px; padding: 9px 7px; border-radius: 8px; color: var(--rsab-ink); font-size: 12.5px; font-weight: 500; line-height: 1.35; text-decoration: none; white-space: nowrap; }
.site-nav-main > a:hover, .site-menu > li > a:hover, .site-nav-main:focus-within { background: #f2f7ec; color: var(--rsab-primary-dark); }
.site-menu a.is-current { color: var(--rsab-primary-dark); font-weight: 700; }
.site-nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 36px; border: 0; border-radius: 7px; background: transparent; color: var(--rsab-primary-dark); cursor: pointer; }
.site-nav-toggle:hover, .site-nav-toggle:focus-visible { background: #edf4e5; }
.site-nav-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.site-nav-toggle span { transition: transform .18s ease; }
.site-nav-submenu { display: none; position: absolute; top: 100%; left: 0; z-index: 1002; min-width: 230px; max-height: min(70vh,520px); overflow: auto; margin: 0; padding: 7px; list-style: none; border: 1px solid var(--rsab-line); border-radius: 12px; background: #fff; box-shadow: 0 16px 36px rgba(32,49,38,.13); }
.site-nav-has-menu.is-open > .site-nav-submenu { display: block; }
.site-nav-submenu a { display: flex; align-items: center; min-height: 38px; padding: 8px 11px; border-radius: 8px; color: var(--rsab-ink); font-size: 12px; line-height: 1.4; text-decoration: none; }
.site-nav-submenu a:hover, .site-nav-submenu a:focus-visible { background: #f2f7ec; color: var(--rsab-primary-dark); }
.site-doctor-cta { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 9px 16px; border-radius: 999px; background: var(--rsab-primary); color: #fff !important; box-shadow: 0 5px 14px rgba(99,140,58,.22); font-size: 12.5px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.site-doctor-cta:hover, .site-doctor-cta:focus-visible { background: var(--rsab-primary-dark); color: #fff !important; }
.site-menu-toggle { display: none; width: 42px; height: 42px; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--rsab-line); border-radius: 10px; background: #fff; cursor: pointer; }
.site-menu-toggle span { width: 19px; height: 2px; border-radius: 2px; background: var(--rsab-ink); }
.site-menu a:focus-visible, .site-nav-toggle:focus-visible, .site-menu-toggle:focus-visible,
.site-doctor-cta:focus-visible, .site-contact a:focus-visible, .site-brand:focus-visible {
  outline: 3px solid #287642;
  outline-offset: 3px;
}
.site-nav-has-menu.is-current > .site-nav-main > a { color: var(--rsab-primary-dark); font-weight: 700; }

@media (max-width: 1190px) {
  .site-nav-row { min-height: 68px; gap: 12px; }
  .site-menu-toggle { display: flex; order: 3; }
  .site-doctor-cta { margin-left: auto; }
  .site-navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - 110px); overflow: auto; padding: 8px 16px 16px; border-top: 1px solid var(--rsab-line); background: #fff; box-shadow: 0 14px 24px rgba(32,49,38,.1); }
  .site-navigation.is-open { display: block; }
  .site-menu { display: flex; flex-direction: column; align-items: stretch; gap: 2px; max-width: 1200px; margin: 0 auto; }
  .site-menu > li { width: 100%; }
  .site-menu > li > a, .site-nav-main { width: 100%; min-height: 44px; }
  .site-nav-main { justify-content: space-between; padding: 0 6px; }
  .site-nav-main > a, .site-menu > li > a { flex: 1; font-size: 14px; }
  .site-nav-submenu { position: static; min-width: 0; max-height: none; margin: 0 0 6px 10px; padding: 4px 8px; border: 0; border-left: 2px solid #dce9cf; border-radius: 0; box-shadow: none; }
  .site-nav-has-menu.is-open > .site-nav-submenu { display: block; }
  .site-doctor-cta { order: 2; }
}
@media (max-width: 600px) {
  .site-shell-wrap { padding-right: 14px; padding-left: 14px; }
  .site-topbar .site-shell-wrap { justify-content: center; min-height: 34px; padding-top: 4px; padding-bottom: 4px; }
  .site-topbar .site-shell-wrap > span, .site-contact > span { display: none; }
  .site-contact { justify-content: center; gap: 4px 14px; font-size: 11px; }
  .site-nav-row { min-height: 64px; gap: 8px; }
  .site-brand { min-width: 0; }
  .site-brand img { max-width: 190px; height: 44px; }
  .site-doctor-cta { min-height: 38px; padding: 8px 12px; font-size: 11.5px; }
  .site-menu-toggle { width: 40px; height: 40px; }
}

/* Final reset for the generated header: several older page styles use bare
   `header` selectors with !important, so keep the shared shell explicit. */
html body header.site-header {
  background: rgba(255,255,255,.98) !important;
  background-color: rgba(255,255,255,.98) !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--rsab-line) !important;
  box-shadow: 0 5px 20px rgba(32,49,38,.08) !important;
  color: var(--rsab-ink) !important;
}
html body .site-header .site-navigation { background: #fff !important; }
html body .site-header .site-nav-main > a,
html body .site-header .site-menu > li > a,
html body .site-header .site-nav-toggle {
  background: transparent !important;
  color: var(--rsab-ink) !important;
  -webkit-text-fill-color: var(--rsab-ink) !important;
  text-shadow: none !important;
}
html body .site-header .site-nav-main > a:hover,
html body .site-header .site-nav-main > a:focus-visible,
html body .site-header .site-menu > li > a:hover,
html body .site-header .site-menu > li > a:focus-visible,
html body .site-header .site-nav-toggle:hover,
html body .site-header .site-nav-toggle:focus-visible,
html body .site-header .site-nav-main:focus-within {
  background: #f2f7ec !important;
  color: var(--rsab-primary-dark) !important;
  -webkit-text-fill-color: var(--rsab-primary-dark) !important;
}
html body .site-header .site-nav-submenu {
  background: #fff !important;
  border: 1px solid var(--rsab-line) !important;
  box-shadow: 0 16px 36px rgba(32,49,38,.13) !important;
}
html body .site-header .site-nav-submenu a { color: var(--rsab-ink) !important; }
html body .site-header .site-nav-submenu a:hover,
html body .site-header .site-nav-submenu a:focus-visible {
  background: #f2f7ec !important;
  color: var(--rsab-primary-dark) !important;
}
html body .site-header .site-doctor-cta {
  background: var(--rsab-primary) !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(99,140,58,.22) !important;
}
html body .site-header .site-doctor-cta:hover,
html body .site-header .site-doctor-cta:focus-visible {
  background: var(--rsab-primary-dark) !important;
  color: #fff !important;
}
html body .site-header .site-menu-toggle {
  background: #fff !important;
  border: 1px solid var(--rsab-line) !important;
}
html body .site-header .site-menu-toggle > span { background: var(--rsab-ink) !important; }
html body .site-header .site-nav-toggle > span {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: 1 !important;
}
